@lovrabet/rabetbase-cli 2.3.15 → 2.3.16-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 (277) hide show
  1. package/README.md +8 -3
  2. package/lib/api/api-doc.js +1 -1
  3. package/lib/api/fetch-model-list.js +1 -1
  4. package/lib/api/generate-api-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 -0
  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/get.js +1 -1
  53. package/lib/commands/config/index.js +1 -1
  54. package/lib/commands/config/list.js +1 -1
  55. package/lib/commands/config/set.js +1 -1
  56. package/lib/commands/config/shared.js +1 -1
  57. package/lib/commands/data/filter.js +1 -1
  58. package/lib/commands/data/getOne.js +1 -1
  59. package/lib/commands/data/index.js +1 -1
  60. package/lib/commands/data/shared.js +1 -1
  61. package/lib/commands/dataset/business-group-update.js +1 -1
  62. package/lib/commands/dataset/capability.js +1 -1
  63. package/lib/commands/dataset/delete.js +1 -1
  64. package/lib/commands/dataset/detail.js +1 -1
  65. package/lib/commands/dataset/extend-update.js +1 -1
  66. package/lib/commands/dataset/field-update.js +1 -1
  67. package/lib/commands/dataset/generate.js +1 -1
  68. package/lib/commands/dataset/index.js +1 -1
  69. package/lib/commands/dataset/list.js +1 -1
  70. package/lib/commands/dataset/operations.js +1 -1
  71. package/lib/commands/dataset/relation-audit.js +1 -1
  72. package/lib/commands/dataset/relation-create.js +1 -1
  73. package/lib/commands/dataset/relation-delete.js +1 -1
  74. package/lib/commands/dataset/relation-shared.js +1 -1
  75. package/lib/commands/dataset/relation-update.js +1 -1
  76. package/lib/commands/dataset/relations.js +1 -1
  77. package/lib/commands/dataset/rename.js +1 -1
  78. package/lib/commands/dataset/restore.js +1 -1
  79. package/lib/commands/db/analysis-batching.js +1 -1
  80. package/lib/commands/db/analyze-batch-plan.js +1 -1
  81. package/lib/commands/db/analyze-cancel.js +1 -1
  82. package/lib/commands/db/analyze-start.js +1 -1
  83. package/lib/commands/db/analyze-status.js +1 -1
  84. package/lib/commands/db/create.js +1 -1
  85. package/lib/commands/db/delete.js +1 -1
  86. package/lib/commands/db/detail.js +1 -1
  87. package/lib/commands/db/diff.js +1 -1
  88. package/lib/commands/db/index.js +1 -1
  89. package/lib/commands/db/list.js +1 -1
  90. package/lib/commands/db/shared.js +1 -1
  91. package/lib/commands/db/tables.js +1 -1
  92. package/lib/commands/db/test.js +1 -1
  93. package/lib/commands/db/update.js +1 -1
  94. package/lib/commands/doctor.js +1 -1
  95. package/lib/commands/file/index.js +1 -1
  96. package/lib/commands/init/index.js +1 -1
  97. package/lib/commands/issue/index.js +1 -1
  98. package/lib/commands/issue/nudge.js +1 -1
  99. package/lib/commands/issue/report.js +1 -1
  100. package/lib/commands/issue/shared.js +1 -1
  101. package/lib/commands/kb/create.js +1 -0
  102. package/lib/commands/kb/delete.js +1 -0
  103. package/lib/commands/kb/detail.js +1 -0
  104. package/lib/commands/kb/index.js +1 -0
  105. package/lib/commands/kb/list.js +1 -0
  106. package/lib/commands/kb/shared.js +1 -0
  107. package/lib/commands/kb/update.js +1 -0
  108. package/lib/commands/logs/index.js +1 -1
  109. package/lib/commands/menu/asset-update.js +1 -1
  110. package/lib/commands/menu/delete.js +1 -1
  111. package/lib/commands/menu/external-link-create.js +1 -1
  112. package/lib/commands/menu/external-link-update.js +1 -1
  113. package/lib/commands/menu/group-create.js +1 -1
  114. package/lib/commands/menu/group-update.js +1 -1
  115. package/lib/commands/menu/index.js +1 -1
  116. package/lib/commands/menu/list.js +1 -1
  117. package/lib/commands/menu/move.js +1 -1
  118. package/lib/commands/menu/regroup-start.js +1 -1
  119. package/lib/commands/menu/rename.js +1 -1
  120. package/lib/commands/menu/shared/compare-table.js +1 -1
  121. package/lib/commands/menu/shared/delete-plan.js +1 -1
  122. package/lib/commands/menu/shared/facts.js +1 -1
  123. package/lib/commands/menu/shared/index.js +1 -1
  124. package/lib/commands/menu/shared/inquirer.js +1 -1
  125. package/lib/commands/menu/shared/local-pages.js +1 -1
  126. package/lib/commands/menu/shared/logic.js +1 -1
  127. package/lib/commands/menu/shared/mutations.js +1 -1
  128. package/lib/commands/menu/shared/service.js +1 -1
  129. package/lib/commands/menu/shared/sync-core.js +1 -1
  130. package/lib/commands/menu/shared/update-core.js +1 -1
  131. package/lib/commands/menu/shared/valid-url.js +1 -1
  132. package/lib/commands/menu/sync.js +1 -1
  133. package/lib/commands/notification/config-list.js +1 -1
  134. package/lib/commands/notification/index.js +1 -1
  135. package/lib/commands/ocr/index.js +1 -1
  136. package/lib/commands/page/generate-start.js +1 -1
  137. package/lib/commands/page/generate-status.js +1 -1
  138. package/lib/commands/page/index.js +1 -1
  139. package/lib/commands/page/pull.js +1 -1
  140. package/lib/commands/page/push.js +1 -1
  141. package/lib/commands/page/relation-audit.js +1 -1
  142. package/lib/commands/page/restore.js +1 -1
  143. package/lib/commands/page/shared.js +1 -1
  144. package/lib/commands/page/standard-page-status.js +1 -1
  145. package/lib/commands/page/sync.js +1 -1
  146. package/lib/commands/permit/index.js +1 -1
  147. package/lib/commands/permit/page-get.js +1 -1
  148. package/lib/commands/permit/page-set.js +1 -1
  149. package/lib/commands/permit/role-apis-set.js +1 -1
  150. package/lib/commands/permit/role-menus-set.js +1 -1
  151. package/lib/commands/permit/role-menus.js +1 -1
  152. package/lib/commands/permit/shared.js +1 -1
  153. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  154. package/lib/commands/project/create/format-elapsed.js +1 -1
  155. package/lib/commands/project/create/main.js +1 -1
  156. package/lib/commands/project/create/non-interactive.js +1 -1
  157. package/lib/commands/project/create/project-template-path.js +1 -1
  158. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  159. package/lib/commands/project/create/use-format-code.js +1 -1
  160. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  161. package/lib/commands/project/index.js +1 -1
  162. package/lib/commands/project/init.js +1 -1
  163. package/lib/commands/project/upgrade.js +1 -1
  164. package/lib/commands/registry.js +1 -1
  165. package/lib/commands/role/create.js +1 -1
  166. package/lib/commands/role/delete.js +1 -1
  167. package/lib/commands/role/detail.js +1 -1
  168. package/lib/commands/role/index.js +1 -1
  169. package/lib/commands/role/list.js +1 -1
  170. package/lib/commands/role/shared.js +1 -1
  171. package/lib/commands/role/update.js +1 -1
  172. package/lib/commands/role/user-add.js +1 -1
  173. package/lib/commands/role/user-remove.js +1 -1
  174. package/lib/commands/role/user-resolve.js +1 -1
  175. package/lib/commands/run/index.js +1 -1
  176. package/lib/commands/schema.js +1 -1
  177. package/lib/commands/sql/create.js +1 -1
  178. package/lib/commands/sql/delete.js +1 -1
  179. package/lib/commands/sql/detail.js +1 -1
  180. package/lib/commands/sql/exec.js +1 -1
  181. package/lib/commands/sql/index.js +1 -1
  182. package/lib/commands/sql/list.js +1 -1
  183. package/lib/commands/sql/pull.js +1 -1
  184. package/lib/commands/sql/push.js +1 -1
  185. package/lib/commands/sql/save.js +1 -1
  186. package/lib/commands/sql/shared.js +1 -1
  187. package/lib/commands/sql/status.js +1 -1
  188. package/lib/commands/sql/validate.js +1 -1
  189. package/lib/commands/task/index.js +1 -1
  190. package/lib/commands/task/status.js +1 -1
  191. package/lib/commands/tenant/index.js +1 -0
  192. package/lib/commands/tenant/members-list.js +1 -0
  193. package/lib/commands/tenant/shared.js +1 -0
  194. package/lib/commands/workspace/add.js +1 -1
  195. package/lib/commands/workspace/index.js +1 -1
  196. package/lib/commands/workspace/remove.js +1 -1
  197. package/lib/config/schema.js +1 -1
  198. package/lib/constant/cdn.js +1 -1
  199. package/lib/constant/cli.js +1 -1
  200. package/lib/constant/defaults.js +1 -1
  201. package/lib/constant/domain.js +1 -1
  202. package/lib/constant/env.js +1 -1
  203. package/lib/constant/output.js +1 -1
  204. package/lib/constant/paths.js +1 -1
  205. package/lib/constant/risk.js +1 -1
  206. package/lib/context/app-resolver.js +1 -1
  207. package/lib/context/auth-resolver.js +1 -1
  208. package/lib/context/config-loader.js +1 -1
  209. package/lib/context.js +1 -1
  210. package/lib/core/alias-resolver.js +1 -1
  211. package/lib/core/api-client.js +1 -1
  212. package/lib/core/bff/config.js +1 -1
  213. package/lib/core/bff/file-system.js +1 -1
  214. package/lib/core/bff/hash.js +1 -1
  215. package/lib/core/bff/lock.js +1 -1
  216. package/lib/core/bff/utils.js +1 -1
  217. package/lib/core/db-resolver.js +1 -1
  218. package/lib/core/page/file-system.js +1 -1
  219. package/lib/core/page/hash.js +1 -1
  220. package/lib/core/page/lock.js +1 -1
  221. package/lib/core/sql-index-auditor.js +1 -1
  222. package/lib/core/sql-sync/config.js +1 -1
  223. package/lib/core/sql-sync/file-system.js +1 -1
  224. package/lib/core/sql-sync/hash.js +1 -1
  225. package/lib/core/sql-sync/lock.js +1 -1
  226. package/lib/core/sql-sync/utils.js +1 -1
  227. package/lib/core/sql-validator.js +1 -1
  228. package/lib/errors.js +1 -1
  229. package/lib/framework/build-all-flags.js +1 -1
  230. package/lib/framework/error-output.js +1 -1
  231. package/lib/framework/explicit-yes.js +1 -1
  232. package/lib/framework/flags.js +1 -1
  233. package/lib/framework/help.js +1 -1
  234. package/lib/framework/index.js +1 -1
  235. package/lib/framework/output.js +1 -1
  236. package/lib/framework/response.js +1 -1
  237. package/lib/framework/runner-alias.js +1 -1
  238. package/lib/framework/runner.js +1 -1
  239. package/lib/framework/schema-export.js +1 -1
  240. package/lib/framework/types.js +1 -1
  241. package/lib/generated/build-info.js +1 -1
  242. package/lib/help.js +1 -1
  243. package/lib/skills/main.js +1 -1
  244. package/lib/skills/npx-skills-add.js +1 -1
  245. package/lib/skills/skill-presence.js +1 -0
  246. package/lib/telemetry/cli-command-trace.js +1 -1
  247. package/lib/telemetry/cli-help-trace.js +1 -1
  248. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  249. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  250. package/lib/telemetry/send-cli-trace-log.js +1 -1
  251. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  252. package/lib/utils/ai_config.js +1 -1
  253. package/lib/utils/apply-jq-filter.js +1 -1
  254. package/lib/utils/cdn-config.js +1 -1
  255. package/lib/utils/check-sdk-version.js +1 -1
  256. package/lib/utils/cli-version-check.js +1 -1
  257. package/lib/utils/cli-version-policy.js +1 -1
  258. package/lib/utils/config.js +1 -1
  259. package/lib/utils/copy-directory.js +1 -1
  260. package/lib/utils/entity-with-id.js +1 -1
  261. package/lib/utils/file-utils.js +1 -1
  262. package/lib/utils/guides-cdn.js +1 -1
  263. package/lib/utils/http-client.js +1 -1
  264. package/lib/utils/is-non-interactive.js +1 -1
  265. package/lib/utils/logger.js +1 -1
  266. package/lib/utils/params.js +1 -1
  267. package/lib/utils/platform.js +1 -1
  268. package/lib/utils/rules-cdn.js +1 -1
  269. package/lib/utils/sleep.js +1 -1
  270. package/lib/utils/template-replacer.js +1 -1
  271. package/lib/utils/update-notice.js +1 -1
  272. package/lib/utils/version.js +1 -1
  273. package/lib/utils/with-active-cookie.js +1 -1
  274. package/lib/utils/write-cli-side-channel.js +1 -1
  275. package/package.json +2 -2
  276. package/lib/commands/app/add.js +0 -1
  277. package/lib/commands/app/remove.js +0 -1
@@ -1 +1 @@
1
- const a170_0xfd8dd8=a170_0x2890;(function(_0x375806,_0x5f20de){const _0x456353=a170_0x2890,_0x59b5f8=_0x375806();while(!![]){try{const _0x3d1905=parseInt(_0x456353(0x12f))/0x1*(-parseInt(_0x456353(0x125))/0x2)+-parseInt(_0x456353(0x116))/0x3+parseInt(_0x456353(0x118))/0x4*(parseInt(_0x456353(0x11c))/0x5)+-parseInt(_0x456353(0x131))/0x6*(parseInt(_0x456353(0x112))/0x7)+-parseInt(_0x456353(0x14c))/0x8+parseInt(_0x456353(0x135))/0x9*(parseInt(_0x456353(0x140))/0xa)+parseInt(_0x456353(0x121))/0xb*(parseInt(_0x456353(0x117))/0xc);if(_0x3d1905===_0x5f20de)break;else _0x59b5f8['push'](_0x59b5f8['shift']());}catch(_0x2958ce){_0x59b5f8['push'](_0x59b5f8['shift']());}}}(a170_0x4590,0x51867));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';function a170_0x2890(_0x48fd45,_0x92debc){_0x48fd45=_0x48fd45-0x109;const _0x4590fe=a170_0x4590();let _0x2890ba=_0x4590fe[_0x48fd45];return _0x2890ba;}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(_0x269fee){const _0x55ea3b=a170_0x2890;if(_0x269fee===_0x55ea3b(0x132))return[_0x55ea3b(0x122),'\x20\x20SELECT\x201\x20AS\x20id',_0x55ea3b(0x145),''][_0x55ea3b(0x142)]('\x0a');return[_0x55ea3b(0x141),''][_0x55ea3b(0x142)]('\x0a');}export const sqlCreate={'service':'sql','command':'create','description':a170_0xfd8dd8(0x13f),'risk':a170_0xfd8dd8(0x133),'flags':[{'name':a170_0xfd8dd8(0x10a),'type':a170_0xfd8dd8(0x137),'description':a170_0xfd8dd8(0x13b)},{'name':a170_0xfd8dd8(0x139),'type':'number','description':a170_0xfd8dd8(0x11f)},{'name':a170_0xfd8dd8(0x13c),'type':a170_0xfd8dd8(0x137),'enum':[a170_0xfd8dd8(0x143),a170_0xfd8dd8(0x132)],'description':a170_0xfd8dd8(0x119)}],async 'validate'(_0x395ea2){const _0x4074b5=a170_0xfd8dd8;if(!_0x395ea2['nonInteractive'])return;if(!_0x395ea2[_0x4074b5(0x11d)](_0x4074b5(0x10a))['trim']())throw CliErrors[_0x4074b5(0x114)]('name',_0x4074b5(0x14a));const _0x3b5b31=resolveProvidedDbId(_0x395ea2);if(typeof _0x3b5b31!==_0x4074b5(0x10b)||!Number['isFinite'](_0x3b5b31)||_0x3b5b31<=0x0)throw CliErrors[_0x4074b5(0x114)](_0x4074b5(0x139),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x395ea2[_0x4074b5(0x11d)](_0x4074b5(0x13c))[_0x4074b5(0x10f)]())throw CliErrors['flagMissing'](_0x4074b5(0x13c),_0x4074b5(0x128));},async 'dryRun'(_0x14a7fe){const _0x2e5b94=a170_0xfd8dd8,_0x628ab9=loadSqlProjectConfig(_0x14a7fe[_0x2e5b94(0x124)]),{sqlName:_0x384693,dbId:_0x56e566,dbName:_0x16791c,mode:_0x46701e}=await resolveSqlNewInputs(_0x14a7fe),_0x1f7451=buildSqlRelativePath('<server-generated-sqlCode>',_0x384693,_0x16791c,_0x46701e,_0x56e566),_0xfed3=_0x628ab9['sqlRootDir']+'/'+_0x1f7451;return{'method':_0x2e5b94(0x11a),'url':_0x2e5b94(0x10c),'body':{'appCode':_0x14a7fe[_0x2e5b94(0x124)],'sqlName':_0x384693,'dbId':_0x56e566,'mode':_0x46701e,'localPath':_0xfed3},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x628ab9['sqlRootDir']};},async 'execute'(_0x118209){const _0x103980=a170_0xfd8dd8,_0x4dc496=loadSqlProjectConfig(_0x118209[_0x103980(0x124)]),{sqlName:_0x5610b,dbId:_0x298559,dbName:_0xd9643f,mode:_0x50c641}=await resolveSqlNewInputs(_0x118209),_0x21fd0b=generateSqlTemplate(_0x50c641),_0x18a276=await createSqlQuery({'appCode':_0x118209[_0x103980(0x124)],'sqlName':_0x5610b,'dbId':_0x298559,'sqlContent':_0x21fd0b}),_0x2c9081=ensureRemoteSqlContent(_0x18a276),_0x5c2f99=_0xd9643f||await getDbName(_0x118209['appCode'],_0x298559)[_0x103980(0x127)](()=>undefined),_0x5a5418=buildSqlRelativePath(_0x18a276['sqlCode'],_0x18a276[_0x103980(0x11b)],_0x5c2f99,_0x50c641,_0x298559),_0x31f209=_0x4dc496[_0x103980(0x13d)]+'/'+_0x5a5418,_0x4a1586=buildLocalSqlFileContent({'sqlCode':_0x18a276['sqlCode'],'sqlName':_0x18a276['sqlName'],'dbId':_0x18a276['dbId']},_0x2c9081,{'dbName':_0x5c2f99,'mode':_0x50c641,'syncedAt':new Date()[_0x103980(0x138)](),'description':_0x18a276[_0x103980(0x11e)]});if(await fileExists(_0x31f209))throw CliErrors[_0x103980(0x14d)](_0x103980(0x147)+_0x31f209);await ensureParentDirectory(_0x31f209),await writeFile(_0x31f209,_0x4a1586,_0x103980(0x126));const _0x4b909c=await readSqlLockFile(_0x4dc496[_0x103980(0x14b)]),{lockData:_0x54dafc,appLock:_0x5416f7}=ensureSqlLockScope(_0x4b909c??createEmptySqlLock(),_0x4dc496[_0x103980(0x124)],_0x4dc496[_0x103980(0x113)],_0x103980(0x129));return _0x5416f7[_0x103980(0x10d)][_0x18a276[_0x103980(0x12e)]]={...buildSqlLockEntry(_0x18a276,_0x2c9081,computeSqlContentHash(_0x4a1586),{'dbName':_0x5c2f99}),'path':_0x5a5418,'mode':_0x50c641},_0x5416f7[_0x103980(0x146)]=new Date()[_0x103980(0x138)](),await writeSqlLockFile(_0x4dc496[_0x103980(0x14b)],_0x54dafc),{'ok':!![],'data':{'id':_0x18a276['id'],'sqlCode':_0x18a276['sqlCode'],'sqlName':_0x18a276[_0x103980(0x11b)],'dbId':_0x18a276['dbId'],'path':_0x31f209,'mode':_0x50c641},'message':_0x103980(0x123)+_0x18a276['sqlCode']};}};async function resolveSqlNewInputs(_0x5d6cef){const _0x2a5dc4=await resolveSqlNameInput(_0x5d6cef),{dbId:_0x59405b,dbName:_0x50d2f3}=await resolveDbSelection(_0x5d6cef),_0x2f35f7=await resolveSqlModeInput(_0x5d6cef);return{'sqlName':_0x2a5dc4,'dbId':_0x59405b,'dbName':_0x50d2f3,'mode':_0x2f35f7};}async function resolveSqlNameInput(_0x2ab539){const _0xc1a4b=a170_0xfd8dd8,_0x49885e=_0x2ab539[_0xc1a4b(0x11d)]('name')[_0xc1a4b(0x10f)]();if(_0x49885e)return _0x49885e;if(_0x2ab539[_0xc1a4b(0x134)])throw CliErrors[_0xc1a4b(0x114)](_0xc1a4b(0x10a),_0xc1a4b(0x14a));return(await input({'message':_0xc1a4b(0x109),'validate':_0x43e9b4=>_0x43e9b4[_0xc1a4b(0x10f)]()?!![]:'SQL\x20名称不能为空'}))[_0xc1a4b(0x10f)]();}async function resolveDbSelection(_0x9d391b){const _0x13bdae=a170_0xfd8dd8,_0x438045=resolveProvidedDbId(_0x9d391b);if(typeof _0x438045===_0x13bdae(0x10b)&&Number[_0x13bdae(0x144)](_0x438045)&&_0x438045>0x0)return{'dbId':_0x438045,'dbName':await getDbName(_0x9d391b[_0x13bdae(0x124)],_0x438045)[_0x13bdae(0x127)](()=>undefined)};if(_0x9d391b[_0x13bdae(0x134)])throw CliErrors['flagMissing'](_0x13bdae(0x139),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x65d6ba=await listDatabases(_0x9d391b[_0x13bdae(0x124)])[_0x13bdae(0x127)](()=>[]);if(_0x65d6ba[_0x13bdae(0x12c)]===0x1)return{'dbId':_0x65d6ba[0x0][_0x13bdae(0x13a)],'dbName':_0x65d6ba[0x0]['dbName']};if(_0x65d6ba[_0x13bdae(0x12c)]>0x1){const _0x36476b=await select({'message':_0x13bdae(0x14e),'choices':[..._0x65d6ba[_0x13bdae(0x120)](_0x1db9eb=>({'name':_0x1db9eb[_0x13bdae(0x10e)]+'\x20('+_0x1db9eb['dbId']+')','value':serializeDbSelection(_0x1db9eb)})),{'name':'✎\x20手动输入\x20dbId','value':_0x13bdae(0x12b)}]});if(_0x36476b!==_0x13bdae(0x12b))return deserializeDbSelection(_0x36476b);}const _0x256b39=await input({'message':_0x13bdae(0x12a),'validate':_0x575efc=>{const _0x29170b=_0x13bdae,_0x3e4bf4=_0x575efc[_0x29170b(0x10f)]();if(!_0x3e4bf4)return _0x29170b(0x111);const _0x1df566=Number(_0x3e4bf4);if(!Number[_0x29170b(0x148)](_0x1df566)||_0x1df566<=0x0)return _0x29170b(0x12d);return!![];}});return{'dbId':Number(_0x256b39[_0x13bdae(0x10f)]())};}function a170_0x4590(){const _0x534cad=['Target\x20database\x20ID','map','14571524ddLqXl','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','Created\x20SQL\x20query\x20','appCode','14588odTYOP','utf8','catch','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','new','请输入目标数据库\x20dbId:','__manual__','length','dbId\x20必须为正整数','sqlCode','14FJSYBB','适合带动态标签的\x20MyBatis\x20XML\x20SQL','488574yZoxOF','mybatisXml','high-risk-write','nonInteractive','9PldmwB','MyBatis\x20XML(mybatisXml)','string','toISOString','db-id','dbId','SQL\x20query\x20display\x20name','mode','sqlRootDir','flag','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','2362410QwAuKe','SELECT\x201\x20AS\x20id;','join','sql','isFinite','</select>','lastSync','File\x20already\x20exists:\x20','isInteger','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','lockFilePath','4931384eIbZBG','validation','请选择目标数据库:','请输入\x20SQL\x20名称:','name','number','/smartapi/custom/saveUserCustomSql','sqls','dbName','trim','stringify','dbId\x20不能为空','49YcycCU','sqlRoot','flagMissing','Invalid\x20database\x20selection\x20payload:\x20','766101mJSjLI','12nyrJbo','28BOfSpP','Local\x20SQL\x20file\x20mode','POST','sqlName','226365KKlSBB','str','description'];a170_0x4590=function(){return _0x534cad;};return a170_0x4590();}async function resolveSqlModeInput(_0x1c3bf0){const _0x3e2658=a170_0xfd8dd8,_0xb43b71=_0x1c3bf0[_0x3e2658(0x11d)]('mode')['trim']();if(_0xb43b71===_0x3e2658(0x143)||_0xb43b71===_0x3e2658(0x132))return _0xb43b71;if(_0x1c3bf0['nonInteractive'])throw CliErrors[_0x3e2658(0x114)](_0x3e2658(0x13c),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':'普通\x20SQL(sql)','value':'sql','description':_0x3e2658(0x149)},{'name':_0x3e2658(0x136),'value':_0x3e2658(0x132),'description':_0x3e2658(0x130)}]});}function serializeDbSelection(_0x33ed9f){const _0x37a812=a170_0xfd8dd8;return JSON[_0x37a812(0x110)]({'dbId':_0x33ed9f[_0x37a812(0x13a)],'dbName':_0x33ed9f[_0x37a812(0x10e)]});}function deserializeDbSelection(_0x26b142){const _0x3339e7=a170_0xfd8dd8;try{const _0x2c0114=JSON['parse'](_0x26b142);if(typeof _0x2c0114['dbId']===_0x3339e7(0x10b)&&Number[_0x3339e7(0x144)](_0x2c0114[_0x3339e7(0x13a)]))return{'dbId':_0x2c0114[_0x3339e7(0x13a)],'dbName':_0x2c0114[_0x3339e7(0x10e)]};}catch{}throw CliErrors[_0x3339e7(0x14d)](_0x3339e7(0x115)+_0x26b142);}function resolveProvidedDbId(_0x5e9120){const _0x1d3c16=a170_0xfd8dd8,_0x374f79=_0x5e9120[_0x1d3c16(0x13e)](_0x1d3c16(0x139));if(typeof _0x374f79===_0x1d3c16(0x10b)&&Number['isFinite'](_0x374f79))return _0x374f79;return undefined;}
1
+ const a176_0xb697b2=a176_0xf1a1;(function(_0x9b77c7,_0x34e3d7){const _0x58ab31=a176_0xf1a1,_0x281983=_0x9b77c7();while(!![]){try{const _0x450c71=parseInt(_0x58ab31(0x193))/0x1+-parseInt(_0x58ab31(0x194))/0x2+parseInt(_0x58ab31(0x18c))/0x3+-parseInt(_0x58ab31(0x199))/0x4+parseInt(_0x58ab31(0x1a6))/0x5*(-parseInt(_0x58ab31(0x192))/0x6)+-parseInt(_0x58ab31(0x1be))/0x7+parseInt(_0x58ab31(0x1ca))/0x8;if(_0x450c71===_0x34e3d7)break;else _0x281983['push'](_0x281983['shift']());}catch(_0x2219b8){_0x281983['push'](_0x281983['shift']());}}}(a176_0x52b5,0x7ee0f));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';function a176_0xf1a1(_0x1a6c45,_0x254739){_0x1a6c45=_0x1a6c45-0x186;const _0x52b535=a176_0x52b5();let _0xf1a134=_0x52b535[_0x1a6c45];return _0xf1a134;}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(_0x15f9b0){const _0x2b8f54=a176_0xf1a1;if(_0x15f9b0===_0x2b8f54(0x18b))return[_0x2b8f54(0x1c2),'\x20\x20SELECT\x201\x20AS\x20id',_0x2b8f54(0x19c),''][_0x2b8f54(0x190)]('\x0a');return[_0x2b8f54(0x197),'']['join']('\x0a');}export const sqlCreate={'service':a176_0xb697b2(0x19a),'command':a176_0xb697b2(0x1c1),'description':a176_0xb697b2(0x198),'risk':a176_0xb697b2(0x18a),'flags':[{'name':a176_0xb697b2(0x188),'type':a176_0xb697b2(0x1a0),'description':a176_0xb697b2(0x1b8)},{'name':a176_0xb697b2(0x19d),'type':a176_0xb697b2(0x1b3),'description':a176_0xb697b2(0x1af)},{'name':a176_0xb697b2(0x1c5),'type':a176_0xb697b2(0x1a0),'enum':['sql',a176_0xb697b2(0x18b)],'description':a176_0xb697b2(0x186)}],async 'validate'(_0x120c46){const _0x17a877=a176_0xb697b2;if(!_0x120c46[_0x17a877(0x1c3)])return;if(!_0x120c46['str']('name')['trim']())throw CliErrors[_0x17a877(0x1a3)](_0x17a877(0x188),_0x17a877(0x1b7));const _0x1c8e20=resolveProvidedDbId(_0x120c46);if(typeof _0x1c8e20!==_0x17a877(0x1b3)||!Number[_0x17a877(0x1bb)](_0x1c8e20)||_0x1c8e20<=0x0)throw CliErrors[_0x17a877(0x1a3)](_0x17a877(0x19d),_0x17a877(0x1c8));if(!_0x120c46[_0x17a877(0x1a4)](_0x17a877(0x1c5))[_0x17a877(0x191)]())throw CliErrors[_0x17a877(0x1a3)](_0x17a877(0x1c5),_0x17a877(0x1a5));},async 'dryRun'(_0x3db762){const _0x3a3cf2=a176_0xb697b2,_0x3a9ca7=loadSqlProjectConfig(_0x3db762[_0x3a3cf2(0x19f)]),{sqlName:_0x49d839,dbId:_0x297502,dbName:_0x8c66ef,mode:_0x1d50e8}=await resolveSqlNewInputs(_0x3db762),_0x45581a=buildSqlRelativePath(_0x3a3cf2(0x18f),_0x49d839,_0x8c66ef,_0x1d50e8,_0x297502),_0x163405=_0x3a9ca7[_0x3a3cf2(0x189)]+'/'+_0x45581a;return{'method':'POST','url':_0x3a3cf2(0x1b9),'body':{'appCode':_0x3db762[_0x3a3cf2(0x19f)],'sqlName':_0x49d839,'dbId':_0x297502,'mode':_0x1d50e8,'localPath':_0x163405},'description':_0x3a3cf2(0x195)+_0x3a9ca7[_0x3a3cf2(0x189)]};},async 'execute'(_0x2e154b){const _0x1ac0c9=a176_0xb697b2,_0x1dc73f=loadSqlProjectConfig(_0x2e154b[_0x1ac0c9(0x19f)]),{sqlName:_0x3bf90a,dbId:_0x38a7c5,dbName:_0xeb1c7c,mode:_0x370ea9}=await resolveSqlNewInputs(_0x2e154b),_0x1f8a91=generateSqlTemplate(_0x370ea9),_0x40cfc0=await createSqlQuery({'appCode':_0x2e154b['appCode'],'sqlName':_0x3bf90a,'dbId':_0x38a7c5,'sqlContent':_0x1f8a91}),_0x325f09=ensureRemoteSqlContent(_0x40cfc0),_0x3b6413=_0xeb1c7c||await getDbName(_0x2e154b['appCode'],_0x38a7c5)['catch'](()=>undefined),_0x1a8596=buildSqlRelativePath(_0x40cfc0[_0x1ac0c9(0x187)],_0x40cfc0[_0x1ac0c9(0x1c9)],_0x3b6413,_0x370ea9,_0x38a7c5),_0x527b2d=_0x1dc73f[_0x1ac0c9(0x189)]+'/'+_0x1a8596,_0x5dee16=buildLocalSqlFileContent({'sqlCode':_0x40cfc0[_0x1ac0c9(0x187)],'sqlName':_0x40cfc0[_0x1ac0c9(0x1c9)],'dbId':_0x40cfc0[_0x1ac0c9(0x1b2)]},_0x325f09,{'dbName':_0x3b6413,'mode':_0x370ea9,'syncedAt':new Date()[_0x1ac0c9(0x1c4)](),'description':_0x40cfc0[_0x1ac0c9(0x1cb)]});if(await fileExists(_0x527b2d))throw CliErrors[_0x1ac0c9(0x1c6)](_0x1ac0c9(0x1a1)+_0x527b2d);await ensureParentDirectory(_0x527b2d),await writeFile(_0x527b2d,_0x5dee16,_0x1ac0c9(0x1b6));const _0x52a6a2=await readSqlLockFile(_0x1dc73f['lockFilePath']),{lockData:_0x1f01b7,appLock:_0x54993b}=ensureSqlLockScope(_0x52a6a2??createEmptySqlLock(),_0x1dc73f[_0x1ac0c9(0x19f)],_0x1dc73f[_0x1ac0c9(0x18e)],_0x1ac0c9(0x1b4));return _0x54993b[_0x1ac0c9(0x1aa)][_0x40cfc0[_0x1ac0c9(0x187)]]={...buildSqlLockEntry(_0x40cfc0,_0x325f09,computeSqlContentHash(_0x5dee16),{'dbName':_0x3b6413}),'path':_0x1a8596,'mode':_0x370ea9},_0x54993b[_0x1ac0c9(0x19b)]=new Date()[_0x1ac0c9(0x1c4)](),await writeSqlLockFile(_0x1dc73f['lockFilePath'],_0x1f01b7),{'ok':!![],'data':{'id':_0x40cfc0['id'],'sqlCode':_0x40cfc0[_0x1ac0c9(0x187)],'sqlName':_0x40cfc0[_0x1ac0c9(0x1c9)],'dbId':_0x40cfc0[_0x1ac0c9(0x1b2)],'path':_0x527b2d,'mode':_0x370ea9},'message':'Created\x20SQL\x20query\x20'+_0x40cfc0[_0x1ac0c9(0x187)]};}};async function resolveSqlNewInputs(_0x22e6fa){const _0x14f04d=await resolveSqlNameInput(_0x22e6fa),{dbId:_0x14780c,dbName:_0x17b447}=await resolveDbSelection(_0x22e6fa),_0x256307=await resolveSqlModeInput(_0x22e6fa);return{'sqlName':_0x14f04d,'dbId':_0x14780c,'dbName':_0x17b447,'mode':_0x256307};}function a176_0x52b5(){const _0x2ea6ef=['普通\x20SQL(sql)','SELECT\x201\x20AS\x20id;','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','3009376AHasvo','sql','lastSync','</select>','db-id','length','appCode','string','File\x20already\x20exists:\x20','isInteger','flagMissing','str','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','5yaOZHi','stringify','SQL\x20名称不能为空','flag','sqls','parse','请输入\x20SQL\x20名称:','适合带动态标签的\x20MyBatis\x20XML\x20SQL','MyBatis\x20XML(mybatisXml)','Target\x20database\x20ID','dbName','Invalid\x20database\x20selection\x20payload:\x20','dbId','number','new','dbId\x20必须为正整数','utf8','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','SQL\x20query\x20display\x20name','/smartapi/custom/saveUserCustomSql','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','isFinite','请输入目标数据库\x20dbId:','✎\x20手动输入\x20dbId','1266384aGszpK','请选择目标数据库:','map','create','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','nonInteractive','toISOString','mode','validation','catch','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','sqlName','16002368oXblru','description','Local\x20SQL\x20file\x20mode','sqlCode','name','sqlRootDir','high-risk-write','mybatisXml','1594032HguBff','请选择本地\x20SQL\x20模式:','sqlRoot','<server-generated-sqlCode>','join','trim','5183778vWsXHb','818614tmbygO','2066680EoZWeM','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'];a176_0x52b5=function(){return _0x2ea6ef;};return a176_0x52b5();}async function resolveSqlNameInput(_0x10a0cf){const _0x16ec75=a176_0xb697b2,_0x53391e=_0x10a0cf[_0x16ec75(0x1a4)](_0x16ec75(0x188))['trim']();if(_0x53391e)return _0x53391e;if(_0x10a0cf[_0x16ec75(0x1c3)])throw CliErrors[_0x16ec75(0x1a3)](_0x16ec75(0x188),_0x16ec75(0x1b7));return(await input({'message':_0x16ec75(0x1ac),'validate':_0x2ab96f=>_0x2ab96f['trim']()?!![]:_0x16ec75(0x1a8)}))[_0x16ec75(0x191)]();}async function resolveDbSelection(_0x2cee87){const _0x370d2e=a176_0xb697b2,_0x17868f=resolveProvidedDbId(_0x2cee87);if(typeof _0x17868f==='number'&&Number[_0x370d2e(0x1bb)](_0x17868f)&&_0x17868f>0x0)return{'dbId':_0x17868f,'dbName':await getDbName(_0x2cee87[_0x370d2e(0x19f)],_0x17868f)[_0x370d2e(0x1c7)](()=>undefined)};if(_0x2cee87['nonInteractive'])throw CliErrors[_0x370d2e(0x1a3)]('db-id',_0x370d2e(0x1c8));const _0x3475c7=await listDatabases(_0x2cee87['appCode'])[_0x370d2e(0x1c7)](()=>[]);if(_0x3475c7['length']===0x1)return{'dbId':_0x3475c7[0x0][_0x370d2e(0x1b2)],'dbName':_0x3475c7[0x0][_0x370d2e(0x1b0)]};if(_0x3475c7[_0x370d2e(0x19e)]>0x1){const _0x943d1b=await select({'message':_0x370d2e(0x1bf),'choices':[..._0x3475c7[_0x370d2e(0x1c0)](_0x29e296=>({'name':_0x29e296[_0x370d2e(0x1b0)]+'\x20('+_0x29e296[_0x370d2e(0x1b2)]+')','value':serializeDbSelection(_0x29e296)})),{'name':_0x370d2e(0x1bd),'value':'__manual__'}]});if(_0x943d1b!=='__manual__')return deserializeDbSelection(_0x943d1b);}const _0x543494=await input({'message':_0x370d2e(0x1bc),'validate':_0x4c4a9d=>{const _0x168425=_0x370d2e,_0x1e3600=_0x4c4a9d[_0x168425(0x191)]();if(!_0x1e3600)return'dbId\x20不能为空';const _0x485fe0=Number(_0x1e3600);if(!Number[_0x168425(0x1a2)](_0x485fe0)||_0x485fe0<=0x0)return _0x168425(0x1b5);return!![];}});return{'dbId':Number(_0x543494[_0x370d2e(0x191)]())};}async function resolveSqlModeInput(_0x278ab5){const _0x2340f4=a176_0xb697b2,_0x15cd34=_0x278ab5[_0x2340f4(0x1a4)](_0x2340f4(0x1c5))[_0x2340f4(0x191)]();if(_0x15cd34==='sql'||_0x15cd34===_0x2340f4(0x18b))return _0x15cd34;if(_0x278ab5[_0x2340f4(0x1c3)])throw CliErrors[_0x2340f4(0x1a3)]('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':_0x2340f4(0x18d),'choices':[{'name':_0x2340f4(0x196),'value':_0x2340f4(0x19a),'description':_0x2340f4(0x1ba)},{'name':_0x2340f4(0x1ae),'value':_0x2340f4(0x18b),'description':_0x2340f4(0x1ad)}]});}function serializeDbSelection(_0x2f01e5){const _0x3954d0=a176_0xb697b2;return JSON[_0x3954d0(0x1a7)]({'dbId':_0x2f01e5['dbId'],'dbName':_0x2f01e5[_0x3954d0(0x1b0)]});}function deserializeDbSelection(_0x55b186){const _0xb01455=a176_0xb697b2;try{const _0x4ef6e6=JSON[_0xb01455(0x1ab)](_0x55b186);if(typeof _0x4ef6e6[_0xb01455(0x1b2)]===_0xb01455(0x1b3)&&Number[_0xb01455(0x1bb)](_0x4ef6e6[_0xb01455(0x1b2)]))return{'dbId':_0x4ef6e6[_0xb01455(0x1b2)],'dbName':_0x4ef6e6[_0xb01455(0x1b0)]};}catch{}throw CliErrors[_0xb01455(0x1c6)](_0xb01455(0x1b1)+_0x55b186);}function resolveProvidedDbId(_0x21a341){const _0x681269=a176_0xb697b2,_0x3e650f=_0x21a341[_0x681269(0x1a9)](_0x681269(0x19d));if(typeof _0x3e650f===_0x681269(0x1b3)&&Number[_0x681269(0x1bb)](_0x3e650f))return _0x3e650f;return undefined;}
@@ -1 +1 @@
1
- function a171_0x1ab7(_0x395b96,_0x48fa2f){_0x395b96=_0x395b96-0x111;const _0x2555c7=a171_0x2555();let _0x1ab7df=_0x2555c7[_0x395b96];return _0x1ab7df;}const a171_0xfad3ed=a171_0x1ab7;(function(_0x31441d,_0x8b6618){const _0x3c22db=a171_0x1ab7,_0x96687b=_0x31441d();while(!![]){try{const _0x3f8626=-parseInt(_0x3c22db(0x12d))/0x1+parseInt(_0x3c22db(0x111))/0x2+parseInt(_0x3c22db(0x118))/0x3*(-parseInt(_0x3c22db(0x129))/0x4)+parseInt(_0x3c22db(0x133))/0x5*(parseInt(_0x3c22db(0x130))/0x6)+parseInt(_0x3c22db(0x125))/0x7+-parseInt(_0x3c22db(0x12f))/0x8*(parseInt(_0x3c22db(0x132))/0x9)+parseInt(_0x3c22db(0x128))/0xa;if(_0x3f8626===_0x8b6618)break;else _0x96687b['push'](_0x96687b['shift']());}catch(_0x4d1036){_0x96687b['push'](_0x96687b['shift']());}}}(a171_0x2555,0x38891));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';function a171_0x2555(){const _0x3df803=['\x20(local\x20file\x20moved\x20to\x20trash)','trashDir','appCode','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','353652KpuLmd','toISOString','high-risk-write','trashedTo','remoteId','Deleted\x20','fromEntries','6txeNxm','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','entries','delete','length','str','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','SQL\x20lock\x20file\x20not\x20found.','projectRoot','lockFilePath','validation','filter','sqlRoot','675542fCywii','/smartapi/custom/deleteUserCustomSql','sqlcode','6930740UQTvur','240728OiHifP','startsWith','sqlRootDir','sqls','388033FJliyA','Would\x20delete\x20SQL\x20','8jxkZCw','3234iWMaVv','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','3211902DXARHY','1210DnhvuA','POST'];a171_0x2555=function(){return _0x3df803;};return a171_0x2555();}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':'sql','command':a171_0xfad3ed(0x11b),'description':a171_0xfad3ed(0x11e),'risk':a171_0xfad3ed(0x113),'flags':[SQLCODE_FLAG],async 'validate'(_0x179ff4){const _0xda5ad3=a171_0xfad3ed,_0x4fd470=loadSqlProjectConfig(_0x179ff4[_0xda5ad3(0x137)]),_0x28fe11=await readSqlLockFile(_0x4fd470[_0xda5ad3(0x121)]);if(!_0x28fe11)throw CliErrors[_0xda5ad3(0x122)](_0xda5ad3(0x131));},async 'dryRun'(_0xfa5a96){const _0x6221ac=a171_0xfad3ed,_0x48e76d=loadSqlProjectConfig(_0xfa5a96['appCode']),_0x1e8d0d=await readSqlLockFile(_0x48e76d['lockFilePath']);if(!_0x1e8d0d)throw CliErrors[_0x6221ac(0x122)](_0x6221ac(0x131));const {appLock:_0xf3c489}=ensureSqlLockScope(_0x1e8d0d,_0xfa5a96[_0x6221ac(0x137)],_0x48e76d['sqlRoot'],_0x6221ac(0x11b)),_0x5d25e7=_0xfa5a96[_0x6221ac(0x11d)](_0x6221ac(0x127)),_0x26d4a6=_0xf3c489[_0x6221ac(0x12c)][_0x5d25e7];if(!_0x26d4a6)throw CliErrors['validation'](_0x6221ac(0x138)+_0x5d25e7+'\x22.');return{'method':_0x6221ac(0x134),'url':_0x6221ac(0x126),'body':{'sqlCode':_0x5d25e7,'id':_0x26d4a6['remoteId'],'localPath':resolveLocalSqlFilePath(_0x48e76d,_0x5d25e7,_0x26d4a6)},'description':_0x6221ac(0x12e)+_0x5d25e7+_0x6221ac(0x119)+_0x48e76d[_0x6221ac(0x136)]};},async 'execute'(_0xba112f){const _0x1bce06=a171_0xfad3ed,_0x1b86bc=loadSqlProjectConfig(_0xba112f[_0x1bce06(0x137)]),_0x4fe5f5=await readSqlLockFile(_0x1b86bc[_0x1bce06(0x121)]);if(!_0x4fe5f5)throw CliErrors['validation'](_0x1bce06(0x11f));const {lockData:_0x4b8561,appLock:_0x1bc667}=ensureSqlLockScope(_0x4fe5f5,_0xba112f[_0x1bce06(0x137)],_0x1b86bc[_0x1bce06(0x124)],'delete'),_0x5a38f7=_0xba112f[_0x1bce06(0x11d)](_0x1bce06(0x127)),_0x6f77ec=_0x1bc667[_0x1bce06(0x12c)][_0x5a38f7];if(!_0x6f77ec)throw CliErrors[_0x1bce06(0x122)](_0x1bce06(0x138)+_0x5a38f7+'\x22.');await deleteSqlQuery({'id':_0x6f77ec['remoteId'],'sqlCode':_0x5a38f7}),_0x1bc667[_0x1bce06(0x12c)]=Object[_0x1bce06(0x117)](Object[_0x1bce06(0x11a)](_0x1bc667[_0x1bce06(0x12c)])[_0x1bce06(0x123)](([_0x532f5a])=>_0x532f5a!==_0x5a38f7)),_0x1bc667['lastSync']=new Date()[_0x1bce06(0x112)](),await writeSqlLockFile(_0x1b86bc['lockFilePath'],_0x4b8561);const _0x2b005a=resolveLocalSqlFilePath(_0x1b86bc,_0x5a38f7,_0x6f77ec);let _0x2f1f36;await fileExists(_0x2b005a)&&(_0x2f1f36=await moveToTrash(_0x1b86bc[_0x1bce06(0x120)],_0x1b86bc['trashDir'],_0x2b005a),await cleanupEmptyDirectories(dirname(_0x2b005a),_0x1b86bc[_0x1bce06(0x12b)]));const _0x55bcdb={'deleted':_0x5a38f7,'remoteId':_0x6f77ec[_0x1bce06(0x115)]};if(_0x2f1f36)_0x55bcdb[_0x1bce06(0x114)]=_0x2f1f36;return{'ok':!![],'data':_0x55bcdb,'message':_0x1bce06(0x116)+_0x5a38f7+(_0x2f1f36?_0x1bce06(0x135):'')};}};async function moveToTrash(_0x31c7db,_0x21509b,_0x3948d8){const _0x476315=a171_0xfad3ed,_0x47d3f3=new Date()[_0x476315(0x112)]()['replace'](/[:.]/g,'-'),_0x5300df=relative(_0x31c7db,_0x3948d8),_0x3ed2cc=join(_0x21509b,_0x47d3f3,_0x5300df);return await mkdir(dirname(_0x3ed2cc),{'recursive':!![]}),await rename(_0x3948d8,_0x3ed2cc),_0x3ed2cc;}async function cleanupEmptyDirectories(_0x5366e5,_0x48a17b){const _0x4b9093=a171_0xfad3ed;let _0x4a7303=resolve(_0x5366e5);const _0x560747=resolve(_0x48a17b);while(_0x4a7303[_0x4b9093(0x12a)](''+_0x560747+sep)||_0x4a7303===_0x560747){if(_0x4a7303===_0x560747)return;try{const _0x32cf29=await readdir(_0x4a7303);if(_0x32cf29[_0x4b9093(0x11c)]>0x0)return;await rmdir(_0x4a7303);}catch{return;}_0x4a7303=dirname(_0x4a7303);}}
1
+ const a177_0x3fc80c=a177_0x3138;(function(_0x36fb71,_0xf921f1){const _0x305eaa=a177_0x3138,_0x28b6b7=_0x36fb71();while(!![]){try{const _0x541671=-parseInt(_0x305eaa(0xbb))/0x1*(parseInt(_0x305eaa(0x97))/0x2)+parseInt(_0x305eaa(0xb6))/0x3*(-parseInt(_0x305eaa(0xad))/0x4)+parseInt(_0x305eaa(0x96))/0x5*(-parseInt(_0x305eaa(0xa4))/0x6)+parseInt(_0x305eaa(0x9e))/0x7+-parseInt(_0x305eaa(0xbc))/0x8+parseInt(_0x305eaa(0xb5))/0x9*(-parseInt(_0x305eaa(0xab))/0xa)+parseInt(_0x305eaa(0xb9))/0xb*(parseInt(_0x305eaa(0xb0))/0xc);if(_0x541671===_0xf921f1)break;else _0x28b6b7['push'](_0x28b6b7['shift']());}catch(_0x24762f){_0x28b6b7['push'](_0x28b6b7['shift']());}}}(a177_0x5b76,0x24875));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':a177_0x3fc80c(0x99),'command':'delete','description':a177_0x3fc80c(0xb3),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x8fea1){const _0x1412e9=a177_0x3fc80c,_0x2ed10e=loadSqlProjectConfig(_0x8fea1[_0x1412e9(0xae)]),_0x25b9ff=await readSqlLockFile(_0x2ed10e[_0x1412e9(0xac)]);if(!_0x25b9ff)throw CliErrors['validation']('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x1282c6){const _0x32c278=a177_0x3fc80c,_0x5556d0=loadSqlProjectConfig(_0x1282c6[_0x32c278(0xae)]),_0xfe1ef9=await readSqlLockFile(_0x5556d0[_0x32c278(0xac)]);if(!_0xfe1ef9)throw CliErrors['validation'](_0x32c278(0xaf));const {appLock:_0x2af492}=ensureSqlLockScope(_0xfe1ef9,_0x1282c6['appCode'],_0x5556d0[_0x32c278(0x9f)],_0x32c278(0xba)),_0x3b22df=_0x1282c6[_0x32c278(0xa3)](_0x32c278(0xa0)),_0x2f79ab=_0x2af492[_0x32c278(0x9d)][_0x3b22df];if(!_0x2f79ab)throw CliErrors[_0x32c278(0xbf)](_0x32c278(0xa1)+_0x3b22df+'\x22.');return{'method':_0x32c278(0x98),'url':_0x32c278(0xa2),'body':{'sqlCode':_0x3b22df,'id':_0x2f79ab[_0x32c278(0xb1)],'localPath':resolveLocalSqlFilePath(_0x5556d0,_0x3b22df,_0x2f79ab)},'description':_0x32c278(0xb2)+_0x3b22df+_0x32c278(0xa7)+_0x5556d0[_0x32c278(0xbe)]};},async 'execute'(_0x1432a7){const _0x1cee3d=a177_0x3fc80c,_0x347919=loadSqlProjectConfig(_0x1432a7[_0x1cee3d(0xae)]),_0x48ebc7=await readSqlLockFile(_0x347919[_0x1cee3d(0xac)]);if(!_0x48ebc7)throw CliErrors[_0x1cee3d(0xbf)](_0x1cee3d(0xb8));const {lockData:_0xd6ad86,appLock:_0x4c7b3e}=ensureSqlLockScope(_0x48ebc7,_0x1432a7['appCode'],_0x347919[_0x1cee3d(0x9f)],_0x1cee3d(0xba)),_0x4712b2=_0x1432a7[_0x1cee3d(0xa3)](_0x1cee3d(0xa0)),_0x1b943f=_0x4c7b3e[_0x1cee3d(0x9d)][_0x4712b2];if(!_0x1b943f)throw CliErrors[_0x1cee3d(0xbf)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x4712b2+'\x22.');await deleteSqlQuery({'id':_0x1b943f[_0x1cee3d(0xb1)],'sqlCode':_0x4712b2}),_0x4c7b3e[_0x1cee3d(0x9d)]=Object[_0x1cee3d(0x9c)](Object[_0x1cee3d(0xa5)](_0x4c7b3e['sqls'])[_0x1cee3d(0xa8)](([_0x54c8a9])=>_0x54c8a9!==_0x4712b2)),_0x4c7b3e[_0x1cee3d(0xa6)]=new Date()['toISOString'](),await writeSqlLockFile(_0x347919[_0x1cee3d(0xac)],_0xd6ad86);const _0x514118=resolveLocalSqlFilePath(_0x347919,_0x4712b2,_0x1b943f);let _0x30b0a0;await fileExists(_0x514118)&&(_0x30b0a0=await moveToTrash(_0x347919['projectRoot'],_0x347919[_0x1cee3d(0xbe)],_0x514118),await cleanupEmptyDirectories(dirname(_0x514118),_0x347919[_0x1cee3d(0xaa)]));const _0x18004c={'deleted':_0x4712b2,'remoteId':_0x1b943f[_0x1cee3d(0xb1)]};if(_0x30b0a0)_0x18004c[_0x1cee3d(0xbd)]=_0x30b0a0;return{'ok':!![],'data':_0x18004c,'message':_0x1cee3d(0xb4)+_0x4712b2+(_0x30b0a0?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};function a177_0x5b76(){const _0x57c1ae=['entries','lastSync','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','filter','toISOString','sqlRootDir','1430JVcLMt','lockFilePath','7468GVDJDa','appCode','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','16392GkqxCv','remoteId','Would\x20delete\x20SQL\x20','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','Deleted\x20','387QPJjgt','69vvfQuV','startsWith','SQL\x20lock\x20file\x20not\x20found.','5753bjlahP','delete','1909qrgBqM','2020544wnMtLz','trashedTo','trashDir','validation','1375AVYuez','142fhBiyN','POST','sql','replace','length','fromEntries','sqls','933625DmQeMP','sqlRoot','sqlcode','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','/smartapi/custom/deleteUserCustomSql','str','5694YEQHZX'];a177_0x5b76=function(){return _0x57c1ae;};return a177_0x5b76();}async function moveToTrash(_0x34bc6b,_0x32928d,_0x469306){const _0x20ef04=a177_0x3fc80c,_0x322dc7=new Date()[_0x20ef04(0xa9)]()[_0x20ef04(0x9a)](/[:.]/g,'-'),_0x7a298=relative(_0x34bc6b,_0x469306),_0x3b15a7=join(_0x32928d,_0x322dc7,_0x7a298);return await mkdir(dirname(_0x3b15a7),{'recursive':!![]}),await rename(_0x469306,_0x3b15a7),_0x3b15a7;}function a177_0x3138(_0x234e41,_0x2773c8){_0x234e41=_0x234e41-0x96;const _0x5b760a=a177_0x5b76();let _0x313832=_0x5b760a[_0x234e41];return _0x313832;}async function cleanupEmptyDirectories(_0x109634,_0x279db6){const _0x5c15bb=a177_0x3fc80c;let _0x3e86e4=resolve(_0x109634);const _0x57e11b=resolve(_0x279db6);while(_0x3e86e4[_0x5c15bb(0xb7)](''+_0x57e11b+sep)||_0x3e86e4===_0x57e11b){if(_0x3e86e4===_0x57e11b)return;try{const _0x2cef73=await readdir(_0x3e86e4);if(_0x2cef73[_0x5c15bb(0x9b)]>0x0)return;await rmdir(_0x3e86e4);}catch{return;}_0x3e86e4=dirname(_0x3e86e4);}}
@@ -1 +1 @@
1
- function a172_0x4483(_0x416740,_0x5993f2){_0x416740=_0x416740-0x141;const _0x4c2bf5=a172_0x4c2b();let _0x44835e=_0x4c2bf5[_0x416740];return _0x44835e;}const a172_0x13be5a=a172_0x4483;(function(_0xc35151,_0x88e336){const _0x2a2f78=a172_0x4483,_0x5e4470=_0xc35151();while(!![]){try{const _0x1a4878=-parseInt(_0x2a2f78(0x158))/0x1*(-parseInt(_0x2a2f78(0x14d))/0x2)+parseInt(_0x2a2f78(0x155))/0x3+parseInt(_0x2a2f78(0x142))/0x4+parseInt(_0x2a2f78(0x143))/0x5*(parseInt(_0x2a2f78(0x156))/0x6)+parseInt(_0x2a2f78(0x141))/0x7+parseInt(_0x2a2f78(0x152))/0x8*(parseInt(_0x2a2f78(0x157))/0x9)+parseInt(_0x2a2f78(0x153))/0xa*(-parseInt(_0x2a2f78(0x149))/0xb);if(_0x1a4878===_0x88e336)break;else _0x5e4470['push'](_0x5e4470['shift']());}catch(_0x267b7b){_0x5e4470['push'](_0x5e4470['shift']());}}}(a172_0x4c2b,0xa80f4));import{getSqlQueryInfo}from'../../core/api-client.js';function a172_0x4c2b(){const _0xa90c4=['Return\x20full\x20raw\x20SQL\x20query\x20object','str','4TyLQNy','appCode','boolean','dbId','sqlName','48YkNkqh','20nZlqtO','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','3902469QYpyfl','7628370uqSxxv','1691406nWBFbp','216661MqctdE','8443967aiIuRO','1368412FKEUgs','5sJsZUJ','verbose','sqlCode','bool','sqlContent','sqlcode','27462358aPzXWd','detail'];a172_0x4c2b=function(){return _0xa90c4;};return a172_0x4c2b();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':a172_0x13be5a(0x14a),'description':a172_0x13be5a(0x154),'risk':'read','flags':[SQLCODE_FLAG,{'name':a172_0x13be5a(0x144),'type':a172_0x13be5a(0x14f),'description':a172_0x13be5a(0x14b)}],async 'execute'(_0x40afc2){const _0x219f7c=a172_0x13be5a,_0x435322=await getSqlQueryInfo(_0x40afc2[_0x219f7c(0x14e)],_0x40afc2[_0x219f7c(0x14c)](_0x219f7c(0x148))),_0x3ec089=_0x40afc2[_0x219f7c(0x146)](_0x219f7c(0x144));if(_0x3ec089)return{'ok':!![],'data':_0x435322};const _0x4caf31=_0x435322[_0x219f7c(0x150)]?await getDbName(_0x40afc2[_0x219f7c(0x14e)],_0x435322[_0x219f7c(0x150)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x435322[_0x219f7c(0x145)],'sqlName':_0x435322[_0x219f7c(0x151)],'db':_0x4caf31?_0x4caf31+'\x20('+_0x435322['dbId']+')':_0x435322[_0x219f7c(0x150)]??'','description':_0x435322['description']??'','sqlContent':_0x435322[_0x219f7c(0x147)]??''}};}};
1
+ function a178_0x1b5b(){const _0x2db443=['dbId','description','sqlCode','65104yaaYsN','13825nNLmsK','22627544pXQVwd','1111209lncEfx','4071670WOGRLN','2909960ZEsziG','appCode','str','9WcOtlh','bool','1812AYguQc','verbose','read','Return\x20full\x20raw\x20SQL\x20query\x20object','489173pJRwyW','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode'];a178_0x1b5b=function(){return _0x2db443;};return a178_0x1b5b();}const a178_0x44d9c4=a178_0x17b2;(function(_0x10fa68,_0x13c524){const _0x41a1e6=a178_0x17b2,_0x1e36e2=_0x10fa68();while(!![]){try{const _0x47a5c9=-parseInt(_0x41a1e6(0x84))/0x1+-parseInt(_0x41a1e6(0x76))/0x2+parseInt(_0x41a1e6(0x79))/0x3+-parseInt(_0x41a1e6(0x7b))/0x4+-parseInt(_0x41a1e6(0x7a))/0x5+-parseInt(_0x41a1e6(0x80))/0x6*(parseInt(_0x41a1e6(0x77))/0x7)+parseInt(_0x41a1e6(0x78))/0x8*(parseInt(_0x41a1e6(0x7e))/0x9);if(_0x47a5c9===_0x13c524)break;else _0x1e36e2['push'](_0x1e36e2['shift']());}catch(_0x426d4b){_0x1e36e2['push'](_0x1e36e2['shift']());}}}(a178_0x1b5b,0x838df));function a178_0x17b2(_0x9fb1fb,_0x22afe5){_0x9fb1fb=_0x9fb1fb-0x73;const _0x1b5bd8=a178_0x1b5b();let _0x17b284=_0x1b5bd8[_0x9fb1fb];return _0x17b284;}import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':'detail','description':a178_0x44d9c4(0x85),'risk':a178_0x44d9c4(0x82),'flags':[SQLCODE_FLAG,{'name':'verbose','type':'boolean','description':a178_0x44d9c4(0x83)}],async 'execute'(_0x34d404){const _0x47982d=a178_0x44d9c4,_0x3a604b=await getSqlQueryInfo(_0x34d404[_0x47982d(0x7c)],_0x34d404[_0x47982d(0x7d)]('sqlcode')),_0x30737e=_0x34d404[_0x47982d(0x7f)](_0x47982d(0x81));if(_0x30737e)return{'ok':!![],'data':_0x3a604b};const _0x3cd1f2=_0x3a604b[_0x47982d(0x73)]?await getDbName(_0x34d404[_0x47982d(0x7c)],_0x3a604b[_0x47982d(0x73)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x3a604b[_0x47982d(0x75)],'sqlName':_0x3a604b['sqlName'],'db':_0x3cd1f2?_0x3cd1f2+'\x20('+_0x3a604b[_0x47982d(0x73)]+')':_0x3a604b[_0x47982d(0x73)]??'','description':_0x3a604b[_0x47982d(0x74)]??'','sqlContent':_0x3a604b['sqlContent']??''}};}};
@@ -1 +1 @@
1
- const a173_0x5a1f8b=a173_0x4f20;(function(_0x422aea,_0x4ee3d2){const _0xa102fb=a173_0x4f20,_0x33c1f0=_0x422aea();while(!![]){try{const _0x579957=parseInt(_0xa102fb(0xb9))/0x1*(-parseInt(_0xa102fb(0xba))/0x2)+parseInt(_0xa102fb(0xc4))/0x3*(-parseInt(_0xa102fb(0xbe))/0x4)+parseInt(_0xa102fb(0xb8))/0x5*(-parseInt(_0xa102fb(0xc2))/0x6)+-parseInt(_0xa102fb(0xc0))/0x7+-parseInt(_0xa102fb(0xb1))/0x8*(-parseInt(_0xa102fb(0xc3))/0x9)+parseInt(_0xa102fb(0xab))/0xa*(parseInt(_0xa102fb(0xbb))/0xb)+parseInt(_0xa102fb(0xc1))/0xc;if(_0x579957===_0x4ee3d2)break;else _0x33c1f0['push'](_0x33c1f0['shift']());}catch(_0x4eab4b){_0x33c1f0['push'](_0x33c1f0['shift']());}}}(a173_0x52e1,0xf285a));function a173_0x52e1(){const _0x20f0d9=['\x20row(s)\x20in\x20','read','20yEjzsz','66GaClyl','1230yqWcoz','15689938HensaE','sqlcode','isArray','8JFDoOT','sql','8171079bJgdjT','38519148TAsxvN','2618496DqEjzR','942579iolLOo','1662435cyIoFc','execSuccess','10nErRvF','params','Returned\x20','now','appCode','length','32ytYagR','SQL\x20execution\x20failed','execResult','str','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)'];a173_0x52e1=function(){return _0x20f0d9;};return a173_0x52e1();}import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a173_0x4f20(_0x101056,_0x4a5d71){_0x101056=_0x101056-0xaa;const _0x52e164=a173_0x52e1();let _0x4f209a=_0x52e164[_0x101056];return _0x4f209a;}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a173_0x5a1f8b(0xbf),'command':'exec','description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':a173_0x5a1f8b(0xb7),'flags':[SQLCODE_FLAG,{'name':a173_0x5a1f8b(0xac),'type':'string','description':a173_0x5a1f8b(0xb5)}],async 'execute'(_0x59aa8b){const _0xb15ab5=a173_0x5a1f8b,_0x1ca466=parseJsonParams(_0x59aa8b[_0xb15ab5(0xb4)](_0xb15ab5(0xac))),_0x496f84=Date['now'](),_0x16ecf4=await executeSql(_0x59aa8b[_0xb15ab5(0xaf)],_0x59aa8b['str'](_0xb15ab5(0xbc)),_0x1ca466),_0x2e68f5=Date[_0xb15ab5(0xae)]()-_0x496f84,_0x533b23=_0x16ecf4?.[_0xb15ab5(0xb3)]??_0x16ecf4,_0x400a6c=_0x16ecf4?.[_0xb15ab5(0xaa)]??!![];if(!_0x400a6c)return{'ok':![],'data':{'error':_0x16ecf4?.['execError']||_0xb15ab5(0xb2),'elapsed':_0x2e68f5},'message':_0xb15ab5(0xb2)};const _0x40ec6f=Array[_0xb15ab5(0xbd)](_0x533b23)?_0x533b23:[];return{'ok':!![],'data':{'rows':_0x40ec6f,'rowCount':_0x40ec6f[_0xb15ab5(0xb0)],'elapsed':_0x2e68f5},'message':_0xb15ab5(0xad)+_0x40ec6f[_0xb15ab5(0xb0)]+_0xb15ab5(0xb6)+_0x2e68f5+'ms'};}};
1
+ const a179_0x2a64be=a179_0x4d1d;function a179_0x4d1d(_0x48ce0d,_0x3fb132){_0x48ce0d=_0x48ce0d-0x149;const _0x2fa33a=a179_0x2fa3();let _0x4d1d28=_0x2fa33a[_0x48ce0d];return _0x4d1d28;}(function(_0x1dba34,_0xa736e2){const _0x434409=a179_0x4d1d,_0x5cb378=_0x1dba34();while(!![]){try{const _0x317064=-parseInt(_0x434409(0x14e))/0x1+parseInt(_0x434409(0x157))/0x2+-parseInt(_0x434409(0x161))/0x3*(-parseInt(_0x434409(0x14c))/0x4)+-parseInt(_0x434409(0x156))/0x5+parseInt(_0x434409(0x15b))/0x6*(-parseInt(_0x434409(0x14d))/0x7)+parseInt(_0x434409(0x160))/0x8*(-parseInt(_0x434409(0x15a))/0x9)+-parseInt(_0x434409(0x14b))/0xa*(-parseInt(_0x434409(0x14f))/0xb);if(_0x317064===_0xa736e2)break;else _0x5cb378['push'](_0x5cb378['shift']());}catch(_0x58c781){_0x5cb378['push'](_0x5cb378['shift']());}}}(a179_0x2fa3,0x8ef67));function a179_0x2fa3(){const _0x3703ee=['SQL\x20execution\x20failed','22529590duTiVm','8cANxBl','6251psmaZl','711846dikfQd','11JohPEI','appCode','exec','now','params','execResult','execSuccess','4464770cGRcqL','2226250xHNsmZ','read','string','2334447EdYLRi','6894UPbmDr','length','isArray','sqlcode','sql','16uoDhqB','553671qDnNkl','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)'];a179_0x2fa3=function(){return _0x3703ee;};return a179_0x2fa3();}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':a179_0x2a64be(0x15f),'command':a179_0x2a64be(0x151),'description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':a179_0x2a64be(0x158),'flags':[SQLCODE_FLAG,{'name':a179_0x2a64be(0x153),'type':a179_0x2a64be(0x159),'description':a179_0x2a64be(0x149)}],async 'execute'(_0x55f4a4){const _0x18a546=a179_0x2a64be,_0x4ed29a=parseJsonParams(_0x55f4a4['str'](_0x18a546(0x153))),_0x4927fc=Date['now'](),_0x2997bc=await executeSql(_0x55f4a4[_0x18a546(0x150)],_0x55f4a4['str'](_0x18a546(0x15e)),_0x4ed29a),_0x2e5d92=Date[_0x18a546(0x152)]()-_0x4927fc,_0x1b997c=_0x2997bc?.[_0x18a546(0x154)]??_0x2997bc,_0x27588d=_0x2997bc?.[_0x18a546(0x155)]??!![];if(!_0x27588d)return{'ok':![],'data':{'error':_0x2997bc?.['execError']||_0x18a546(0x14a),'elapsed':_0x2e5d92},'message':'SQL\x20execution\x20failed'};const _0x1005d4=Array[_0x18a546(0x15d)](_0x1b997c)?_0x1b997c:[];return{'ok':!![],'data':{'rows':_0x1005d4,'rowCount':_0x1005d4[_0x18a546(0x15c)],'elapsed':_0x2e5d92},'message':'Returned\x20'+_0x1005d4[_0x18a546(0x15c)]+'\x20row(s)\x20in\x20'+_0x2e5d92+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x3ac828,_0x48f789){const _0x3351ae=a174_0x21b1,_0x915b28=_0x3ac828();while(!![]){try{const _0x5c0eb1=parseInt(_0x3351ae(0x146))/0x1+-parseInt(_0x3351ae(0x13f))/0x2+-parseInt(_0x3351ae(0x145))/0x3+-parseInt(_0x3351ae(0x144))/0x4*(parseInt(_0x3351ae(0x140))/0x5)+parseInt(_0x3351ae(0x148))/0x6+-parseInt(_0x3351ae(0x143))/0x7*(parseInt(_0x3351ae(0x142))/0x8)+-parseInt(_0x3351ae(0x141))/0x9*(-parseInt(_0x3351ae(0x147))/0xa);if(_0x5c0eb1===_0x48f789)break;else _0x915b28['push'](_0x915b28['shift']());}catch(_0x4a3d76){_0x915b28['push'](_0x915b28['shift']());}}}(a174_0x16a2,0x33c62));function a174_0x16a2(){const _0x4e8f2b=['2447670boBgey','209480kKDhrM','5dXNlCW','110961EopedD','17880WloEYe','616yvMTBm','1113788MzNmJe','76158QHKtgm','323071QGYuKW','70LaGNCa'];a174_0x16a2=function(){return _0x4e8f2b;};return a174_0x16a2();}import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';function a174_0x21b1(_0x4ab504,_0xd0467){_0x4ab504=_0x4ab504-0x13f;const _0x16a291=a174_0x16a2();let _0x21b1c1=_0x16a291[_0x4ab504];return _0x21b1c1;}import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x176eca,_0x56c752){const _0x493dcf=a180_0x4c09,_0x57eb5e=_0x176eca();while(!![]){try{const _0x23134e=-parseInt(_0x493dcf(0x182))/0x1*(-parseInt(_0x493dcf(0x17a))/0x2)+-parseInt(_0x493dcf(0x180))/0x3*(parseInt(_0x493dcf(0x17e))/0x4)+parseInt(_0x493dcf(0x179))/0x5+parseInt(_0x493dcf(0x17f))/0x6+parseInt(_0x493dcf(0x17d))/0x7+parseInt(_0x493dcf(0x181))/0x8*(parseInt(_0x493dcf(0x178))/0x9)+parseInt(_0x493dcf(0x17c))/0xa*(-parseInt(_0x493dcf(0x17b))/0xb);if(_0x23134e===_0x56c752)break;else _0x57eb5e['push'](_0x57eb5e['shift']());}catch(_0x949372){_0x57eb5e['push'](_0x57eb5e['shift']());}}}(a180_0x2207,0x30380));function a180_0x2207(){const _0x3babbf=['436300yLQyPR','767542KTMCur','13002NScuYm','6070VYzvlP','1942990wdKVvq','286548DrDTpk','108954qNMauG','9ysovJz','104YVjoGF','1mRXBgU','251397sTekAe'];a180_0x2207=function(){return _0x3babbf;};return a180_0x2207();}import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';function a180_0x4c09(_0x6d8865,_0x29f6e3){_0x6d8865=_0x6d8865-0x178;const _0x220751=a180_0x2207();let _0x4c0916=_0x220751[_0x6d8865];return _0x4c0916;}import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- function a175_0x267e(_0x842fd6,_0x17d860){_0x842fd6=_0x842fd6-0xba;const _0x1c2d92=a175_0x1c2d();let _0x267ec7=_0x1c2d92[_0x842fd6];return _0x267ec7;}const a175_0x3ee43d=a175_0x267e;(function(_0x464a9c,_0x53b475){const _0x460fcd=a175_0x267e,_0x18ec2c=_0x464a9c();while(!![]){try{const _0x4a75e3=-parseInt(_0x460fcd(0xca))/0x1*(parseInt(_0x460fcd(0xcd))/0x2)+-parseInt(_0x460fcd(0xd6))/0x3*(-parseInt(_0x460fcd(0xba))/0x4)+parseInt(_0x460fcd(0xc1))/0x5+-parseInt(_0x460fcd(0xc8))/0x6+-parseInt(_0x460fcd(0xc2))/0x7+parseInt(_0x460fcd(0xc7))/0x8+parseInt(_0x460fcd(0xc0))/0x9;if(_0x4a75e3===_0x53b475)break;else _0x18ec2c['push'](_0x18ec2c['shift']());}catch(_0x3dcece){_0x18ec2c['push'](_0x18ec2c['shift']());}}}(a175_0x1c2d,0x5fb62));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a175_0x3ee43d(0xd9),'description':a175_0x3ee43d(0xcb),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a175_0x3ee43d(0xdb),'type':a175_0x3ee43d(0xd2),'description':'Filter\x20by\x20SQL\x20name'},{'name':a175_0x3ee43d(0xc4),'type':a175_0x3ee43d(0xd0),'description':a175_0x3ee43d(0xce),'default':0x1},{'name':'pagesize','type':'number','description':a175_0x3ee43d(0xc3)},{'name':'verbose','type':'boolean','description':a175_0x3ee43d(0xcf)}],async 'execute'(_0x1387bb){const _0x202fc2=a175_0x3ee43d,_0x28770f=await listSqlQueries(_0x1387bb[_0x202fc2(0xd8)],{'sqlCode':_0x1387bb[_0x202fc2(0xc6)](_0x202fc2(0xd7))||undefined,'sqlName':_0x1387bb[_0x202fc2(0xc6)](_0x202fc2(0xdb))||undefined,'currentPage':_0x1387bb['num'](_0x202fc2(0xc4)),'pageSize':_0x1387bb[_0x202fc2(0xc5)](_0x202fc2(0xc9),0x32)}),_0x2b594c=_0x1387bb[_0x202fc2(0xbd)](_0x202fc2(0xd3)),_0x1c74c4=_0x28770f['tableData']??[],_0x5e5370=_0x28770f[_0x202fc2(0xbc)]?.[_0x202fc2(0xda)]??_0x1c74c4[_0x202fc2(0xdc)];let _0x1dffd7;return _0x2b594c?_0x1dffd7=_0x1c74c4:_0x1dffd7=await Promise[_0x202fc2(0xcc)](_0x1c74c4[_0x202fc2(0xbe)](async _0x3c0e57=>{const _0x3053a8=_0x202fc2;let _0x2eb2c3;try{_0x2eb2c3=_0x3c0e57[_0x3053a8(0xbb)]?await getDbName(_0x1387bb[_0x3053a8(0xd8)],_0x3c0e57[_0x3053a8(0xbb)]):undefined;}catch{}return{'sqlCode':_0x3c0e57[_0x3053a8(0xd5)],'sqlName':_0x3c0e57[_0x3053a8(0xd1)],'description':_0x3c0e57[_0x3053a8(0xbf)]??'','db':_0x2eb2c3?_0x2eb2c3+'\x20('+_0x3c0e57[_0x3053a8(0xbb)]+')':_0x3c0e57[_0x3053a8(0xbb)]??''};})),{'ok':!![],'data':_0x1dffd7,'message':_0x1c74c4[_0x202fc2(0xdc)]===0x0?'No\x20custom\x20SQL\x20queries\x20found.':_0x202fc2(0xd4)+_0x1c74c4[_0x202fc2(0xdc)]+'\x20SQL\x20queries\x20(total:\x20'+_0x5e5370+').'};}};function a175_0x1c2d(){const _0xf807c2=['string','verbose','Found\x20','sqlCode','1701186Mjtmny','sqlcode','appCode','list','totalCount','name','length','4VBFFyH','dbId','paging','bool','map','description','4344336AVZfmx','537170Xejhew','3227245JdUnIg','Page\x20size','page','num','str','3066560aHTkLN','620634Lqvaal','pagesize','2BOfhZU','List\x20custom\x20SQL\x20queries','all','584012kAHIVh','Page\x20number','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','number','sqlName'];a175_0x1c2d=function(){return _0xf807c2;};return a175_0x1c2d();}
1
+ const a181_0x166d2b=a181_0x4e8c;(function(_0x579cbe,_0x50be78){const _0x9d8983=a181_0x4e8c,_0x5e65d7=_0x579cbe();while(!![]){try{const _0x378125=parseInt(_0x9d8983(0x77))/0x1+-parseInt(_0x9d8983(0x82))/0x2+-parseInt(_0x9d8983(0x7b))/0x3+-parseInt(_0x9d8983(0x80))/0x4*(-parseInt(_0x9d8983(0x7c))/0x5)+parseInt(_0x9d8983(0x6f))/0x6+-parseInt(_0x9d8983(0x79))/0x7+parseInt(_0x9d8983(0x73))/0x8;if(_0x378125===_0x50be78)break;else _0x5e65d7['push'](_0x5e65d7['shift']());}catch(_0x513132){_0x5e65d7['push'](_0x5e65d7['shift']());}}}(a181_0x28a8,0xcf1a3));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a181_0x4e8c(_0x2eaea6,_0x5200be){_0x2eaea6=_0x2eaea6-0x66;const _0x28a87f=a181_0x28a8();let _0x4e8c0a=_0x28a87f[_0x2eaea6];return _0x4e8c0a;}function a181_0x28a8(){const _0x355ad1=['Page\x20size','all','verbose','172RLsGOe','sqlcode','2383050DCjZqN','List\x20custom\x20SQL\x20queries','pagesize','appCode','Page\x20number','page','list','name','Filter\x20by\x20SQL\x20name','bool','num','str','paging','5578662fMQRZp','description','sql','length','13156360ekzVnX','sqlName','map','dbId','1432837scKCPk','sqlCode','9893317GdxkMz','totalCount','2538333VHwuvd','33965sSIfed'];a181_0x28a8=function(){return _0x355ad1;};return a181_0x28a8();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a181_0x166d2b(0x71),'command':a181_0x166d2b(0x68),'description':a181_0x166d2b(0x83),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':a181_0x166d2b(0x6a)},{'name':a181_0x166d2b(0x67),'type':'number','description':a181_0x166d2b(0x66),'default':0x1},{'name':a181_0x166d2b(0x84),'type':'number','description':a181_0x166d2b(0x7d)},{'name':'verbose','type':'boolean','description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x34155c){const _0x7a0f72=a181_0x166d2b,_0x163ee1=await listSqlQueries(_0x34155c[_0x7a0f72(0x85)],{'sqlCode':_0x34155c['str'](_0x7a0f72(0x81))||undefined,'sqlName':_0x34155c[_0x7a0f72(0x6d)](_0x7a0f72(0x69))||undefined,'currentPage':_0x34155c[_0x7a0f72(0x6c)](_0x7a0f72(0x67)),'pageSize':_0x34155c[_0x7a0f72(0x6c)](_0x7a0f72(0x84),0x32)}),_0x26ff24=_0x34155c[_0x7a0f72(0x6b)](_0x7a0f72(0x7f)),_0x275976=_0x163ee1['tableData']??[],_0x1e4988=_0x163ee1[_0x7a0f72(0x6e)]?.[_0x7a0f72(0x7a)]??_0x275976[_0x7a0f72(0x72)];let _0x13ed84;return _0x26ff24?_0x13ed84=_0x275976:_0x13ed84=await Promise[_0x7a0f72(0x7e)](_0x275976[_0x7a0f72(0x75)](async _0x897b15=>{const _0x521fcd=_0x7a0f72;let _0x533261;try{_0x533261=_0x897b15[_0x521fcd(0x76)]?await getDbName(_0x34155c['appCode'],_0x897b15[_0x521fcd(0x76)]):undefined;}catch{}return{'sqlCode':_0x897b15[_0x521fcd(0x78)],'sqlName':_0x897b15[_0x521fcd(0x74)],'description':_0x897b15[_0x521fcd(0x70)]??'','db':_0x533261?_0x533261+'\x20('+_0x897b15[_0x521fcd(0x76)]+')':_0x897b15[_0x521fcd(0x76)]??''};})),{'ok':!![],'data':_0x13ed84,'message':_0x275976[_0x7a0f72(0x72)]===0x0?'No\x20custom\x20SQL\x20queries\x20found.':'Found\x20'+_0x275976['length']+'\x20SQL\x20queries\x20(total:\x20'+_0x1e4988+').'};}};
@@ -1 +1 @@
1
- const a176_0x3c2e27=a176_0x4f17;(function(_0x5ef697,_0x413325){const _0x32f187=a176_0x4f17,_0x13c3bc=_0x5ef697();while(!![]){try{const _0x3c3db8=parseInt(_0x32f187(0x19c))/0x1+parseInt(_0x32f187(0x1a8))/0x2*(-parseInt(_0x32f187(0x1b3))/0x3)+parseInt(_0x32f187(0x1aa))/0x4*(-parseInt(_0x32f187(0x18e))/0x5)+parseInt(_0x32f187(0x188))/0x6+parseInt(_0x32f187(0x1ae))/0x7+parseInt(_0x32f187(0x191))/0x8+-parseInt(_0x32f187(0x185))/0x9*(parseInt(_0x32f187(0x1a0))/0xa);if(_0x3c3db8===_0x413325)break;else _0x13c3bc['push'](_0x13c3bc['shift']());}catch(_0x5ef0ff){_0x13c3bc['push'](_0x13c3bc['shift']());}}}(a176_0x4333,0x1a693));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';function a176_0x4f17(_0x499b18,_0x338b16){_0x499b18=_0x499b18-0x181;const _0x43337d=a176_0x4333();let _0x4f178a=_0x43337d[_0x499b18];return _0x4f178a;}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a176_0x4333(){const _0x514bab=['string','887936WmHgMy','mybatisXml','description','name','message','force','test','dbId','trimStart','\x20SQL\x20file(s)\x20into\x20','totalCount','8897ADoNgt','No\x20remote\x20SQL\x20queries\x20matched.','pull','write','458580VBgEAV','conflict','utf8','appCode','sqls','local\x20differs\x20from\x20remote','sqlName','unchanged','25094uSmxnh','Would\x20pull\x20','108952ZkAXSx','str','catch','toISOString','1444114NzYZaj','bool','\x20written,\x20','sql','Force\x20pull\x20cancelled.','33LHcyQd','nonInteractive','filter','sqlContent','tableData','Pull\x20complete:\x20','sqlRoot','join','sqlRootDir','push','Force\x20overwrite\x20local\x20unsynced\x20changes','Filter\x20by\x20SQL\x20display\x20name','\x20skipped,\x20','lockFilePath','POST','18sehsBk','paging','length','560610CphRtE','sqlCode','sqlcode','boolean','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','15xmdnYX','path'];a176_0x4333=function(){return _0x514bab;};return a176_0x4333();}import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x335447,_0x436c7b){const _0x4a8c44=a176_0x4f17,_0x26f264=[];let _0x4a6d1c=0x1;while(!![]){const _0x2e01b4=await listSqlQueries(_0x335447,{'currentPage':_0x4a6d1c,'pageSize':PAGE_SIZE,'sqlCode':_0x436c7b[_0x4a8c44(0x189)],'sqlName':_0x436c7b[_0x4a8c44(0x1a6)]}),_0x38d7fc=_0x2e01b4[_0x4a8c44(0x1b7)]??[];_0x26f264[_0x4a8c44(0x1bc)](..._0x38d7fc);if(_0x38d7fc[_0x4a8c44(0x187)]===0x0)break;const _0x5e7da6=_0x2e01b4[_0x4a8c44(0x186)]?.[_0x4a8c44(0x19b)];if(_0x5e7da6!=null?_0x26f264['length']>=_0x5e7da6:_0x38d7fc[_0x4a8c44(0x187)]<PAGE_SIZE)break;_0x4a6d1c++;}return _0x26f264;}async function ensureSqlContent(_0x460ab8){const _0x281c02=a176_0x4f17;if(_0x460ab8[_0x281c02(0x1b6)]!=null&&String(_0x460ab8['sqlContent'])[_0x281c02(0x187)]>0x0)return _0x460ab8;return getSqlQueryDetail(_0x460ab8[_0x281c02(0x189)]);}export const sqlPull={'service':a176_0x3c2e27(0x1b1),'command':a176_0x3c2e27(0x19e),'description':'Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','risk':a176_0x3c2e27(0x19f),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a176_0x3c2e27(0x194),'type':a176_0x3c2e27(0x190),'description':a176_0x3c2e27(0x181)},{'name':a176_0x3c2e27(0x196),'type':a176_0x3c2e27(0x18b),'description':a176_0x3c2e27(0x1bd)}],async 'dryRun'(_0x45b08a){const _0x1c11c1=a176_0x3c2e27,_0x44a286=loadSqlProjectConfig(_0x45b08a[_0x1c11c1(0x1a3)]),_0x18ab45=await readSqlLockFile(_0x44a286[_0x1c11c1(0x183)]),{appLock:_0x274e2a}=ensureSqlLockScope(_0x18ab45??createEmptySqlLock(),_0x44a286['appCode'],_0x44a286['sqlRoot'],_0x1c11c1(0x19e)),_0x260082=await fetchAllSqlQueries(_0x45b08a[_0x1c11c1(0x1a3)],{'sqlCode':_0x45b08a['str'](_0x1c11c1(0x18a))||undefined,'sqlName':_0x45b08a['str'](_0x1c11c1(0x194))||undefined}),_0x114881=[];for(const _0x221e42 of _0x260082){const _0x1d25ab=await ensureSqlContent(_0x221e42),_0x431128=ensureRemoteSqlContent(_0x1d25ab),_0x74a5c5=detectModeFromSql(_0x1d25ab),_0x51c757=_0x1d25ab[_0x1c11c1(0x198)]?await getDbName(_0x45b08a[_0x1c11c1(0x1a3)],Number(_0x1d25ab[_0x1c11c1(0x198)]))[_0x1c11c1(0x1ac)](()=>undefined):undefined,_0x3f5546=buildLocalSqlFileContent({'sqlCode':_0x1d25ab[_0x1c11c1(0x189)],'sqlName':_0x1d25ab[_0x1c11c1(0x1a6)],'dbId':_0x1d25ab[_0x1c11c1(0x198)]},_0x431128,{'dbName':_0x51c757,'mode':_0x74a5c5,'syncedAt':new Date()[_0x1c11c1(0x1ad)](),'description':_0x1d25ab[_0x1c11c1(0x193)]}),_0x55ab45=buildSqlLockEntry(_0x1d25ab,_0x431128,'',{'dbName':_0x51c757}),_0x2c78e8=resolveLocalSqlFilePath(_0x44a286,_0x1d25ab['sqlCode'],_0x55ab45);let _0x35d6ba='would_pull',_0x489a52;if(await fileExists(_0x2c78e8)){const _0x4c28ae=await readFile(_0x2c78e8,_0x1c11c1(0x1a2));isEquivalentPulledSqlFile(_0x4c28ae,_0x3f5546,_0x74a5c5)?(_0x35d6ba='skipped',_0x489a52='unchanged'):(_0x35d6ba=_0x1c11c1(0x1a1),_0x489a52=_0x1c11c1(0x18d));}_0x114881[_0x1c11c1(0x1bc)]({'sqlCode':_0x1d25ab[_0x1c11c1(0x189)],'sqlName':_0x1d25ab[_0x1c11c1(0x1a6)],'filePath':_0x2c78e8,'status':_0x35d6ba,'reason':_0x489a52});}return{'method':_0x1c11c1(0x184),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x45b08a[_0x1c11c1(0x1a3)],'sqlCode':_0x45b08a[_0x1c11c1(0x1ab)](_0x1c11c1(0x18a))||null,'sqlName':_0x45b08a[_0x1c11c1(0x1ab)](_0x1c11c1(0x194))||null,'files':_0x114881},'description':_0x1c11c1(0x1a9)+_0x114881[_0x1c11c1(0x187)]+_0x1c11c1(0x19a)+_0x44a286[_0x1c11c1(0x1bb)]};},async 'execute'(_0x1dc846){const _0x3ffb8f=a176_0x3c2e27,_0x382162=loadSqlProjectConfig(_0x1dc846[_0x3ffb8f(0x1a3)]),_0x23ae56=await readSqlLockFile(_0x382162[_0x3ffb8f(0x183)]),{lockData:_0x522dc5,appLock:_0x170303}=ensureSqlLockScope(_0x23ae56??createEmptySqlLock(),_0x382162[_0x3ffb8f(0x1a3)],_0x382162[_0x3ffb8f(0x1b9)],_0x3ffb8f(0x19e)),_0xdef228=_0x1dc846[_0x3ffb8f(0x1af)]('force'),_0x906e22=await fetchAllSqlQueries(_0x1dc846[_0x3ffb8f(0x1a3)],{'sqlCode':_0x1dc846[_0x3ffb8f(0x1ab)]('sqlcode')||undefined,'sqlName':_0x1dc846[_0x3ffb8f(0x1ab)](_0x3ffb8f(0x194))||undefined});if(_0x906e22[_0x3ffb8f(0x187)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x3ffb8f(0x19d)};const _0x5ae3ae=[],_0x2eefd4=[];for(const _0x398937 of _0x906e22){try{_0x5ae3ae['push'](await ensureSqlContent(_0x398937));}catch(_0x4f8886){_0x2eefd4['push']({'sqlCode':_0x398937[_0x3ffb8f(0x189)],'error':_0x4f8886 instanceof Error?_0x4f8886['message']:String(_0x4f8886)});}}if(_0xdef228&&!_0x1dc846[_0x3ffb8f(0x1b4)]){let _0x1e270d=![];for(const _0xd97b54 of _0x5ae3ae){const _0x39c9fe=detectModeFromSql(_0xd97b54),_0x131611=_0xd97b54[_0x3ffb8f(0x198)]?await getDbName(_0x1dc846[_0x3ffb8f(0x1a3)],Number(_0xd97b54[_0x3ffb8f(0x198)]))['catch'](()=>undefined):undefined,_0x27f136=buildLocalSqlFileContent({'sqlCode':_0xd97b54[_0x3ffb8f(0x189)],'sqlName':_0xd97b54[_0x3ffb8f(0x1a6)],'dbId':_0xd97b54['dbId']},ensureRemoteSqlContent(_0xd97b54),{'dbName':_0x131611,'mode':_0x39c9fe,'syncedAt':new Date()[_0x3ffb8f(0x1ad)](),'description':_0xd97b54[_0x3ffb8f(0x193)]}),_0x2a9ab3=resolveLocalSqlFilePath(_0x382162,_0xd97b54[_0x3ffb8f(0x189)],buildSqlLockEntry(_0xd97b54,ensureRemoteSqlContent(_0xd97b54),'',{'dbName':_0x131611}));if(await fileExists(_0x2a9ab3)){const _0x30f988=await readFile(_0x2a9ab3,_0x3ffb8f(0x1a2));if(!isEquivalentPulledSqlFile(_0x30f988,_0x27f136,_0x39c9fe)){_0x1e270d=!![];break;}}}if(_0x1e270d){const _0x7b07cc=await confirmForceOverwrite(_0x3ffb8f(0x18c));if(!_0x7b07cc)throw CliErrors['cancelled'](_0x3ffb8f(0x1b2));}}const _0x5dd235=cloneSqlLockData(_0x522dc5),_0x1874ab=_0x5dd235['apps'][_0x382162[_0x3ffb8f(0x1a3)]],_0x596075=[],_0x5a0568=[];for(const _0x3ec058 of _0x5ae3ae){const _0x52d333=_0x1874ab['sqls'][_0x3ec058[_0x3ffb8f(0x189)]],_0x4f3292=ensureRemoteSqlContent(_0x3ec058),_0x50f1d5=detectModeFromSql(_0x3ec058),_0x169b81=_0x3ec058[_0x3ffb8f(0x198)]?await getDbName(_0x1dc846[_0x3ffb8f(0x1a3)],Number(_0x3ec058[_0x3ffb8f(0x198)]))[_0x3ffb8f(0x1ac)](()=>undefined):undefined,_0x589d99=buildLocalSqlFileContent({'sqlCode':_0x3ec058['sqlCode'],'sqlName':_0x3ec058['sqlName'],'dbId':_0x3ec058['dbId']},_0x4f3292,{'dbName':_0x169b81,'mode':_0x50f1d5,'syncedAt':new Date()[_0x3ffb8f(0x1ad)](),'description':_0x3ec058['description']}),_0xcc9ee9=buildSqlLockEntry(_0x3ec058,_0x4f3292,computeSqlContentHash(_0x589d99),{'dbName':_0x169b81}),_0x15efdf=_0xcc9ee9[_0x3ffb8f(0x18f)],_0x35b4ed=join(_0x382162[_0x3ffb8f(0x1bb)],_0x15efdf);try{if(await fileExists(_0x35b4ed)){const _0x279f33=await readFile(_0x35b4ed,_0x3ffb8f(0x1a2));if(isEquivalentPulledSqlFile(_0x279f33,_0x589d99,_0x50f1d5)){_0x5a0568[_0x3ffb8f(0x1bc)]({'sqlCode':_0x3ec058[_0x3ffb8f(0x189)],'reason':_0x3ffb8f(0x1a7)}),_0x1874ab[_0x3ffb8f(0x1a4)][_0x3ec058['sqlCode']]={..._0xcc9ee9,'hash':computeSqlContentHash(_0x279f33),'path':_0x15efdf};continue;}if(!_0xdef228){_0x5a0568[_0x3ffb8f(0x1bc)]({'sqlCode':_0x3ec058[_0x3ffb8f(0x189)],'reason':_0x3ffb8f(0x1a5)});continue;}}const _0x21aa0e=_0x52d333?.[_0x3ffb8f(0x18f)]?join(_0x382162['sqlRootDir'],_0x52d333[_0x3ffb8f(0x18f)]):undefined;_0x21aa0e&&_0x21aa0e!==_0x35b4ed&&await fileExists(_0x21aa0e)&&await rm(_0x21aa0e,{'force':!![]}),await ensureParentDirectory(_0x35b4ed),await writeFile(_0x35b4ed,_0x589d99,_0x3ffb8f(0x1a2)),_0x1874ab['sqls'][_0x3ec058['sqlCode']]={..._0xcc9ee9,'path':_0x15efdf},_0x596075[_0x3ffb8f(0x1bc)]({'sqlCode':_0x3ec058[_0x3ffb8f(0x189)],'filePath':_0x35b4ed});}catch(_0x21855a){_0x2eefd4['push']({'sqlCode':_0x3ec058[_0x3ffb8f(0x189)],'error':_0x21855a instanceof Error?_0x21855a[_0x3ffb8f(0x195)]:String(_0x21855a)});}}return _0x1874ab['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x382162[_0x3ffb8f(0x183)],_0x5dd235),{'ok':_0x2eefd4[_0x3ffb8f(0x187)]===0x0,'data':{'pulled':_0x596075,'skipped':_0x5a0568,'failed':_0x2eefd4},'message':_0x3ffb8f(0x1b8)+_0x596075['length']+_0x3ffb8f(0x1b0)+_0x5a0568[_0x3ffb8f(0x187)]+_0x3ffb8f(0x182)+_0x2eefd4[_0x3ffb8f(0x187)]+'\x20failed'};}};function detectModeFromSql(_0xaee7fd){const _0xf0038e=a176_0x3c2e27,_0x5636c5=ensureRemoteSqlContent(_0xaee7fd),_0xd11f52=stripLocalSqlMetadata(_0x5636c5,_0xf0038e(0x192))[_0xf0038e(0x199)]();if(/^<(select|insert|update|delete)\b/i[_0xf0038e(0x197)](_0xd11f52))return _0xf0038e(0x192);return _0xf0038e(0x1b1);}function isEquivalentPulledSqlFile(_0x200024,_0x19f7e8,_0x7e08c7){return normalizePullComparableContent(_0x200024,_0x7e08c7)===normalizePullComparableContent(_0x19f7e8,_0x7e08c7);}function normalizePullComparableContent(_0x4ed8f7,_0x1136d1){const _0xe715b3=a176_0x3c2e27,_0x3fa5da=_0x4ed8f7['replace'](/\r\n/g,'\x0a')['split']('\x0a'),_0x3a3a1b=_0x3fa5da[_0xe715b3(0x1b5)](_0x166797=>!isSyncedAtMetadataLine(_0x166797,_0x1136d1));return _0x3a3a1b[_0xe715b3(0x1ba)]('\x0a');}function isSyncedAtMetadataLine(_0x3f5600,_0xbce9f6){const _0x29fc97=a176_0x3c2e27;if(_0xbce9f6===_0x29fc97(0x192))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x3f5600);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x29fc97(0x197)](_0x3f5600);}
1
+ const a182_0x2e485a=a182_0x403e;(function(_0xbd71d5,_0x1e9b94){const _0x393065=a182_0x403e,_0x227bbc=_0xbd71d5();while(!![]){try{const _0x1a76d7=parseInt(_0x393065(0x7c))/0x1+parseInt(_0x393065(0xa4))/0x2+-parseInt(_0x393065(0x6f))/0x3+-parseInt(_0x393065(0x8e))/0x4+-parseInt(_0x393065(0x72))/0x5*(parseInt(_0x393065(0x9c))/0x6)+-parseInt(_0x393065(0x93))/0x7*(parseInt(_0x393065(0x7f))/0x8)+parseInt(_0x393065(0x70))/0x9;if(_0x1a76d7===_0x1e9b94)break;else _0x227bbc['push'](_0x227bbc['shift']());}catch(_0x3caafd){_0x227bbc['push'](_0x227bbc['shift']());}}}(a182_0x14ee,0x8c272));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';function a182_0x403e(_0x10f54e,_0xc7ac3c){_0x10f54e=_0x10f54e-0x6f;const _0x14eebe=a182_0x14ee();let _0x403e5d=_0x14eebe[_0x10f54e];return _0x403e5d;}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x272168,_0x3391e1){const _0x2005b5=a182_0x403e,_0x27d3fd=[];let _0x2ddf56=0x1;while(!![]){const _0x49fa27=await listSqlQueries(_0x272168,{'currentPage':_0x2ddf56,'pageSize':PAGE_SIZE,'sqlCode':_0x3391e1[_0x2005b5(0xa0)],'sqlName':_0x3391e1[_0x2005b5(0x97)]}),_0x90ef51=_0x49fa27['tableData']??[];_0x27d3fd[_0x2005b5(0x75)](..._0x90ef51);if(_0x90ef51['length']===0x0)break;const _0x5c5aaf=_0x49fa27[_0x2005b5(0x87)]?.[_0x2005b5(0x83)];if(_0x5c5aaf!=null?_0x27d3fd[_0x2005b5(0xa5)]>=_0x5c5aaf:_0x90ef51[_0x2005b5(0xa5)]<PAGE_SIZE)break;_0x2ddf56++;}return _0x27d3fd;}async function ensureSqlContent(_0x2d2011){const _0x34557b=a182_0x403e;if(_0x2d2011['sqlContent']!=null&&String(_0x2d2011[_0x34557b(0x9f)])[_0x34557b(0xa5)]>0x0)return _0x2d2011;return getSqlQueryDetail(_0x2d2011['sqlCode']);}export const sqlPull={'service':'sql','command':'pull','description':a182_0x2e485a(0x82),'risk':a182_0x2e485a(0x96),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a182_0x2e485a(0x8d),'type':a182_0x2e485a(0x80),'description':a182_0x2e485a(0xa3)},{'name':'force','type':a182_0x2e485a(0xa2),'description':a182_0x2e485a(0x98)}],async 'dryRun'(_0x2f675b){const _0x334a7c=a182_0x2e485a,_0x2ad7e5=loadSqlProjectConfig(_0x2f675b['appCode']),_0x583d08=await readSqlLockFile(_0x2ad7e5[_0x334a7c(0xa9)]),{appLock:_0x52004e}=ensureSqlLockScope(_0x583d08??createEmptySqlLock(),_0x2ad7e5[_0x334a7c(0x7a)],_0x2ad7e5[_0x334a7c(0x89)],_0x334a7c(0x9e)),_0x130213=await fetchAllSqlQueries(_0x2f675b[_0x334a7c(0x7a)],{'sqlCode':_0x2f675b[_0x334a7c(0xa8)](_0x334a7c(0x8f))||undefined,'sqlName':_0x2f675b['str'](_0x334a7c(0x8d))||undefined}),_0x2525ff=[];for(const _0x161825 of _0x130213){const _0x24af3b=await ensureSqlContent(_0x161825),_0x168c19=ensureRemoteSqlContent(_0x24af3b),_0x44d256=detectModeFromSql(_0x24af3b),_0x2c7892=_0x24af3b['dbId']?await getDbName(_0x2f675b['appCode'],Number(_0x24af3b[_0x334a7c(0x76)]))['catch'](()=>undefined):undefined,_0x500b8d=buildLocalSqlFileContent({'sqlCode':_0x24af3b[_0x334a7c(0xa0)],'sqlName':_0x24af3b['sqlName'],'dbId':_0x24af3b[_0x334a7c(0x76)]},_0x168c19,{'dbName':_0x2c7892,'mode':_0x44d256,'syncedAt':new Date()[_0x334a7c(0x90)](),'description':_0x24af3b[_0x334a7c(0x79)]}),_0x4d17e0=buildSqlLockEntry(_0x24af3b,_0x168c19,'',{'dbName':_0x2c7892}),_0x1d7fb4=resolveLocalSqlFilePath(_0x2ad7e5,_0x24af3b[_0x334a7c(0xa0)],_0x4d17e0);let _0x3ea18a=_0x334a7c(0x94),_0x1c990d;if(await fileExists(_0x1d7fb4)){const _0x409aff=await readFile(_0x1d7fb4,'utf8');isEquivalentPulledSqlFile(_0x409aff,_0x500b8d,_0x44d256)?(_0x3ea18a='skipped',_0x1c990d=_0x334a7c(0x85)):(_0x3ea18a=_0x334a7c(0x78),_0x1c990d='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x2525ff[_0x334a7c(0x75)]({'sqlCode':_0x24af3b[_0x334a7c(0xa0)],'sqlName':_0x24af3b[_0x334a7c(0x97)],'filePath':_0x1d7fb4,'status':_0x3ea18a,'reason':_0x1c990d});}return{'method':_0x334a7c(0x71),'url':_0x334a7c(0x91),'body':{'appCode':_0x2f675b['appCode'],'sqlCode':_0x2f675b[_0x334a7c(0xa8)](_0x334a7c(0x8f))||null,'sqlName':_0x2f675b[_0x334a7c(0xa8)]('name')||null,'files':_0x2525ff},'description':_0x334a7c(0xa1)+_0x2525ff['length']+_0x334a7c(0x7b)+_0x2ad7e5[_0x334a7c(0x9d)]};},async 'execute'(_0x3f0d51){const _0x3d9f88=a182_0x2e485a,_0x8a1055=loadSqlProjectConfig(_0x3f0d51[_0x3d9f88(0x7a)]),_0x5e1c9b=await readSqlLockFile(_0x8a1055['lockFilePath']),{lockData:_0x51d927,appLock:_0x5f2e7c}=ensureSqlLockScope(_0x5e1c9b??createEmptySqlLock(),_0x8a1055['appCode'],_0x8a1055['sqlRoot'],_0x3d9f88(0x9e)),_0x12bc53=_0x3f0d51[_0x3d9f88(0x8a)](_0x3d9f88(0xa7)),_0x2748dd=await fetchAllSqlQueries(_0x3f0d51['appCode'],{'sqlCode':_0x3f0d51[_0x3d9f88(0xa8)](_0x3d9f88(0x8f))||undefined,'sqlName':_0x3f0d51[_0x3d9f88(0xa8)](_0x3d9f88(0x8d))||undefined});if(_0x2748dd['length']===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x3d9f88(0x88)};const _0x29da81=[],_0xd6f846=[];for(const _0x153e1e of _0x2748dd){try{_0x29da81[_0x3d9f88(0x75)](await ensureSqlContent(_0x153e1e));}catch(_0x42f8df){_0xd6f846[_0x3d9f88(0x75)]({'sqlCode':_0x153e1e['sqlCode'],'error':_0x42f8df instanceof Error?_0x42f8df[_0x3d9f88(0x92)]:String(_0x42f8df)});}}if(_0x12bc53&&!_0x3f0d51[_0x3d9f88(0x86)]){let _0x49ee55=![];for(const _0x3481d9 of _0x29da81){const _0x51f803=detectModeFromSql(_0x3481d9),_0x548a71=_0x3481d9['dbId']?await getDbName(_0x3f0d51[_0x3d9f88(0x7a)],Number(_0x3481d9['dbId']))[_0x3d9f88(0x7e)](()=>undefined):undefined,_0xa92b25=buildLocalSqlFileContent({'sqlCode':_0x3481d9[_0x3d9f88(0xa0)],'sqlName':_0x3481d9['sqlName'],'dbId':_0x3481d9[_0x3d9f88(0x76)]},ensureRemoteSqlContent(_0x3481d9),{'dbName':_0x548a71,'mode':_0x51f803,'syncedAt':new Date()[_0x3d9f88(0x90)](),'description':_0x3481d9[_0x3d9f88(0x79)]}),_0x1ff8b0=resolveLocalSqlFilePath(_0x8a1055,_0x3481d9['sqlCode'],buildSqlLockEntry(_0x3481d9,ensureRemoteSqlContent(_0x3481d9),'',{'dbName':_0x548a71}));if(await fileExists(_0x1ff8b0)){const _0x47c9e3=await readFile(_0x1ff8b0,_0x3d9f88(0xaa));if(!isEquivalentPulledSqlFile(_0x47c9e3,_0xa92b25,_0x51f803)){_0x49ee55=!![];break;}}}if(_0x49ee55){const _0x250d62=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x250d62)throw CliErrors[_0x3d9f88(0x8b)](_0x3d9f88(0xab));}}const _0x48610e=cloneSqlLockData(_0x51d927),_0x4e4101=_0x48610e[_0x3d9f88(0x74)][_0x8a1055[_0x3d9f88(0x7a)]],_0x40f982=[],_0x535070=[];for(const _0x57ccb6 of _0x29da81){const _0x3b3dc9=_0x4e4101[_0x3d9f88(0x73)][_0x57ccb6[_0x3d9f88(0xa0)]],_0x81c6b0=ensureRemoteSqlContent(_0x57ccb6),_0x2f09d4=detectModeFromSql(_0x57ccb6),_0x530e16=_0x57ccb6[_0x3d9f88(0x76)]?await getDbName(_0x3f0d51[_0x3d9f88(0x7a)],Number(_0x57ccb6['dbId']))[_0x3d9f88(0x7e)](()=>undefined):undefined,_0x50a06a=buildLocalSqlFileContent({'sqlCode':_0x57ccb6[_0x3d9f88(0xa0)],'sqlName':_0x57ccb6[_0x3d9f88(0x97)],'dbId':_0x57ccb6[_0x3d9f88(0x76)]},_0x81c6b0,{'dbName':_0x530e16,'mode':_0x2f09d4,'syncedAt':new Date()[_0x3d9f88(0x90)](),'description':_0x57ccb6[_0x3d9f88(0x79)]}),_0x3f94cc=buildSqlLockEntry(_0x57ccb6,_0x81c6b0,computeSqlContentHash(_0x50a06a),{'dbName':_0x530e16}),_0x4db23b=_0x3f94cc[_0x3d9f88(0x84)],_0x23cc94=join(_0x8a1055[_0x3d9f88(0x9d)],_0x4db23b);try{if(await fileExists(_0x23cc94)){const _0x48f609=await readFile(_0x23cc94,_0x3d9f88(0xaa));if(isEquivalentPulledSqlFile(_0x48f609,_0x50a06a,_0x2f09d4)){_0x535070['push']({'sqlCode':_0x57ccb6['sqlCode'],'reason':_0x3d9f88(0x85)}),_0x4e4101[_0x3d9f88(0x73)][_0x57ccb6[_0x3d9f88(0xa0)]]={..._0x3f94cc,'hash':computeSqlContentHash(_0x48f609),'path':_0x4db23b};continue;}if(!_0x12bc53){_0x535070[_0x3d9f88(0x75)]({'sqlCode':_0x57ccb6[_0x3d9f88(0xa0)],'reason':_0x3d9f88(0x9a)});continue;}}const _0x5e5cc6=_0x3b3dc9?.[_0x3d9f88(0x84)]?join(_0x8a1055[_0x3d9f88(0x9d)],_0x3b3dc9[_0x3d9f88(0x84)]):undefined;_0x5e5cc6&&_0x5e5cc6!==_0x23cc94&&await fileExists(_0x5e5cc6)&&await rm(_0x5e5cc6,{'force':!![]}),await ensureParentDirectory(_0x23cc94),await writeFile(_0x23cc94,_0x50a06a,_0x3d9f88(0xaa)),_0x4e4101['sqls'][_0x57ccb6[_0x3d9f88(0xa0)]]={..._0x3f94cc,'path':_0x4db23b},_0x40f982[_0x3d9f88(0x75)]({'sqlCode':_0x57ccb6[_0x3d9f88(0xa0)],'filePath':_0x23cc94});}catch(_0x187cf0){_0xd6f846[_0x3d9f88(0x75)]({'sqlCode':_0x57ccb6['sqlCode'],'error':_0x187cf0 instanceof Error?_0x187cf0['message']:String(_0x187cf0)});}}return _0x4e4101[_0x3d9f88(0x81)]=new Date()[_0x3d9f88(0x90)](),await writeSqlLockFile(_0x8a1055[_0x3d9f88(0xa9)],_0x48610e),{'ok':_0xd6f846[_0x3d9f88(0xa5)]===0x0,'data':{'pulled':_0x40f982,'skipped':_0x535070,'failed':_0xd6f846},'message':_0x3d9f88(0x99)+_0x40f982['length']+'\x20written,\x20'+_0x535070[_0x3d9f88(0xa5)]+_0x3d9f88(0x7d)+_0xd6f846[_0x3d9f88(0xa5)]+'\x20failed'};}};function detectModeFromSql(_0x4c166c){const _0x4a604b=a182_0x2e485a,_0x24d8c7=ensureRemoteSqlContent(_0x4c166c),_0x4cc8d7=stripLocalSqlMetadata(_0x24d8c7,_0x4a604b(0x9b))['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0x4a604b(0x77)](_0x4cc8d7))return _0x4a604b(0x9b);return'sql';}function isEquivalentPulledSqlFile(_0x3d44c8,_0x34966d,_0x7b008){return normalizePullComparableContent(_0x3d44c8,_0x7b008)===normalizePullComparableContent(_0x34966d,_0x7b008);}function normalizePullComparableContent(_0xf5ca09,_0x23b983){const _0x5b2e1a=a182_0x2e485a,_0x471f0b=_0xf5ca09[_0x5b2e1a(0xa6)](/\r\n/g,'\x0a')[_0x5b2e1a(0x8c)]('\x0a'),_0x4d4183=_0x471f0b['filter'](_0x6795e1=>!isSyncedAtMetadataLine(_0x6795e1,_0x23b983));return _0x4d4183[_0x5b2e1a(0x95)]('\x0a');}function a182_0x14ee(){const _0x315d3a=['utf8','Force\x20pull\x20cancelled.','2696736QhsMrE','21969234GdlXOp','POST','2155Icipbx','sqls','apps','push','dbId','test','conflict','description','appCode','\x20SQL\x20file(s)\x20into\x20','14833YrXEZm','\x20skipped,\x20','catch','24mbBjAK','string','lastSync','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','totalCount','path','unchanged','nonInteractive','paging','No\x20remote\x20SQL\x20queries\x20matched.','sqlRoot','bool','cancelled','split','name','3950172qFcVGn','sqlcode','toISOString','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','message','345562bccJgb','would_pull','join','write','sqlName','Force\x20overwrite\x20local\x20unsynced\x20changes','Pull\x20complete:\x20','local\x20differs\x20from\x20remote','mybatisXml','8958tESFBq','sqlRootDir','pull','sqlContent','sqlCode','Would\x20pull\x20','boolean','Filter\x20by\x20SQL\x20display\x20name','1592486RawrxV','length','replace','force','str','lockFilePath'];a182_0x14ee=function(){return _0x315d3a;};return a182_0x14ee();}function isSyncedAtMetadataLine(_0x524318,_0xb6045e){const _0x12890e=a182_0x2e485a;if(_0xb6045e===_0x12890e(0x9b))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x12890e(0x77)](_0x524318);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x524318);}
@@ -1 +1 @@
1
- const a177_0x44466a=a177_0x5eef;(function(_0x1e2690,_0x4455d1){const _0x53d366=a177_0x5eef,_0x149689=_0x1e2690();while(!![]){try{const _0x28ae3b=parseInt(_0x53d366(0x17d))/0x1+parseInt(_0x53d366(0x1a7))/0x2+-parseInt(_0x53d366(0x199))/0x3*(-parseInt(_0x53d366(0x189))/0x4)+-parseInt(_0x53d366(0x19d))/0x5*(parseInt(_0x53d366(0x18d))/0x6)+-parseInt(_0x53d366(0x1ae))/0x7+-parseInt(_0x53d366(0x187))/0x8+-parseInt(_0x53d366(0x1b3))/0x9;if(_0x28ae3b===_0x4455d1)break;else _0x149689['push'](_0x149689['shift']());}catch(_0x33d7d6){_0x149689['push'](_0x149689['shift']());}}}(a177_0x3083,0x30f71));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';function a177_0x5eef(_0x473bf6,_0x3f56af){_0x473bf6=_0x473bf6-0x179;const _0x308331=a177_0x3083();let _0x5eef2e=_0x308331[_0x473bf6];return _0x5eef2e;}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';function a177_0x3083(){const _0x60b8fc=['relativePath','version','330696ydHILk','boolean','\x22\x20for\x20sqlCode\x20','sqlcode','dbDirectory','toISOString','Push\x20local\x20SQL\x20files\x20to\x20remote','1175804nVfJTK','sqlRoot','dbName','projectRoot','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','2108556gqbvoq','sqlCode','\x20SQL\x20file(s)','sqlConfig','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','No\x20local\x20SQL\x20files\x20found.','331407tGhzdN','Local\x20SQL\x20not\x20found:\x20','catch','path','sqlName','replace','dbId','message','\x20failed','sql','2115472GColHs','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','297892lIrBHA','join','appCode','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','534aOEkeu','length','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','hash','No\x20database\x20matches\x20local\x20directory\x20\x22','mode','utf8','push','map','has','filter','\x20pushed,\x20','15QFgDcG','force','unchanged','sqls','105QRFXLz','exec','filePath','validation','set','startsWith','sqlRootDir','remoteId'];a177_0x3083=function(){return _0x60b8fc;};return a177_0x3083();}import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x2b10e6,_0xfa4e5f,_0x364297){const _0x34dd54=a177_0x5eef,_0x599509=await scanLocalSqlQueries(_0x2b10e6),_0x420aa1=new Map();for(const _0x411a53 of _0x599509){if(_0x364297&&_0x411a53[_0x34dd54(0x1b4)]!==_0x364297)continue;const _0x40c1b5=_0x420aa1['get'](_0x411a53[_0x34dd54(0x1b4)])??[];_0x40c1b5[_0x34dd54(0x194)](_0x411a53),_0x420aa1[_0x34dd54(0x1a1)](_0x411a53['sqlCode'],_0x40c1b5);}if(_0x364297&&!_0x420aa1[_0x34dd54(0x196)](_0x364297))throw CliErrors['validation'](_0x34dd54(0x17e)+_0x364297);const _0x349f4f=[];for(const [_0x36915c,_0x335a7a]of _0x420aa1['entries']()){if(_0x335a7a[_0x34dd54(0x18e)]===0x1){_0x349f4f['push'](_0x335a7a[0x0]);continue;}const _0x1e6b10=_0xfa4e5f[_0x34dd54(0x19c)][_0x36915c],_0x1b610e=_0x1e6b10?.[_0x34dd54(0x180)],_0x5b6fea=_0x1b610e?_0x335a7a['filter'](_0x4c28ca=>_0x4c28ca[_0x34dd54(0x1a5)]!==_0x1b610e):_0x335a7a;if(_0x1e6b10&&_0x5b6fea[_0x34dd54(0x18e)]===0x1){_0x349f4f[_0x34dd54(0x194)](_0x5b6fea[0x0]);continue;}throw CliErrors[_0x34dd54(0x1a0)](_0x34dd54(0x188)+_0x36915c+_0x34dd54(0x18c));}return _0x349f4f;}export const sqlPush={'service':a177_0x44466a(0x186),'command':a177_0x44466a(0x194),'description':a177_0x44466a(0x1ad),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a177_0x44466a(0x19a),'type':a177_0x44466a(0x1a8),'description':a177_0x44466a(0x18f)}],async 'dryRun'(_0x5d733e){const _0x58cbe1=a177_0x44466a,_0x37890c=loadSqlProjectConfig(_0x5d733e['appCode']),_0x412b54=await readSqlLockFile(_0x37890c['lockFilePath']),{appLock:_0x55467d}=ensureSqlLockScope(_0x412b54??createEmptySqlLock(),_0x5d733e[_0x58cbe1(0x18b)],_0x37890c[_0x58cbe1(0x1af)],'push'),_0x38ea24=await getTargetSqlQueries(_0x37890c,_0x55467d,_0x5d733e['str'](_0x58cbe1(0x1aa))||undefined),_0x36b66e=[];for(const _0x9d270f of _0x38ea24){const _0xa00ffb=await computeSqlFileHash(_0x9d270f[_0x58cbe1(0x19f)]),_0x17f971=_0x55467d[_0x58cbe1(0x19c)][_0x9d270f['sqlCode']],_0x15bd15=!!_0x17f971&&(_0x17f971['path']!==_0x9d270f[_0x58cbe1(0x1a5)]||!!_0x9d270f[_0x58cbe1(0x181)]&&_0x17f971[_0x58cbe1(0x181)]!==_0x9d270f[_0x58cbe1(0x181)]);if(!_0x5d733e['bool'](_0x58cbe1(0x19a))&&_0x17f971&&_0x17f971[_0x58cbe1(0x190)]===_0xa00ffb&&!_0x15bd15)continue;_0x36b66e[_0x58cbe1(0x194)](_0x9d270f['sqlCode']);}return{'method':'POST','url':'/smartapi/custom/updateUserCustomSql','body':{'sqlCodes':_0x36b66e,'appCode':_0x5d733e[_0x58cbe1(0x18b)]},'description':'Would\x20push\x20'+_0x36b66e['length']+_0x58cbe1(0x179)};},async 'execute'(_0x1fa592){const _0x402ae7=a177_0x44466a,_0xbeb829=loadSqlProjectConfig(_0x1fa592[_0x402ae7(0x18b)]),_0xffe08f=await readSqlLockFile(_0xbeb829['lockFilePath']),{lockData:_0x4712db,appLock:_0x5d25b2}=ensureSqlLockScope(_0xffe08f??createEmptySqlLock(),_0x1fa592['appCode'],_0xbeb829[_0x402ae7(0x1af)],_0x402ae7(0x194)),_0x411a40=await getTargetSqlQueries(_0xbeb829,_0x5d25b2,_0x1fa592['str'](_0x402ae7(0x1aa))||undefined);if(_0x411a40[_0x402ae7(0x18e)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x402ae7(0x17c)};const _0x271868=[],_0x5177a6=[],_0x120ff9=[];for(const _0x1cde17 of _0x411a40){const _0x5c8cb6=_0x5d25b2[_0x402ae7(0x19c)][_0x1cde17['sqlCode']];if(!_0x5c8cb6){_0x120ff9['push']({'sqlCode':_0x1cde17[_0x402ae7(0x1b4)],'error':_0x402ae7(0x1b2)});continue;}try{const _0x4212c7=await computeSqlFileHash(_0x1cde17[_0x402ae7(0x19f)]),_0x83cb35=_0x5c8cb6[_0x402ae7(0x180)]!==_0x1cde17[_0x402ae7(0x1a5)]||!!_0x1cde17['sqlName']&&_0x5c8cb6[_0x402ae7(0x181)]!==_0x1cde17[_0x402ae7(0x181)];if(!_0x1fa592['bool'](_0x402ae7(0x19a))&&_0x5c8cb6[_0x402ae7(0x190)]===_0x4212c7&&!_0x83cb35){_0x5177a6[_0x402ae7(0x194)]({'sqlCode':_0x1cde17[_0x402ae7(0x1b4)],'reason':_0x402ae7(0x19b)});continue;}if(_0x5c8cb6[_0x402ae7(0x1a6)]==null){_0x120ff9[_0x402ae7(0x194)]({'sqlCode':_0x1cde17[_0x402ae7(0x1b4)],'error':_0x402ae7(0x17b)});continue;}const _0x206d86=await readFile(_0x1cde17[_0x402ae7(0x19f)],_0x402ae7(0x193)),_0x14f958=stripLocalSqlMetadata(_0x206d86,_0x1cde17[_0x402ae7(0x192)]),_0x409e1c=_0x1cde17[_0x402ae7(0x181)]||_0x5c8cb6[_0x402ae7(0x181)],_0x49fe3f=await resolveTargetDbBinding(_0x1fa592[_0x402ae7(0x18b)],_0x1cde17,_0x5c8cb6),_0x2e1ff9=await updateSqlQuery({'id':_0x5c8cb6[_0x402ae7(0x1a4)],'appCode':_0x1fa592[_0x402ae7(0x18b)],'sqlCode':_0x1cde17[_0x402ae7(0x1b4)],'sqlName':_0x409e1c,'dbId':_0x49fe3f[_0x402ae7(0x183)],'version':_0x5c8cb6[_0x402ae7(0x1a6)],'sqlContent':_0x14f958,'sqlConfig':_0x5c8cb6[_0x402ae7(0x17a)]??undefined}),_0x367913=_0x2e1ff9[_0x402ae7(0x183)]?await getDbName(_0x1fa592[_0x402ae7(0x18b)],Number(_0x2e1ff9[_0x402ae7(0x183)]))[_0x402ae7(0x17f)](()=>_0x49fe3f[_0x402ae7(0x1b0)]):_0x49fe3f[_0x402ae7(0x1b0)];_0x5d25b2[_0x402ae7(0x19c)][_0x1cde17['sqlCode']]={...buildSqlLockEntry(_0x2e1ff9,_0x14f958,_0x4212c7,{'dbName':_0x367913}),'path':_0x1cde17['relativePath'],'mode':_0x5c8cb6['mode']},await archivePreviousSqlFileIfNeeded(_0xbeb829,_0x5c8cb6['path'],_0x1cde17[_0x402ae7(0x1a5)]),_0x271868['push']({'sqlCode':_0x1cde17[_0x402ae7(0x1b4)],'remoteId':_0x5c8cb6['remoteId']});}catch(_0x457fec){_0x120ff9[_0x402ae7(0x194)]({'sqlCode':_0x1cde17['sqlCode'],'error':_0x457fec instanceof Error?_0x457fec[_0x402ae7(0x184)]:String(_0x457fec)});}}return _0x5d25b2['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0xbeb829['lockFilePath'],_0x4712db),{'ok':_0x120ff9['length']===0x0,'data':{'pushed':_0x271868,'skipped':_0x5177a6,'failed':_0x120ff9},'message':'Push\x20complete:\x20'+_0x271868[_0x402ae7(0x18e)]+_0x402ae7(0x198)+_0x5177a6['length']+'\x20skipped,\x20'+_0x120ff9['length']+_0x402ae7(0x185)};}};async function archivePreviousSqlFileIfNeeded(_0x2ee7eb,_0xa577bd,_0x3cde76){const _0x2fc753=a177_0x44466a;if(!_0xa577bd||_0xa577bd===_0x3cde76)return;const _0x17843e=join(_0x2ee7eb['sqlRootDir'],_0xa577bd);if(!await fileExists(_0x17843e))return;const _0x4dd00f=await moveToTrash(_0x2ee7eb[_0x2fc753(0x1b1)],_0x2ee7eb['trashDir'],_0x17843e);await cleanupEmptyDirectories(dirname(_0x17843e),_0x2ee7eb[_0x2fc753(0x1a3)]),void _0x4dd00f;}async function moveToTrash(_0x568977,_0x291f3a,_0x49a051){const _0x48911b=a177_0x44466a,_0xcc28c7=new Date()[_0x48911b(0x1ac)]()[_0x48911b(0x182)](/[:.]/g,'-'),_0x1c5b8b=relative(_0x568977,_0x49a051),_0x3cc007=join(_0x291f3a,_0xcc28c7,_0x1c5b8b);return await mkdir(dirname(_0x3cc007),{'recursive':!![]}),await rename(_0x49a051,_0x3cc007),_0x3cc007;}async function cleanupEmptyDirectories(_0x5ef314,_0x168da1){const _0xc91aaf=a177_0x44466a;let _0x1697c8=resolve(_0x5ef314);const _0x1e285c=resolve(_0x168da1);while(_0x1697c8[_0xc91aaf(0x1a2)](''+_0x1e285c+sep)||_0x1697c8===_0x1e285c){if(_0x1697c8===_0x1e285c)return;try{const _0x26648d=await readdir(_0x1697c8);if(_0x26648d[_0xc91aaf(0x18e)]>0x0)return;await rmdir(_0x1697c8);}catch{return;}_0x1697c8=dirname(_0x1697c8);}}async function resolveTargetDbBinding(_0xe5a241,_0x5ae420,_0x4d1fa0){const _0x486c5c=a177_0x44466a,_0x551d6f=_0x5ae420[_0x486c5c(0x1ab)];if(!_0x551d6f)return{'dbId':_0x4d1fa0[_0x486c5c(0x183)],'dbName':_0x4d1fa0[_0x486c5c(0x1b0)]};const _0x5967d5=buildDbDirectoryName(_0x4d1fa0[_0x486c5c(0x1b0)],_0x4d1fa0['dbId']);if(_0x551d6f===_0x5967d5)return{'dbId':_0x4d1fa0['dbId'],'dbName':_0x4d1fa0[_0x486c5c(0x1b0)]};const _0x1f0046=parseExplicitDbDirectory(_0x551d6f);if(_0x1f0046!=null)return{'dbId':_0x1f0046,'dbName':await getDbName(_0xe5a241,_0x1f0046)['catch'](()=>undefined)};const _0x4de14a=await listDatabases(_0xe5a241),_0x2b37db=_0x4de14a[_0x486c5c(0x197)](_0x4db486=>buildDbDirectoryName(_0x4db486['dbName'],_0x4db486[_0x486c5c(0x183)])===_0x551d6f);if(_0x2b37db[_0x486c5c(0x18e)]===0x1)return{'dbId':_0x2b37db[0x0][_0x486c5c(0x183)],'dbName':_0x2b37db[0x0][_0x486c5c(0x1b0)]};if(_0x2b37db['length']===0x0)throw CliErrors[_0x486c5c(0x1a0)](_0x486c5c(0x191)+_0x551d6f+_0x486c5c(0x1a9)+_0x5ae420['sqlCode']+'.');const _0x59297c=_0x2b37db[_0x486c5c(0x195)](_0x2f7802=>_0x2f7802[_0x486c5c(0x1b0)]+'\x20('+_0x2f7802['dbId']+')')[_0x486c5c(0x18a)](',\x20');throw CliErrors[_0x486c5c(0x1a0)]('Local\x20directory\x20\x22'+_0x551d6f+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x5ae420['sqlCode']+':\x20'+_0x59297c);}function parseExplicitDbDirectory(_0x5d8b3c){const _0x5d52a2=a177_0x44466a,_0x3c49a9=/^db-(\d+)$/[_0x5d52a2(0x19e)](_0x5d8b3c);if(!_0x3c49a9)return null;const _0x159452=Number(_0x3c49a9[0x1]);return Number['isFinite'](_0x159452)&&_0x159452>0x0?_0x159452:null;}
1
+ const a183_0x223c65=a183_0x16c1;(function(_0x3f1bfe,_0x52bbad){const _0x1fe06d=a183_0x16c1,_0x4d182e=_0x3f1bfe();while(!![]){try{const _0x1d4af2=-parseInt(_0x1fe06d(0x108))/0x1+parseInt(_0x1fe06d(0xe4))/0x2+parseInt(_0x1fe06d(0xf9))/0x3+-parseInt(_0x1fe06d(0x118))/0x4*(parseInt(_0x1fe06d(0xe9))/0x5)+-parseInt(_0x1fe06d(0x104))/0x6+parseInt(_0x1fe06d(0xfa))/0x7*(-parseInt(_0x1fe06d(0x101))/0x8)+-parseInt(_0x1fe06d(0xef))/0x9*(-parseInt(_0x1fe06d(0x100))/0xa);if(_0x1d4af2===_0x52bbad)break;else _0x4d182e['push'](_0x4d182e['shift']());}catch(_0x4c2eea){_0x4d182e['push'](_0x4d182e['shift']());}}}(a183_0xb7b4,0xf37cd));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x30193e,_0x752546,_0x382c37){const _0x10a070=a183_0x16c1,_0x2205e1=await scanLocalSqlQueries(_0x30193e),_0x2b1797=new Map();for(const _0x5d736e of _0x2205e1){if(_0x382c37&&_0x5d736e[_0x10a070(0x10c)]!==_0x382c37)continue;const _0x5b1f85=_0x2b1797[_0x10a070(0x115)](_0x5d736e[_0x10a070(0x10c)])??[];_0x5b1f85['push'](_0x5d736e),_0x2b1797[_0x10a070(0x110)](_0x5d736e[_0x10a070(0x10c)],_0x5b1f85);}if(_0x382c37&&!_0x2b1797[_0x10a070(0x102)](_0x382c37))throw CliErrors[_0x10a070(0x11c)](_0x10a070(0x124)+_0x382c37);const _0x4ae6a3=[];for(const [_0x191907,_0x41ab68]of _0x2b1797[_0x10a070(0xee)]()){if(_0x41ab68[_0x10a070(0x11b)]===0x1){_0x4ae6a3[_0x10a070(0xf0)](_0x41ab68[0x0]);continue;}const _0x8fcb24=_0x752546[_0x10a070(0x10d)][_0x191907],_0x22aca3=_0x8fcb24?.[_0x10a070(0xfe)],_0x303c84=_0x22aca3?_0x41ab68['filter'](_0x142a68=>_0x142a68['relativePath']!==_0x22aca3):_0x41ab68;if(_0x8fcb24&&_0x303c84[_0x10a070(0x11b)]===0x1){_0x4ae6a3[_0x10a070(0xf0)](_0x303c84[0x0]);continue;}throw CliErrors['validation']('Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20'+_0x191907+_0x10a070(0x10e));}return _0x4ae6a3;}function a183_0x16c1(_0x4849ad,_0x308a59){_0x4849ad=_0x4849ad-0xe3;const _0xb7b4b0=a183_0xb7b4();let _0x16c1a5=_0xb7b4b0[_0x4849ad];return _0x16c1a5;}export const sqlPush={'service':'sql','command':a183_0x223c65(0xf0),'description':'Push\x20local\x20SQL\x20files\x20to\x20remote','risk':a183_0x223c65(0xfb),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a183_0x223c65(0x116),'type':a183_0x223c65(0x126),'description':a183_0x223c65(0x121)}],async 'dryRun'(_0x4e9eee){const _0x2264c3=a183_0x223c65,_0x1a65cf=loadSqlProjectConfig(_0x4e9eee[_0x2264c3(0xfc)]),_0xc8e2cc=await readSqlLockFile(_0x1a65cf[_0x2264c3(0x11f)]),{appLock:_0x4de70d}=ensureSqlLockScope(_0xc8e2cc??createEmptySqlLock(),_0x4e9eee[_0x2264c3(0xfc)],_0x1a65cf[_0x2264c3(0x120)],_0x2264c3(0xf0)),_0x3b9455=await getTargetSqlQueries(_0x1a65cf,_0x4de70d,_0x4e9eee[_0x2264c3(0xf7)](_0x2264c3(0xeb))||undefined),_0x5bfa9c=[];for(const _0x5af6d2 of _0x3b9455){const _0xefda3f=await computeSqlFileHash(_0x5af6d2[_0x2264c3(0x107)]),_0x1facf8=_0x4de70d['sqls'][_0x5af6d2[_0x2264c3(0x10c)]],_0xc9058a=!!_0x1facf8&&(_0x1facf8[_0x2264c3(0xfe)]!==_0x5af6d2[_0x2264c3(0x119)]||!!_0x5af6d2['sqlName']&&_0x1facf8[_0x2264c3(0xf6)]!==_0x5af6d2[_0x2264c3(0xf6)]);if(!_0x4e9eee[_0x2264c3(0x10f)]('force')&&_0x1facf8&&_0x1facf8[_0x2264c3(0xf2)]===_0xefda3f&&!_0xc9058a)continue;_0x5bfa9c[_0x2264c3(0xf0)](_0x5af6d2[_0x2264c3(0x10c)]);}return{'method':_0x2264c3(0x112),'url':'/smartapi/custom/updateUserCustomSql','body':{'sqlCodes':_0x5bfa9c,'appCode':_0x4e9eee['appCode']},'description':_0x2264c3(0x122)+_0x5bfa9c[_0x2264c3(0x11b)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x4b482b){const _0x2dcd27=a183_0x223c65,_0xdb1ff0=loadSqlProjectConfig(_0x4b482b[_0x2dcd27(0xfc)]),_0x24d3a7=await readSqlLockFile(_0xdb1ff0['lockFilePath']),{lockData:_0x5d5023,appLock:_0x449c64}=ensureSqlLockScope(_0x24d3a7??createEmptySqlLock(),_0x4b482b['appCode'],_0xdb1ff0['sqlRoot'],_0x2dcd27(0xf0)),_0x4f3a26=await getTargetSqlQueries(_0xdb1ff0,_0x449c64,_0x4b482b[_0x2dcd27(0xf7)]('sqlcode')||undefined);if(_0x4f3a26['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x2dcd27(0xe3)};const _0x3ee9a7=[],_0x5152ba=[],_0x3749a8=[];for(const _0x258f71 of _0x4f3a26){const _0x18304e=_0x449c64[_0x2dcd27(0x10d)][_0x258f71[_0x2dcd27(0x10c)]];if(!_0x18304e){_0x3749a8[_0x2dcd27(0xf0)]({'sqlCode':_0x258f71['sqlCode'],'error':_0x2dcd27(0x11d)});continue;}try{const _0x15925d=await computeSqlFileHash(_0x258f71[_0x2dcd27(0x107)]),_0x57fb22=_0x18304e[_0x2dcd27(0xfe)]!==_0x258f71[_0x2dcd27(0x119)]||!!_0x258f71[_0x2dcd27(0xf6)]&&_0x18304e['sqlName']!==_0x258f71['sqlName'];if(!_0x4b482b[_0x2dcd27(0x10f)](_0x2dcd27(0x116))&&_0x18304e[_0x2dcd27(0xf2)]===_0x15925d&&!_0x57fb22){_0x5152ba[_0x2dcd27(0xf0)]({'sqlCode':_0x258f71['sqlCode'],'reason':_0x2dcd27(0x114)});continue;}if(_0x18304e[_0x2dcd27(0x105)]==null){_0x3749a8[_0x2dcd27(0xf0)]({'sqlCode':_0x258f71[_0x2dcd27(0x10c)],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x3fd1a7=await readFile(_0x258f71[_0x2dcd27(0x107)],_0x2dcd27(0x117)),_0x28c075=stripLocalSqlMetadata(_0x3fd1a7,_0x258f71[_0x2dcd27(0xf4)]),_0x4479de=_0x258f71['sqlName']||_0x18304e[_0x2dcd27(0xf6)],_0x1ec530=await resolveTargetDbBinding(_0x4b482b[_0x2dcd27(0xfc)],_0x258f71,_0x18304e),_0x386d93=await updateSqlQuery({'id':_0x18304e[_0x2dcd27(0x111)],'appCode':_0x4b482b[_0x2dcd27(0xfc)],'sqlCode':_0x258f71[_0x2dcd27(0x10c)],'sqlName':_0x4479de,'dbId':_0x1ec530['dbId'],'version':_0x18304e['version'],'sqlContent':_0x28c075,'sqlConfig':_0x18304e[_0x2dcd27(0xf3)]??undefined}),_0x4e3db4=_0x386d93[_0x2dcd27(0xed)]?await getDbName(_0x4b482b[_0x2dcd27(0xfc)],Number(_0x386d93['dbId']))[_0x2dcd27(0xfd)](()=>_0x1ec530[_0x2dcd27(0x11a)]):_0x1ec530[_0x2dcd27(0x11a)];_0x449c64[_0x2dcd27(0x10d)][_0x258f71['sqlCode']]={...buildSqlLockEntry(_0x386d93,_0x28c075,_0x15925d,{'dbName':_0x4e3db4}),'path':_0x258f71[_0x2dcd27(0x119)],'mode':_0x18304e[_0x2dcd27(0xf4)]},await archivePreviousSqlFileIfNeeded(_0xdb1ff0,_0x18304e[_0x2dcd27(0xfe)],_0x258f71['relativePath']),_0x3ee9a7[_0x2dcd27(0xf0)]({'sqlCode':_0x258f71['sqlCode'],'remoteId':_0x18304e[_0x2dcd27(0x111)]});}catch(_0x4e557e){_0x3749a8[_0x2dcd27(0xf0)]({'sqlCode':_0x258f71['sqlCode'],'error':_0x4e557e instanceof Error?_0x4e557e[_0x2dcd27(0xea)]:String(_0x4e557e)});}}return _0x449c64[_0x2dcd27(0xec)]=new Date()[_0x2dcd27(0x10a)](),await writeSqlLockFile(_0xdb1ff0[_0x2dcd27(0x11f)],_0x5d5023),{'ok':_0x3749a8[_0x2dcd27(0x11b)]===0x0,'data':{'pushed':_0x3ee9a7,'skipped':_0x5152ba,'failed':_0x3749a8},'message':_0x2dcd27(0x123)+_0x3ee9a7[_0x2dcd27(0x11b)]+_0x2dcd27(0x109)+_0x5152ba['length']+_0x2dcd27(0x125)+_0x3749a8[_0x2dcd27(0x11b)]+'\x20failed'};}};function a183_0xb7b4(){const _0x5ab0ee=['map','lockFilePath','sqlRoot','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','Would\x20push\x20','Push\x20complete:\x20','Local\x20SQL\x20not\x20found:\x20','\x20skipped,\x20','boolean','No\x20local\x20SQL\x20files\x20found.','1364026LYdQLW','filter','isFinite','No\x20database\x20matches\x20local\x20directory\x20\x22','startsWith','5TrNOVT','message','sqlcode','lastSync','dbId','entries','4329mcppGv','push','projectRoot','hash','sqlConfig','mode','exec','sqlName','str','join','975732YRYcAQ','7nrLdry','high-risk-write','appCode','catch','path','\x22\x20for\x20sqlCode\x20','98030QEUMFQ','14438016atwcMw','has','Local\x20directory\x20\x22','10358472wbVHJA','version','replace','filePath','394668mdJSER','\x20pushed,\x20','toISOString','sqlRootDir','sqlCode','sqls','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','bool','set','remoteId','POST','dbDirectory','unchanged','get','force','utf8','3197372SUyhfZ','relativePath','dbName','length','validation','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'];a183_0xb7b4=function(){return _0x5ab0ee;};return a183_0xb7b4();}async function archivePreviousSqlFileIfNeeded(_0x2289c3,_0x5eed2e,_0x3d8b92){const _0x41573d=a183_0x223c65;if(!_0x5eed2e||_0x5eed2e===_0x3d8b92)return;const _0x4f2dac=join(_0x2289c3[_0x41573d(0x10b)],_0x5eed2e);if(!await fileExists(_0x4f2dac))return;const _0x313b9d=await moveToTrash(_0x2289c3[_0x41573d(0xf1)],_0x2289c3['trashDir'],_0x4f2dac);await cleanupEmptyDirectories(dirname(_0x4f2dac),_0x2289c3['sqlRootDir']),void _0x313b9d;}async function moveToTrash(_0x315ecf,_0x1bf949,_0x2f173f){const _0x5324d7=a183_0x223c65,_0x1920b4=new Date()[_0x5324d7(0x10a)]()[_0x5324d7(0x106)](/[:.]/g,'-'),_0x518b73=relative(_0x315ecf,_0x2f173f),_0x4eff58=join(_0x1bf949,_0x1920b4,_0x518b73);return await mkdir(dirname(_0x4eff58),{'recursive':!![]}),await rename(_0x2f173f,_0x4eff58),_0x4eff58;}async function cleanupEmptyDirectories(_0x2c7f12,_0x3bf290){const _0x2a86d4=a183_0x223c65;let _0x5f1314=resolve(_0x2c7f12);const _0x46eaed=resolve(_0x3bf290);while(_0x5f1314[_0x2a86d4(0xe8)](''+_0x46eaed+sep)||_0x5f1314===_0x46eaed){if(_0x5f1314===_0x46eaed)return;try{const _0x2f0ef2=await readdir(_0x5f1314);if(_0x2f0ef2[_0x2a86d4(0x11b)]>0x0)return;await rmdir(_0x5f1314);}catch{return;}_0x5f1314=dirname(_0x5f1314);}}async function resolveTargetDbBinding(_0x2b72a2,_0x5988d4,_0x5ecd9c){const _0x4af97e=a183_0x223c65,_0x142887=_0x5988d4[_0x4af97e(0x113)];if(!_0x142887)return{'dbId':_0x5ecd9c[_0x4af97e(0xed)],'dbName':_0x5ecd9c[_0x4af97e(0x11a)]};const _0x5d8d41=buildDbDirectoryName(_0x5ecd9c['dbName'],_0x5ecd9c[_0x4af97e(0xed)]);if(_0x142887===_0x5d8d41)return{'dbId':_0x5ecd9c['dbId'],'dbName':_0x5ecd9c[_0x4af97e(0x11a)]};const _0x13702b=parseExplicitDbDirectory(_0x142887);if(_0x13702b!=null)return{'dbId':_0x13702b,'dbName':await getDbName(_0x2b72a2,_0x13702b)[_0x4af97e(0xfd)](()=>undefined)};const _0x55cfdc=await listDatabases(_0x2b72a2),_0x241a3b=_0x55cfdc[_0x4af97e(0xe5)](_0x1cef29=>buildDbDirectoryName(_0x1cef29['dbName'],_0x1cef29[_0x4af97e(0xed)])===_0x142887);if(_0x241a3b[_0x4af97e(0x11b)]===0x1)return{'dbId':_0x241a3b[0x0][_0x4af97e(0xed)],'dbName':_0x241a3b[0x0][_0x4af97e(0x11a)]};if(_0x241a3b[_0x4af97e(0x11b)]===0x0)throw CliErrors[_0x4af97e(0x11c)](_0x4af97e(0xe7)+_0x142887+_0x4af97e(0xff)+_0x5988d4[_0x4af97e(0x10c)]+'.');const _0x1e4c0a=_0x241a3b[_0x4af97e(0x11e)](_0x39c439=>_0x39c439[_0x4af97e(0x11a)]+'\x20('+_0x39c439[_0x4af97e(0xed)]+')')[_0x4af97e(0xf8)](',\x20');throw CliErrors['validation'](_0x4af97e(0x103)+_0x142887+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x5988d4[_0x4af97e(0x10c)]+':\x20'+_0x1e4c0a);}function parseExplicitDbDirectory(_0x12535e){const _0x317f72=a183_0x223c65,_0x3dd418=/^db-(\d+)$/[_0x317f72(0xf5)](_0x12535e);if(!_0x3dd418)return null;const _0x597aba=Number(_0x3dd418[0x1]);return Number[_0x317f72(0xe6)](_0x597aba)&&_0x597aba>0x0?_0x597aba:null;}
@@ -1 +1 @@
1
- const a178_0x424f65=a178_0x365e;(function(_0x4dc063,_0xe5d824){const _0x3db889=a178_0x365e,_0x4c863e=_0x4dc063();while(!![]){try{const _0x3179fc=-parseInt(_0x3db889(0x1d9))/0x1*(-parseInt(_0x3db889(0x1d3))/0x2)+-parseInt(_0x3db889(0x1dd))/0x3*(-parseInt(_0x3db889(0x1d0))/0x4)+parseInt(_0x3db889(0x1e0))/0x5*(-parseInt(_0x3db889(0x1d7))/0x6)+-parseInt(_0x3db889(0x1dc))/0x7*(parseInt(_0x3db889(0x1d2))/0x8)+parseInt(_0x3db889(0x1df))/0x9+parseInt(_0x3db889(0x1d6))/0xa*(-parseInt(_0x3db889(0x1d8))/0xb)+parseInt(_0x3db889(0x1d4))/0xc;if(_0x3179fc===_0xe5d824)break;else _0x4c863e['push'](_0x4c863e['shift']());}catch(_0x2f4874){_0x4c863e['push'](_0x4c863e['shift']());}}}(a178_0x25c8,0x50c69));import{CliErrors}from'../../errors.js';function a178_0x365e(_0x25839a,_0x4f34a2){_0x25839a=_0x25839a-0x1ca;const _0x25c858=a178_0x25c8();let _0x365e49=_0x25c858[_0x25839a];return _0x365e49;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a178_0x25c8(){const _0x397d26=['12xlTIWg','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.','40nOyjAP','7080UFgsHa','7981596hyBSai','validation','1790ZjCfSS','6WPugsN','36619ApOiUg','1WlsmnN','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','string','870121opZaGU','410853jZhCRf','sqlname','5188230dvCLmN','538665wZQlSZ','Query\x20description','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','Path\x20to\x20the\x20SQL\x20file','save','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update'];a178_0x25c8=function(){return _0x397d26;};return a178_0x25c8();}const SQL_SAVE_DEPRECATED_HINT=[a178_0x424f65(0x1cc),a178_0x424f65(0x1cb),a178_0x424f65(0x1d1)]['join']('\x0a');export const sqlSave={'service':'sql','command':a178_0x424f65(0x1ce),'description':a178_0x424f65(0x1cf),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[{'name':'file','type':'string','required':!![],'description':a178_0x424f65(0x1cd)},SQLCODE_FLAG_OPTIONAL,{'name':a178_0x424f65(0x1de),'type':a178_0x424f65(0x1db),'description':'SQL\x20query\x20display\x20name'},{'name':'db','type':'string','description':a178_0x424f65(0x1da)},{'name':'description','type':a178_0x424f65(0x1db),'description':a178_0x424f65(0x1ca)}],async 'validate'(){const _0x3d86c3=a178_0x424f65;throw CliErrors[_0x3d86c3(0x1d5)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x1a370c=a178_0x424f65;throw CliErrors[_0x1a370c(0x1d5)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a184_0x92c3a8=a184_0x1016;(function(_0x1165ee,_0x3e8c6f){const _0xa26156=a184_0x1016,_0x3461e1=_0x1165ee();while(!![]){try{const _0x55d123=parseInt(_0xa26156(0x80))/0x1+parseInt(_0xa26156(0x72))/0x2+-parseInt(_0xa26156(0x83))/0x3+-parseInt(_0xa26156(0x76))/0x4+-parseInt(_0xa26156(0x85))/0x5*(-parseInt(_0xa26156(0x74))/0x6)+-parseInt(_0xa26156(0x7d))/0x7+parseInt(_0xa26156(0x73))/0x8;if(_0x55d123===_0x3e8c6f)break;else _0x3461e1['push'](_0x3461e1['shift']());}catch(_0x368d6d){_0x3461e1['push'](_0x3461e1['shift']());}}}(a184_0x13a6,0xd026f));import{CliErrors}from'../../errors.js';function a184_0x13a6(){const _0x323f3a=['Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','1541064ADZIMc','10052128SnANOI','6qmQfPo','SQL\x20query\x20display\x20name','1568464LFbVNW','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','sqlname','string','validation','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.','7426832BeMNtk','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','sql','1274396Xqzzrh','join','description','2987997EhRcow','write','1190lzbdBQ','Path\x20to\x20the\x20SQL\x20file','file'];a184_0x13a6=function(){return _0x323f3a;};return a184_0x13a6();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a184_0x92c3a8(0x77),a184_0x92c3a8(0x7e),a184_0x92c3a8(0x7c)][a184_0x92c3a8(0x81)]('\x0a');function a184_0x1016(_0xe8bf5b,_0x2f92b8){_0xe8bf5b=_0xe8bf5b-0x70;const _0x13a6cf=a184_0x13a6();let _0x1016db=_0x13a6cf[_0xe8bf5b];return _0x1016db;}export const sqlSave={'service':a184_0x92c3a8(0x7f),'command':'save','description':a184_0x92c3a8(0x7b),'risk':a184_0x92c3a8(0x84),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a184_0x92c3a8(0x70),'type':'string','required':!![],'description':a184_0x92c3a8(0x86)},SQLCODE_FLAG_OPTIONAL,{'name':a184_0x92c3a8(0x78),'type':a184_0x92c3a8(0x79),'description':a184_0x92c3a8(0x75)},{'name':'db','type':a184_0x92c3a8(0x79),'description':a184_0x92c3a8(0x71)},{'name':a184_0x92c3a8(0x82),'type':'string','description':'Query\x20description'}],async 'validate'(){const _0x4c6d1d=a184_0x92c3a8;throw CliErrors[_0x4c6d1d(0x7a)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x38058c=a184_0x92c3a8;throw CliErrors[_0x38058c(0x7a)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- const a179_0x2ec01c=a179_0x4881;(function(_0x105271,_0x4c001f){const _0x4f158a=a179_0x4881,_0x4c5470=_0x105271();while(!![]){try{const _0x17f4aa=parseInt(_0x4f158a(0x174))/0x1+parseInt(_0x4f158a(0x182))/0x2+parseInt(_0x4f158a(0x17b))/0x3*(-parseInt(_0x4f158a(0x190))/0x4)+parseInt(_0x4f158a(0x175))/0x5*(parseInt(_0x4f158a(0x16f))/0x6)+-parseInt(_0x4f158a(0x183))/0x7*(-parseInt(_0x4f158a(0x194))/0x8)+parseInt(_0x4f158a(0x177))/0x9+parseInt(_0x4f158a(0x169))/0xa*(-parseInt(_0x4f158a(0x195))/0xb);if(_0x17f4aa===_0x4c001f)break;else _0x4c5470['push'](_0x4c5470['shift']());}catch(_0x58f9f3){_0x4c5470['push'](_0x4c5470['shift']());}}}(a179_0x406c,0xd6d35));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=a179_0x2ec01c(0x18a);export function buildSqlLockEntry(_0x962f29,_0xe33208,_0x3e5dc2,_0x59625b){const _0xe0e1f4=a179_0x2ec01c,_0x2894fe=detectSqlMode(_0xe33208);return{'path':buildSqlRelativePath(_0x962f29['sqlCode'],_0x962f29['sqlName'],_0x59625b?.[_0xe0e1f4(0x18d)],_0x2894fe,_0x962f29['dbId']),'hash':_0x3e5dc2,'remoteId':_0x962f29['id'],'version':_0x962f29[_0xe0e1f4(0x18c)],'dbId':Number(_0x962f29[_0xe0e1f4(0x178)]),'dbName':_0x59625b?.[_0xe0e1f4(0x18d)],'sqlName':_0x962f29[_0xe0e1f4(0x184)],'sqlConfig':_0x962f29['sqlConfig']??undefined,'mode':_0x2894fe};}function a179_0x406c(){const _0x5763dd=['990198QboOrt','dbId','sqls','join','147RSVqap','filter','stderr','apps','test','trim','syncedAt','986428qnwUyg','7kjrVIr','sqlName','sqlCode','fromEntries','split','entries','description','.rabetbase/sql','mode','version','dbName','sqlRoot','trimStart','96688Ahacua','length','close','question','11520176eIEjMJ','66hYUaDO','toLowerCase','endsWith','3164810mrInMx','<!--\x20@lovrabet.','mybatisXml','yes','stdin','lastSync','24Qxyfia','map','path','\x20-->','replace','1127029ZrmQSg','991190zoypmS','sqlContent'];a179_0x406c=function(){return _0x5763dd;};return a179_0x406c();}export function cloneSqlLockData(_0x444631){const _0x1bea1b=a179_0x2ec01c;return{'apps':Object[_0x1bea1b(0x186)](Object[_0x1bea1b(0x188)](_0x444631['apps'])[_0x1bea1b(0x170)](([_0x472d88,_0x52799c])=>[_0x472d88,{'sqlRoot':_0x52799c[_0x1bea1b(0x18e)],'lastSync':_0x52799c[_0x1bea1b(0x16e)],'sqls':{..._0x52799c[_0x1bea1b(0x179)]}}]))};}export function ensureRemoteSqlContent(_0x1e23b4){const _0x57f5c8=a179_0x2ec01c;return _0x1e23b4[_0x57f5c8(0x176)]??'';}export function buildLocalSqlFileContent(_0x24639f,_0x2808ae,_0x7c33ea){const _0x62b700=a179_0x2ec01c,_0x8fa226=_0x7c33ea?.[_0x62b700(0x18b)]??detectSqlMode(_0x2808ae),_0x12d634=stripLocalSqlMetadata(_0x2808ae,_0x8fa226)[_0x62b700(0x180)](),_0x4ae56d=[...buildMetadataHeaderLines({'sqlCode':_0x24639f[_0x62b700(0x185)],'sqlName':_0x24639f[_0x62b700(0x184)],'dbId':_0x24639f[_0x62b700(0x178)],'dbName':_0x7c33ea?.[_0x62b700(0x18d)],'mode':_0x8fa226,'syncedAt':_0x7c33ea?.[_0x62b700(0x181)],'description':_0x7c33ea?.[_0x62b700(0x189)]},_0x8fa226),'',_0x12d634],_0x337b49=_0x4ae56d[_0x62b700(0x17a)]('\x0a');return _0x337b49[_0x62b700(0x168)]('\x0a')?_0x337b49:_0x337b49+'\x0a';}export function stripLocalSqlMetadata(_0x2ea4a2,_0x1b775a){const _0x199eca=a179_0x2ec01c,_0x3486d5=_0x2ea4a2[_0x199eca(0x173)](/\r\n/g,'\x0a')[_0x199eca(0x187)]('\x0a'),_0x278549=[];let _0x5e268c=0x0;if(_0x1b775a===_0x199eca(0x16b))while(_0x5e268c<_0x3486d5[_0x199eca(0x191)]){const _0x3768c0=_0x3486d5[_0x5e268c]??'';if(/^\s*<!--\s*@lovrabet\./[_0x199eca(0x17f)](_0x3768c0)){_0x5e268c++;continue;}if(_0x3768c0['trim']()===''&&_0x5e268c>0x0){_0x5e268c++;continue;}break;}else while(_0x5e268c<_0x3486d5[_0x199eca(0x191)]){const _0x49c8c8=_0x3486d5[_0x5e268c]??'';if(/^\s*--\s*@lovrabet\./[_0x199eca(0x17f)](_0x49c8c8)){_0x5e268c++;continue;}if(_0x49c8c8[_0x199eca(0x180)]()===''&&_0x5e268c>0x0){_0x5e268c++;continue;}break;}for(;_0x5e268c<_0x3486d5['length'];_0x5e268c++){_0x278549['push'](_0x3486d5[_0x5e268c]);}return _0x278549[_0x199eca(0x17a)]('\x0a')[_0x199eca(0x18f)]();}export function resolveSqlMode(_0x37717b,_0x1f2864){const _0x1fb0e3=a179_0x2ec01c;if(_0x1f2864?.[_0x1fb0e3(0x18b)])return _0x1f2864[_0x1fb0e3(0x18b)];return detectSqlMode(_0x37717b);}export function resolveSqlFileName(_0x567dde,_0x55790f,_0x6915fe){const _0x1a6d13=a179_0x2ec01c;if(_0x6915fe?.[_0x1a6d13(0x171)])return _0x6915fe[_0x1a6d13(0x171)];if(_0x6915fe?.[_0x1a6d13(0x184)]||_0x6915fe?.[_0x1a6d13(0x18d)])return buildSqlRelativePath(_0x567dde,_0x6915fe?.[_0x1a6d13(0x184)],_0x6915fe?.['dbName'],resolveSqlMode(_0x55790f,_0x6915fe),_0x6915fe?.[_0x1a6d13(0x178)]);return buildDefaultSqlFileName(_0x567dde,resolveSqlMode(_0x55790f,_0x6915fe));}export function resolveSqlLocalDir(_0x2cc73e,_0x5ec47f){return join(_0x2cc73e,SQL_LOCAL_REL_DIR,_0x5ec47f);}export async function confirmForceOverwrite(_0xe898c2){const _0x13cf31=a179_0x2ec01c,_0x492dbd=createInterface({'input':process[_0x13cf31(0x16d)],'output':process[_0x13cf31(0x17d)]}),_0x48b395=await new Promise(_0x4c1ea=>{const _0x242903=_0x13cf31;_0x492dbd[_0x242903(0x193)](_0xe898c2+'\x20[y/N]\x20',_0x4c1ea);});return _0x492dbd[_0x13cf31(0x192)](),['y',_0x13cf31(0x16c)]['includes'](_0x48b395['trim']()[_0x13cf31(0x167)]());}export function findSqlLockScope(_0x5f3aac,_0x1091fb){const _0x36d5be=a179_0x2ec01c;return _0x5f3aac[_0x36d5be(0x17e)][_0x1091fb];}function a179_0x4881(_0x40d595,_0x45ffc6){_0x40d595=_0x40d595-0x167;const _0x406ca2=a179_0x406c();let _0x4881eb=_0x406ca2[_0x40d595];return _0x4881eb;}function buildMetadataHeaderLines(_0x2f50e5,_0x4dc543){const _0x5800b3=a179_0x2ec01c,_0x1ec598=[[_0x5800b3(0x185),_0x2f50e5[_0x5800b3(0x185)]],[_0x5800b3(0x184),_0x2f50e5[_0x5800b3(0x184)]],['dbId',_0x2f50e5[_0x5800b3(0x178)]],[_0x5800b3(0x18d),_0x2f50e5[_0x5800b3(0x18d)]],[_0x5800b3(0x18b),_0x2f50e5[_0x5800b3(0x18b)]],[_0x5800b3(0x181),_0x2f50e5['syncedAt']],[_0x5800b3(0x189),_0x2f50e5['description']]];if(_0x4dc543===_0x5800b3(0x16b))return _0x1ec598[_0x5800b3(0x17c)](([,_0x4de893])=>_0x4de893!==undefined&&_0x4de893!==null&&String(_0x4de893)['trim']()!=='')[_0x5800b3(0x170)](([_0xf3f70d,_0x264e05])=>_0x5800b3(0x16a)+_0xf3f70d+':\x20'+String(_0x264e05)+_0x5800b3(0x172));return _0x1ec598[_0x5800b3(0x17c)](([,_0x4f3b62])=>_0x4f3b62!==undefined&&_0x4f3b62!==null&&String(_0x4f3b62)['trim']()!=='')['map'](([_0x454860,_0x6a6454])=>'--\x20@lovrabet.'+_0x454860+':\x20'+String(_0x6a6454));}
1
+ (function(_0x4e92d2,_0xeaf26b){const _0x2cd4d5=a185_0x4a7b,_0x4896a0=_0x4e92d2();while(!![]){try{const _0x12ef98=parseInt(_0x2cd4d5(0x1df))/0x1*(parseInt(_0x2cd4d5(0x1f3))/0x2)+-parseInt(_0x2cd4d5(0x1ce))/0x3*(-parseInt(_0x2cd4d5(0x1dd))/0x4)+parseInt(_0x2cd4d5(0x1e0))/0x5+parseInt(_0x2cd4d5(0x1d2))/0x6*(-parseInt(_0x2cd4d5(0x1ec))/0x7)+-parseInt(_0x2cd4d5(0x1d0))/0x8+-parseInt(_0x2cd4d5(0x1e7))/0x9*(-parseInt(_0x2cd4d5(0x1db))/0xa)+parseInt(_0x2cd4d5(0x1ef))/0xb*(-parseInt(_0x2cd4d5(0x1e6))/0xc);if(_0x12ef98===_0xeaf26b)break;else _0x4896a0['push'](_0x4896a0['shift']());}catch(_0x442336){_0x4896a0['push'](_0x4896a0['shift']());}}}(a185_0x212d,0x925e9));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';function a185_0x212d(){const _0x39c6d9=['replace','2722896JItURT','trimStart','114654EePzKB','includes','mode','description','toLowerCase','join','apps','close','dbId','70bmvvze','stdin','1761244fsBfHg','lastSync','1067942PUGDml','1768030quAzbD','path','question','mybatisXml','<!--\x20@lovrabet.','sqlConfig','132UXkyir','760167VHMste','entries','fromEntries','test','version','259SRcwwY','length','sqlName','1246487KEgImq','split','dbName','map','2zCnMEf','trim','sqlCode','--\x20@lovrabet.','endsWith','\x20[y/N]\x20','syncedAt','6kctORR'];a185_0x212d=function(){return _0x39c6d9;};return a185_0x212d();}export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x117e89,_0x492a06,_0x53931b,_0x2f6765){const _0x383060=a185_0x4a7b,_0x484ad5=detectSqlMode(_0x492a06);return{'path':buildSqlRelativePath(_0x117e89[_0x383060(0x1f5)],_0x117e89[_0x383060(0x1ee)],_0x2f6765?.['dbName'],_0x484ad5,_0x117e89[_0x383060(0x1da)]),'hash':_0x53931b,'remoteId':_0x117e89['id'],'version':_0x117e89[_0x383060(0x1eb)],'dbId':Number(_0x117e89[_0x383060(0x1da)]),'dbName':_0x2f6765?.['dbName'],'sqlName':_0x117e89[_0x383060(0x1ee)],'sqlConfig':_0x117e89[_0x383060(0x1e5)]??undefined,'mode':_0x484ad5};}export function cloneSqlLockData(_0x39865b){const _0x4c2eb3=a185_0x4a7b;return{'apps':Object[_0x4c2eb3(0x1e9)](Object[_0x4c2eb3(0x1e8)](_0x39865b['apps'])[_0x4c2eb3(0x1f2)](([_0x875781,_0x4215b5])=>[_0x875781,{'sqlRoot':_0x4215b5['sqlRoot'],'lastSync':_0x4215b5[_0x4c2eb3(0x1de)],'sqls':{..._0x4215b5['sqls']}}]))};}export function ensureRemoteSqlContent(_0x256d22){return _0x256d22['sqlContent']??'';}export function buildLocalSqlFileContent(_0x123fdb,_0x296f0e,_0x1a83c6){const _0x35be81=a185_0x4a7b,_0x49ea3b=_0x1a83c6?.['mode']??detectSqlMode(_0x296f0e),_0x23eff5=stripLocalSqlMetadata(_0x296f0e,_0x49ea3b)[_0x35be81(0x1f4)](),_0x18e33a=[...buildMetadataHeaderLines({'sqlCode':_0x123fdb['sqlCode'],'sqlName':_0x123fdb[_0x35be81(0x1ee)],'dbId':_0x123fdb[_0x35be81(0x1da)],'dbName':_0x1a83c6?.[_0x35be81(0x1f1)],'mode':_0x49ea3b,'syncedAt':_0x1a83c6?.['syncedAt'],'description':_0x1a83c6?.[_0x35be81(0x1d5)]},_0x49ea3b),'',_0x23eff5],_0x4f36e1=_0x18e33a[_0x35be81(0x1d7)]('\x0a');return _0x4f36e1[_0x35be81(0x1f7)]('\x0a')?_0x4f36e1:_0x4f36e1+'\x0a';}function a185_0x4a7b(_0x325e53,_0x4529b2){_0x325e53=_0x325e53-0x1cd;const _0x212d53=a185_0x212d();let _0x4a7b44=_0x212d53[_0x325e53];return _0x4a7b44;}export function stripLocalSqlMetadata(_0x42c156,_0x46935f){const _0x1820cc=a185_0x4a7b,_0x19e7b2=_0x42c156[_0x1820cc(0x1cf)](/\r\n/g,'\x0a')[_0x1820cc(0x1f0)]('\x0a'),_0x5b2c73=[];let _0xed9ccd=0x0;if(_0x46935f===_0x1820cc(0x1e3))while(_0xed9ccd<_0x19e7b2[_0x1820cc(0x1ed)]){const _0x3b9fc5=_0x19e7b2[_0xed9ccd]??'';if(/^\s*<!--\s*@lovrabet\./[_0x1820cc(0x1ea)](_0x3b9fc5)){_0xed9ccd++;continue;}if(_0x3b9fc5[_0x1820cc(0x1f4)]()===''&&_0xed9ccd>0x0){_0xed9ccd++;continue;}break;}else while(_0xed9ccd<_0x19e7b2['length']){const _0x73f04=_0x19e7b2[_0xed9ccd]??'';if(/^\s*--\s*@lovrabet\./['test'](_0x73f04)){_0xed9ccd++;continue;}if(_0x73f04[_0x1820cc(0x1f4)]()===''&&_0xed9ccd>0x0){_0xed9ccd++;continue;}break;}for(;_0xed9ccd<_0x19e7b2[_0x1820cc(0x1ed)];_0xed9ccd++){_0x5b2c73['push'](_0x19e7b2[_0xed9ccd]);}return _0x5b2c73['join']('\x0a')[_0x1820cc(0x1d1)]();}export function resolveSqlMode(_0x5c21dd,_0x487e1a){const _0x4f7450=a185_0x4a7b;if(_0x487e1a?.[_0x4f7450(0x1d4)])return _0x487e1a[_0x4f7450(0x1d4)];return detectSqlMode(_0x5c21dd);}export function resolveSqlFileName(_0x3bd88c,_0x1ccad8,_0x406f9e){const _0x3eb9d0=a185_0x4a7b;if(_0x406f9e?.[_0x3eb9d0(0x1e1)])return _0x406f9e[_0x3eb9d0(0x1e1)];if(_0x406f9e?.[_0x3eb9d0(0x1ee)]||_0x406f9e?.['dbName'])return buildSqlRelativePath(_0x3bd88c,_0x406f9e?.['sqlName'],_0x406f9e?.[_0x3eb9d0(0x1f1)],resolveSqlMode(_0x1ccad8,_0x406f9e),_0x406f9e?.['dbId']);return buildDefaultSqlFileName(_0x3bd88c,resolveSqlMode(_0x1ccad8,_0x406f9e));}export function resolveSqlLocalDir(_0x53a71e,_0x5b3f60){return join(_0x53a71e,SQL_LOCAL_REL_DIR,_0x5b3f60);}export async function confirmForceOverwrite(_0x43342e){const _0x4727cd=a185_0x4a7b,_0x1cc83c=createInterface({'input':process[_0x4727cd(0x1dc)],'output':process['stderr']}),_0x4330f4=await new Promise(_0x1cf2bd=>{const _0x182fc4=_0x4727cd;_0x1cc83c[_0x182fc4(0x1e2)](_0x43342e+_0x182fc4(0x1f8),_0x1cf2bd);});return _0x1cc83c[_0x4727cd(0x1d9)](),['y','yes'][_0x4727cd(0x1d3)](_0x4330f4[_0x4727cd(0x1f4)]()[_0x4727cd(0x1d6)]());}export function findSqlLockScope(_0xb4ab26,_0x6a181f){const _0x288130=a185_0x4a7b;return _0xb4ab26[_0x288130(0x1d8)][_0x6a181f];}function buildMetadataHeaderLines(_0x4e0f29,_0x3dab0a){const _0x160b56=a185_0x4a7b,_0xcc9b8b=[[_0x160b56(0x1f5),_0x4e0f29[_0x160b56(0x1f5)]],['sqlName',_0x4e0f29[_0x160b56(0x1ee)]],[_0x160b56(0x1da),_0x4e0f29[_0x160b56(0x1da)]],['dbName',_0x4e0f29[_0x160b56(0x1f1)]],['mode',_0x4e0f29[_0x160b56(0x1d4)]],[_0x160b56(0x1cd),_0x4e0f29[_0x160b56(0x1cd)]],[_0x160b56(0x1d5),_0x4e0f29[_0x160b56(0x1d5)]]];if(_0x3dab0a===_0x160b56(0x1e3))return _0xcc9b8b['filter'](([,_0x5c52bd])=>_0x5c52bd!==undefined&&_0x5c52bd!==null&&String(_0x5c52bd)[_0x160b56(0x1f4)]()!=='')['map'](([_0x184d0f,_0x575068])=>_0x160b56(0x1e4)+_0x184d0f+':\x20'+String(_0x575068)+'\x20-->');return _0xcc9b8b['filter'](([,_0x195bb1])=>_0x195bb1!==undefined&&_0x195bb1!==null&&String(_0x195bb1)[_0x160b56(0x1f4)]()!=='')[_0x160b56(0x1f2)](([_0x49b80b,_0x2eb65c])=>_0x160b56(0x1f6)+_0x49b80b+':\x20'+String(_0x2eb65c));}
@@ -1 +1 @@
1
- function a180_0x281a(){const _0x17bfab=['12080TqZppm','status','paging','sql','has','805dUmNTS','keys','\x20missing,\x20','sqlName','sqlCode','relativePath','push','10490HTzzah','appCode','length','574249NWjXsk','4RFqWcP','remote','map','\x20remote-only','1836882LzzlzC','boolean','lockKey','331490UIejiW','2cbrInw','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','sqls','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','sqlRoot','2196303SdpVIv','bool','\x20added,\x20','read','tableData','118593jZxdMM','\x20unchanged','18106hPSnRO','totalCount','path'];a180_0x281a=function(){return _0x17bfab;};return a180_0x281a();}const a180_0x247759=a180_0x5a8f;(function(_0x338817,_0x2dc045){const _0x254f6d=a180_0x5a8f,_0x4a56b7=_0x338817();while(!![]){try{const _0x5d61ee=-parseInt(_0x254f6d(0x112))/0x1+parseInt(_0x254f6d(0x11b))/0x2*(-parseInt(_0x254f6d(0xf9))/0x3)+parseInt(_0x254f6d(0x113))/0x4*(parseInt(_0x254f6d(0x11a))/0x5)+-parseInt(_0x254f6d(0x117))/0x6+parseInt(_0x254f6d(0x108))/0x7*(parseInt(_0x254f6d(0x103))/0x8)+parseInt(_0x254f6d(0xfe))/0x9+parseInt(_0x254f6d(0x10f))/0xa*(parseInt(_0x254f6d(0x100))/0xb);if(_0x5d61ee===_0x2dc045)break;else _0x4a56b7['push'](_0x4a56b7['shift']());}catch(_0x487d49){_0x4a56b7['push'](_0x4a56b7['shift']());}}}(a180_0x281a,0x59ab2));import{listSqlQueries}from'../../core/api-client.js';function a180_0x5a8f(_0x49a2f4,_0x1b195b){_0x49a2f4=_0x49a2f4-0xf6;const _0x281adf=a180_0x281a();let _0x5a8f06=_0x281adf[_0x49a2f4];return _0x5a8f06;}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(_0x19c596){const _0x2bd336=a180_0x5a8f,_0x4f157e=[];let _0x1470b1=0x1;while(!![]){const _0x1be39f=await listSqlQueries(_0x19c596,{'currentPage':_0x1470b1,'pageSize':PAGE_SIZE}),_0x5d929d=_0x1be39f[_0x2bd336(0xfd)]??[];_0x4f157e['push'](..._0x5d929d['map'](_0x2df89c=>_0x2df89c[_0x2bd336(0x10c)]));if(_0x5d929d['length']===0x0)break;const _0x206fa7=_0x1be39f[_0x2bd336(0x105)]?.[_0x2bd336(0x101)];if(_0x206fa7!=null?_0x4f157e[_0x2bd336(0x111)]>=_0x206fa7:_0x5d929d[_0x2bd336(0x111)]<PAGE_SIZE)break;_0x1470b1++;}return _0x4f157e;}export const sqlStatus={'service':a180_0x247759(0x106),'command':a180_0x247759(0x104),'description':a180_0x247759(0xf7),'risk':a180_0x247759(0xfc),'flags':[{'name':a180_0x247759(0x114),'type':a180_0x247759(0x118),'description':a180_0x247759(0x11c)}],async 'execute'(_0x536091){const _0x1cc470=a180_0x247759,_0x3253d7=loadSqlProjectConfig(_0x536091[_0x1cc470(0x110)]),_0x2ccdf0=await readSqlLockFile(_0x3253d7['lockFilePath']),{appLock:_0x5c67ec}=ensureSqlLockScope(_0x2ccdf0??createEmptySqlLock(),_0x3253d7[_0x1cc470(0x110)],_0x3253d7[_0x1cc470(0xf8)],_0x1cc470(0x104)),_0x104b3b=await scanLocalSqlQueries(_0x3253d7),_0x3d422d=[],_0x3d89e3=[],_0x3ad76a=[],_0x12a0aa=[],_0x2a92dc=new Set(_0x104b3b[_0x1cc470(0x115)](_0x18ebcf=>_0x18ebcf[_0x1cc470(0x119)]));for(const _0x45dbe1 of _0x104b3b){const _0x331db3=await computeSqlFileHash(_0x45dbe1['filePath']),_0x4e882e=_0x5c67ec['sqls'][_0x45dbe1['lockKey']],_0x131058=!!_0x4e882e&&_0x4e882e[_0x1cc470(0x102)]!==_0x45dbe1[_0x1cc470(0x10d)],_0x535d9d=!!_0x4e882e&&!!_0x45dbe1[_0x1cc470(0x10b)]&&_0x4e882e[_0x1cc470(0x10b)]!==_0x45dbe1[_0x1cc470(0x10b)];if(!_0x4e882e)_0x3d422d[_0x1cc470(0x10e)](_0x45dbe1[_0x1cc470(0x119)]);else _0x4e882e['hash']!==_0x331db3||_0x131058||_0x535d9d?_0x3d89e3['push'](_0x45dbe1['lockKey']):_0x3ad76a['push'](_0x45dbe1[_0x1cc470(0x119)]);}for(const _0x25667d of Object[_0x1cc470(0x109)](_0x5c67ec[_0x1cc470(0xf6)])){!_0x2a92dc[_0x1cc470(0x107)](_0x25667d)&&_0x12a0aa[_0x1cc470(0x10e)](_0x25667d);}const _0x23d12c=[];if(_0x536091[_0x1cc470(0xfa)]('remote')){const _0x452fe7=await fetchAllSqlCodes(_0x536091[_0x1cc470(0x110)]);for(const _0x16c79f of _0x452fe7){!_0x2a92dc[_0x1cc470(0x107)](_0x16c79f)&&!_0x5c67ec[_0x1cc470(0xf6)][_0x16c79f]&&_0x23d12c[_0x1cc470(0x10e)](_0x16c79f);}}const _0x3807c8=_0x3d422d['length']===0x0&&_0x3d89e3[_0x1cc470(0x111)]===0x0&&_0x12a0aa[_0x1cc470(0x111)]===0x0&&_0x23d12c[_0x1cc470(0x111)]===0x0;return{'ok':!![],'data':{'added':_0x3d422d,'modified':_0x3d89e3,'missing':_0x12a0aa,'unchanged':_0x3ad76a,'remoteOnly':_0x23d12c},'message':_0x3807c8?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x3d422d[_0x1cc470(0x111)]+_0x1cc470(0xfb)+_0x3d89e3[_0x1cc470(0x111)]+'\x20modified,\x20'+_0x12a0aa['length']+_0x1cc470(0x10a)+_0x3ad76a[_0x1cc470(0x111)]+_0x1cc470(0xff)+(_0x23d12c[_0x1cc470(0x111)]>0x0?',\x20'+_0x23d12c[_0x1cc470(0x111)]+_0x1cc470(0x116):'')};}};
1
+ const a186_0x55e749=a186_0xfa0c;(function(_0x448cc1,_0x22a5c2){const _0x1cc192=a186_0xfa0c,_0x58477d=_0x448cc1();while(!![]){try{const _0x466028=parseInt(_0x1cc192(0x106))/0x1*(-parseInt(_0x1cc192(0xfa))/0x2)+-parseInt(_0x1cc192(0x10d))/0x3*(parseInt(_0x1cc192(0x107))/0x4)+-parseInt(_0x1cc192(0x119))/0x5*(parseInt(_0x1cc192(0x101))/0x6)+-parseInt(_0x1cc192(0x111))/0x7*(parseInt(_0x1cc192(0x100))/0x8)+parseInt(_0x1cc192(0x10b))/0x9+parseInt(_0x1cc192(0x10f))/0xa+parseInt(_0x1cc192(0x113))/0xb;if(_0x466028===_0x22a5c2)break;else _0x58477d['push'](_0x58477d['shift']());}catch(_0x45b4ed){_0x58477d['push'](_0x58477d['shift']());}}}(a186_0x46ab,0xa66db));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';function a186_0x46ab(){const _0x595825=['filePath','remote','lockKey','683Hmirzp','50308BdgBit','map','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','\x20unchanged','8118468mXzAiG','sql','87chdfJu','\x20missing,\x20','284500HgmeVQ','hash','625709toaRcv','sqlCode','32446051uKpTfm','relativePath','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','\x20modified,\x20','length','has','244880oDdNEn','status','sqlName','boolean','sqlRoot','totalCount','sqls','3124juifKZ','appCode','lockFilePath','push','read','\x20added,\x20','88asQhsk','96GKMTwm','tableData'];a186_0x46ab=function(){return _0x595825;};return a186_0x46ab();}const PAGE_SIZE=0x64;function a186_0xfa0c(_0x225df9,_0x5a217b){_0x225df9=_0x225df9-0xf9;const _0x46ab45=a186_0x46ab();let _0xfa0c0f=_0x46ab45[_0x225df9];return _0xfa0c0f;}async function fetchAllSqlCodes(_0x3ae48a){const _0x13fdbe=a186_0xfa0c,_0x39c788=[];let _0x28c7f6=0x1;while(!![]){const _0x4994ad=await listSqlQueries(_0x3ae48a,{'currentPage':_0x28c7f6,'pageSize':PAGE_SIZE}),_0x5e47e8=_0x4994ad[_0x13fdbe(0x102)]??[];_0x39c788[_0x13fdbe(0xfd)](..._0x5e47e8[_0x13fdbe(0x108)](_0x19c17a=>_0x19c17a[_0x13fdbe(0x112)]));if(_0x5e47e8[_0x13fdbe(0x117)]===0x0)break;const _0x3ccf66=_0x4994ad['paging']?.[_0x13fdbe(0x11e)];if(_0x3ccf66!=null?_0x39c788['length']>=_0x3ccf66:_0x5e47e8['length']<PAGE_SIZE)break;_0x28c7f6++;}return _0x39c788;}export const sqlStatus={'service':a186_0x55e749(0x10c),'command':a186_0x55e749(0x11a),'description':a186_0x55e749(0x115),'risk':a186_0x55e749(0xfe),'flags':[{'name':a186_0x55e749(0x104),'type':a186_0x55e749(0x11c),'description':a186_0x55e749(0x109)}],async 'execute'(_0x1ce451){const _0xd8e4ee=a186_0x55e749,_0x330b63=loadSqlProjectConfig(_0x1ce451[_0xd8e4ee(0xfb)]),_0x3b1df7=await readSqlLockFile(_0x330b63[_0xd8e4ee(0xfc)]),{appLock:_0x5dc3ca}=ensureSqlLockScope(_0x3b1df7??createEmptySqlLock(),_0x330b63[_0xd8e4ee(0xfb)],_0x330b63[_0xd8e4ee(0x11d)],_0xd8e4ee(0x11a)),_0x35492c=await scanLocalSqlQueries(_0x330b63),_0x521637=[],_0x6df125=[],_0x5d0953=[],_0x3ca7f2=[],_0x2719b3=new Set(_0x35492c[_0xd8e4ee(0x108)](_0x36ba47=>_0x36ba47[_0xd8e4ee(0x105)]));for(const _0x50e715 of _0x35492c){const _0x3d4c0a=await computeSqlFileHash(_0x50e715[_0xd8e4ee(0x103)]),_0x148eb5=_0x5dc3ca['sqls'][_0x50e715[_0xd8e4ee(0x105)]],_0x1a9ec6=!!_0x148eb5&&_0x148eb5['path']!==_0x50e715[_0xd8e4ee(0x114)],_0x2eadac=!!_0x148eb5&&!!_0x50e715[_0xd8e4ee(0x11b)]&&_0x148eb5['sqlName']!==_0x50e715[_0xd8e4ee(0x11b)];if(!_0x148eb5)_0x521637[_0xd8e4ee(0xfd)](_0x50e715['lockKey']);else _0x148eb5[_0xd8e4ee(0x110)]!==_0x3d4c0a||_0x1a9ec6||_0x2eadac?_0x6df125[_0xd8e4ee(0xfd)](_0x50e715[_0xd8e4ee(0x105)]):_0x5d0953[_0xd8e4ee(0xfd)](_0x50e715[_0xd8e4ee(0x105)]);}for(const _0x4cca01 of Object['keys'](_0x5dc3ca[_0xd8e4ee(0xf9)])){!_0x2719b3[_0xd8e4ee(0x118)](_0x4cca01)&&_0x3ca7f2[_0xd8e4ee(0xfd)](_0x4cca01);}const _0x59f065=[];if(_0x1ce451['bool']('remote')){const _0x4d6540=await fetchAllSqlCodes(_0x1ce451['appCode']);for(const _0x5ce3e7 of _0x4d6540){!_0x2719b3['has'](_0x5ce3e7)&&!_0x5dc3ca[_0xd8e4ee(0xf9)][_0x5ce3e7]&&_0x59f065[_0xd8e4ee(0xfd)](_0x5ce3e7);}}const _0x456fd4=_0x521637['length']===0x0&&_0x6df125[_0xd8e4ee(0x117)]===0x0&&_0x3ca7f2[_0xd8e4ee(0x117)]===0x0&&_0x59f065[_0xd8e4ee(0x117)]===0x0;return{'ok':!![],'data':{'added':_0x521637,'modified':_0x6df125,'missing':_0x3ca7f2,'unchanged':_0x5d0953,'remoteOnly':_0x59f065},'message':_0x456fd4?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x521637[_0xd8e4ee(0x117)]+_0xd8e4ee(0xff)+_0x6df125[_0xd8e4ee(0x117)]+_0xd8e4ee(0x116)+_0x3ca7f2[_0xd8e4ee(0x117)]+_0xd8e4ee(0x10e)+_0x5d0953[_0xd8e4ee(0x117)]+_0xd8e4ee(0x10a)+(_0x59f065[_0xd8e4ee(0x117)]>0x0?',\x20'+_0x59f065['length']+'\x20remote-only':'')};}};
@@ -1 +1 @@
1
- const a181_0x4a50cf=a181_0x1920;(function(_0x37a84f,_0x14ef2d){const _0x53682c=a181_0x1920,_0xb87618=_0x37a84f();while(!![]){try{const _0x1fa0d3=-parseInt(_0x53682c(0x1e3))/0x1*(-parseInt(_0x53682c(0x1e9))/0x2)+parseInt(_0x53682c(0x1cb))/0x3+-parseInt(_0x53682c(0x1e1))/0x4*(parseInt(_0x53682c(0x1d3))/0x5)+parseInt(_0x53682c(0x1eb))/0x6+-parseInt(_0x53682c(0x200))/0x7*(parseInt(_0x53682c(0x1f3))/0x8)+parseInt(_0x53682c(0x1c2))/0x9+parseInt(_0x53682c(0x1c4))/0xa*(-parseInt(_0x53682c(0x1da))/0xb);if(_0x1fa0d3===_0x14ef2d)break;else _0xb87618['push'](_0xb87618['shift']());}catch(_0x5ec402){_0xb87618['push'](_0xb87618['shift']());}}}(a181_0x5acf,0xa6e7e));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';function a181_0x5acf(){const _0x195ed7=['map','sql','tableName','joinAudit','cwd','Audit\x20top-level\x20JOIN\x20equality\x20predicates\x20against\x20dataset\x20index\x20metadata','File\x20not\x20found:\x20','8982057ScgetZ','index_columns','appCode','flagMissing','validation','reason','length','boolean','7252758euePpx','toLowerCase','10ZGxnCW','str','name','primary','tables','\x22\x20not\x20found\x20in\x20any\x20dataset','dataset','1464123SXZKRX','read','trim','valid','pkField','utf-8','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','check-indexes','140NFuBwb','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','file','dbtableConfig','split','index_type','schema:','10068729BRDHzO','validate','Provide\x20--file\x20or\x20--sql','bool','indexes','SQL\x20schema\x20validation','sqlType','9304jMpnrg','parameters','466171BjEOaI','push','Table\x20\x22','flatMap','--check-indexes\x20requires\x20--schemas.','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','2EkvXDt','string','7123140fHDnWi','fields','columnNames','isSelectOnly','\x22\x20not\x20found\x20or\x20not\x20accessible','schemaWarnings','isArray','schemas','8dKUfRO','find','filter','type','unshift','columns'];a181_0x5acf=function(){return _0x195ed7;};return a181_0x5acf();}import{auditSqlJoinIndexes}from'../../core/sql-index-auditor.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';function a181_0x1920(_0x4f6e46,_0x35541d){_0x4f6e46=_0x4f6e46-0x1bc;const _0x5acfa9=a181_0x5acf();let _0x1920a2=_0x5acfa9[_0x4f6e46];return _0x1920a2;}import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':a181_0x4a50cf(0x1fa),'command':a181_0x4a50cf(0x1db),'description':a181_0x4a50cf(0x1e8),'risk':a181_0x4a50cf(0x1cc),'flags':[{'name':a181_0x4a50cf(0x1d5),'type':a181_0x4a50cf(0x1ea),'description':'Path\x20to\x20the\x20SQL\x20file\x20to\x20validate'},{'name':a181_0x4a50cf(0x1fa),'type':'string','description':a181_0x4a50cf(0x1d1)},{'name':a181_0x4a50cf(0x1f2),'type':a181_0x4a50cf(0x1ea),'description':a181_0x4a50cf(0x1d4)},{'name':'check-indexes','type':a181_0x4a50cf(0x1c1),'description':a181_0x4a50cf(0x1fe)}],async 'execute'(_0x2538a0){const _0x5b6f55=a181_0x4a50cf,_0x48dd89=_0x2538a0[_0x5b6f55(0x1c5)](_0x5b6f55(0x1d5)),_0x4b722c=_0x2538a0['str'](_0x5b6f55(0x1fa)),_0x3de422=_0x2538a0[_0x5b6f55(0x1c5)](_0x5b6f55(0x1f2)),_0x5ccc85=_0x2538a0[_0x5b6f55(0x1dd)](_0x5b6f55(0x1d2));if(!_0x48dd89&&!_0x4b722c)throw CliErrors[_0x5b6f55(0x1bd)](_0x5b6f55(0x1d5),_0x5b6f55(0x1dc));if(_0x5ccc85&&!_0x3de422)throw CliErrors['validation'](_0x5b6f55(0x1e7));let _0x2a6f25;if(_0x48dd89){const _0x1faadd=resolve(process[_0x5b6f55(0x1fd)](),_0x48dd89);if(!existsSync(_0x1faadd))throw CliErrors[_0x5b6f55(0x1be)](_0x5b6f55(0x1ff)+_0x1faadd);_0x2a6f25=readFileSync(_0x1faadd,_0x5b6f55(0x1d0));}else _0x2a6f25=_0x4b722c;const _0xaa079f=validateSql(_0x2a6f25),_0x47010d={'valid':_0xaa079f[_0x5b6f55(0x1ce)],'sqlType':_0xaa079f[_0x5b6f55(0x1e0)][_0x5b6f55(0x1f6)],'isSelectOnly':_0xaa079f[_0x5b6f55(0x1e0)][_0x5b6f55(0x1ee)],'isDangerous':_0xaa079f[_0x5b6f55(0x1e0)]['isDangerous'],'tables':_0xaa079f[_0x5b6f55(0x1c8)],'parameters':_0xaa079f[_0x5b6f55(0x1e2)],'message':_0xaa079f['message']};_0xaa079f['sqlType'][_0x5b6f55(0x1bf)]&&(_0x47010d[_0x5b6f55(0x1bf)]=_0xaa079f[_0x5b6f55(0x1e0)][_0x5b6f55(0x1bf)]);if(_0x3de422&&_0xaa079f[_0x5b6f55(0x1ce)]){const _0x1d4b2d=_0x3de422['split'](',')[_0x5b6f55(0x1f9)](_0x408105=>_0x408105[_0x5b6f55(0x1cd)]())[_0x5b6f55(0x1f5)](Boolean),_0x3f10e4=[],_0x46bb28=[],_0x246038=filterDbTableBackedDatasets(await listDatasets(_0x2538a0[_0x5b6f55(0x1bc)])),_0x3ac533=new Map(_0x246038[_0x5b6f55(0x1f9)](_0x5b176d=>[_0x5b176d[_0x5b6f55(0x1d6)]?.[_0x5b6f55(0x1fb)]?.[_0x5b6f55(0x1c3)](),_0x5b176d]));for(const _0x2001d8 of _0xaa079f[_0x5b6f55(0x1c8)]){const _0x202af9=_0x3ac533['get'](_0x2001d8[_0x5b6f55(0x1c3)]());!_0x202af9&&_0x3f10e4[_0x5b6f55(0x1e4)](_0x5b6f55(0x1e5)+_0x2001d8+_0x5b6f55(0x1c9));}for(const _0x9c2d18 of _0x1d4b2d){let _0x5a8b7b;try{_0x5a8b7b=await getDatasetDetail(_0x9c2d18);}catch{_0x3f10e4[_0x5b6f55(0x1e4)]('Dataset\x20\x22'+_0x9c2d18+_0x5b6f55(0x1ef));continue;}assertDatasetIsDbTableBacked(_0x5a8b7b,_0x5b6f55(0x1df));const _0x16adce=Array['isArray'](_0x5a8b7b[_0x5b6f55(0x1ec)])?_0x5a8b7b[_0x5b6f55(0x1ec)]:[],_0x4e392f=new Set(_0x16adce[_0x5b6f55(0x1f9)](_0x54ab40=>_0x54ab40[_0x5b6f55(0x1c6)]?.[_0x5b6f55(0x1c3)]())),_0x1440d9=_0x5a8b7b[_0x5b6f55(0x1d6)]?.[_0x5b6f55(0x1fb)]||_0x5a8b7b[_0x5b6f55(0x1fb)]||_0x9c2d18;_0x47010d[_0x5b6f55(0x1d9)+_0x1440d9]={'code':_0x9c2d18,'tableName':_0x1440d9,'fieldCount':_0x4e392f['size'],'fields':Array['from'](_0x4e392f)};if(_0x5ccc85){const _0x30b59e=normalizeDatasetIndexes(_0x5a8b7b);_0x46bb28[_0x5b6f55(0x1e4)]({'tableName':_0x1440d9,..._0x30b59e});}}_0x3f10e4[_0x5b6f55(0x1c0)]>0x0&&(_0x47010d[_0x5b6f55(0x1f0)]=_0x3f10e4),_0x5ccc85&&(_0x47010d[_0x5b6f55(0x1fc)]=auditSqlJoinIndexes(_0x2a6f25,_0x46bb28));}return{'ok':_0xaa079f['valid'],'data':_0x47010d,'message':_0xaa079f['message']};}};function normalizeDatasetIndexes(_0x5cdec7){const _0x414113=a181_0x4a50cf,_0x1596e0=Array[_0x414113(0x1f1)](_0x5cdec7?.[_0x414113(0x1ca)]?.[_0x414113(0x1de)])?_0x5cdec7[_0x414113(0x1ca)][_0x414113(0x1de)]:Array['isArray'](_0x5cdec7?.[_0x414113(0x1de)])?_0x5cdec7['indexes']:[],_0x29e3ef=_0x1596e0[_0x414113(0x1e6)](_0x29c0fb=>{const _0xcc637e=_0x414113,_0x669925=Array[_0xcc637e(0x1f1)](_0x29c0fb?.['index_columns'])?_0x29c0fb[_0xcc637e(0x201)]:Array[_0xcc637e(0x1f1)](_0x29c0fb?.[_0xcc637e(0x1ed)])?_0x29c0fb[_0xcc637e(0x1ed)]:Array[_0xcc637e(0x1f1)](_0x29c0fb?.[_0xcc637e(0x1f8)])?_0x29c0fb[_0xcc637e(0x1f8)]:[],_0x130518=_0x669925[_0xcc637e(0x1f5)](_0x25b9d6=>typeof _0x25b9d6===_0xcc637e(0x1ea))[_0xcc637e(0x1f9)](_0x179bb5=>_0x179bb5[_0xcc637e(0x1cd)]())[_0xcc637e(0x1f5)](Boolean);if(_0x130518['length']===0x0)return[];const _0x22f2e0=[_0x29c0fb?.['indexName'],_0x29c0fb?.['index_name'],_0x29c0fb?.[_0xcc637e(0x1c6)]][_0xcc637e(0x1f4)](_0x439c23=>typeof _0x439c23===_0xcc637e(0x1ea)&&_0x439c23[_0xcc637e(0x1cd)]()),_0x53d396=[_0x29c0fb?.[_0xcc637e(0x1d8)],_0x29c0fb?.[_0xcc637e(0x1f6)]]['find'](_0x37bebb=>typeof _0x37bebb===_0xcc637e(0x1ea)&&_0x37bebb['trim']());return[{..._0x22f2e0?{'name':_0x22f2e0[_0xcc637e(0x1cd)]()}:{},..._0x53d396?{'type':_0x53d396[_0xcc637e(0x1cd)]()}:{},'columns':_0x130518}];}),_0x2cb583=[..._0x29e3ef],_0x5a738b=typeof _0x5cdec7?.['dbtableConfig']?.[_0x414113(0x1cf)]===_0x414113(0x1ea)?_0x5cdec7['dbtableConfig'][_0x414113(0x1cf)][_0x414113(0x1d7)](',')['map'](_0xa74597=>_0xa74597['trim']())[_0x414113(0x1f5)](Boolean):[];return _0x5a738b[_0x414113(0x1c0)]>0x0&&_0x2cb583[_0x414113(0x1f7)]({'type':_0x414113(0x1c7),'columns':_0x5a738b}),{'indexes':_0x2cb583,'metadataAvailable':_0x29e3ef[_0x414113(0x1c0)]>0x0};}
1
+ const a187_0x43cdc5=a187_0x3f11;(function(_0x1ce6ee,_0x5a75f4){const _0x4ccab5=a187_0x3f11,_0x18e608=_0x1ce6ee();while(!![]){try{const _0x1861eb=-parseInt(_0x4ccab5(0xa8))/0x1+parseInt(_0x4ccab5(0x93))/0x2+-parseInt(_0x4ccab5(0xaf))/0x3+parseInt(_0x4ccab5(0x9b))/0x4*(-parseInt(_0x4ccab5(0x8e))/0x5)+-parseInt(_0x4ccab5(0xa2))/0x6*(-parseInt(_0x4ccab5(0xa3))/0x7)+parseInt(_0x4ccab5(0xa5))/0x8*(-parseInt(_0x4ccab5(0x99))/0x9)+parseInt(_0x4ccab5(0xb2))/0xa;if(_0x1861eb===_0x5a75f4)break;else _0x18e608['push'](_0x18e608['shift']());}catch(_0x21c747){_0x18e608['push'](_0x18e608['shift']());}}}(a187_0x2d0d,0x2a87a));function a187_0x3f11(_0x517415,_0x11e429){_0x517415=_0x517415-0x7b;const _0x2d0d65=a187_0x2d0d();let _0x3f114b=_0x2d0d65[_0x517415];return _0x3f114b;}import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{auditSqlJoinIndexes}from'../../core/sql-index-auditor.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':a187_0x43cdc5(0xac),'command':'validate','description':'Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','risk':a187_0x43cdc5(0x8d),'flags':[{'name':a187_0x43cdc5(0xb6),'type':a187_0x43cdc5(0xae),'description':a187_0x43cdc5(0x81)},{'name':a187_0x43cdc5(0xac),'type':'string','description':'Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'},{'name':a187_0x43cdc5(0x83),'type':a187_0x43cdc5(0xae),'description':a187_0x43cdc5(0xbb)},{'name':a187_0x43cdc5(0xba),'type':a187_0x43cdc5(0x8b),'description':a187_0x43cdc5(0x91)}],async 'execute'(_0x7e8ce3){const _0x3402a2=a187_0x43cdc5,_0xd5d80a=_0x7e8ce3[_0x3402a2(0xad)](_0x3402a2(0xb6)),_0x43a244=_0x7e8ce3[_0x3402a2(0xad)](_0x3402a2(0xac)),_0x1a77f0=_0x7e8ce3['str'](_0x3402a2(0x83)),_0xaf537a=_0x7e8ce3[_0x3402a2(0x7c)](_0x3402a2(0xba));if(!_0xd5d80a&&!_0x43a244)throw CliErrors['flagMissing'](_0x3402a2(0xb6),_0x3402a2(0x7d));if(_0xaf537a&&!_0x1a77f0)throw CliErrors[_0x3402a2(0x82)](_0x3402a2(0xb0));let _0x5984af;if(_0xd5d80a){const _0x2f2a2c=resolve(process[_0x3402a2(0x8a)](),_0xd5d80a);if(!existsSync(_0x2f2a2c))throw CliErrors[_0x3402a2(0x82)](_0x3402a2(0x80)+_0x2f2a2c);_0x5984af=readFileSync(_0x2f2a2c,_0x3402a2(0xaa));}else _0x5984af=_0x43a244;const _0x5bcd15=validateSql(_0x5984af),_0x2516c3={'valid':_0x5bcd15[_0x3402a2(0x9a)],'sqlType':_0x5bcd15[_0x3402a2(0x84)][_0x3402a2(0x8c)],'isSelectOnly':_0x5bcd15[_0x3402a2(0x84)][_0x3402a2(0xa9)],'isDangerous':_0x5bcd15[_0x3402a2(0x84)][_0x3402a2(0xa6)],'tables':_0x5bcd15['tables'],'parameters':_0x5bcd15[_0x3402a2(0xbc)],'message':_0x5bcd15[_0x3402a2(0xb4)]};_0x5bcd15[_0x3402a2(0x84)]['reason']&&(_0x2516c3['reason']=_0x5bcd15[_0x3402a2(0x84)][_0x3402a2(0x94)]);if(_0x1a77f0&&_0x5bcd15[_0x3402a2(0x9a)]){const _0x5bd2cb=_0x1a77f0[_0x3402a2(0xa1)](',')[_0x3402a2(0x98)](_0x1e0cfd=>_0x1e0cfd[_0x3402a2(0xab)]())['filter'](Boolean),_0x10338a=[],_0x584982=[],_0x290dd8=filterDbTableBackedDatasets(await listDatasets(_0x7e8ce3[_0x3402a2(0x90)])),_0x1a9e7c=new Map(_0x290dd8[_0x3402a2(0x98)](_0x26b0ef=>[_0x26b0ef[_0x3402a2(0x7f)]?.[_0x3402a2(0x92)]?.['toLowerCase'](),_0x26b0ef]));for(const _0x39cdad of _0x5bcd15['tables']){const _0x2cfdb3=_0x1a9e7c[_0x3402a2(0x97)](_0x39cdad['toLowerCase']());!_0x2cfdb3&&_0x10338a[_0x3402a2(0xb1)](_0x3402a2(0x9d)+_0x39cdad+_0x3402a2(0x86));}for(const _0x54a98e of _0x5bd2cb){let _0x1e98cd;try{_0x1e98cd=await getDatasetDetail(_0x54a98e);}catch{_0x10338a[_0x3402a2(0xb1)](_0x3402a2(0x9c)+_0x54a98e+'\x22\x20not\x20found\x20or\x20not\x20accessible');continue;}assertDatasetIsDbTableBacked(_0x1e98cd,_0x3402a2(0x8f));const _0x1e1c73=Array[_0x3402a2(0xb3)](_0x1e98cd[_0x3402a2(0xa4)])?_0x1e98cd[_0x3402a2(0xa4)]:[],_0xb149b2=new Set(_0x1e1c73[_0x3402a2(0x98)](_0x40d888=>_0x40d888[_0x3402a2(0xb7)]?.['toLowerCase']())),_0x1e28c2=_0x1e98cd['dbtableConfig']?.['tableName']||_0x1e98cd[_0x3402a2(0x92)]||_0x54a98e;_0x2516c3[_0x3402a2(0xb5)+_0x1e28c2]={'code':_0x54a98e,'tableName':_0x1e28c2,'fieldCount':_0xb149b2[_0x3402a2(0xb8)],'fields':Array[_0x3402a2(0x95)](_0xb149b2)};if(_0xaf537a){const _0x4ae033=normalizeDatasetIndexes(_0x1e98cd);_0x584982[_0x3402a2(0xb1)]({'tableName':_0x1e28c2,..._0x4ae033});}}_0x10338a['length']>0x0&&(_0x2516c3['schemaWarnings']=_0x10338a),_0xaf537a&&(_0x2516c3[_0x3402a2(0xb9)]=auditSqlJoinIndexes(_0x5984af,_0x584982));}return{'ok':_0x5bcd15[_0x3402a2(0x9a)],'data':_0x2516c3,'message':_0x5bcd15['message']};}};function a187_0x2d0d(){const _0x209035=['Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','parameters','indexes','bool','Provide\x20--file\x20or\x20--sql','dataset','dbtableConfig','File\x20not\x20found:\x20','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','validation','schemas','sqlType','indexName','\x22\x20not\x20found\x20in\x20any\x20dataset','columns','filter','index_columns','cwd','boolean','type','read','215MmzdtS','SQL\x20schema\x20validation','appCode','Audit\x20top-level\x20JOIN\x20equality\x20predicates\x20against\x20dataset\x20index\x20metadata','tableName','499208CJsQaZ','reason','from','find','get','map','135dXgCrY','valid','31156FHLWHr','Dataset\x20\x22','Table\x20\x22','length','pkField','unshift','split','322914oPPoRs','21sWLIOM','fields','103504LgQqWR','isDangerous','flatMap','130335VUAiEL','isSelectOnly','utf-8','trim','sql','str','string','500121SEnKXN','--check-indexes\x20requires\x20--schemas.','push','5891800kYRuhQ','isArray','message','schema:','file','name','size','joinAudit','check-indexes'];a187_0x2d0d=function(){return _0x209035;};return a187_0x2d0d();}function normalizeDatasetIndexes(_0x45dc76){const _0x49687b=a187_0x43cdc5,_0x7c37ee=Array[_0x49687b(0xb3)](_0x45dc76?.[_0x49687b(0x7e)]?.[_0x49687b(0x7b)])?_0x45dc76[_0x49687b(0x7e)][_0x49687b(0x7b)]:Array[_0x49687b(0xb3)](_0x45dc76?.[_0x49687b(0x7b)])?_0x45dc76[_0x49687b(0x7b)]:[],_0x392668=_0x7c37ee[_0x49687b(0xa7)](_0x27e6b6=>{const _0x11069c=_0x49687b,_0x5aea1e=Array['isArray'](_0x27e6b6?.['index_columns'])?_0x27e6b6[_0x11069c(0x89)]:Array['isArray'](_0x27e6b6?.['columnNames'])?_0x27e6b6['columnNames']:Array[_0x11069c(0xb3)](_0x27e6b6?.[_0x11069c(0x87)])?_0x27e6b6[_0x11069c(0x87)]:[],_0x4ef4ab=_0x5aea1e[_0x11069c(0x88)](_0x57f34b=>typeof _0x57f34b===_0x11069c(0xae))[_0x11069c(0x98)](_0xbaabc4=>_0xbaabc4[_0x11069c(0xab)]())[_0x11069c(0x88)](Boolean);if(_0x4ef4ab[_0x11069c(0x9e)]===0x0)return[];const _0x17090a=[_0x27e6b6?.[_0x11069c(0x85)],_0x27e6b6?.['index_name'],_0x27e6b6?.[_0x11069c(0xb7)]][_0x11069c(0x96)](_0x24c14a=>typeof _0x24c14a===_0x11069c(0xae)&&_0x24c14a['trim']()),_0x360ceb=[_0x27e6b6?.['index_type'],_0x27e6b6?.[_0x11069c(0x8c)]]['find'](_0x4f451b=>typeof _0x4f451b===_0x11069c(0xae)&&_0x4f451b[_0x11069c(0xab)]());return[{..._0x17090a?{'name':_0x17090a[_0x11069c(0xab)]()}:{},..._0x360ceb?{'type':_0x360ceb['trim']()}:{},'columns':_0x4ef4ab}];}),_0x3d44cb=[..._0x392668],_0x926947=typeof _0x45dc76?.[_0x49687b(0x7f)]?.[_0x49687b(0x9f)]==='string'?_0x45dc76[_0x49687b(0x7f)][_0x49687b(0x9f)]['split'](',')[_0x49687b(0x98)](_0x50065c=>_0x50065c[_0x49687b(0xab)]())[_0x49687b(0x88)](Boolean):[];return _0x926947[_0x49687b(0x9e)]>0x0&&_0x3d44cb[_0x49687b(0xa0)]({'type':'primary','columns':_0x926947}),{'indexes':_0x3d44cb,'metadataAvailable':_0x392668[_0x49687b(0x9e)]>0x0};}
@@ -1 +1 @@
1
- (function(_0x3da21e,_0x28b358){const _0x5d2f6a=a182_0x46ea,_0x1e0db8=_0x3da21e();while(!![]){try{const _0x479cba=parseInt(_0x5d2f6a(0xdd))/0x1+parseInt(_0x5d2f6a(0xda))/0x2+-parseInt(_0x5d2f6a(0xd5))/0x3+parseInt(_0x5d2f6a(0xdb))/0x4+-parseInt(_0x5d2f6a(0xd9))/0x5*(-parseInt(_0x5d2f6a(0xdc))/0x6)+parseInt(_0x5d2f6a(0xd6))/0x7+-parseInt(_0x5d2f6a(0xd7))/0x8*(parseInt(_0x5d2f6a(0xd8))/0x9);if(_0x479cba===_0x28b358)break;else _0x1e0db8['push'](_0x1e0db8['shift']());}catch(_0xe1eb3d){_0x1e0db8['push'](_0x1e0db8['shift']());}}}(a182_0x5ade,0xa3f86));import{taskStatus}from'../../commands/task/status.js';function a182_0x46ea(_0x528449,_0x3f1c48){_0x528449=_0x528449-0xd5;const _0x5ade4c=a182_0x5ade();let _0x46eac7=_0x5ade4c[_0x528449];return _0x46eac7;}function a182_0x5ade(){const _0x286829=['94082vSXLNx','2196600OqoDMl','3272668WWwIFC','601416EPtvPh','270IAkmwV','13185iZmpSg','1428828KvqHYf','4226804oMxftJ','3018pnmpEy'];a182_0x5ade=function(){return _0x286829;};return a182_0x5ade();}export const taskDefinitions=[taskStatus];
1
+ function a188_0x1144(){const _0x4d3f49=['136xsRUYT','494148pGrPpR','171054OVWxIB','4ogrLIM','1355761JOXhPp','10XPlHCN','14203gXsUYP','341495tkhLbJ','12IloCzm','38674pUojHe','12byZzpW','55629DCabfr'];a188_0x1144=function(){return _0x4d3f49;};return a188_0x1144();}function a188_0x2cf1(_0x1928b5,_0x4e5519){_0x1928b5=_0x1928b5-0x1c2;const _0x11444f=a188_0x1144();let _0x2cf122=_0x11444f[_0x1928b5];return _0x2cf122;}(function(_0x5c3cee,_0x42400a){const _0x32a40c=a188_0x2cf1,_0x1f0d11=_0x5c3cee();while(!![]){try{const _0x1e2f52=-parseInt(_0x32a40c(0x1c8))/0x1*(parseInt(_0x32a40c(0x1c2))/0x2)+parseInt(_0x32a40c(0x1cd))/0x3+parseInt(_0x32a40c(0x1cc))/0x4+-parseInt(_0x32a40c(0x1c6))/0x5*(-parseInt(_0x32a40c(0x1c7))/0x6)+-parseInt(_0x32a40c(0x1c5))/0x7*(-parseInt(_0x32a40c(0x1cb))/0x8)+parseInt(_0x32a40c(0x1ca))/0x9*(-parseInt(_0x32a40c(0x1c4))/0xa)+parseInt(_0x32a40c(0x1c3))/0xb*(-parseInt(_0x32a40c(0x1c9))/0xc);if(_0x1e2f52===_0x42400a)break;else _0x1f0d11['push'](_0x1f0d11['shift']());}catch(_0x356098){_0x1f0d11['push'](_0x1f0d11['shift']());}}}(a188_0x1144,0x235e2));import{taskStatus}from'../../commands/task/status.js';export const taskDefinitions=[taskStatus];
@@ -1 +1 @@
1
- const a183_0x20535d=a183_0x6a80;(function(_0x5e8a5a,_0x2c0334){const _0xe7747d=a183_0x6a80,_0x37fa4e=_0x5e8a5a();while(!![]){try{const _0xa042b8=parseInt(_0xe7747d(0x186))/0x1+-parseInt(_0xe7747d(0x18c))/0x2*(parseInt(_0xe7747d(0x18b))/0x3)+parseInt(_0xe7747d(0x199))/0x4+parseInt(_0xe7747d(0x195))/0x5*(parseInt(_0xe7747d(0x19c))/0x6)+parseInt(_0xe7747d(0x19b))/0x7*(parseInt(_0xe7747d(0x18a))/0x8)+-parseInt(_0xe7747d(0x198))/0x9+-parseInt(_0xe7747d(0x18e))/0xa;if(_0xa042b8===_0x2c0334)break;else _0x37fa4e['push'](_0x37fa4e['shift']());}catch(_0x17a271){_0x37fa4e['push'](_0x37fa4e['shift']());}}}(a183_0x2e14,0xb028a));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asyncTaskMessage,buildAsyncTaskStatusCommand,normalizeAsyncTask}from'../../commands/common/async-task.js';function a183_0x2e14(){const _0x97e3d5=['7qWtHtO','3552852zCLRFW','apiError','task','934130rPCKsS','taskId','task-id','isTerminal','10287696yDcLvn','450090iPDkmT','2nvMOuS','read','24472250UbIYMC','Task\x20id\x20returned\x20by\x20an\x20asynchronous\x20platform\x20command','appCode',',\x20received\x20','trim','flagMissing','string','10ObnDWO','str','Task\x20status\x20response\x20id\x20mismatch:\x20requested\x20','3976488TdJwaI','1425028uofXKU','cookie'];a183_0x2e14=function(){return _0x97e3d5;};return a183_0x2e14();}import{getAsyncTaskStatus}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a183_0x6a80(_0x200192,_0x3b18c5){_0x200192=_0x200192-0x184;const _0x2e1407=a183_0x2e14();let _0x6a8095=_0x2e1407[_0x200192];return _0x6a8095;}export const taskStatus={'service':a183_0x20535d(0x185),'command':'status','description':'Query\x20an\x20asynchronous\x20task;\x20repeat\x20for\x20PENDING\x20or\x20PROCESSING\x20until\x20SUCCESS\x20or\x20FAILED','risk':a183_0x20535d(0x18d),'defaultOutputFormat':'compress','structuredErrors':!![],'flags':[{'name':a183_0x20535d(0x188),'type':a183_0x20535d(0x194),'required':!![],'description':a183_0x20535d(0x18f)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x4696a0){const _0x551982=a183_0x20535d;if(!_0x4696a0['str']('task-id')[_0x551982(0x192)]())throw CliErrors[_0x551982(0x193)](_0x551982(0x188));},async 'execute'(_0x1c12ee){const _0x28e1af=a183_0x20535d,_0x101b12=_0x1c12ee[_0x28e1af(0x196)]('task-id')[_0x28e1af(0x192)](),_0x436517=normalizeAsyncTask(await getAsyncTaskStatus(_0x101b12,_0x1c12ee[_0x28e1af(0x190)],_0x1c12ee[_0x28e1af(0x19a)]));if(_0x436517[_0x28e1af(0x187)]!==_0x101b12)throw CliErrors[_0x28e1af(0x184)](_0x28e1af(0x197)+_0x101b12+_0x28e1af(0x191)+_0x436517[_0x28e1af(0x187)]+'.');const _0x53f49a=buildAsyncTaskStatusCommand(_0x436517[_0x28e1af(0x187)],_0x1c12ee[_0x28e1af(0x190)]);return{'ok':!![],'message':asyncTaskMessage(_0x436517),'data':{'appCode':_0x1c12ee[_0x28e1af(0x190)],..._0x436517,'query':_0x436517[_0x28e1af(0x189)]?null:{'command':_0x53f49a}}};}};
1
+ const a189_0x5b7695=a189_0xe8b1;function a189_0xe8b1(_0x48e8a0,_0x29994f){_0x48e8a0=_0x48e8a0-0x1c7;const _0x5aa5b0=a189_0x5aa5();let _0xe8b18c=_0x5aa5b0[_0x48e8a0];return _0xe8b18c;}(function(_0x1763ba,_0x49efc0){const _0x1bd8e8=a189_0xe8b1,_0x569a58=_0x1763ba();while(!![]){try{const _0x182bcb=parseInt(_0x1bd8e8(0x1cc))/0x1*(parseInt(_0x1bd8e8(0x1da))/0x2)+parseInt(_0x1bd8e8(0x1d4))/0x3+-parseInt(_0x1bd8e8(0x1dc))/0x4*(parseInt(_0x1bd8e8(0x1cb))/0x5)+parseInt(_0x1bd8e8(0x1e0))/0x6*(parseInt(_0x1bd8e8(0x1ca))/0x7)+-parseInt(_0x1bd8e8(0x1c7))/0x8*(-parseInt(_0x1bd8e8(0x1d8))/0x9)+-parseInt(_0x1bd8e8(0x1d1))/0xa*(-parseInt(_0x1bd8e8(0x1c8))/0xb)+-parseInt(_0x1bd8e8(0x1d9))/0xc;if(_0x182bcb===_0x49efc0)break;else _0x569a58['push'](_0x569a58['shift']());}catch(_0x269c61){_0x569a58['push'](_0x569a58['shift']());}}}(a189_0x5aa5,0x75349));function a189_0x5aa5(){const _0x5658b0=['10AJqwCU','task','apiError','692514jkqbUC','appCode','string','str','4923dUOgxc','15347676SrVVJW','130TNaPQU','Query\x20an\x20asynchronous\x20task;\x20repeat\x20for\x20PENDING\x20or\x20PROCESSING\x20until\x20SUCCESS\x20or\x20FAILED','4KHtyRC','Task\x20id\x20returned\x20by\x20an\x20asynchronous\x20platform\x20command','flagMissing','taskId','6nnrILJ','9784xdepji','5436871txnsuE','isTerminal','3155719yukhtB','913505plbfpp','1490fMnBHd','task-id','read','status','compress'];a189_0x5aa5=function(){return _0x5658b0;};return a189_0x5aa5();}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asyncTaskMessage,buildAsyncTaskStatusCommand,normalizeAsyncTask}from'../../commands/common/async-task.js';import{getAsyncTaskStatus}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const taskStatus={'service':a189_0x5b7695(0x1d2),'command':a189_0x5b7695(0x1cf),'description':a189_0x5b7695(0x1db),'risk':a189_0x5b7695(0x1ce),'defaultOutputFormat':a189_0x5b7695(0x1d0),'structuredErrors':!![],'flags':[{'name':'task-id','type':a189_0x5b7695(0x1d6),'required':!![],'description':a189_0x5b7695(0x1dd)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x166672){const _0x58d731=a189_0x5b7695;if(!_0x166672['str'](_0x58d731(0x1cd))['trim']())throw CliErrors[_0x58d731(0x1de)]('task-id');},async 'execute'(_0x2e7ebe){const _0x57962f=a189_0x5b7695,_0x4ce44d=_0x2e7ebe[_0x57962f(0x1d7)](_0x57962f(0x1cd))['trim'](),_0x132142=normalizeAsyncTask(await getAsyncTaskStatus(_0x4ce44d,_0x2e7ebe[_0x57962f(0x1d5)],_0x2e7ebe['cookie']));if(_0x132142[_0x57962f(0x1df)]!==_0x4ce44d)throw CliErrors[_0x57962f(0x1d3)]('Task\x20status\x20response\x20id\x20mismatch:\x20requested\x20'+_0x4ce44d+',\x20received\x20'+_0x132142['taskId']+'.');const _0x5cb713=buildAsyncTaskStatusCommand(_0x132142['taskId'],_0x2e7ebe[_0x57962f(0x1d5)]);return{'ok':!![],'message':asyncTaskMessage(_0x132142),'data':{'appCode':_0x2e7ebe[_0x57962f(0x1d5)],..._0x132142,'query':_0x132142[_0x57962f(0x1c9)]?null:{'command':_0x5cb713}}};}};
@@ -0,0 +1 @@
1
+ (function(_0x5693b7,_0x5cf5c4){const _0x53f864=a190_0x52ca,_0x165b5f=_0x5693b7();while(!![]){try{const _0x57bfa3=parseInt(_0x53f864(0x7e))/0x1*(parseInt(_0x53f864(0x7b))/0x2)+-parseInt(_0x53f864(0x81))/0x3+parseInt(_0x53f864(0x80))/0x4+-parseInt(_0x53f864(0x83))/0x5*(-parseInt(_0x53f864(0x85))/0x6)+-parseInt(_0x53f864(0x7d))/0x7*(parseInt(_0x53f864(0x7f))/0x8)+-parseInt(_0x53f864(0x84))/0x9+-parseInt(_0x53f864(0x7c))/0xa*(parseInt(_0x53f864(0x82))/0xb);if(_0x57bfa3===_0x5cf5c4)break;else _0x165b5f['push'](_0x165b5f['shift']());}catch(_0x2b8105){_0x165b5f['push'](_0x165b5f['shift']());}}}(a190_0x5100,0xc4e3b));function a190_0x52ca(_0x23a112,_0x5d47c0){_0x23a112=_0x23a112-0x7b;const _0x510097=a190_0x5100();let _0x52cac4=_0x510097[_0x23a112];return _0x52cac4;}import{tenantMembersListDefinition}from'../../commands/tenant/members-list.js';export const tenantDefinitions=[tenantMembersListDefinition];function a190_0x5100(){const _0xa3e518=['2emkFsf','10ooisoI','17311jCROqh','1060601gFbQIF','2456dwrwIA','5450920tdIjhK','2077809jcrxKt','14591533PLJfpg','15GwFjOD','2162502vzKAcl','2803446TwREfN'];a190_0x5100=function(){return _0xa3e518;};return a190_0x5100();}
@@ -0,0 +1 @@
1
+ const a191_0x433801=a191_0x41fe;(function(_0xd00f32,_0x5bd4e9){const _0x235c3e=a191_0x41fe,_0x50cbd9=_0xd00f32();while(!![]){try{const _0x5ee298=-parseInt(_0x235c3e(0xfb))/0x1*(parseInt(_0x235c3e(0xfc))/0x2)+parseInt(_0x235c3e(0x104))/0x3*(-parseInt(_0x235c3e(0xf3))/0x4)+parseInt(_0x235c3e(0xf8))/0x5+parseInt(_0x235c3e(0xf5))/0x6+parseInt(_0x235c3e(0xf2))/0x7*(parseInt(_0x235c3e(0xf4))/0x8)+parseInt(_0x235c3e(0x103))/0x9*(parseInt(_0x235c3e(0x101))/0xa)+-parseInt(_0x235c3e(0x105))/0xb;if(_0x5ee298===_0x5bd4e9)break;else _0x50cbd9['push'](_0x50cbd9['shift']());}catch(_0x75c226){_0x50cbd9['push'](_0x50cbd9['shift']());}}}(a191_0x4b2d,0xa510a));import{listCurrentUserTenantMemberships,listTenantDirectoryMembers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertTenantAccessible,projectTenantMembers}from'../../commands/tenant/shared.js';function a191_0x41fe(_0x18697f,_0xc8bd9f){_0x18697f=_0x18697f-0xee;const _0x4b2d2d=a191_0x4b2d();let _0x41feeb=_0x4b2d2d[_0x18697f];return _0x41feeb;}export const tenantMembersListDefinition={'service':a191_0x433801(0xfd),'command':a191_0x433801(0x102),'description':a191_0x433801(0xf6),'risk':a191_0x433801(0xff),'requiresAuth':!![],'requiresAppCode':![],'structuredErrors':!![],'flags':[{'name':a191_0x433801(0xf9),'type':a191_0x433801(0xf1),'required':!![],'description':a191_0x433801(0xfe)}],async 'validate'(_0xaa6a54){const _0x1abc47=a191_0x433801;if(!_0xaa6a54[_0x1abc47(0xfa)](_0x1abc47(0xf9))[_0x1abc47(0xf0)]())throw CliErrors[_0x1abc47(0xf7)]('tenant-code',_0x1abc47(0x100));},async 'execute'(_0x6cd6b8){const _0x21e0c7=a191_0x433801,_0x799d5e=_0x6cd6b8[_0x21e0c7(0xfa)](_0x21e0c7(0xf9))[_0x21e0c7(0xf0)](),_0x2de7ba=await listCurrentUserTenantMemberships();assertTenantAccessible(_0x799d5e,_0x2de7ba);const _0x37311a=projectTenantMembers(await listTenantDirectoryMembers(_0x799d5e));return{'ok':!![],'data':{'tenantCode':_0x799d5e,'items':_0x37311a,'totalCount':_0x37311a[_0x21e0c7(0xef)]},'message':'Found\x20'+_0x37311a[_0x21e0c7(0xef)]+_0x21e0c7(0xee)};}};function a191_0x4b2d(){const _0x1c18f2=['16yxYaAf','9542752CDRfBr','877566YCPkJS','List\x20members\x20of\x20a\x20tenant\x20available\x20to\x20the\x20current\x20account','flagMissing','5248015YyHfzP','tenant-code','str','271161ippNRP','2rFHwXB','tenant','Exact\x20tenant\x20code','read','Pass\x20--tenant-code\x20<code>.','3707690YtXVJQ','members-list','9oXomEJ','589257sOmFCO','11291874YjeAGe','\x20tenant\x20member(s)','length','trim','string','7ZrMTTd'];a191_0x4b2d=function(){return _0x1c18f2;};return a191_0x4b2d();}