@lovrabet/rabetbase-cli 2.3.9-beta.2 → 2.3.9

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 (258) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/fetch-model-list.js +1 -1
  3. package/lib/api/generate-api-file.js +1 -1
  4. package/lib/auth/auth-server-ui.js +1 -1
  5. package/lib/auth/auth-server.js +1 -1
  6. package/lib/auth/constant.js +1 -1
  7. package/lib/auth/get-cookie.js +1 -1
  8. package/lib/auth/get-session-user.js +1 -1
  9. package/lib/auth/is-session-valid.js +1 -1
  10. package/lib/auth/login-success-html.js +1 -1
  11. package/lib/auth/logout.js +1 -1
  12. package/lib/cli-flags.js +1 -1
  13. package/lib/cli.js +1 -1
  14. package/lib/commands/api/generate.js +1 -1
  15. package/lib/commands/api/index.js +1 -1
  16. package/lib/commands/api/list.js +1 -1
  17. package/lib/commands/api/pull.js +1 -1
  18. package/lib/commands/api/shared.js +1 -1
  19. package/lib/commands/app/add.js +1 -1
  20. package/lib/commands/app/index.js +1 -1
  21. package/lib/commands/app/list.js +1 -1
  22. package/lib/commands/app/remote-directory.js +1 -1
  23. package/lib/commands/app/remove.js +1 -1
  24. package/lib/commands/app/shared.js +1 -1
  25. package/lib/commands/app-config/delete.js +1 -1
  26. package/lib/commands/app-config/get.js +1 -1
  27. package/lib/commands/app-config/index.js +1 -1
  28. package/lib/commands/app-config/list.js +1 -1
  29. package/lib/commands/app-config/set.js +1 -1
  30. package/lib/commands/app-config/shared.js +1 -1
  31. package/lib/commands/auth/index.js +1 -1
  32. package/lib/commands/bff/create.js +1 -1
  33. package/lib/commands/bff/delete.js +1 -1
  34. package/lib/commands/bff/detail.js +1 -1
  35. package/lib/commands/bff/index.js +1 -1
  36. package/lib/commands/bff/list.js +1 -1
  37. package/lib/commands/bff/pull.js +1 -1
  38. package/lib/commands/bff/push.js +1 -1
  39. package/lib/commands/bff/status.js +1 -1
  40. package/lib/commands/cli-skill/index.js +1 -1
  41. package/lib/commands/cli-update.js +1 -1
  42. package/lib/commands/codegen/index.js +1 -1
  43. package/lib/commands/codegen/sdk.js +1 -1
  44. package/lib/commands/codegen/sql.js +1 -1
  45. package/lib/commands/common/app-registry.js +1 -1
  46. package/lib/commands/common/app-selector.js +1 -1
  47. package/lib/commands/common/async-task.js +1 -0
  48. package/lib/commands/common/dry-run.js +1 -1
  49. package/lib/commands/common/flags.js +1 -1
  50. package/lib/commands/common/local-file.js +1 -1
  51. package/lib/commands/common/validate.js +1 -1
  52. package/lib/commands/config/get.js +1 -1
  53. package/lib/commands/config/index.js +1 -1
  54. package/lib/commands/config/list.js +1 -1
  55. package/lib/commands/config/set.js +1 -1
  56. package/lib/commands/config/shared.js +1 -1
  57. package/lib/commands/data/filter.js +1 -1
  58. package/lib/commands/data/getOne.js +1 -1
  59. package/lib/commands/data/index.js +1 -1
  60. package/lib/commands/data/shared.js +1 -1
  61. package/lib/commands/dataset/business-group-update.js +1 -1
  62. package/lib/commands/dataset/capability.js +1 -1
  63. package/lib/commands/dataset/delete.js +1 -1
  64. package/lib/commands/dataset/detail.js +1 -1
  65. package/lib/commands/dataset/extend-update.js +1 -1
  66. package/lib/commands/dataset/field-update.js +1 -1
  67. package/lib/commands/dataset/generate.js +1 -1
  68. package/lib/commands/dataset/index.js +1 -1
  69. package/lib/commands/dataset/list.js +1 -1
  70. package/lib/commands/dataset/operations.js +1 -1
  71. package/lib/commands/dataset/relation-audit.js +1 -1
  72. package/lib/commands/dataset/relation-create.js +1 -1
  73. package/lib/commands/dataset/relation-delete.js +1 -1
  74. package/lib/commands/dataset/relation-shared.js +1 -1
  75. package/lib/commands/dataset/relation-update.js +1 -1
  76. package/lib/commands/dataset/relations.js +1 -1
  77. package/lib/commands/dataset/rename.js +1 -1
  78. package/lib/commands/dataset/restore.js +1 -1
  79. package/lib/commands/db/analysis-batching.js +1 -1
  80. package/lib/commands/db/analyze-batch-plan.js +1 -1
  81. package/lib/commands/db/analyze-cancel.js +1 -1
  82. package/lib/commands/db/analyze-start.js +1 -1
  83. package/lib/commands/db/analyze-status.js +1 -1
  84. package/lib/commands/db/create.js +1 -1
  85. package/lib/commands/db/delete.js +1 -1
  86. package/lib/commands/db/detail.js +1 -1
  87. package/lib/commands/db/diff.js +1 -1
  88. package/lib/commands/db/index.js +1 -1
  89. package/lib/commands/db/list.js +1 -1
  90. package/lib/commands/db/shared.js +1 -1
  91. package/lib/commands/db/tables.js +1 -1
  92. package/lib/commands/db/test.js +1 -1
  93. package/lib/commands/db/update.js +1 -1
  94. package/lib/commands/doctor.js +1 -1
  95. package/lib/commands/file/index.js +1 -1
  96. package/lib/commands/init/index.js +1 -1
  97. package/lib/commands/issue/index.js +1 -1
  98. package/lib/commands/issue/nudge.js +1 -1
  99. package/lib/commands/issue/report.js +1 -1
  100. package/lib/commands/issue/shared.js +1 -1
  101. package/lib/commands/logs/index.js +1 -1
  102. package/lib/commands/menu/delete.js +1 -0
  103. package/lib/commands/menu/group-create.js +1 -0
  104. package/lib/commands/menu/group-update.js +1 -0
  105. package/lib/commands/menu/index.js +1 -1
  106. package/lib/commands/menu/list.js +1 -1
  107. package/lib/commands/menu/regroup-start.js +1 -0
  108. package/lib/commands/menu/shared/compare-table.js +1 -1
  109. package/lib/commands/menu/shared/delete-plan.js +1 -0
  110. package/lib/commands/menu/shared/facts.js +1 -0
  111. package/lib/commands/menu/shared/index.js +1 -1
  112. package/lib/commands/menu/shared/inquirer.js +1 -1
  113. package/lib/commands/menu/shared/local-pages.js +1 -1
  114. package/lib/commands/menu/shared/logic.js +1 -1
  115. package/lib/commands/menu/shared/mutations.js +1 -0
  116. package/lib/commands/menu/shared/service.js +1 -1
  117. package/lib/commands/menu/shared/sync-core.js +1 -1
  118. package/lib/commands/menu/shared/update-core.js +1 -1
  119. package/lib/commands/menu/shared/valid-url.js +1 -1
  120. package/lib/commands/menu/sync.js +1 -1
  121. package/lib/commands/menu/update.js +1 -1
  122. package/lib/commands/notification/config-list.js +1 -1
  123. package/lib/commands/notification/index.js +1 -1
  124. package/lib/commands/page/generate-start.js +1 -1
  125. package/lib/commands/page/generate-status.js +1 -1
  126. package/lib/commands/page/index.js +1 -1
  127. package/lib/commands/page/pull.js +1 -1
  128. package/lib/commands/page/push.js +1 -1
  129. package/lib/commands/page/relation-audit.js +1 -1
  130. package/lib/commands/page/shared.js +1 -1
  131. package/lib/commands/page/standard-page-status.js +1 -1
  132. package/lib/commands/page/sync.js +1 -1
  133. package/lib/commands/permit/index.js +1 -1
  134. package/lib/commands/permit/page-get.js +1 -1
  135. package/lib/commands/permit/page-set.js +1 -1
  136. package/lib/commands/permit/role-apis-set.js +1 -1
  137. package/lib/commands/permit/role-menus-set.js +1 -1
  138. package/lib/commands/permit/role-menus.js +1 -1
  139. package/lib/commands/permit/shared.js +1 -1
  140. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  141. package/lib/commands/project/create/format-elapsed.js +1 -1
  142. package/lib/commands/project/create/main.js +1 -1
  143. package/lib/commands/project/create/non-interactive.js +1 -1
  144. package/lib/commands/project/create/project-template-path.js +1 -1
  145. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  146. package/lib/commands/project/create/use-format-code.js +1 -1
  147. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  148. package/lib/commands/project/index.js +1 -1
  149. package/lib/commands/project/init.js +1 -1
  150. package/lib/commands/project/upgrade.js +1 -1
  151. package/lib/commands/registry.js +1 -1
  152. package/lib/commands/role/create.js +1 -1
  153. package/lib/commands/role/delete.js +1 -1
  154. package/lib/commands/role/detail.js +1 -1
  155. package/lib/commands/role/index.js +1 -1
  156. package/lib/commands/role/list.js +1 -1
  157. package/lib/commands/role/shared.js +1 -1
  158. package/lib/commands/role/update.js +1 -1
  159. package/lib/commands/role/user-add.js +1 -1
  160. package/lib/commands/role/user-remove.js +1 -1
  161. package/lib/commands/role/user-resolve.js +1 -1
  162. package/lib/commands/run/index.js +1 -1
  163. package/lib/commands/schema.js +1 -1
  164. package/lib/commands/sql/create.js +1 -1
  165. package/lib/commands/sql/delete.js +1 -1
  166. package/lib/commands/sql/detail.js +1 -1
  167. package/lib/commands/sql/exec.js +1 -1
  168. package/lib/commands/sql/index.js +1 -1
  169. package/lib/commands/sql/list.js +1 -1
  170. package/lib/commands/sql/pull.js +1 -1
  171. package/lib/commands/sql/push.js +1 -1
  172. package/lib/commands/sql/save.js +1 -1
  173. package/lib/commands/sql/shared.js +1 -1
  174. package/lib/commands/sql/status.js +1 -1
  175. package/lib/commands/sql/validate.js +1 -1
  176. package/lib/commands/task/index.js +1 -0
  177. package/lib/commands/task/status.js +1 -0
  178. package/lib/commands/workspace/add.js +1 -1
  179. package/lib/commands/workspace/index.js +1 -1
  180. package/lib/commands/workspace/remove.js +1 -1
  181. package/lib/config/schema.js +1 -1
  182. package/lib/constant/cdn.js +1 -1
  183. package/lib/constant/cli.js +1 -1
  184. package/lib/constant/defaults.js +1 -1
  185. package/lib/constant/domain.js +1 -1
  186. package/lib/constant/env.js +1 -1
  187. package/lib/constant/output.js +1 -1
  188. package/lib/constant/paths.js +1 -1
  189. package/lib/constant/risk.js +1 -1
  190. package/lib/context/app-resolver.js +1 -1
  191. package/lib/context/auth-resolver.js +1 -1
  192. package/lib/context/config-loader.js +1 -1
  193. package/lib/context.js +1 -1
  194. package/lib/core/alias-resolver.js +1 -1
  195. package/lib/core/api-client.js +1 -1
  196. package/lib/core/bff/config.js +1 -1
  197. package/lib/core/bff/file-system.js +1 -1
  198. package/lib/core/bff/hash.js +1 -1
  199. package/lib/core/bff/lock.js +1 -1
  200. package/lib/core/bff/utils.js +1 -1
  201. package/lib/core/db-resolver.js +1 -1
  202. package/lib/core/page/file-system.js +1 -1
  203. package/lib/core/page/hash.js +1 -1
  204. package/lib/core/page/lock.js +1 -1
  205. package/lib/core/sql-index-auditor.js +1 -0
  206. package/lib/core/sql-sync/config.js +1 -1
  207. package/lib/core/sql-sync/file-system.js +1 -1
  208. package/lib/core/sql-sync/hash.js +1 -1
  209. package/lib/core/sql-sync/lock.js +1 -1
  210. package/lib/core/sql-sync/utils.js +1 -1
  211. package/lib/core/sql-validator.js +1 -1
  212. package/lib/errors.js +1 -1
  213. package/lib/framework/build-all-flags.js +1 -1
  214. package/lib/framework/error-output.js +1 -0
  215. package/lib/framework/explicit-yes.js +1 -0
  216. package/lib/framework/flags.js +1 -1
  217. package/lib/framework/help.js +1 -1
  218. package/lib/framework/index.js +1 -1
  219. package/lib/framework/output.js +1 -1
  220. package/lib/framework/response.js +1 -1
  221. package/lib/framework/runner-alias.js +1 -1
  222. package/lib/framework/runner.js +1 -1
  223. package/lib/framework/schema-export.js +1 -1
  224. package/lib/framework/types.js +1 -1
  225. package/lib/generated/build-info.js +1 -1
  226. package/lib/help.js +1 -1
  227. package/lib/skills/main.js +1 -1
  228. package/lib/skills/npx-skills-add.js +1 -1
  229. package/lib/telemetry/cli-command-trace.js +1 -1
  230. package/lib/telemetry/cli-help-trace.js +1 -1
  231. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  232. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  233. package/lib/telemetry/send-cli-trace-log.js +1 -1
  234. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  235. package/lib/utils/ai_config.js +1 -1
  236. package/lib/utils/apply-jq-filter.js +1 -1
  237. package/lib/utils/cdn-config.js +1 -1
  238. package/lib/utils/check-sdk-version.js +1 -1
  239. package/lib/utils/cli-version-check.js +1 -1
  240. package/lib/utils/cli-version-policy.js +1 -1
  241. package/lib/utils/config.js +1 -1
  242. package/lib/utils/copy-directory.js +1 -1
  243. package/lib/utils/entity-with-id.js +1 -1
  244. package/lib/utils/file-utils.js +1 -1
  245. package/lib/utils/guides-cdn.js +1 -1
  246. package/lib/utils/http-client.js +1 -1
  247. package/lib/utils/is-non-interactive.js +1 -1
  248. package/lib/utils/logger.js +1 -1
  249. package/lib/utils/params.js +1 -1
  250. package/lib/utils/platform.js +1 -1
  251. package/lib/utils/rules-cdn.js +1 -1
  252. package/lib/utils/sleep.js +1 -1
  253. package/lib/utils/template-replacer.js +1 -1
  254. package/lib/utils/update-notice.js +1 -1
  255. package/lib/utils/version.js +1 -1
  256. package/lib/utils/with-active-cookie.js +1 -1
  257. package/lib/utils/write-cli-side-channel.js +1 -1
  258. package/package.json +1 -1
@@ -1 +1 @@
1
- const a153_0x21f146=a153_0x45ac;(function(_0x332701,_0x49754d){const _0x352349=a153_0x45ac,_0x5c553b=_0x332701();while(!![]){try{const _0x2e89f1=parseInt(_0x352349(0x1cd))/0x1+-parseInt(_0x352349(0x1c9))/0x2*(parseInt(_0x352349(0x1d2))/0x3)+parseInt(_0x352349(0x1d9))/0x4+-parseInt(_0x352349(0x1cf))/0x5*(-parseInt(_0x352349(0x1d1))/0x6)+parseInt(_0x352349(0x1da))/0x7+parseInt(_0x352349(0x1d0))/0x8*(-parseInt(_0x352349(0x1c7))/0x9)+parseInt(_0x352349(0x1d7))/0xa;if(_0x2e89f1===_0x49754d)break;else _0x5c553b['push'](_0x5c553b['shift']());}catch(_0x49edd3){_0x5c553b['push'](_0x5c553b['shift']());}}}(a153_0x3685,0x35094));function a153_0x3685(){const _0x4ce23e=['192437ZBpQHl','str','\x22\x20→\x20userId\x20','183798MtsZMo','nickname','11724ZGcZCW','flagMissing','user-resolve','role','256295OxGzRz','username','30gBYzka','56uPdqri','2238ruliPU','186ZkUANF','userId','name','trim','matchedBy','3746700oGlxVD','read','251760dxOQwz'];a153_0x3685=function(){return _0x4ce23e;};return a153_0x3685();}import{CliErrors}from'../../errors.js';function a153_0x45ac(_0x22d595,_0x2ddb4a){_0x22d595=_0x22d595-0x1c7;const _0x36850c=a153_0x3685();let _0x45ac1e=_0x36850c[_0x22d595];return _0x45ac1e;}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{resolveUserRef,USER_NAME_FLAG}from'../../commands/role/shared.js';export const roleUserResolve={'service':a153_0x21f146(0x1cc),'command':a153_0x21f146(0x1cb),'description':'Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','risk':a153_0x21f146(0x1d8),'flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x34654f){const _0x813ac7=a153_0x21f146;if(!_0x34654f[_0x813ac7(0x1db)](_0x813ac7(0x1d4))[_0x813ac7(0x1d5)]())throw CliErrors[_0x813ac7(0x1ca)](_0x813ac7(0x1d4),'Pass\x20--name\x20<nickname|username>.');},async 'execute'(_0x19a4da){const _0x4e2e01=a153_0x21f146,_0x4c0aa6=_0x19a4da[_0x4e2e01(0x1db)](_0x4e2e01(0x1d4))[_0x4e2e01(0x1d5)](),_0x50882f=await resolveUserRef(_0x4c0aa6);return{'ok':!![],'data':{'user':{'userId':_0x50882f[_0x4e2e01(0x1d3)],'username':_0x50882f[_0x4e2e01(0x1ce)],'nickname':_0x50882f[_0x4e2e01(0x1c8)],'matchedBy':_0x50882f[_0x4e2e01(0x1d6)]}},'message':'Resolved\x20\x22'+_0x4c0aa6+_0x4e2e01(0x1dc)+_0x50882f[_0x4e2e01(0x1d3)]};}};
1
+ function a161_0xc79a(_0x480d56,_0xa722f3){_0x480d56=_0x480d56-0x79;const _0x3b389d=a161_0x3b38();let _0xc79a06=_0x3b389d[_0x480d56];return _0xc79a06;}const a161_0x55d611=a161_0xc79a;(function(_0x39c526,_0x384326){const _0x280071=a161_0xc79a,_0x384ad9=_0x39c526();while(!![]){try{const _0x10b5f7=parseInt(_0x280071(0x81))/0x1+parseInt(_0x280071(0x84))/0x2+-parseInt(_0x280071(0x7b))/0x3+-parseInt(_0x280071(0x87))/0x4+parseInt(_0x280071(0x7d))/0x5*(parseInt(_0x280071(0x8b))/0x6)+parseInt(_0x280071(0x7c))/0x7+-parseInt(_0x280071(0x80))/0x8;if(_0x10b5f7===_0x384326)break;else _0x384ad9['push'](_0x384ad9['shift']());}catch(_0x3ab14f){_0x384ad9['push'](_0x384ad9['shift']());}}}(a161_0x3b38,0xc6b27));function a161_0x3b38(){const _0x35a77a=['Pass\x20--name\x20<nickname|username>.','role','2156824EVtOos','userId','username','2497800yqqrFm','read','trim','flagMissing','6789174LSPpMv','nickname','user-resolve','str','1361478wqMess','7543655xfGLdJ','5poqTpD','name','Resolved\x20\x22','16299528nvMqDH','641974LAXqxp'];a161_0x3b38=function(){return _0x35a77a;};return a161_0x3b38();}import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{resolveUserRef,USER_NAME_FLAG}from'../../commands/role/shared.js';export const roleUserResolve={'service':a161_0x55d611(0x83),'command':a161_0x55d611(0x79),'description':'Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','risk':a161_0x55d611(0x88),'flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x51c648){const _0x3c1056=a161_0x55d611;if(!_0x51c648[_0x3c1056(0x7a)](_0x3c1056(0x7e))[_0x3c1056(0x89)]())throw CliErrors[_0x3c1056(0x8a)](_0x3c1056(0x7e),_0x3c1056(0x82));},async 'execute'(_0x59e2b2){const _0x19e305=a161_0x55d611,_0x3eec17=_0x59e2b2[_0x19e305(0x7a)]('name')[_0x19e305(0x89)](),_0x2b26a1=await resolveUserRef(_0x3eec17);return{'ok':!![],'data':{'user':{'userId':_0x2b26a1[_0x19e305(0x85)],'username':_0x2b26a1[_0x19e305(0x86)],'nickname':_0x2b26a1[_0x19e305(0x8c)],'matchedBy':_0x2b26a1['matchedBy']}},'message':_0x19e305(0x7f)+_0x3eec17+'\x22\x20→\x20userId\x20'+_0x2b26a1[_0x19e305(0x85)]};}};
@@ -1 +1 @@
1
- const a154_0x49f937=a154_0x38b7;(function(_0x486d4b,_0x5e494a){const _0x3df7c5=a154_0x38b7,_0x5616b2=_0x486d4b();while(!![]){try{const _0x1be22f=-parseInt(_0x3df7c5(0x1aa))/0x1*(parseInt(_0x3df7c5(0x1b1))/0x2)+parseInt(_0x3df7c5(0x1d3))/0x3+-parseInt(_0x3df7c5(0x1d2))/0x4*(-parseInt(_0x3df7c5(0x1b5))/0x5)+-parseInt(_0x3df7c5(0x1b2))/0x6*(parseInt(_0x3df7c5(0x1d8))/0x7)+parseInt(_0x3df7c5(0x1b8))/0x8+-parseInt(_0x3df7c5(0x1c7))/0x9+-parseInt(_0x3df7c5(0x1bc))/0xa;if(_0x1be22f===_0x5e494a)break;else _0x5616b2['push'](_0x5616b2['shift']());}catch(_0x1c39d1){_0x5616b2['push'](_0x5616b2['shift']());}}}(a154_0x15a1,0x27bdd));import{readFileSync,existsSync}from'node:fs';import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set([a154_0x49f937(0x1c6),a154_0x49f937(0x1b3)]);function readPackageScripts(_0x68a261){const _0x515200=a154_0x49f937,_0x4d5d06=resolve(_0x68a261,_0x515200(0x1e5));if(!existsSync(_0x4d5d06))return null;try{const _0x2a2f6f=JSON[_0x515200(0x1e0)](readFileSync(_0x4d5d06,_0x515200(0x1be)));return _0x2a2f6f[_0x515200(0x1bd)]??{};}catch{return null;}}function detectPackageManager(_0x4f8367){const _0x3fc8fd=a154_0x49f937;if(existsSync(resolve(_0x4f8367,'bun.lockb'))||existsSync(resolve(_0x4f8367,_0x3fc8fd(0x1e1))))return _0x3fc8fd(0x1d4);if(existsSync(resolve(_0x4f8367,_0x3fc8fd(0x1b6))))return _0x3fc8fd(0x1df);if(existsSync(resolve(_0x4f8367,'yarn.lock')))return _0x3fc8fd(0x1d7);return'npm';}async function versionCheck(_0x4762d1){const _0x30e29a=a154_0x49f937,_0x25981a=await checkCliVersion();(_0x25981a[_0x30e29a(0x1bb)]||_0x25981a['belowMinimum'])&&(printCliUpgradeWarning(_0x25981a),assertCliVersionSupported(_0x25981a));const _0x325729=await checkSdkVersion(_0x4762d1);if(_0x325729[_0x30e29a(0x1bb)])printSdkUpgradeWarning(_0x325729);}function spawnScript(_0x3970d0,_0x4bac04,_0x340dab,_0x56d501){return new Promise((_0xd63fd5,_0x41198f)=>{const _0x351cb2=a154_0x38b7,_0x384213=['run',_0x4bac04,..._0x340dab],_0x47a569=spawn(_0x3970d0,_0x384213,{'cwd':_0x56d501,'stdio':_0x351cb2(0x1e4),'shell':!![],'env':{...process.env,'PATH':''+join(_0x56d501,'node_modules',_0x351cb2(0x1d9))+delimiter+process.env.PATH}});_0x47a569['on'](_0x351cb2(0x1c5),_0xb25e1b=>{const _0x46edce=_0x351cb2;if(_0xb25e1b===0x0||_0xb25e1b===null)_0xd63fd5();else _0x41198f(new Error(_0x3970d0+'\x20run\x20'+_0x4bac04+_0x46edce(0x1ac)+_0xb25e1b));}),_0x47a569['on'](_0x351cb2(0x1a8),_0x41198f);});}function spawnViteBuildWatch(_0x17cc4d){return new Promise((_0x57bf6f,_0x226861)=>{const _0x522244=a154_0x38b7,_0x288b0d=spawn(_0x522244(0x1c9),['build',_0x522244(0x1d0)],{'cwd':_0x17cc4d,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x17cc4d,_0x522244(0x1d6),_0x522244(0x1d9))+delimiter+process.env.PATH}});_0x288b0d['on'](_0x522244(0x1c5),_0xb4d8c9=>{const _0x36a83d=_0x522244;if(_0xb4d8c9===0x0||_0xb4d8c9===null)_0x57bf6f();else _0x226861(new Error(_0x36a83d(0x1c1)+_0xb4d8c9));}),_0x288b0d['on'](_0x522244(0x1a8),_0x226861);});}function a154_0x38b7(_0x45e648,_0x364af9){_0x45e648=_0x45e648-0x1a8;const _0x15a183=a154_0x15a1();let _0x38b7ab=_0x15a183[_0x45e648];return _0x38b7ab;}function spawnVitePreview(_0x1479c8){return new Promise((_0x392b83,_0x5255b2)=>{const _0x141c74=a154_0x38b7,_0x20068b=spawn('vite',['preview'],{'cwd':_0x1479c8,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x1479c8,_0x141c74(0x1d6),_0x141c74(0x1d9))+delimiter+process.env.PATH}});_0x20068b['on'](_0x141c74(0x1c5),_0x4ad1d6=>{const _0x1239f5=_0x141c74;if(_0x4ad1d6===0x0||_0x4ad1d6===null)_0x392b83();else _0x5255b2(new Error(_0x1239f5(0x1af)+_0x4ad1d6));}),_0x20068b['on'](_0x141c74(0x1a8),_0x5255b2);});}function a154_0x15a1(){const _0x19837a=['bun','args','node_modules','yarn','954814WWyWbV','.bin','bool','cwd','push','Available:\x20','\x20\x20\x20\x20','pnpm','parse','bun.lock','all','run','inherit','package.json','error','script','29EnWSce','slice','\x20exited\x20with\x20code\x20','Script\x20\x22','\x0a\x20\x20Available\x20scripts:\x0a','vite\x20preview\x20exited\x20with\x20code\x20','\x20run\x20preview\x20--watch','2798DZEmyO','12GIGydd','dev','join','5LaZjrt','pnpm-lock.yaml','Script\x20name\x20defined\x20in\x20package.json','2404760CALrzn','\x20\x20EXAMPLES','\x22\x20not\x20found\x20in\x20package.json.','needsUpgrade','2382980eIMpem','scripts','utf-8','No\x20package.json\x20found\x20in\x20current\x20directory.','preview','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','\x20run\x20preview','watch','\x20run\x20build','close','start','325431hVHCAP','length','vite','log','validation','Enable\x20watch\x20mode\x20for\x20preview','No\x20scripts\x20defined\x20in\x20package.json.','(none)','boolean','--watch','\x20run\x20<script>\x0a','1006268mNDYxv','595353jslENO'];a154_0x15a1=function(){return _0x19837a;};return a154_0x15a1();}const runFlags=[{'name':a154_0x49f937(0x1c3),'type':a154_0x49f937(0x1cf),'description':a154_0x49f937(0x1cc),'default':![]}];export const runDefinition={'service':a154_0x49f937(0x1e3),'command':a154_0x49f937(0x1e3),'description':'Run\x20a\x20package.json\x20script','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a154_0x49f937(0x1a9),'description':a154_0x49f937(0x1b7),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x3bbf20=a154_0x49f937,_0x38c052=[];return _0x38c052[_0x3bbf20(0x1dc)](_0x3bbf20(0x1b9)),_0x38c052['push'](_0x3bbf20(0x1de)+CLI_BIN_NAME+'\x20run\x20start'),_0x38c052['push']('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x3bbf20(0x1c4)),_0x38c052[_0x3bbf20(0x1dc)](_0x3bbf20(0x1de)+CLI_BIN_NAME+_0x3bbf20(0x1c2)),_0x38c052[_0x3bbf20(0x1dc)](_0x3bbf20(0x1de)+CLI_BIN_NAME+_0x3bbf20(0x1b0)),_0x38c052[_0x3bbf20(0x1b4)]('\x0a');},async 'execute'(_0x16ffec){const _0x7a2b63=a154_0x49f937,_0x293bc6=process[_0x7a2b63(0x1db)](),_0x17dca9=_0x16ffec[_0x7a2b63(0x1d5)][0x0],_0x45f592=_0x16ffec[_0x7a2b63(0x1d5)][_0x7a2b63(0x1ab)](0x1),_0x19d234=readPackageScripts(_0x293bc6);if(!_0x19d234)throw CliErrors[_0x7a2b63(0x1cb)](_0x7a2b63(0x1bf));if(!_0x17dca9){const _0x5e2c23=Object['keys'](_0x19d234);if(_0x5e2c23[_0x7a2b63(0x1c8)]===0x0)console[_0x7a2b63(0x1ca)](_0x7a2b63(0x1cd));else{console['log'](_0x7a2b63(0x1ae));for(const _0x549c19 of _0x5e2c23){console[_0x7a2b63(0x1ca)](_0x7a2b63(0x1de)+_0x549c19);}console[_0x7a2b63(0x1ca)]('\x0a\x20\x20Usage:\x20'+CLI_BIN_NAME+_0x7a2b63(0x1d1));}return{'ok':!![]};}if(!_0x19d234[_0x17dca9])throw CliErrors[_0x7a2b63(0x1cb)](_0x7a2b63(0x1ad)+_0x17dca9+_0x7a2b63(0x1ba),_0x7a2b63(0x1dd)+(Object['keys'](_0x19d234)['join'](',\x20')||_0x7a2b63(0x1ce)));const _0x57467a=detectPackageManager(_0x293bc6);VERSION_CHECK_SCRIPTS['has'](_0x17dca9)&&await versionCheck(_0x293bc6);if(_0x17dca9===_0x7a2b63(0x1c0)&&_0x16ffec[_0x7a2b63(0x1da)](_0x7a2b63(0x1c3)))return await Promise[_0x7a2b63(0x1e2)]([spawnViteBuildWatch(_0x293bc6),spawnVitePreview(_0x293bc6)]),{'ok':!![]};return await spawnScript(_0x57467a,_0x17dca9,_0x45f592,_0x293bc6),{'ok':!![]};}};
1
+ const a162_0x4a16b5=a162_0x29d3;function a162_0x29d3(_0x52e830,_0x2cca74){_0x52e830=_0x52e830-0x15c;const _0x512d01=a162_0x512d();let _0x29d3e5=_0x512d01[_0x52e830];return _0x29d3e5;}(function(_0x4e9522,_0x1fe202){const _0x3bdd84=a162_0x29d3,_0x12ef5c=_0x4e9522();while(!![]){try{const _0x364b10=-parseInt(_0x3bdd84(0x171))/0x1*(-parseInt(_0x3bdd84(0x164))/0x2)+parseInt(_0x3bdd84(0x17a))/0x3+-parseInt(_0x3bdd84(0x17c))/0x4+parseInt(_0x3bdd84(0x176))/0x5*(parseInt(_0x3bdd84(0x15f))/0x6)+-parseInt(_0x3bdd84(0x184))/0x7*(parseInt(_0x3bdd84(0x168))/0x8)+parseInt(_0x3bdd84(0x17f))/0x9+-parseInt(_0x3bdd84(0x167))/0xa;if(_0x364b10===_0x1fe202)break;else _0x12ef5c['push'](_0x12ef5c['shift']());}catch(_0x4c2073){_0x12ef5c['push'](_0x12ef5c['shift']());}}}(a162_0x512d,0x718f7));import{readFileSync,existsSync}from'node:fs';import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set([a162_0x4a16b5(0x170),'dev']);function readPackageScripts(_0x4a3bde){const _0x197db7=a162_0x4a16b5,_0x15123d=resolve(_0x4a3bde,_0x197db7(0x160));if(!existsSync(_0x15123d))return null;try{const _0x2c9daa=JSON[_0x197db7(0x17d)](readFileSync(_0x15123d,_0x197db7(0x18e)));return _0x2c9daa[_0x197db7(0x161)]??{};}catch{return null;}}function detectPackageManager(_0x5c2717){const _0x2b7112=a162_0x4a16b5;if(existsSync(resolve(_0x5c2717,'bun.lockb'))||existsSync(resolve(_0x5c2717,_0x2b7112(0x18d))))return _0x2b7112(0x177);if(existsSync(resolve(_0x5c2717,_0x2b7112(0x165))))return _0x2b7112(0x179);if(existsSync(resolve(_0x5c2717,_0x2b7112(0x175))))return'yarn';return'npm';}async function versionCheck(_0x4175b1){const _0x1569fa=a162_0x4a16b5,_0x1780ce=await checkCliVersion();(_0x1780ce['needsUpgrade']||_0x1780ce[_0x1569fa(0x188)])&&(printCliUpgradeWarning(_0x1780ce),assertCliVersionSupported(_0x1780ce));const _0x54f3bf=await checkSdkVersion(_0x4175b1);if(_0x54f3bf['needsUpgrade'])printSdkUpgradeWarning(_0x54f3bf);}function spawnScript(_0x84a2f4,_0x2dc86f,_0x5444cc,_0x132be1){return new Promise((_0x28bae9,_0xebfa9f)=>{const _0x19441a=a162_0x29d3,_0x33c781=[_0x19441a(0x183),_0x2dc86f,..._0x5444cc],_0x78694f=spawn(_0x84a2f4,_0x33c781,{'cwd':_0x132be1,'stdio':_0x19441a(0x169),'shell':!![],'env':{...process.env,'PATH':''+join(_0x132be1,_0x19441a(0x16f),'.bin')+delimiter+process.env.PATH}});_0x78694f['on'](_0x19441a(0x191),_0x37b8ca=>{const _0x257aea=_0x19441a;if(_0x37b8ca===0x0||_0x37b8ca===null)_0x28bae9();else _0xebfa9f(new Error(_0x84a2f4+_0x257aea(0x172)+_0x2dc86f+_0x257aea(0x163)+_0x37b8ca));}),_0x78694f['on'](_0x19441a(0x15d),_0xebfa9f);});}function spawnViteBuildWatch(_0x57e653){return new Promise((_0x536e02,_0x313ce6)=>{const _0xa95267=a162_0x29d3,_0x2346c2=spawn('vite',[_0xa95267(0x15c),_0xa95267(0x192)],{'cwd':_0x57e653,'stdio':_0xa95267(0x169),'shell':!![],'env':{...process.env,'PATH':''+join(_0x57e653,_0xa95267(0x16f),_0xa95267(0x193))+delimiter+process.env.PATH}});_0x2346c2['on'](_0xa95267(0x191),_0x58feff=>{if(_0x58feff===0x0||_0x58feff===null)_0x536e02();else _0x313ce6(new Error('vite\x20build\x20--watch\x20exited\x20with\x20code\x20'+_0x58feff));}),_0x2346c2['on'](_0xa95267(0x15d),_0x313ce6);});}function a162_0x512d(){const _0x47f259=['package.json','scripts','validation','\x20exited\x20with\x20code\x20','634iBGsND','pnpm-lock.yaml','watch','11889430zLipBO','8EaUOmB','inherit','args','Enable\x20watch\x20mode\x20for\x20preview','has','preview','log','node_modules','start','2137bsagzw','\x20run\x20','\x20run\x20build','No\x20package.json\x20found\x20in\x20current\x20directory.','yarn.lock','11955ERmnMC','bun','Available:\x20','pnpm','62145MTBCER','\x20run\x20<script>\x0a','1262972JfiWZo','parse','push','4543002jeDFTy','bool','boolean','keys','run','974974SxyPCH','\x0a\x20\x20Available\x20scripts:\x0a','length','read','belowMinimum','Script\x20\x22','Run\x20a\x20package.json\x20script','\x20\x20\x20\x20','No\x20scripts\x20defined\x20in\x20package.json.','bun.lock','utf-8','\x20run\x20preview\x20--watch','\x22\x20not\x20found\x20in\x20package.json.','close','--watch','.bin','all','build','error','join','2274idVovI'];a162_0x512d=function(){return _0x47f259;};return a162_0x512d();}function spawnVitePreview(_0x5cce35){return new Promise((_0xbcf9c5,_0x4539e9)=>{const _0x49cfed=a162_0x29d3,_0x510f7f=spawn('vite',['preview'],{'cwd':_0x5cce35,'stdio':_0x49cfed(0x169),'shell':!![],'env':{...process.env,'PATH':''+join(_0x5cce35,_0x49cfed(0x16f),'.bin')+delimiter+process.env.PATH}});_0x510f7f['on'](_0x49cfed(0x191),_0x58ca49=>{if(_0x58ca49===0x0||_0x58ca49===null)_0xbcf9c5();else _0x4539e9(new Error('vite\x20preview\x20exited\x20with\x20code\x20'+_0x58ca49));}),_0x510f7f['on']('error',_0x4539e9);});}const runFlags=[{'name':a162_0x4a16b5(0x166),'type':a162_0x4a16b5(0x181),'description':a162_0x4a16b5(0x16b),'default':![]}];export const runDefinition={'service':a162_0x4a16b5(0x183),'command':'run','description':a162_0x4a16b5(0x18a),'risk':a162_0x4a16b5(0x187),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':'script','description':'Script\x20name\x20defined\x20in\x20package.json','required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x2d8fb7=a162_0x4a16b5,_0x3d81af=[];return _0x3d81af[_0x2d8fb7(0x17e)]('\x20\x20EXAMPLES'),_0x3d81af[_0x2d8fb7(0x17e)]('\x20\x20\x20\x20'+CLI_BIN_NAME+'\x20run\x20start'),_0x3d81af[_0x2d8fb7(0x17e)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x2d8fb7(0x173)),_0x3d81af[_0x2d8fb7(0x17e)](_0x2d8fb7(0x18b)+CLI_BIN_NAME+'\x20run\x20preview'),_0x3d81af[_0x2d8fb7(0x17e)](_0x2d8fb7(0x18b)+CLI_BIN_NAME+_0x2d8fb7(0x18f)),_0x3d81af[_0x2d8fb7(0x15e)]('\x0a');},async 'execute'(_0x505201){const _0x315af3=a162_0x4a16b5,_0x236c3d=process['cwd'](),_0x30afe2=_0x505201[_0x315af3(0x16a)][0x0],_0x583440=_0x505201[_0x315af3(0x16a)]['slice'](0x1),_0x1a72f1=readPackageScripts(_0x236c3d);if(!_0x1a72f1)throw CliErrors[_0x315af3(0x162)](_0x315af3(0x174));if(!_0x30afe2){const _0x900e76=Object[_0x315af3(0x182)](_0x1a72f1);if(_0x900e76[_0x315af3(0x186)]===0x0)console[_0x315af3(0x16e)](_0x315af3(0x18c));else{console[_0x315af3(0x16e)](_0x315af3(0x185));for(const _0x4a84be of _0x900e76){console[_0x315af3(0x16e)](_0x315af3(0x18b)+_0x4a84be);}console[_0x315af3(0x16e)]('\x0a\x20\x20Usage:\x20'+CLI_BIN_NAME+_0x315af3(0x17b));}return{'ok':!![]};}if(!_0x1a72f1[_0x30afe2])throw CliErrors[_0x315af3(0x162)](_0x315af3(0x189)+_0x30afe2+_0x315af3(0x190),_0x315af3(0x178)+(Object[_0x315af3(0x182)](_0x1a72f1)[_0x315af3(0x15e)](',\x20')||'(none)'));const _0x58c615=detectPackageManager(_0x236c3d);VERSION_CHECK_SCRIPTS[_0x315af3(0x16c)](_0x30afe2)&&await versionCheck(_0x236c3d);if(_0x30afe2===_0x315af3(0x16d)&&_0x505201[_0x315af3(0x180)](_0x315af3(0x166)))return await Promise[_0x315af3(0x194)]([spawnViteBuildWatch(_0x236c3d),spawnVitePreview(_0x236c3d)]),{'ok':!![]};return await spawnScript(_0x58c615,_0x30afe2,_0x583440,_0x236c3d),{'ok':!![]};}};
@@ -1 +1 @@
1
- const a155_0x5c7721=a155_0x5b0a;(function(_0x4d326a,_0x542608){const _0x59c1a3=a155_0x5b0a,_0x4ea0cd=_0x4d326a();while(!![]){try{const _0x1d42f5=parseInt(_0x59c1a3(0x8a))/0x1+parseInt(_0x59c1a3(0x8f))/0x2+parseInt(_0x59c1a3(0x8b))/0x3+-parseInt(_0x59c1a3(0x8c))/0x4+-parseInt(_0x59c1a3(0x95))/0x5+parseInt(_0x59c1a3(0x92))/0x6*(-parseInt(_0x59c1a3(0x8d))/0x7)+-parseInt(_0x59c1a3(0x94))/0x8*(parseInt(_0x59c1a3(0x90))/0x9);if(_0x1d42f5===_0x542608)break;else _0x4ea0cd['push'](_0x4ea0cd['shift']());}catch(_0x463b75){_0x4ea0cd['push'](_0x4ea0cd['shift']());}}}(a155_0xfb6d,0xa2007));import{buildSchemaPayload}from'../framework/schema-export.js';function a155_0x5b0a(_0x29a19d,_0x5bb990){_0x29a19d=_0x29a19d-0x8a;const _0xfb6dc9=a155_0xfb6d();let _0x5b0aea=_0xfb6dc9[_0x29a19d];return _0x5b0aea;}function a155_0xfb6d(){const _0x27f35a=['1224267UlmYpb','3264165GcORpA','1887340PdKXou','66710qPOReN','export','2557320qUPMhu','18pvRQCH','schema','24KWdjqj','read','5471448pDVTZg','5248030pbaQlZ','json'];a155_0xfb6d=function(){return _0x27f35a;};return a155_0xfb6d();}async function execute(_0x42bd33){const _0x291894=await buildSchemaPayload();return{'ok':!![],'data':_0x291894};}export const schemaDefinition={'service':a155_0x5c7721(0x91),'command':a155_0x5c7721(0x8e),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a155_0x5c7721(0x93),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a155_0x5c7721(0x96),'flags':[],'execute':execute};
1
+ const a163_0x369067=a163_0x41b5;(function(_0x29a7a2,_0x16e959){const _0x4f311c=a163_0x41b5,_0x450710=_0x29a7a2();while(!![]){try{const _0x10aa99=-parseInt(_0x4f311c(0x6a))/0x1*(parseInt(_0x4f311c(0x68))/0x2)+-parseInt(_0x4f311c(0x69))/0x3+-parseInt(_0x4f311c(0x6c))/0x4*(parseInt(_0x4f311c(0x6f))/0x5)+-parseInt(_0x4f311c(0x70))/0x6*(parseInt(_0x4f311c(0x71))/0x7)+-parseInt(_0x4f311c(0x72))/0x8*(-parseInt(_0x4f311c(0x66))/0x9)+parseInt(_0x4f311c(0x6b))/0xa*(-parseInt(_0x4f311c(0x6e))/0xb)+parseInt(_0x4f311c(0x65))/0xc;if(_0x10aa99===_0x16e959)break;else _0x450710['push'](_0x450710['shift']());}catch(_0x1a170c){_0x450710['push'](_0x450710['shift']());}}}(a163_0x3244,0x30724));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x3fc8ae){const _0x4710f6=await buildSchemaPayload();return{'ok':!![],'data':_0x4710f6};}export const schemaDefinition={'service':'schema','command':a163_0x369067(0x67),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a163_0x369067(0x6d),'flags':[],'execute':execute};function a163_0x41b5(_0x1bf0f5,_0x4bd15f){_0x1bf0f5=_0x1bf0f5-0x65;const _0x3244d1=a163_0x3244();let _0x41b5db=_0x3244d1[_0x1bf0f5];return _0x41b5db;}function a163_0x3244(){const _0x459a22=['27GoPIHm','54530LcinyQ','60ANKpKS','json','638Czegcu','122455FnVDHG','24NRiPdT','455427HZnavf','132040TrXOZM','18664356fPictr','117aFHUeA','export','17246EyTIsX','1184364DEmVAg'];a163_0x3244=function(){return _0x459a22;};return a163_0x3244();}
@@ -1 +1 @@
1
- const a156_0x50e9e7=a156_0x42dd;(function(_0x142527,_0x4b75f1){const _0x3fd3ec=a156_0x42dd,_0x3f4cf4=_0x142527();while(!![]){try{const _0x5f3961=-parseInt(_0x3fd3ec(0x120))/0x1*(-parseInt(_0x3fd3ec(0x12a))/0x2)+-parseInt(_0x3fd3ec(0x145))/0x3*(parseInt(_0x3fd3ec(0x11b))/0x4)+-parseInt(_0x3fd3ec(0x11c))/0x5+-parseInt(_0x3fd3ec(0x146))/0x6+parseInt(_0x3fd3ec(0x114))/0x7*(-parseInt(_0x3fd3ec(0x117))/0x8)+parseInt(_0x3fd3ec(0x149))/0x9*(parseInt(_0x3fd3ec(0x108))/0xa)+parseInt(_0x3fd3ec(0x133))/0xb;if(_0x5f3961===_0x4b75f1)break;else _0x3f4cf4['push'](_0x3f4cf4['shift']());}catch(_0x3364d3){_0x3f4cf4['push'](_0x3f4cf4['shift']());}}}(a156_0x38f0,0xdf558));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';function a156_0x38f0(){const _0x96559b=['2AfXQNu','Local\x20SQL\x20file\x20mode','string','请输入目标数据库\x20dbId:','sql','dbId','flag','Created\x20SQL\x20query\x20','name','flagMissing','495346jVhHxB','dbId\x20必须为正整数','普通\x20SQL(sql)','mybatisXml','create','isInteger','map','✎\x20手动输入\x20dbId','isFinite','41112478fNZvqs','POST','请输入\x20SQL\x20名称:','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','请选择本地\x20SQL\x20模式:','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','/smartapi/custom/saveUserCustomSql','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','stringify','sqlCode','lockFilePath','<server-generated-sqlCode>','str','__manual__','length','catch','high-risk-write','db-id','148233jPHuPD','5039610GwSRbX','number','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','664695wRKirY','SELECT\x201\x20AS\x20id;','20bXNAIm','validation','toISOString','Invalid\x20database\x20selection\x20payload:\x20','utf8','parse','nonInteractive','sqls','trim','mode','\x20\x20SELECT\x201\x20AS\x20id','appCode','2261FXBxNo','Target\x20database\x20ID','dbName','25768AdsyyP','sqlName','join','dbId\x20不能为空','12rHqccH','7186135zDIFEG','SQL\x20query\x20display\x20name','new','sqlRootDir'];a156_0x38f0=function(){return _0x96559b;};return a156_0x38f0();}import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x271e4e){const _0x593dd2=a156_0x42dd;if(_0x271e4e===_0x593dd2(0x12d))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x593dd2(0x112),'</select>',''][_0x593dd2(0x119)]('\x0a');return[_0x593dd2(0x14a),''][_0x593dd2(0x119)]('\x0a');}function a156_0x42dd(_0x341641,_0x4b2f71){_0x341641=_0x341641-0x108;const _0x38f07c=a156_0x38f0();let _0x42dd95=_0x38f07c[_0x341641];return _0x42dd95;}export const sqlCreate={'service':a156_0x50e9e7(0x124),'command':a156_0x50e9e7(0x12e),'description':a156_0x50e9e7(0x148),'risk':a156_0x50e9e7(0x143),'flags':[{'name':a156_0x50e9e7(0x128),'type':'string','description':a156_0x50e9e7(0x11d)},{'name':a156_0x50e9e7(0x144),'type':a156_0x50e9e7(0x147),'description':a156_0x50e9e7(0x115)},{'name':'mode','type':a156_0x50e9e7(0x122),'enum':['sql','mybatisXml'],'description':a156_0x50e9e7(0x121)}],async 'validate'(_0x1286bf){const _0x363557=a156_0x50e9e7;if(!_0x1286bf[_0x363557(0x10e)])return;if(!_0x1286bf[_0x363557(0x13f)](_0x363557(0x128))[_0x363557(0x110)]())throw CliErrors[_0x363557(0x129)](_0x363557(0x128),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0xb0cd54=resolveProvidedDbId(_0x1286bf);if(typeof _0xb0cd54!==_0x363557(0x147)||!Number[_0x363557(0x132)](_0xb0cd54)||_0xb0cd54<=0x0)throw CliErrors[_0x363557(0x129)](_0x363557(0x144),_0x363557(0x138));if(!_0x1286bf[_0x363557(0x13f)](_0x363557(0x111))[_0x363557(0x110)]())throw CliErrors[_0x363557(0x129)]('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x53fd27){const _0x597f00=a156_0x50e9e7,_0x518407=loadSqlProjectConfig(_0x53fd27[_0x597f00(0x113)]),{sqlName:_0x28923b,dbId:_0x2ad01d,dbName:_0x1139ef,mode:_0x2b43a4}=await resolveSqlNewInputs(_0x53fd27),_0x46b088=buildSqlRelativePath(_0x597f00(0x13e),_0x28923b,_0x1139ef,_0x2b43a4,_0x2ad01d),_0x1e76c3=_0x518407['sqlRootDir']+'/'+_0x46b088;return{'method':_0x597f00(0x134),'url':_0x597f00(0x139),'body':{'appCode':_0x53fd27['appCode'],'sqlName':_0x28923b,'dbId':_0x2ad01d,'mode':_0x2b43a4,'localPath':_0x1e76c3},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x518407[_0x597f00(0x11f)]};},async 'execute'(_0x20711a){const _0x4dc13f=a156_0x50e9e7,_0x39b038=loadSqlProjectConfig(_0x20711a[_0x4dc13f(0x113)]),{sqlName:_0x32331b,dbId:_0x461a46,dbName:_0x1a7010,mode:_0x53274b}=await resolveSqlNewInputs(_0x20711a),_0x1f6924=generateSqlTemplate(_0x53274b),_0x273d13=await createSqlQuery({'appCode':_0x20711a[_0x4dc13f(0x113)],'sqlName':_0x32331b,'dbId':_0x461a46,'sqlContent':_0x1f6924}),_0x507f4f=ensureRemoteSqlContent(_0x273d13),_0x13765e=_0x1a7010||await getDbName(_0x20711a[_0x4dc13f(0x113)],_0x461a46)['catch'](()=>undefined),_0x3cb21d=buildSqlRelativePath(_0x273d13[_0x4dc13f(0x13c)],_0x273d13[_0x4dc13f(0x118)],_0x13765e,_0x53274b,_0x461a46),_0x3dc2a9=_0x39b038[_0x4dc13f(0x11f)]+'/'+_0x3cb21d,_0x45719d=buildLocalSqlFileContent({'sqlCode':_0x273d13[_0x4dc13f(0x13c)],'sqlName':_0x273d13[_0x4dc13f(0x118)],'dbId':_0x273d13[_0x4dc13f(0x125)]},_0x507f4f,{'dbName':_0x13765e,'mode':_0x53274b,'syncedAt':new Date()[_0x4dc13f(0x10a)](),'description':_0x273d13['description']});if(await fileExists(_0x3dc2a9))throw CliErrors[_0x4dc13f(0x109)]('File\x20already\x20exists:\x20'+_0x3dc2a9);await ensureParentDirectory(_0x3dc2a9),await writeFile(_0x3dc2a9,_0x45719d,_0x4dc13f(0x10c));const _0x562d9c=await readSqlLockFile(_0x39b038['lockFilePath']),{lockData:_0x1bc38b,appLock:_0x5d483a}=ensureSqlLockScope(_0x562d9c??createEmptySqlLock(),_0x39b038[_0x4dc13f(0x113)],_0x39b038['sqlRoot'],_0x4dc13f(0x11e));return _0x5d483a[_0x4dc13f(0x10f)][_0x273d13[_0x4dc13f(0x13c)]]={...buildSqlLockEntry(_0x273d13,_0x507f4f,computeSqlContentHash(_0x45719d),{'dbName':_0x13765e}),'path':_0x3cb21d,'mode':_0x53274b},_0x5d483a['lastSync']=new Date()[_0x4dc13f(0x10a)](),await writeSqlLockFile(_0x39b038[_0x4dc13f(0x13d)],_0x1bc38b),{'ok':!![],'data':{'id':_0x273d13['id'],'sqlCode':_0x273d13[_0x4dc13f(0x13c)],'sqlName':_0x273d13[_0x4dc13f(0x118)],'dbId':_0x273d13['dbId'],'path':_0x3dc2a9,'mode':_0x53274b},'message':_0x4dc13f(0x127)+_0x273d13[_0x4dc13f(0x13c)]};}};async function resolveSqlNewInputs(_0x12cc4d){const _0x48063d=await resolveSqlNameInput(_0x12cc4d),{dbId:_0x10631d,dbName:_0x2f6748}=await resolveDbSelection(_0x12cc4d),_0x608336=await resolveSqlModeInput(_0x12cc4d);return{'sqlName':_0x48063d,'dbId':_0x10631d,'dbName':_0x2f6748,'mode':_0x608336};}async function resolveSqlNameInput(_0x436dd9){const _0x41e461=a156_0x50e9e7,_0x764e1e=_0x436dd9[_0x41e461(0x13f)](_0x41e461(0x128))[_0x41e461(0x110)]();if(_0x764e1e)return _0x764e1e;if(_0x436dd9['nonInteractive'])throw CliErrors['flagMissing'](_0x41e461(0x128),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x41e461(0x135),'validate':_0x51108a=>_0x51108a[_0x41e461(0x110)]()?!![]:'SQL\x20名称不能为空'}))['trim']();}async function resolveDbSelection(_0x92dd20){const _0xae0806=a156_0x50e9e7,_0x1f5d74=resolveProvidedDbId(_0x92dd20);if(typeof _0x1f5d74===_0xae0806(0x147)&&Number[_0xae0806(0x132)](_0x1f5d74)&&_0x1f5d74>0x0)return{'dbId':_0x1f5d74,'dbName':await getDbName(_0x92dd20[_0xae0806(0x113)],_0x1f5d74)[_0xae0806(0x142)](()=>undefined)};if(_0x92dd20[_0xae0806(0x10e)])throw CliErrors[_0xae0806(0x129)]('db-id',_0xae0806(0x138));const _0x1d3b1c=await listDatabases(_0x92dd20['appCode'])['catch'](()=>[]);if(_0x1d3b1c['length']===0x1)return{'dbId':_0x1d3b1c[0x0][_0xae0806(0x125)],'dbName':_0x1d3b1c[0x0]['dbName']};if(_0x1d3b1c[_0xae0806(0x141)]>0x1){const _0x58a634=await select({'message':'请选择目标数据库:','choices':[..._0x1d3b1c[_0xae0806(0x130)](_0x6837d2=>({'name':_0x6837d2[_0xae0806(0x116)]+'\x20('+_0x6837d2[_0xae0806(0x125)]+')','value':serializeDbSelection(_0x6837d2)})),{'name':_0xae0806(0x131),'value':'__manual__'}]});if(_0x58a634!==_0xae0806(0x140))return deserializeDbSelection(_0x58a634);}const _0x29e453=await input({'message':_0xae0806(0x123),'validate':_0x4f750a=>{const _0x3ff48d=_0xae0806,_0x616320=_0x4f750a[_0x3ff48d(0x110)]();if(!_0x616320)return _0x3ff48d(0x11a);const _0x4645d0=Number(_0x616320);if(!Number[_0x3ff48d(0x12f)](_0x4645d0)||_0x4645d0<=0x0)return _0x3ff48d(0x12b);return!![];}});return{'dbId':Number(_0x29e453[_0xae0806(0x110)]())};}async function resolveSqlModeInput(_0x32a7d7){const _0xd912f9=a156_0x50e9e7,_0x588c27=_0x32a7d7['str'](_0xd912f9(0x111))[_0xd912f9(0x110)]();if(_0x588c27==='sql'||_0x588c27===_0xd912f9(0x12d))return _0x588c27;if(_0x32a7d7[_0xd912f9(0x10e)])throw CliErrors[_0xd912f9(0x129)]('mode',_0xd912f9(0x13a));return await select({'message':_0xd912f9(0x137),'choices':[{'name':_0xd912f9(0x12c),'value':_0xd912f9(0x124),'description':_0xd912f9(0x136)},{'name':'MyBatis\x20XML(mybatisXml)','value':_0xd912f9(0x12d),'description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x13c395){const _0x24e148=a156_0x50e9e7;return JSON[_0x24e148(0x13b)]({'dbId':_0x13c395['dbId'],'dbName':_0x13c395[_0x24e148(0x116)]});}function deserializeDbSelection(_0x548fb6){const _0x172485=a156_0x50e9e7;try{const _0x44fa51=JSON[_0x172485(0x10d)](_0x548fb6);if(typeof _0x44fa51['dbId']===_0x172485(0x147)&&Number[_0x172485(0x132)](_0x44fa51['dbId']))return{'dbId':_0x44fa51[_0x172485(0x125)],'dbName':_0x44fa51['dbName']};}catch{}throw CliErrors[_0x172485(0x109)](_0x172485(0x10b)+_0x548fb6);}function resolveProvidedDbId(_0x3ec298){const _0x34e2f3=a156_0x50e9e7,_0x3f6767=_0x3ec298[_0x34e2f3(0x126)](_0x34e2f3(0x144));if(typeof _0x3f6767===_0x34e2f3(0x147)&&Number[_0x34e2f3(0x132)](_0x3f6767))return _0x3f6767;return undefined;}
1
+ const a164_0x33e086=a164_0x30a2;(function(_0x4963a6,_0x46afad){const _0x2fd205=a164_0x30a2,_0x27a595=_0x4963a6();while(!![]){try{const _0x2dfa87=parseInt(_0x2fd205(0x1ab))/0x1+-parseInt(_0x2fd205(0x1c0))/0x2*(parseInt(_0x2fd205(0x1a1))/0x3)+parseInt(_0x2fd205(0x18b))/0x4+parseInt(_0x2fd205(0x192))/0x5*(-parseInt(_0x2fd205(0x198))/0x6)+parseInt(_0x2fd205(0x1b8))/0x7*(-parseInt(_0x2fd205(0x1bf))/0x8)+-parseInt(_0x2fd205(0x1a3))/0x9+parseInt(_0x2fd205(0x195))/0xa;if(_0x2dfa87===_0x46afad)break;else _0x27a595['push'](_0x27a595['shift']());}catch(_0x1fd9bb){_0x27a595['push'](_0x27a595['shift']());}}}(a164_0x37d1,0x32574));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x88b9f7){const _0x2d57c6=a164_0x30a2;if(_0x88b9f7===_0x2d57c6(0x185))return[_0x2d57c6(0x1a4),_0x2d57c6(0x188),_0x2d57c6(0x19a),''][_0x2d57c6(0x186)]('\x0a');return[_0x2d57c6(0x1b1),''][_0x2d57c6(0x186)]('\x0a');}export const sqlCreate={'service':'sql','command':'create','description':a164_0x33e086(0x1bb),'risk':'high-risk-write','flags':[{'name':a164_0x33e086(0x1c6),'type':a164_0x33e086(0x1ae),'description':a164_0x33e086(0x1a0)},{'name':a164_0x33e086(0x193),'type':'number','description':'Target\x20database\x20ID'},{'name':a164_0x33e086(0x1b3),'type':a164_0x33e086(0x1ae),'enum':[a164_0x33e086(0x1c1),a164_0x33e086(0x185)],'description':a164_0x33e086(0x184)}],async 'validate'(_0x29dfb6){const _0xa6f17f=a164_0x33e086;if(!_0x29dfb6['nonInteractive'])return;if(!_0x29dfb6[_0xa6f17f(0x1c4)](_0xa6f17f(0x1c6))['trim']())throw CliErrors[_0xa6f17f(0x18c)](_0xa6f17f(0x1c6),_0xa6f17f(0x1a8));const _0x465406=resolveProvidedDbId(_0x29dfb6);if(typeof _0x465406!==_0xa6f17f(0x197)||!Number['isFinite'](_0x465406)||_0x465406<=0x0)throw CliErrors[_0xa6f17f(0x18c)](_0xa6f17f(0x193),_0xa6f17f(0x1b9));if(!_0x29dfb6['str']('mode')[_0xa6f17f(0x1ad)]())throw CliErrors['flagMissing'](_0xa6f17f(0x1b3),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x59ce8d){const _0x870881=a164_0x33e086,_0x28fbfd=loadSqlProjectConfig(_0x59ce8d['appCode']),{sqlName:_0x14897d,dbId:_0x11568e,dbName:_0x8410f7,mode:_0x26753a}=await resolveSqlNewInputs(_0x59ce8d),_0xf7a87e=buildSqlRelativePath('<server-generated-sqlCode>',_0x14897d,_0x8410f7,_0x26753a,_0x11568e),_0x44051e=_0x28fbfd[_0x870881(0x1b0)]+'/'+_0xf7a87e;return{'method':_0x870881(0x199),'url':_0x870881(0x1af),'body':{'appCode':_0x59ce8d[_0x870881(0x18f)],'sqlName':_0x14897d,'dbId':_0x11568e,'mode':_0x26753a,'localPath':_0x44051e},'description':_0x870881(0x1b7)+_0x28fbfd[_0x870881(0x1b0)]};},async 'execute'(_0x728b7c){const _0x403088=a164_0x33e086,_0x1f9e5c=loadSqlProjectConfig(_0x728b7c[_0x403088(0x18f)]),{sqlName:_0x122eea,dbId:_0x4765d1,dbName:_0x4da587,mode:_0x587a2d}=await resolveSqlNewInputs(_0x728b7c),_0x207caa=generateSqlTemplate(_0x587a2d),_0xe2c5e4=await createSqlQuery({'appCode':_0x728b7c['appCode'],'sqlName':_0x122eea,'dbId':_0x4765d1,'sqlContent':_0x207caa}),_0x16b3d6=ensureRemoteSqlContent(_0xe2c5e4),_0x19be16=_0x4da587||await getDbName(_0x728b7c[_0x403088(0x18f)],_0x4765d1)[_0x403088(0x1c8)](()=>undefined),_0x1c7b6f=buildSqlRelativePath(_0xe2c5e4[_0x403088(0x19c)],_0xe2c5e4[_0x403088(0x1a7)],_0x19be16,_0x587a2d,_0x4765d1),_0x20c4ca=_0x1f9e5c[_0x403088(0x1b0)]+'/'+_0x1c7b6f,_0x372787=buildLocalSqlFileContent({'sqlCode':_0xe2c5e4[_0x403088(0x19c)],'sqlName':_0xe2c5e4['sqlName'],'dbId':_0xe2c5e4[_0x403088(0x1ac)]},_0x16b3d6,{'dbName':_0x19be16,'mode':_0x587a2d,'syncedAt':new Date()['toISOString'](),'description':_0xe2c5e4[_0x403088(0x1a5)]});if(await fileExists(_0x20c4ca))throw CliErrors[_0x403088(0x1be)](_0x403088(0x190)+_0x20c4ca);await ensureParentDirectory(_0x20c4ca),await writeFile(_0x20c4ca,_0x372787,_0x403088(0x19b));const _0x4b7736=await readSqlLockFile(_0x1f9e5c['lockFilePath']),{lockData:_0x1e170c,appLock:_0xaeb209}=ensureSqlLockScope(_0x4b7736??createEmptySqlLock(),_0x1f9e5c['appCode'],_0x1f9e5c['sqlRoot'],_0x403088(0x1bd));return _0xaeb209[_0x403088(0x1ba)][_0xe2c5e4[_0x403088(0x19c)]]={...buildSqlLockEntry(_0xe2c5e4,_0x16b3d6,computeSqlContentHash(_0x372787),{'dbName':_0x19be16}),'path':_0x1c7b6f,'mode':_0x587a2d},_0xaeb209[_0x403088(0x1a9)]=new Date()[_0x403088(0x183)](),await writeSqlLockFile(_0x1f9e5c[_0x403088(0x1b2)],_0x1e170c),{'ok':!![],'data':{'id':_0xe2c5e4['id'],'sqlCode':_0xe2c5e4[_0x403088(0x19c)],'sqlName':_0xe2c5e4[_0x403088(0x1a7)],'dbId':_0xe2c5e4['dbId'],'path':_0x20c4ca,'mode':_0x587a2d},'message':'Created\x20SQL\x20query\x20'+_0xe2c5e4[_0x403088(0x19c)]};}};async function resolveSqlNewInputs(_0xc09fff){const _0x3ee0d0=await resolveSqlNameInput(_0xc09fff),{dbId:_0x173a4f,dbName:_0x4740c6}=await resolveDbSelection(_0xc09fff),_0x2b9ed9=await resolveSqlModeInput(_0xc09fff);return{'sqlName':_0x3ee0d0,'dbId':_0x173a4f,'dbName':_0x4740c6,'mode':_0x2b9ed9};}async function resolveSqlNameInput(_0x15629f){const _0x2de3bb=a164_0x33e086,_0x45c383=_0x15629f['str'](_0x2de3bb(0x1c6))[_0x2de3bb(0x1ad)]();if(_0x45c383)return _0x45c383;if(_0x15629f[_0x2de3bb(0x191)])throw CliErrors[_0x2de3bb(0x18c)](_0x2de3bb(0x1c6),_0x2de3bb(0x1a8));return(await input({'message':_0x2de3bb(0x1c5),'validate':_0x5257c7=>_0x5257c7[_0x2de3bb(0x1ad)]()?!![]:_0x2de3bb(0x1b6)}))['trim']();}async function resolveDbSelection(_0x1c69c0){const _0x4f1982=a164_0x33e086,_0x2f7459=resolveProvidedDbId(_0x1c69c0);if(typeof _0x2f7459===_0x4f1982(0x197)&&Number['isFinite'](_0x2f7459)&&_0x2f7459>0x0)return{'dbId':_0x2f7459,'dbName':await getDbName(_0x1c69c0[_0x4f1982(0x18f)],_0x2f7459)[_0x4f1982(0x1c8)](()=>undefined)};if(_0x1c69c0[_0x4f1982(0x191)])throw CliErrors[_0x4f1982(0x18c)]('db-id',_0x4f1982(0x1b9));const _0x429a09=await listDatabases(_0x1c69c0[_0x4f1982(0x18f)])[_0x4f1982(0x1c8)](()=>[]);if(_0x429a09[_0x4f1982(0x1c2)]===0x1)return{'dbId':_0x429a09[0x0][_0x4f1982(0x1ac)],'dbName':_0x429a09[0x0][_0x4f1982(0x1c3)]};if(_0x429a09['length']>0x1){const _0x153f1b=await select({'message':_0x4f1982(0x19f),'choices':[..._0x429a09[_0x4f1982(0x1b4)](_0x1cb93f=>({'name':_0x1cb93f[_0x4f1982(0x1c3)]+'\x20('+_0x1cb93f['dbId']+')','value':serializeDbSelection(_0x1cb93f)})),{'name':_0x4f1982(0x1c7),'value':'__manual__'}]});if(_0x153f1b!==_0x4f1982(0x1b5))return deserializeDbSelection(_0x153f1b);}const _0x4a9e4a=await input({'message':_0x4f1982(0x196),'validate':_0xc6c30e=>{const _0x17f884=_0x4f1982,_0x50b519=_0xc6c30e[_0x17f884(0x1ad)]();if(!_0x50b519)return _0x17f884(0x18d);const _0x13265e=Number(_0x50b519);if(!Number[_0x17f884(0x1aa)](_0x13265e)||_0x13265e<=0x0)return _0x17f884(0x19e);return!![];}});return{'dbId':Number(_0x4a9e4a[_0x4f1982(0x1ad)]())};}async function resolveSqlModeInput(_0x30e9c3){const _0x26a004=a164_0x33e086,_0x153f61=_0x30e9c3[_0x26a004(0x1c4)]('mode')[_0x26a004(0x1ad)]();if(_0x153f61===_0x26a004(0x1c1)||_0x153f61===_0x26a004(0x185))return _0x153f61;if(_0x30e9c3[_0x26a004(0x191)])throw CliErrors['flagMissing'](_0x26a004(0x1b3),_0x26a004(0x1a6));return await select({'message':_0x26a004(0x189),'choices':[{'name':'普通\x20SQL(sql)','value':_0x26a004(0x1c1),'description':_0x26a004(0x18a)},{'name':'MyBatis\x20XML(mybatisXml)','value':_0x26a004(0x185),'description':_0x26a004(0x19d)}]});}function serializeDbSelection(_0x322938){const _0x20d30d=a164_0x33e086;return JSON[_0x20d30d(0x194)]({'dbId':_0x322938[_0x20d30d(0x1ac)],'dbName':_0x322938[_0x20d30d(0x1c3)]});}function a164_0x37d1(){const _0x12b61c=['number','288WlayHx','POST','</select>','utf8','sqlCode','适合带动态标签的\x20MyBatis\x20XML\x20SQL','dbId\x20必须为正整数','请选择目标数据库:','SQL\x20query\x20display\x20name','39ijwbiL','flag','3496428rgsLkJ','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','description','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','sqlName','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','lastSync','isInteger','52793OHYfwG','dbId','trim','string','/smartapi/custom/saveUserCustomSql','sqlRootDir','SELECT\x201\x20AS\x20id;','lockFilePath','mode','map','__manual__','SQL\x20名称不能为空','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','7zFpXcM','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','sqls','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','parse','new','validation','2817512jLwObM','27282HnuOnr','sql','length','dbName','str','请输入\x20SQL\x20名称:','name','✎\x20手动输入\x20dbId','catch','toISOString','Local\x20SQL\x20file\x20mode','mybatisXml','join','Invalid\x20database\x20selection\x20payload:\x20','\x20\x20SELECT\x201\x20AS\x20id','请选择本地\x20SQL\x20模式:','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','1443432EDjjVm','flagMissing','dbId\x20不能为空','isFinite','appCode','File\x20already\x20exists:\x20','nonInteractive','4490JFwvYS','db-id','stringify','7536630eksjqN','请输入目标数据库\x20dbId:'];a164_0x37d1=function(){return _0x12b61c;};return a164_0x37d1();}function deserializeDbSelection(_0x15741a){const _0x3e7fc9=a164_0x33e086;try{const _0x4a552b=JSON[_0x3e7fc9(0x1bc)](_0x15741a);if(typeof _0x4a552b[_0x3e7fc9(0x1ac)]===_0x3e7fc9(0x197)&&Number[_0x3e7fc9(0x18e)](_0x4a552b[_0x3e7fc9(0x1ac)]))return{'dbId':_0x4a552b[_0x3e7fc9(0x1ac)],'dbName':_0x4a552b[_0x3e7fc9(0x1c3)]};}catch{}throw CliErrors[_0x3e7fc9(0x1be)](_0x3e7fc9(0x187)+_0x15741a);}function a164_0x30a2(_0x5b797d,_0x3095eb){_0x5b797d=_0x5b797d-0x183;const _0x37d157=a164_0x37d1();let _0x30a2f4=_0x37d157[_0x5b797d];return _0x30a2f4;}function resolveProvidedDbId(_0x212aef){const _0x1a45d2=a164_0x33e086,_0x3be258=_0x212aef[_0x1a45d2(0x1a2)](_0x1a45d2(0x193));if(typeof _0x3be258===_0x1a45d2(0x197)&&Number['isFinite'](_0x3be258))return _0x3be258;return undefined;}
@@ -1 +1 @@
1
- function a157_0x1fa9(){const _0x3808c2=['3197552IdhVdL','trashedTo','str','replace','entries','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','POST','sqlcode','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','/smartapi/custom/deleteUserCustomSql','length','sqlRootDir','validation','high-risk-write','Deleted\x20','appCode','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','lockFilePath','10323131LqRlUM','trashDir','5275OzfOoQ','1757267OdSfMA','sqlRoot','sql','1190829RkvQGO','remoteId','2918876XIHoWh','projectRoot','SQL\x20lock\x20file\x20not\x20found.','3468XgpQqj','sqls','delete','189GWFieQ','7123344iTxmuH'];a157_0x1fa9=function(){return _0x3808c2;};return a157_0x1fa9();}const a157_0x46a1bf=a157_0x42c2;(function(_0x58c9ce,_0x14e916){const _0x42c543=a157_0x42c2,_0x2206ac=_0x58c9ce();while(!![]){try{const _0x41a70e=-parseInt(_0x42c543(0x1e7))/0x1+-parseInt(_0x42c543(0x1ec))/0x2+-parseInt(_0x42c543(0x1ea))/0x3+-parseInt(_0x42c543(0x1f3))/0x4+parseInt(_0x42c543(0x1e6))/0x5*(-parseInt(_0x42c543(0x1ef))/0x6)+-parseInt(_0x42c543(0x1e4))/0x7+parseInt(_0x42c543(0x1f4))/0x8*(parseInt(_0x42c543(0x1f2))/0x9);if(_0x41a70e===_0x14e916)break;else _0x2206ac['push'](_0x2206ac['shift']());}catch(_0x3e235a){_0x2206ac['push'](_0x2206ac['shift']());}}}(a157_0x1fa9,0xdf487));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';function a157_0x42c2(_0x51d5ac,_0x47ee1c){_0x51d5ac=_0x51d5ac-0x1d9;const _0x1fa927=a157_0x1fa9();let _0x42c2a5=_0x1fa927[_0x51d5ac];return _0x42c2a5;}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':a157_0x46a1bf(0x1e9),'command':a157_0x46a1bf(0x1f1),'description':a157_0x46a1bf(0x1f9),'risk':a157_0x46a1bf(0x1df),'flags':[SQLCODE_FLAG],async 'validate'(_0x2598a0){const _0x1d3609=a157_0x46a1bf,_0x274460=loadSqlProjectConfig(_0x2598a0['appCode']),_0xae9b2f=await readSqlLockFile(_0x274460['lockFilePath']);if(!_0xae9b2f)throw CliErrors[_0x1d3609(0x1de)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x3966e5){const _0x3ae789=a157_0x46a1bf,_0x5b1824=loadSqlProjectConfig(_0x3966e5[_0x3ae789(0x1e1)]),_0x5d4b48=await readSqlLockFile(_0x5b1824[_0x3ae789(0x1e3)]);if(!_0x5d4b48)throw CliErrors[_0x3ae789(0x1de)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x392951}=ensureSqlLockScope(_0x5d4b48,_0x3966e5[_0x3ae789(0x1e1)],_0x5b1824['sqlRoot'],_0x3ae789(0x1f1)),_0x278b6d=_0x3966e5['str'](_0x3ae789(0x1d9)),_0x1b57d9=_0x392951[_0x3ae789(0x1f0)][_0x278b6d];if(!_0x1b57d9)throw CliErrors[_0x3ae789(0x1de)](_0x3ae789(0x1da)+_0x278b6d+'\x22.');return{'method':_0x3ae789(0x1fa),'url':_0x3ae789(0x1db),'body':{'sqlCode':_0x278b6d,'id':_0x1b57d9[_0x3ae789(0x1eb)],'localPath':resolveLocalSqlFilePath(_0x5b1824,_0x278b6d,_0x1b57d9)},'description':'Would\x20delete\x20SQL\x20'+_0x278b6d+_0x3ae789(0x1e2)+_0x5b1824[_0x3ae789(0x1e5)]};},async 'execute'(_0x2a3352){const _0x382a36=a157_0x46a1bf,_0x557e1d=loadSqlProjectConfig(_0x2a3352['appCode']),_0x536b98=await readSqlLockFile(_0x557e1d[_0x382a36(0x1e3)]);if(!_0x536b98)throw CliErrors[_0x382a36(0x1de)](_0x382a36(0x1ee));const {lockData:_0x54eaba,appLock:_0x5ec5e2}=ensureSqlLockScope(_0x536b98,_0x2a3352[_0x382a36(0x1e1)],_0x557e1d[_0x382a36(0x1e8)],_0x382a36(0x1f1)),_0x137efa=_0x2a3352[_0x382a36(0x1f6)]('sqlcode'),_0x31deca=_0x5ec5e2[_0x382a36(0x1f0)][_0x137efa];if(!_0x31deca)throw CliErrors[_0x382a36(0x1de)](_0x382a36(0x1da)+_0x137efa+'\x22.');await deleteSqlQuery({'id':_0x31deca[_0x382a36(0x1eb)],'sqlCode':_0x137efa}),_0x5ec5e2['sqls']=Object['fromEntries'](Object[_0x382a36(0x1f8)](_0x5ec5e2[_0x382a36(0x1f0)])['filter'](([_0x2e758c])=>_0x2e758c!==_0x137efa)),_0x5ec5e2['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x557e1d['lockFilePath'],_0x54eaba);const _0x2ebf25=resolveLocalSqlFilePath(_0x557e1d,_0x137efa,_0x31deca);let _0x40ef47;await fileExists(_0x2ebf25)&&(_0x40ef47=await moveToTrash(_0x557e1d[_0x382a36(0x1ed)],_0x557e1d[_0x382a36(0x1e5)],_0x2ebf25),await cleanupEmptyDirectories(dirname(_0x2ebf25),_0x557e1d[_0x382a36(0x1dd)]));const _0x30c07a={'deleted':_0x137efa,'remoteId':_0x31deca['remoteId']};if(_0x40ef47)_0x30c07a[_0x382a36(0x1f5)]=_0x40ef47;return{'ok':!![],'data':_0x30c07a,'message':_0x382a36(0x1e0)+_0x137efa+(_0x40ef47?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x5d81c0,_0x125b1f,_0x1d9bee){const _0x41cb33=a157_0x46a1bf,_0x5f4de3=new Date()['toISOString']()[_0x41cb33(0x1f7)](/[:.]/g,'-'),_0x2bdb14=relative(_0x5d81c0,_0x1d9bee),_0x40e96f=join(_0x125b1f,_0x5f4de3,_0x2bdb14);return await mkdir(dirname(_0x40e96f),{'recursive':!![]}),await rename(_0x1d9bee,_0x40e96f),_0x40e96f;}async function cleanupEmptyDirectories(_0x5401e9,_0x5cd805){const _0x4bedfa=a157_0x46a1bf;let _0x3df264=resolve(_0x5401e9);const _0x222628=resolve(_0x5cd805);while(_0x3df264['startsWith'](''+_0x222628+sep)||_0x3df264===_0x222628){if(_0x3df264===_0x222628)return;try{const _0x4da142=await readdir(_0x3df264);if(_0x4da142[_0x4bedfa(0x1dc)]>0x0)return;await rmdir(_0x3df264);}catch{return;}_0x3df264=dirname(_0x3df264);}}
1
+ function a165_0x4826(){const _0x582996=['fromEntries','3053235rEFCrf','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','filter','delete','lockFilePath','entries','sqlRoot','sql','Would\x20delete\x20SQL\x20','Deleted\x20','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','20RAyekc','sqls','high-risk-write','appCode','lastSync','272280vGarYs','4374416qbgQGO','trashDir','sqlcode','str','7VKYHAI','18kkXclD','remoteId','45128DaiyJv','sqlRootDir','1159926SGEdGd','length','15129521bOFVRn','\x20(local\x20file\x20moved\x20to\x20trash)','replace','projectRoot','POST','3MHpFmG','SQL\x20lock\x20file\x20not\x20found.','startsWith','12tvoWzi','validation','199596kDZqHm'];a165_0x4826=function(){return _0x582996;};return a165_0x4826();}const a165_0x2a0931=a165_0xffc2;(function(_0xecd39b,_0x83b419){const _0x563fb3=a165_0xffc2,_0x316779=_0xecd39b();while(!![]){try{const _0x1f2d09=-parseInt(_0x563fb3(0x86))/0x1*(-parseInt(_0x563fb3(0x6b))/0x2)+parseInt(_0x563fb3(0x74))/0x3*(-parseInt(_0x563fb3(0x79))/0x4)+-parseInt(_0x563fb3(0x7b))/0x5+-parseInt(_0x563fb3(0x6d))/0x6+-parseInt(_0x563fb3(0x68))/0x7*(parseInt(_0x563fb3(0x8c))/0x8)+-parseInt(_0x563fb3(0x69))/0x9*(parseInt(_0x563fb3(0x8b))/0xa)+-parseInt(_0x563fb3(0x6f))/0xb*(-parseInt(_0x563fb3(0x77))/0xc);if(_0x1f2d09===_0x83b419)break;else _0x316779['push'](_0x316779['shift']());}catch(_0x2d7772){_0x316779['push'](_0x316779['shift']());}}}(a165_0x4826,0x5ab6e));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';function a165_0xffc2(_0x5a6091,_0x254240){_0x5a6091=_0x5a6091-0x68;const _0x4826f6=a165_0x4826();let _0xffc28f=_0x4826f6[_0x5a6091];return _0xffc28f;}import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a165_0x2a0931(0x82),'command':a165_0x2a0931(0x7e),'description':a165_0x2a0931(0x7c),'risk':a165_0x2a0931(0x88),'flags':[SQLCODE_FLAG],async 'validate'(_0x496df9){const _0x33913f=a165_0x2a0931,_0x56adaf=loadSqlProjectConfig(_0x496df9[_0x33913f(0x89)]),_0x3bff8b=await readSqlLockFile(_0x56adaf[_0x33913f(0x7f)]);if(!_0x3bff8b)throw CliErrors[_0x33913f(0x78)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x294399){const _0x52c033=a165_0x2a0931,_0x990485=loadSqlProjectConfig(_0x294399[_0x52c033(0x89)]),_0x1b17bb=await readSqlLockFile(_0x990485[_0x52c033(0x7f)]);if(!_0x1b17bb)throw CliErrors[_0x52c033(0x78)](_0x52c033(0x85));const {appLock:_0x5cf559}=ensureSqlLockScope(_0x1b17bb,_0x294399[_0x52c033(0x89)],_0x990485['sqlRoot'],_0x52c033(0x7e)),_0x150826=_0x294399['str']('sqlcode'),_0x4e1f6c=_0x5cf559[_0x52c033(0x87)][_0x150826];if(!_0x4e1f6c)throw CliErrors[_0x52c033(0x78)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x150826+'\x22.');return{'method':_0x52c033(0x73),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x150826,'id':_0x4e1f6c[_0x52c033(0x6a)],'localPath':resolveLocalSqlFilePath(_0x990485,_0x150826,_0x4e1f6c)},'description':_0x52c033(0x83)+_0x150826+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0x990485[_0x52c033(0x8d)]};},async 'execute'(_0x4397d6){const _0x2bff40=a165_0x2a0931,_0x50bc5f=loadSqlProjectConfig(_0x4397d6[_0x2bff40(0x89)]),_0xcd7b5c=await readSqlLockFile(_0x50bc5f['lockFilePath']);if(!_0xcd7b5c)throw CliErrors[_0x2bff40(0x78)](_0x2bff40(0x75));const {lockData:_0x46c7b9,appLock:_0x2c7bd7}=ensureSqlLockScope(_0xcd7b5c,_0x4397d6['appCode'],_0x50bc5f[_0x2bff40(0x81)],_0x2bff40(0x7e)),_0x53371b=_0x4397d6[_0x2bff40(0x8f)](_0x2bff40(0x8e)),_0x1fd213=_0x2c7bd7[_0x2bff40(0x87)][_0x53371b];if(!_0x1fd213)throw CliErrors[_0x2bff40(0x78)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x53371b+'\x22.');await deleteSqlQuery({'id':_0x1fd213[_0x2bff40(0x6a)],'sqlCode':_0x53371b}),_0x2c7bd7[_0x2bff40(0x87)]=Object[_0x2bff40(0x7a)](Object[_0x2bff40(0x80)](_0x2c7bd7[_0x2bff40(0x87)])[_0x2bff40(0x7d)](([_0x368611])=>_0x368611!==_0x53371b)),_0x2c7bd7[_0x2bff40(0x8a)]=new Date()['toISOString'](),await writeSqlLockFile(_0x50bc5f[_0x2bff40(0x7f)],_0x46c7b9);const _0x28478d=resolveLocalSqlFilePath(_0x50bc5f,_0x53371b,_0x1fd213);let _0x49b572;await fileExists(_0x28478d)&&(_0x49b572=await moveToTrash(_0x50bc5f[_0x2bff40(0x72)],_0x50bc5f[_0x2bff40(0x8d)],_0x28478d),await cleanupEmptyDirectories(dirname(_0x28478d),_0x50bc5f[_0x2bff40(0x6c)]));const _0xcf5028={'deleted':_0x53371b,'remoteId':_0x1fd213[_0x2bff40(0x6a)]};if(_0x49b572)_0xcf5028['trashedTo']=_0x49b572;return{'ok':!![],'data':_0xcf5028,'message':_0x2bff40(0x84)+_0x53371b+(_0x49b572?_0x2bff40(0x70):'')};}};async function moveToTrash(_0x420867,_0xa5baec,_0x4503ee){const _0x5d1c05=a165_0x2a0931,_0x191f29=new Date()['toISOString']()[_0x5d1c05(0x71)](/[:.]/g,'-'),_0x367358=relative(_0x420867,_0x4503ee),_0x4f995b=join(_0xa5baec,_0x191f29,_0x367358);return await mkdir(dirname(_0x4f995b),{'recursive':!![]}),await rename(_0x4503ee,_0x4f995b),_0x4f995b;}async function cleanupEmptyDirectories(_0x49c655,_0x42c5c3){const _0x16baee=a165_0x2a0931;let _0xe4fffd=resolve(_0x49c655);const _0x44612b=resolve(_0x42c5c3);while(_0xe4fffd[_0x16baee(0x76)](''+_0x44612b+sep)||_0xe4fffd===_0x44612b){if(_0xe4fffd===_0x44612b)return;try{const _0x2bbcfe=await readdir(_0xe4fffd);if(_0x2bbcfe[_0x16baee(0x6e)]>0x0)return;await rmdir(_0xe4fffd);}catch{return;}_0xe4fffd=dirname(_0xe4fffd);}}
@@ -1 +1 @@
1
- const a158_0x655f9a=a158_0x545f;(function(_0x25f8a6,_0x218b7a){const _0x27ecab=a158_0x545f,_0xdce7ea=_0x25f8a6();while(!![]){try{const _0x428bf7=-parseInt(_0x27ecab(0x1e7))/0x1*(parseInt(_0x27ecab(0x1ea))/0x2)+parseInt(_0x27ecab(0x1e9))/0x3*(-parseInt(_0x27ecab(0x1ef))/0x4)+-parseInt(_0x27ecab(0x1f1))/0x5*(-parseInt(_0x27ecab(0x1fe))/0x6)+parseInt(_0x27ecab(0x1f5))/0x7+parseInt(_0x27ecab(0x1fb))/0x8+-parseInt(_0x27ecab(0x1fa))/0x9+-parseInt(_0x27ecab(0x1f2))/0xa*(parseInt(_0x27ecab(0x1f0))/0xb);if(_0x428bf7===_0x218b7a)break;else _0xdce7ea['push'](_0xdce7ea['shift']());}catch(_0x4409d7){_0xdce7ea['push'](_0xdce7ea['shift']());}}}(a158_0x57aa,0x6eaa1));import{getSqlQueryInfo}from'../../core/api-client.js';function a158_0x545f(_0x3b7b52,_0xe9f9d4){_0x3b7b52=_0x3b7b52-0x1e7;const _0x57aad6=a158_0x57aa();let _0x545f44=_0x57aad6[_0x3b7b52];return _0x545f44;}import{getDbName}from'../../core/db-resolver.js';function a158_0x57aa(){const _0x42efa4=['88gdWfWf','appCode','679845hdkDKG','492lmEnFo','sqlName','sqlContent','sql','sqlCode','4qQrHoV','3597418ZMMhxp','235vKzPsf','40WlAzZd','boolean','read','4375049sjaedK','dbId','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','bool','Return\x20full\x20raw\x20SQL\x20query\x20object','220491pSjCav','5252616GBqKth','sqlcode','str','96078TYYvGT'];a158_0x57aa=function(){return _0x42efa4;};return a158_0x57aa();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a158_0x655f9a(0x1ed),'command':'detail','description':a158_0x655f9a(0x1f7),'risk':a158_0x655f9a(0x1f4),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a158_0x655f9a(0x1f3),'description':a158_0x655f9a(0x1f9)}],async 'execute'(_0xe88f5f){const _0x335c22=a158_0x655f9a,_0x4bc64b=await getSqlQueryInfo(_0xe88f5f[_0x335c22(0x1e8)],_0xe88f5f[_0x335c22(0x1fd)](_0x335c22(0x1fc))),_0x1d275f=_0xe88f5f[_0x335c22(0x1f8)]('verbose');if(_0x1d275f)return{'ok':!![],'data':_0x4bc64b};const _0x3b71c2=_0x4bc64b[_0x335c22(0x1f6)]?await getDbName(_0xe88f5f[_0x335c22(0x1e8)],_0x4bc64b[_0x335c22(0x1f6)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x4bc64b[_0x335c22(0x1ee)],'sqlName':_0x4bc64b[_0x335c22(0x1eb)],'db':_0x3b71c2?_0x3b71c2+'\x20('+_0x4bc64b[_0x335c22(0x1f6)]+')':_0x4bc64b['dbId']??'','description':_0x4bc64b['description']??'','sqlContent':_0x4bc64b[_0x335c22(0x1ec)]??''}};}};
1
+ const a166_0x2ec610=a166_0xd923;(function(_0x499602,_0x5d5797){const _0x3f6bef=a166_0xd923,_0x320348=_0x499602();while(!![]){try{const _0x25c457=-parseInt(_0x3f6bef(0x103))/0x1*(parseInt(_0x3f6bef(0xfc))/0x2)+-parseInt(_0x3f6bef(0xf8))/0x3*(parseInt(_0x3f6bef(0x102))/0x4)+-parseInt(_0x3f6bef(0xfe))/0x5+parseInt(_0x3f6bef(0x109))/0x6+parseInt(_0x3f6bef(0xfd))/0x7*(-parseInt(_0x3f6bef(0x107))/0x8)+-parseInt(_0x3f6bef(0x10b))/0x9*(-parseInt(_0x3f6bef(0x105))/0xa)+parseInt(_0x3f6bef(0x10d))/0xb;if(_0x25c457===_0x5d5797)break;else _0x320348['push'](_0x320348['shift']());}catch(_0x3d77e4){_0x320348['push'](_0x320348['shift']());}}}(a166_0x36bc,0xcbe29));import{getSqlQueryInfo}from'../../core/api-client.js';function a166_0x36bc(){const _0x17a209=['bool','2036330ZOnFzZ','dbId','8UuOaOS','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','9418446hTUCZL','appCode','9ZGhROO','detail','32973083vxOCBJ','sql','read','6rvxsif','verbose','boolean','sqlName','2Ivlllb','5829887YqLwbM','3823530gPwpvG','description','sqlContent','sqlcode','1843804ANzXxx','1416365GOfOMd'];a166_0x36bc=function(){return _0x17a209;};return a166_0x36bc();}function a166_0xd923(_0x1f023f,_0x340b80){_0x1f023f=_0x1f023f-0xf7;const _0x36bca1=a166_0x36bc();let _0xd923d3=_0x36bca1[_0x1f023f];return _0xd923d3;}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a166_0x2ec610(0x10e),'command':a166_0x2ec610(0x10c),'description':a166_0x2ec610(0x108),'risk':a166_0x2ec610(0xf7),'flags':[SQLCODE_FLAG,{'name':a166_0x2ec610(0xf9),'type':a166_0x2ec610(0xfa),'description':'Return\x20full\x20raw\x20SQL\x20query\x20object'}],async 'execute'(_0x4e8069){const _0x2ba2c7=a166_0x2ec610,_0xc18b4d=await getSqlQueryInfo(_0x4e8069[_0x2ba2c7(0x10a)],_0x4e8069['str'](_0x2ba2c7(0x101))),_0xbedd6a=_0x4e8069[_0x2ba2c7(0x104)](_0x2ba2c7(0xf9));if(_0xbedd6a)return{'ok':!![],'data':_0xc18b4d};const _0x580680=_0xc18b4d[_0x2ba2c7(0x106)]?await getDbName(_0x4e8069[_0x2ba2c7(0x10a)],_0xc18b4d[_0x2ba2c7(0x106)]):undefined;return{'ok':!![],'data':{'sqlCode':_0xc18b4d['sqlCode'],'sqlName':_0xc18b4d[_0x2ba2c7(0xfb)],'db':_0x580680?_0x580680+'\x20('+_0xc18b4d[_0x2ba2c7(0x106)]+')':_0xc18b4d[_0x2ba2c7(0x106)]??'','description':_0xc18b4d[_0x2ba2c7(0xff)]??'','sqlContent':_0xc18b4d[_0x2ba2c7(0x100)]??''}};}};
@@ -1 +1 @@
1
- function a159_0x4fd2(){const _0x41e75e=['Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','693TASPQH','appCode','exec','2446446FSFaPv','168590kPnUmR','20hmavBn','params','str','2lfkzfL','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','execSuccess','456975zTXisB','now','execResult','658180hrQVlk','12624eqeBQl','512073MiIXZP','SQL\x20execution\x20failed','sql','string','sqlcode','167022ccQgeN','read','Returned\x20','1246vLfzri'];a159_0x4fd2=function(){return _0x41e75e;};return a159_0x4fd2();}const a159_0x5031d3=a159_0x2a21;function a159_0x2a21(_0x2b2062,_0x5638cf){_0x2b2062=_0x2b2062-0xc8;const _0x4fd20b=a159_0x4fd2();let _0x2a2169=_0x4fd20b[_0x2b2062];return _0x2a2169;}(function(_0xa4a427,_0x7f3ebf){const _0xbcd4cd=a159_0x2a21,_0x5031da=_0xa4a427();while(!![]){try{const _0x1486b2=parseInt(_0xbcd4cd(0xcf))/0x1*(parseInt(_0xbcd4cd(0xe1))/0x2)+parseInt(_0xbcd4cd(0xca))/0x3+-parseInt(_0xbcd4cd(0xde))/0x4*(parseInt(_0xbcd4cd(0xcd))/0x5)+-parseInt(_0xbcd4cd(0xdc))/0x6+parseInt(_0xbcd4cd(0xd7))/0x7*(-parseInt(_0xbcd4cd(0xce))/0x8)+-parseInt(_0xbcd4cd(0xd4))/0x9+parseInt(_0xbcd4cd(0xdd))/0xa*(parseInt(_0xbcd4cd(0xd9))/0xb);if(_0x1486b2===_0x7f3ebf)break;else _0x5031da['push'](_0x5031da['shift']());}catch(_0xfbd674){_0x5031da['push'](_0x5031da['shift']());}}}(a159_0x4fd2,0x582c0));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':a159_0x5031d3(0xd1),'command':a159_0x5031d3(0xdb),'description':a159_0x5031d3(0xd8),'risk':a159_0x5031d3(0xd5),'flags':[SQLCODE_FLAG,{'name':'params','type':a159_0x5031d3(0xd2),'description':a159_0x5031d3(0xc8)}],async 'execute'(_0x4829f6){const _0x20e200=a159_0x5031d3,_0x4aa09a=parseJsonParams(_0x4829f6[_0x20e200(0xe0)](_0x20e200(0xdf))),_0x3dd180=Date[_0x20e200(0xcb)](),_0x540db9=await executeSql(_0x4829f6[_0x20e200(0xda)],_0x4829f6['str'](_0x20e200(0xd3)),_0x4aa09a),_0x37621c=Date[_0x20e200(0xcb)]()-_0x3dd180,_0x32069c=_0x540db9?.[_0x20e200(0xcc)]??_0x540db9,_0x35f37c=_0x540db9?.[_0x20e200(0xc9)]??!![];if(!_0x35f37c)return{'ok':![],'data':{'error':_0x540db9?.['execError']||_0x20e200(0xd0),'elapsed':_0x37621c},'message':_0x20e200(0xd0)};const _0x438faf=Array['isArray'](_0x32069c)?_0x32069c:[];return{'ok':!![],'data':{'rows':_0x438faf,'rowCount':_0x438faf['length'],'elapsed':_0x37621c},'message':_0x20e200(0xd6)+_0x438faf['length']+'\x20row(s)\x20in\x20'+_0x37621c+'ms'};}};
1
+ const a167_0x47c050=a167_0x2ab9;(function(_0x7a1c9a,_0x170e29){const _0x3ae5be=a167_0x2ab9,_0x138479=_0x7a1c9a();while(!![]){try{const _0xe4c679=parseInt(_0x3ae5be(0xf7))/0x1+-parseInt(_0x3ae5be(0xf2))/0x2+-parseInt(_0x3ae5be(0xf0))/0x3*(-parseInt(_0x3ae5be(0x106))/0x4)+parseInt(_0x3ae5be(0xf9))/0x5*(parseInt(_0x3ae5be(0xf4))/0x6)+parseInt(_0x3ae5be(0x105))/0x7*(-parseInt(_0x3ae5be(0xff))/0x8)+parseInt(_0x3ae5be(0x102))/0x9*(-parseInt(_0x3ae5be(0xf3))/0xa)+parseInt(_0x3ae5be(0x10c))/0xb;if(_0xe4c679===_0x170e29)break;else _0x138479['push'](_0x138479['shift']());}catch(_0x5d2a6f){_0x138479['push'](_0x138479['shift']());}}}(a167_0x440c,0x21476));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a167_0x2ab9(_0x2cf50a,_0x492af6){_0x2cf50a=_0x2cf50a-0xf0;const _0x440c63=a167_0x440c();let _0x2ab989=_0x440c63[_0x2cf50a];return _0x2ab989;}function a167_0x440c(){const _0x5c0a=['876552xmLWtJ','str','execResult','441JPTXse','SQL\x20execution\x20failed','now','14NsTNZc','76IKCrmU','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','sqlcode','appCode','sql','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','2916694nEXFEv','23637ksWtFg','params','463364gkMVIw','48040BlPTLU','66mnQLCu','string','execSuccess','227920PdVXWY','\x20row(s)\x20in\x20','81705fctQhg','length','isArray','Returned\x20','exec','execError'];a167_0x440c=function(){return _0x5c0a;};return a167_0x440c();}export const sqlExec={'service':a167_0x47c050(0x10a),'command':a167_0x47c050(0xfd),'description':a167_0x47c050(0x107),'risk':'read','flags':[SQLCODE_FLAG,{'name':'params','type':a167_0x47c050(0xf5),'description':a167_0x47c050(0x10b)}],async 'execute'(_0x109971){const _0x39992b=a167_0x47c050,_0xb6d4=parseJsonParams(_0x109971[_0x39992b(0x100)](_0x39992b(0xf1))),_0x13537b=Date[_0x39992b(0x104)](),_0x437edf=await executeSql(_0x109971[_0x39992b(0x109)],_0x109971['str'](_0x39992b(0x108)),_0xb6d4),_0x374132=Date[_0x39992b(0x104)]()-_0x13537b,_0x134972=_0x437edf?.[_0x39992b(0x101)]??_0x437edf,_0x2d68a0=_0x437edf?.[_0x39992b(0xf6)]??!![];if(!_0x2d68a0)return{'ok':![],'data':{'error':_0x437edf?.[_0x39992b(0xfe)]||'SQL\x20execution\x20failed','elapsed':_0x374132},'message':_0x39992b(0x103)};const _0x1b2990=Array[_0x39992b(0xfb)](_0x134972)?_0x134972:[];return{'ok':!![],'data':{'rows':_0x1b2990,'rowCount':_0x1b2990[_0x39992b(0xfa)],'elapsed':_0x374132},'message':_0x39992b(0xfc)+_0x1b2990['length']+_0x39992b(0xf8)+_0x374132+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x525047,_0x20d1aa){const _0x4078e9=a160_0x42d6,_0x1dac95=_0x525047();while(!![]){try{const _0x4d21fb=parseInt(_0x4078e9(0xce))/0x1*(-parseInt(_0x4078e9(0xca))/0x2)+parseInt(_0x4078e9(0xc8))/0x3*(parseInt(_0x4078e9(0xc4))/0x4)+-parseInt(_0x4078e9(0xcd))/0x5*(parseInt(_0x4078e9(0xc9))/0x6)+-parseInt(_0x4078e9(0xcb))/0x7*(-parseInt(_0x4078e9(0xcc))/0x8)+parseInt(_0x4078e9(0xc6))/0x9*(-parseInt(_0x4078e9(0xc7))/0xa)+parseInt(_0x4078e9(0xc2))/0xb+parseInt(_0x4078e9(0xc5))/0xc*(parseInt(_0x4078e9(0xc3))/0xd);if(_0x4d21fb===_0x20d1aa)break;else _0x1dac95['push'](_0x1dac95['shift']());}catch(_0x97fdaa){_0x1dac95['push'](_0x1dac95['shift']());}}}(a160_0x5846,0xac2fa));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 a160_0x42d6(_0x14d6d2,_0x25aa39){_0x14d6d2=_0x14d6d2-0xc2;const _0x584690=a160_0x5846();let _0x42d6ff=_0x584690[_0x14d6d2];return _0x42d6ff;}import{sqlDelete}from'../../commands/sql/delete.js';function a160_0x5846(){const _0xc448f1=['4997484XUDoVZ','5580531oPpOPo','10GQQxkk','2043NmDKxc','6wHohrf','6YoMYZe','7WXZxZC','8658536dciIec','4555015vdvigg','398901socJyQ','1455168OnouIz','39MbyhnH','5692odETfZ'];a160_0x5846=function(){return _0xc448f1;};return a160_0x5846();}export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x3733f0,_0x33dd14){const _0x29960d=a168_0x9f57,_0x31dc9c=_0x3733f0();while(!![]){try{const _0x4cd48a=-parseInt(_0x29960d(0x12d))/0x1*(-parseInt(_0x29960d(0x139))/0x2)+parseInt(_0x29960d(0x136))/0x3*(-parseInt(_0x29960d(0x138))/0x4)+-parseInt(_0x29960d(0x134))/0x5+-parseInt(_0x29960d(0x133))/0x6*(-parseInt(_0x29960d(0x135))/0x7)+parseInt(_0x29960d(0x12e))/0x8*(parseInt(_0x29960d(0x137))/0x9)+-parseInt(_0x29960d(0x131))/0xa*(parseInt(_0x29960d(0x132))/0xb)+-parseInt(_0x29960d(0x130))/0xc*(-parseInt(_0x29960d(0x12f))/0xd);if(_0x4cd48a===_0x33dd14)break;else _0x31dc9c['push'](_0x31dc9c['shift']());}catch(_0x4b2347){_0x31dc9c['push'](_0x31dc9c['shift']());}}}(a168_0x4cd2,0xbe721));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';function a168_0x9f57(_0x3ac0c3,_0x139255){_0x3ac0c3=_0x3ac0c3-0x12d;const _0x4cd2bf=a168_0x4cd2();let _0x9f57b7=_0x4cd2bf[_0x3ac0c3];return _0x9f57b7;}import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';function a168_0x4cd2(){const _0x12a432=['8GgcrKw','899405FUQYJE','300bBsHHF','1490iktLbl','106436rwEWhL','258TocoCd','2768200IhHSJs','148141VdhHcH','1135359CdWPgi','9400230jOtgUx','12bePKIq','2jfZEzy','226684OdmZlz'];a168_0x4cd2=function(){return _0x12a432;};return a168_0x4cd2();}import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- const a161_0x1c4230=a161_0x38b5;(function(_0x153008,_0x1a48dd){const _0x3dd33d=a161_0x38b5,_0x30d89f=_0x153008();while(!![]){try{const _0x4d6009=-parseInt(_0x3dd33d(0x1d5))/0x1*(-parseInt(_0x3dd33d(0x1cd))/0x2)+parseInt(_0x3dd33d(0x1c9))/0x3+-parseInt(_0x3dd33d(0x1da))/0x4*(-parseInt(_0x3dd33d(0x1c6))/0x5)+-parseInt(_0x3dd33d(0x1dd))/0x6+-parseInt(_0x3dd33d(0x1df))/0x7+-parseInt(_0x3dd33d(0x1ce))/0x8*(parseInt(_0x3dd33d(0x1cb))/0x9)+parseInt(_0x3dd33d(0x1de))/0xa;if(_0x4d6009===_0x1a48dd)break;else _0x30d89f['push'](_0x30d89f['shift']());}catch(_0x2af48d){_0x30d89f['push'](_0x30d89f['shift']());}}}(a161_0x4295,0x9ac26));import{listSqlQueries}from'../../core/api-client.js';function a161_0x38b5(_0x2b0f44,_0x3b86af){_0x2b0f44=_0x2b0f44-0x1c6;const _0x4295be=a161_0x4295();let _0x38b5aa=_0x4295be[_0x2b0f44];return _0x38b5aa;}import{getDbName}from'../../core/db-resolver.js';function a161_0x4295(){const _0x274508=['tableData','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','verbose','name','description','read','Filter\x20by\x20SQL\x20name','List\x20custom\x20SQL\x20queries','165JeHvrA','num','boolean','1537578KKFWav','str','249273TETTkY','sqlcode','4704bDVcjy','80MLwTZk','totalCount','appCode','Found\x20','sqlCode','string','sql','139LFuuNn','length','all','pagesize','dbId','101128iQniic','page','paging','5857410yPIwmk','8209850ZQAunJ','4253522zenpQe'];a161_0x4295=function(){return _0x274508;};return a161_0x4295();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a161_0x1c4230(0x1d4),'command':'list','description':a161_0x1c4230(0x1e7),'risk':a161_0x1c4230(0x1e5),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a161_0x1c4230(0x1e3),'type':a161_0x1c4230(0x1d3),'description':a161_0x1c4230(0x1e6)},{'name':a161_0x1c4230(0x1db),'type':'number','description':'Page\x20number','default':0x1},{'name':a161_0x1c4230(0x1d8),'type':'number','description':'Page\x20size'},{'name':a161_0x1c4230(0x1e2),'type':a161_0x1c4230(0x1c8),'description':a161_0x1c4230(0x1e1)}],async 'execute'(_0x1b8fb1){const _0xd19b74=a161_0x1c4230,_0x2f0997=await listSqlQueries(_0x1b8fb1[_0xd19b74(0x1d0)],{'sqlCode':_0x1b8fb1[_0xd19b74(0x1ca)](_0xd19b74(0x1cc))||undefined,'sqlName':_0x1b8fb1[_0xd19b74(0x1ca)](_0xd19b74(0x1e3))||undefined,'currentPage':_0x1b8fb1[_0xd19b74(0x1c7)](_0xd19b74(0x1db)),'pageSize':_0x1b8fb1[_0xd19b74(0x1c7)](_0xd19b74(0x1d8),0x32)}),_0x5a5cdf=_0x1b8fb1['bool']('verbose'),_0x3cb29b=_0x2f0997[_0xd19b74(0x1e0)]??[],_0x2628b1=_0x2f0997[_0xd19b74(0x1dc)]?.[_0xd19b74(0x1cf)]??_0x3cb29b[_0xd19b74(0x1d6)];let _0x32a160;return _0x5a5cdf?_0x32a160=_0x3cb29b:_0x32a160=await Promise[_0xd19b74(0x1d7)](_0x3cb29b['map'](async _0x53de65=>{const _0x493e26=_0xd19b74;let _0x4747ea;try{_0x4747ea=_0x53de65[_0x493e26(0x1d9)]?await getDbName(_0x1b8fb1[_0x493e26(0x1d0)],_0x53de65['dbId']):undefined;}catch{}return{'sqlCode':_0x53de65[_0x493e26(0x1d2)],'sqlName':_0x53de65['sqlName'],'description':_0x53de65[_0x493e26(0x1e4)]??'','db':_0x4747ea?_0x4747ea+'\x20('+_0x53de65[_0x493e26(0x1d9)]+')':_0x53de65[_0x493e26(0x1d9)]??''};})),{'ok':!![],'data':_0x32a160,'message':_0x3cb29b[_0xd19b74(0x1d6)]===0x0?'No\x20custom\x20SQL\x20queries\x20found.':_0xd19b74(0x1d1)+_0x3cb29b[_0xd19b74(0x1d6)]+'\x20SQL\x20queries\x20(total:\x20'+_0x2628b1+').'};}};
1
+ const a169_0x364b89=a169_0x2291;function a169_0x38f7(){const _0x5aca2a=['Page\x20size','230988GWDdWY','bool','sql','num','list','appCode','sqlName','13609518YdVqPs','str','270632zOzuGE','verbose','876946gbTPHB','No\x20custom\x20SQL\x20queries\x20found.','9Rswgef','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','totalCount','string','2zyEeYJ','10776BoHUBP','2870PanwgZ','List\x20custom\x20SQL\x20queries','\x20SQL\x20queries\x20(total:\x20','tableData','803nFIGpI','paging','pagesize','dbId','Found\x20','read','91WLsDXd','number','80IBJkxZ','length','14035690ihbJkI','name','247686YyyJHD','description'];a169_0x38f7=function(){return _0x5aca2a;};return a169_0x38f7();}(function(_0x385334,_0x585b17){const _0x5ac285=a169_0x2291,_0x82d1d1=_0x385334();while(!![]){try{const _0x5d645b=-parseInt(_0x5ac285(0x1a4))/0x1*(-parseInt(_0x5ac285(0x19e))/0x2)+parseInt(_0x5ac285(0x190))/0x3*(parseInt(_0x5ac285(0x18c))/0x4)+-parseInt(_0x5ac285(0x1a6))/0x5*(parseInt(_0x5ac285(0x1a5))/0x6)+parseInt(_0x5ac285(0x18a))/0x7*(parseInt(_0x5ac285(0x19c))/0x8)+parseInt(_0x5ac285(0x1a0))/0x9*(parseInt(_0x5ac285(0x18e))/0xa)+-parseInt(_0x5ac285(0x1aa))/0xb*(parseInt(_0x5ac285(0x193))/0xc)+-parseInt(_0x5ac285(0x19a))/0xd;if(_0x5d645b===_0x585b17)break;else _0x82d1d1['push'](_0x82d1d1['shift']());}catch(_0x51922f){_0x82d1d1['push'](_0x82d1d1['shift']());}}}(a169_0x38f7,0xd8ef5));import{listSqlQueries}from'../../core/api-client.js';function a169_0x2291(_0x426d1c,_0x2a8c9a){_0x426d1c=_0x426d1c-0x185;const _0x38f79a=a169_0x38f7();let _0x2291e7=_0x38f79a[_0x426d1c];return _0x2291e7;}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a169_0x364b89(0x195),'command':a169_0x364b89(0x197),'description':a169_0x364b89(0x1a7),'risk':a169_0x364b89(0x189),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a169_0x364b89(0x1a3),'description':'Filter\x20by\x20SQL\x20name'},{'name':'page','type':a169_0x364b89(0x18b),'description':'Page\x20number','default':0x1},{'name':a169_0x364b89(0x186),'type':a169_0x364b89(0x18b),'description':a169_0x364b89(0x192)},{'name':a169_0x364b89(0x19d),'type':'boolean','description':a169_0x364b89(0x1a1)}],async 'execute'(_0x5b3768){const _0x7a7e6=a169_0x364b89,_0x37e871=await listSqlQueries(_0x5b3768['appCode'],{'sqlCode':_0x5b3768[_0x7a7e6(0x19b)]('sqlcode')||undefined,'sqlName':_0x5b3768['str'](_0x7a7e6(0x18f))||undefined,'currentPage':_0x5b3768['num']('page'),'pageSize':_0x5b3768[_0x7a7e6(0x196)](_0x7a7e6(0x186),0x32)}),_0x526e45=_0x5b3768[_0x7a7e6(0x194)](_0x7a7e6(0x19d)),_0x390a53=_0x37e871[_0x7a7e6(0x1a9)]??[],_0x4af2b2=_0x37e871[_0x7a7e6(0x185)]?.[_0x7a7e6(0x1a2)]??_0x390a53[_0x7a7e6(0x18d)];let _0x2a9668;return _0x526e45?_0x2a9668=_0x390a53:_0x2a9668=await Promise['all'](_0x390a53['map'](async _0x50f7c6=>{const _0x5cc656=_0x7a7e6;let _0xad8fe6;try{_0xad8fe6=_0x50f7c6[_0x5cc656(0x187)]?await getDbName(_0x5b3768[_0x5cc656(0x198)],_0x50f7c6[_0x5cc656(0x187)]):undefined;}catch{}return{'sqlCode':_0x50f7c6['sqlCode'],'sqlName':_0x50f7c6[_0x5cc656(0x199)],'description':_0x50f7c6[_0x5cc656(0x191)]??'','db':_0xad8fe6?_0xad8fe6+'\x20('+_0x50f7c6[_0x5cc656(0x187)]+')':_0x50f7c6[_0x5cc656(0x187)]??''};})),{'ok':!![],'data':_0x2a9668,'message':_0x390a53['length']===0x0?_0x7a7e6(0x19f):_0x7a7e6(0x188)+_0x390a53[_0x7a7e6(0x18d)]+_0x7a7e6(0x1a8)+_0x4af2b2+').'};}};
@@ -1 +1 @@
1
- const a162_0x2a547e=a162_0x35e3;(function(_0x1b0447,_0x16df77){const _0xb85dd9=a162_0x35e3,_0x5cd78d=_0x1b0447();while(!![]){try{const _0x478b88=-parseInt(_0xb85dd9(0xb7))/0x1+-parseInt(_0xb85dd9(0xa9))/0x2+parseInt(_0xb85dd9(0xb0))/0x3+-parseInt(_0xb85dd9(0xc6))/0x4*(-parseInt(_0xb85dd9(0xaf))/0x5)+parseInt(_0xb85dd9(0xcf))/0x6+parseInt(_0xb85dd9(0x9a))/0x7*(parseInt(_0xb85dd9(0xb9))/0x8)+parseInt(_0xb85dd9(0xc3))/0x9*(-parseInt(_0xb85dd9(0xb2))/0xa);if(_0x478b88===_0x16df77)break;else _0x5cd78d['push'](_0x5cd78d['shift']());}catch(_0x21ee17){_0x5cd78d['push'](_0x5cd78d['shift']());}}}(a162_0x19a7,0x89e68));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';function a162_0x19a7(){const _0x373475=['str','appCode','length','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','1389438HAvyKe','tableData','nonInteractive','utf8','sql','\x20skipped,\x20','\x20SQL\x20file(s)\x20into\x20','560RVoOOV','lockFilePath','totalCount','\x20failed','conflict','message','push','trimStart','pull','catch','local\x20differs\x20from\x20remote','sqlCode','sqls','dbId','sqlRoot','324850oyibXs','mybatisXml','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','unchanged','force','skipped','170245SMPjmh','2415345XlNEXM','sqlcode','47930SSYTkt','test','write','No\x20remote\x20SQL\x20queries\x20matched.','Pull\x20complete:\x20','216095PZJfQH','\x20written,\x20','27704CjVzyO','string','cancelled','split','filter','sqlName','toISOString','description','sqlRootDir','path','1143RdXLaO','Filter\x20by\x20SQL\x20display\x20name','POST','28gyUOgH','name','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','lastSync','apps'];a162_0x19a7=function(){return _0x373475;};return a162_0x19a7();}const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x59e07f,_0x561fa8){const _0x111093=a162_0x35e3,_0x365a66=[];let _0x82c8df=0x1;while(!![]){const _0x1c1fbf=await listSqlQueries(_0x59e07f,{'currentPage':_0x82c8df,'pageSize':PAGE_SIZE,'sqlCode':_0x561fa8[_0x111093(0xa5)],'sqlName':_0x561fa8[_0x111093(0xbe)]}),_0x130591=_0x1c1fbf[_0x111093(0xd0)]??[];_0x365a66['push'](..._0x130591);if(_0x130591[_0x111093(0xcd)]===0x0)break;const _0x3d86bd=_0x1c1fbf['paging']?.[_0x111093(0x9c)];if(_0x3d86bd!=null?_0x365a66[_0x111093(0xcd)]>=_0x3d86bd:_0x130591[_0x111093(0xcd)]<PAGE_SIZE)break;_0x82c8df++;}return _0x365a66;}async function ensureSqlContent(_0x5a156b){const _0x371331=a162_0x35e3;if(_0x5a156b['sqlContent']!=null&&String(_0x5a156b['sqlContent'])[_0x371331(0xcd)]>0x0)return _0x5a156b;return getSqlQueryDetail(_0x5a156b[_0x371331(0xa5)]);}export const sqlPull={'service':a162_0x2a547e(0xd3),'command':a162_0x2a547e(0xa2),'description':a162_0x2a547e(0xab),'risk':a162_0x2a547e(0xb4),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a162_0x2a547e(0xc7),'type':a162_0x2a547e(0xba),'description':a162_0x2a547e(0xc4)},{'name':a162_0x2a547e(0xad),'type':'boolean','description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x308b49){const _0x4fe9a7=a162_0x2a547e,_0x24d759=loadSqlProjectConfig(_0x308b49[_0x4fe9a7(0xcc)]),_0x27653b=await readSqlLockFile(_0x24d759[_0x4fe9a7(0x9b)]),{appLock:_0x42c38b}=ensureSqlLockScope(_0x27653b??createEmptySqlLock(),_0x24d759[_0x4fe9a7(0xcc)],_0x24d759[_0x4fe9a7(0xa8)],_0x4fe9a7(0xa2)),_0x44722a=await fetchAllSqlQueries(_0x308b49[_0x4fe9a7(0xcc)],{'sqlCode':_0x308b49['str'](_0x4fe9a7(0xb1))||undefined,'sqlName':_0x308b49['str'](_0x4fe9a7(0xc7))||undefined}),_0x3867b7=[];for(const _0x4b374f of _0x44722a){const _0x5e7665=await ensureSqlContent(_0x4b374f),_0x503fa1=ensureRemoteSqlContent(_0x5e7665),_0xfef6f5=detectModeFromSql(_0x5e7665),_0xddff76=_0x5e7665[_0x4fe9a7(0xa7)]?await getDbName(_0x308b49[_0x4fe9a7(0xcc)],Number(_0x5e7665['dbId']))[_0x4fe9a7(0xa3)](()=>undefined):undefined,_0x28d050=buildLocalSqlFileContent({'sqlCode':_0x5e7665[_0x4fe9a7(0xa5)],'sqlName':_0x5e7665[_0x4fe9a7(0xbe)],'dbId':_0x5e7665['dbId']},_0x503fa1,{'dbName':_0xddff76,'mode':_0xfef6f5,'syncedAt':new Date()[_0x4fe9a7(0xbf)](),'description':_0x5e7665[_0x4fe9a7(0xc0)]}),_0x23fbd1=buildSqlLockEntry(_0x5e7665,_0x503fa1,'',{'dbName':_0xddff76}),_0x1a3e9b=resolveLocalSqlFilePath(_0x24d759,_0x5e7665[_0x4fe9a7(0xa5)],_0x23fbd1);let _0x19fb40='would_pull',_0x362d20;if(await fileExists(_0x1a3e9b)){const _0x26d5d4=await readFile(_0x1a3e9b,_0x4fe9a7(0xd2));isEquivalentPulledSqlFile(_0x26d5d4,_0x28d050,_0xfef6f5)?(_0x19fb40=_0x4fe9a7(0xae),_0x362d20=_0x4fe9a7(0xac)):(_0x19fb40=_0x4fe9a7(0x9e),_0x362d20='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x3867b7[_0x4fe9a7(0xa0)]({'sqlCode':_0x5e7665[_0x4fe9a7(0xa5)],'sqlName':_0x5e7665['sqlName'],'filePath':_0x1a3e9b,'status':_0x19fb40,'reason':_0x362d20});}return{'method':_0x4fe9a7(0xc5),'url':_0x4fe9a7(0xce),'body':{'appCode':_0x308b49[_0x4fe9a7(0xcc)],'sqlCode':_0x308b49[_0x4fe9a7(0xcb)](_0x4fe9a7(0xb1))||null,'sqlName':_0x308b49[_0x4fe9a7(0xcb)](_0x4fe9a7(0xc7))||null,'files':_0x3867b7},'description':'Would\x20pull\x20'+_0x3867b7[_0x4fe9a7(0xcd)]+_0x4fe9a7(0xd5)+_0x24d759[_0x4fe9a7(0xc1)]};},async 'execute'(_0x5eb5cc){const _0x25a10a=a162_0x2a547e,_0x4b1aa9=loadSqlProjectConfig(_0x5eb5cc['appCode']),_0x5e93b1=await readSqlLockFile(_0x4b1aa9[_0x25a10a(0x9b)]),{lockData:_0x35ef6e,appLock:_0x527ced}=ensureSqlLockScope(_0x5e93b1??createEmptySqlLock(),_0x4b1aa9[_0x25a10a(0xcc)],_0x4b1aa9[_0x25a10a(0xa8)],_0x25a10a(0xa2)),_0x383e3e=_0x5eb5cc['bool']('force'),_0x430aba=await fetchAllSqlQueries(_0x5eb5cc[_0x25a10a(0xcc)],{'sqlCode':_0x5eb5cc[_0x25a10a(0xcb)](_0x25a10a(0xb1))||undefined,'sqlName':_0x5eb5cc['str'](_0x25a10a(0xc7))||undefined});if(_0x430aba[_0x25a10a(0xcd)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x25a10a(0xb5)};const _0x5b0780=[],_0x25d772=[];for(const _0x4ce917 of _0x430aba){try{_0x5b0780['push'](await ensureSqlContent(_0x4ce917));}catch(_0x7644a2){_0x25d772['push']({'sqlCode':_0x4ce917[_0x25a10a(0xa5)],'error':_0x7644a2 instanceof Error?_0x7644a2['message']:String(_0x7644a2)});}}if(_0x383e3e&&!_0x5eb5cc[_0x25a10a(0xd1)]){let _0xb8a486=![];for(const _0x5cc3d3 of _0x5b0780){const _0x8d2924=detectModeFromSql(_0x5cc3d3),_0x4483c3=_0x5cc3d3[_0x25a10a(0xa7)]?await getDbName(_0x5eb5cc[_0x25a10a(0xcc)],Number(_0x5cc3d3[_0x25a10a(0xa7)]))[_0x25a10a(0xa3)](()=>undefined):undefined,_0x5624f2=buildLocalSqlFileContent({'sqlCode':_0x5cc3d3[_0x25a10a(0xa5)],'sqlName':_0x5cc3d3[_0x25a10a(0xbe)],'dbId':_0x5cc3d3['dbId']},ensureRemoteSqlContent(_0x5cc3d3),{'dbName':_0x4483c3,'mode':_0x8d2924,'syncedAt':new Date()['toISOString'](),'description':_0x5cc3d3['description']}),_0x1b7aeb=resolveLocalSqlFilePath(_0x4b1aa9,_0x5cc3d3[_0x25a10a(0xa5)],buildSqlLockEntry(_0x5cc3d3,ensureRemoteSqlContent(_0x5cc3d3),'',{'dbName':_0x4483c3}));if(await fileExists(_0x1b7aeb)){const _0x19b9f1=await readFile(_0x1b7aeb,_0x25a10a(0xd2));if(!isEquivalentPulledSqlFile(_0x19b9f1,_0x5624f2,_0x8d2924)){_0xb8a486=!![];break;}}}if(_0xb8a486){const _0x142955=await confirmForceOverwrite(_0x25a10a(0xc8));if(!_0x142955)throw CliErrors[_0x25a10a(0xbb)]('Force\x20pull\x20cancelled.');}}const _0x385563=cloneSqlLockData(_0x35ef6e),_0x1f05d6=_0x385563[_0x25a10a(0xca)][_0x4b1aa9['appCode']],_0x11c9cf=[],_0x3d48bb=[];for(const _0x1ae8c3 of _0x5b0780){const _0x5f42c4=_0x1f05d6[_0x25a10a(0xa6)][_0x1ae8c3[_0x25a10a(0xa5)]],_0x214c90=ensureRemoteSqlContent(_0x1ae8c3),_0x2f9c4a=detectModeFromSql(_0x1ae8c3),_0x2836ac=_0x1ae8c3[_0x25a10a(0xa7)]?await getDbName(_0x5eb5cc[_0x25a10a(0xcc)],Number(_0x1ae8c3['dbId']))[_0x25a10a(0xa3)](()=>undefined):undefined,_0x2d54fd=buildLocalSqlFileContent({'sqlCode':_0x1ae8c3[_0x25a10a(0xa5)],'sqlName':_0x1ae8c3[_0x25a10a(0xbe)],'dbId':_0x1ae8c3['dbId']},_0x214c90,{'dbName':_0x2836ac,'mode':_0x2f9c4a,'syncedAt':new Date()[_0x25a10a(0xbf)](),'description':_0x1ae8c3[_0x25a10a(0xc0)]}),_0x3daf6a=buildSqlLockEntry(_0x1ae8c3,_0x214c90,computeSqlContentHash(_0x2d54fd),{'dbName':_0x2836ac}),_0x4eca34=_0x3daf6a['path'],_0x59f5a7=join(_0x4b1aa9['sqlRootDir'],_0x4eca34);try{if(await fileExists(_0x59f5a7)){const _0x58f8ac=await readFile(_0x59f5a7,_0x25a10a(0xd2));if(isEquivalentPulledSqlFile(_0x58f8ac,_0x2d54fd,_0x2f9c4a)){_0x3d48bb[_0x25a10a(0xa0)]({'sqlCode':_0x1ae8c3[_0x25a10a(0xa5)],'reason':'unchanged'}),_0x1f05d6[_0x25a10a(0xa6)][_0x1ae8c3[_0x25a10a(0xa5)]]={..._0x3daf6a,'hash':computeSqlContentHash(_0x58f8ac),'path':_0x4eca34};continue;}if(!_0x383e3e){_0x3d48bb[_0x25a10a(0xa0)]({'sqlCode':_0x1ae8c3[_0x25a10a(0xa5)],'reason':_0x25a10a(0xa4)});continue;}}const _0x1fd97b=_0x5f42c4?.[_0x25a10a(0xc2)]?join(_0x4b1aa9[_0x25a10a(0xc1)],_0x5f42c4[_0x25a10a(0xc2)]):undefined;_0x1fd97b&&_0x1fd97b!==_0x59f5a7&&await fileExists(_0x1fd97b)&&await rm(_0x1fd97b,{'force':!![]}),await ensureParentDirectory(_0x59f5a7),await writeFile(_0x59f5a7,_0x2d54fd,_0x25a10a(0xd2)),_0x1f05d6[_0x25a10a(0xa6)][_0x1ae8c3[_0x25a10a(0xa5)]]={..._0x3daf6a,'path':_0x4eca34},_0x11c9cf['push']({'sqlCode':_0x1ae8c3[_0x25a10a(0xa5)],'filePath':_0x59f5a7});}catch(_0x40d628){_0x25d772[_0x25a10a(0xa0)]({'sqlCode':_0x1ae8c3[_0x25a10a(0xa5)],'error':_0x40d628 instanceof Error?_0x40d628[_0x25a10a(0x9f)]:String(_0x40d628)});}}return _0x1f05d6[_0x25a10a(0xc9)]=new Date()[_0x25a10a(0xbf)](),await writeSqlLockFile(_0x4b1aa9['lockFilePath'],_0x385563),{'ok':_0x25d772[_0x25a10a(0xcd)]===0x0,'data':{'pulled':_0x11c9cf,'skipped':_0x3d48bb,'failed':_0x25d772},'message':_0x25a10a(0xb6)+_0x11c9cf[_0x25a10a(0xcd)]+_0x25a10a(0xb8)+_0x3d48bb[_0x25a10a(0xcd)]+_0x25a10a(0xd4)+_0x25d772[_0x25a10a(0xcd)]+_0x25a10a(0x9d)};}};function a162_0x35e3(_0x513578,_0x40dcdc){_0x513578=_0x513578-0x9a;const _0x19a780=a162_0x19a7();let _0x35e319=_0x19a780[_0x513578];return _0x35e319;}function detectModeFromSql(_0x5b0a36){const _0x3e6847=a162_0x2a547e,_0x3f10c9=ensureRemoteSqlContent(_0x5b0a36),_0x5e5655=stripLocalSqlMetadata(_0x3f10c9,_0x3e6847(0xaa))[_0x3e6847(0xa1)]();if(/^<(select|insert|update|delete)\b/i[_0x3e6847(0xb3)](_0x5e5655))return'mybatisXml';return _0x3e6847(0xd3);}function isEquivalentPulledSqlFile(_0xd9e965,_0x455b91,_0x6b2b14){return normalizePullComparableContent(_0xd9e965,_0x6b2b14)===normalizePullComparableContent(_0x455b91,_0x6b2b14);}function normalizePullComparableContent(_0x96d904,_0x1dd9a0){const _0x573244=a162_0x2a547e,_0x33bcbf=_0x96d904['replace'](/\r\n/g,'\x0a')[_0x573244(0xbc)]('\x0a'),_0x4b9987=_0x33bcbf[_0x573244(0xbd)](_0x196110=>!isSyncedAtMetadataLine(_0x196110,_0x1dd9a0));return _0x4b9987['join']('\x0a');}function isSyncedAtMetadataLine(_0x5db16c,_0x1496dd){const _0x4a7ddc=a162_0x2a547e;if(_0x1496dd===_0x4a7ddc(0xaa))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x4a7ddc(0xb3)](_0x5db16c);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x5db16c);}
1
+ const a170_0x289e6c=a170_0xb2ef;(function(_0x4d6173,_0x7806ef){const _0x5e4695=a170_0xb2ef,_0x150b33=_0x4d6173();while(!![]){try{const _0x490b54=parseInt(_0x5e4695(0x21a))/0x1*(parseInt(_0x5e4695(0x222))/0x2)+-parseInt(_0x5e4695(0x228))/0x3*(parseInt(_0x5e4695(0x20e))/0x4)+parseInt(_0x5e4695(0x211))/0x5*(-parseInt(_0x5e4695(0x1f4))/0x6)+-parseInt(_0x5e4695(0x1f2))/0x7+-parseInt(_0x5e4695(0x203))/0x8+parseInt(_0x5e4695(0x1f7))/0x9+-parseInt(_0x5e4695(0x20d))/0xa*(-parseInt(_0x5e4695(0x20a))/0xb);if(_0x490b54===_0x7806ef)break;else _0x150b33['push'](_0x150b33['shift']());}catch(_0x51ae32){_0x150b33['push'](_0x150b33['shift']());}}}(a170_0xef20,0xa0a33));function a170_0xef20(){const _0x269142=['description','tableData','\x20written,\x20','name','str','split','7999384VbwKGZ','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','boolean','pull','lastSync','conflict','push','52052nDWKvh','message','apps','5460TKWSLG','820yyznsy','Force\x20overwrite\x20local\x20unsynced\x20changes','path','120vkGUgv','would_pull','sqlcode','\x20SQL\x20file(s)\x20into\x20','force','skipped','sql','No\x20remote\x20SQL\x20queries\x20matched.','nonInteractive','1621QZwXdS','filter','catch','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','sqlCode','length','Force\x20pull\x20cancelled.','894hnZSYw','\x20skipped,\x20','test','replace','sqls','\x20failed','13407UwrEkd','sqlContent','trimStart','lockFilePath','Filter\x20by\x20SQL\x20display\x20name','Pull\x20complete:\x20','totalCount','appCode','utf8','sqlRoot','Would\x20pull\x20','string','unchanged','POST','3536582dZSOhR','write','259128Tsmujv','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','dbId','7267662dAjgSg','mybatisXml','sqlName','cancelled','sqlRootDir','toISOString'];a170_0xef20=function(){return _0x269142;};return a170_0xef20();}import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';function a170_0xb2ef(_0x2ddeb1,_0x1daf20){_0x2ddeb1=_0x2ddeb1-0x1ed;const _0xef2006=a170_0xef20();let _0xb2efc8=_0xef2006[_0x2ddeb1];return _0xb2efc8;}import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x226bcc,_0x2a5206){const _0x141e85=a170_0xb2ef,_0x13a761=[];let _0xb651ed=0x1;while(!![]){const _0x165496=await listSqlQueries(_0x226bcc,{'currentPage':_0xb651ed,'pageSize':PAGE_SIZE,'sqlCode':_0x2a5206['sqlCode'],'sqlName':_0x2a5206[_0x141e85(0x1f9)]}),_0x5b133b=_0x165496[_0x141e85(0x1fe)]??[];_0x13a761['push'](..._0x5b133b);if(_0x5b133b[_0x141e85(0x220)]===0x0)break;const _0x234883=_0x165496['paging']?.[_0x141e85(0x22e)];if(_0x234883!=null?_0x13a761[_0x141e85(0x220)]>=_0x234883:_0x5b133b[_0x141e85(0x220)]<PAGE_SIZE)break;_0xb651ed++;}return _0x13a761;}async function ensureSqlContent(_0x478260){const _0x1ed4b0=a170_0xb2ef;if(_0x478260[_0x1ed4b0(0x229)]!=null&&String(_0x478260[_0x1ed4b0(0x229)])[_0x1ed4b0(0x220)]>0x0)return _0x478260;return getSqlQueryDetail(_0x478260[_0x1ed4b0(0x21f)]);}export const sqlPull={'service':a170_0x289e6c(0x217),'command':a170_0x289e6c(0x206),'description':a170_0x289e6c(0x204),'risk':a170_0x289e6c(0x1f3),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a170_0x289e6c(0x1ef),'description':a170_0x289e6c(0x22c)},{'name':a170_0x289e6c(0x215),'type':a170_0x289e6c(0x205),'description':a170_0x289e6c(0x20f)}],async 'dryRun'(_0x5367c1){const _0x53036d=a170_0x289e6c,_0x3dc721=loadSqlProjectConfig(_0x5367c1['appCode']),_0x552273=await readSqlLockFile(_0x3dc721[_0x53036d(0x22b)]),{appLock:_0x340941}=ensureSqlLockScope(_0x552273??createEmptySqlLock(),_0x3dc721[_0x53036d(0x22f)],_0x3dc721[_0x53036d(0x1ed)],_0x53036d(0x206)),_0x1e7f65=await fetchAllSqlQueries(_0x5367c1[_0x53036d(0x22f)],{'sqlCode':_0x5367c1['str'](_0x53036d(0x213))||undefined,'sqlName':_0x5367c1[_0x53036d(0x201)](_0x53036d(0x200))||undefined}),_0x380106=[];for(const _0x220a33 of _0x1e7f65){const _0x5382a7=await ensureSqlContent(_0x220a33),_0x4c4c54=ensureRemoteSqlContent(_0x5382a7),_0x46c9c4=detectModeFromSql(_0x5382a7),_0x18ee36=_0x5382a7[_0x53036d(0x1f6)]?await getDbName(_0x5367c1[_0x53036d(0x22f)],Number(_0x5382a7[_0x53036d(0x1f6)]))[_0x53036d(0x21c)](()=>undefined):undefined,_0x14b197=buildLocalSqlFileContent({'sqlCode':_0x5382a7[_0x53036d(0x21f)],'sqlName':_0x5382a7[_0x53036d(0x1f9)],'dbId':_0x5382a7[_0x53036d(0x1f6)]},_0x4c4c54,{'dbName':_0x18ee36,'mode':_0x46c9c4,'syncedAt':new Date()[_0x53036d(0x1fc)](),'description':_0x5382a7[_0x53036d(0x1fd)]}),_0x1c4cab=buildSqlLockEntry(_0x5382a7,_0x4c4c54,'',{'dbName':_0x18ee36}),_0x48f71e=resolveLocalSqlFilePath(_0x3dc721,_0x5382a7[_0x53036d(0x21f)],_0x1c4cab);let _0x4ccfde=_0x53036d(0x212),_0x348e1b;if(await fileExists(_0x48f71e)){const _0x544f49=await readFile(_0x48f71e,_0x53036d(0x230));isEquivalentPulledSqlFile(_0x544f49,_0x14b197,_0x46c9c4)?(_0x4ccfde=_0x53036d(0x216),_0x348e1b=_0x53036d(0x1f0)):(_0x4ccfde=_0x53036d(0x208),_0x348e1b=_0x53036d(0x21d));}_0x380106[_0x53036d(0x209)]({'sqlCode':_0x5382a7['sqlCode'],'sqlName':_0x5382a7[_0x53036d(0x1f9)],'filePath':_0x48f71e,'status':_0x4ccfde,'reason':_0x348e1b});}return{'method':_0x53036d(0x1f1),'url':_0x53036d(0x1f5),'body':{'appCode':_0x5367c1['appCode'],'sqlCode':_0x5367c1[_0x53036d(0x201)](_0x53036d(0x213))||null,'sqlName':_0x5367c1[_0x53036d(0x201)](_0x53036d(0x200))||null,'files':_0x380106},'description':_0x53036d(0x1ee)+_0x380106[_0x53036d(0x220)]+_0x53036d(0x214)+_0x3dc721[_0x53036d(0x1fb)]};},async 'execute'(_0x4551a6){const _0x27d585=a170_0x289e6c,_0x262daf=loadSqlProjectConfig(_0x4551a6['appCode']),_0x4def2b=await readSqlLockFile(_0x262daf[_0x27d585(0x22b)]),{lockData:_0x443965,appLock:_0x436cc1}=ensureSqlLockScope(_0x4def2b??createEmptySqlLock(),_0x262daf[_0x27d585(0x22f)],_0x262daf['sqlRoot'],_0x27d585(0x206)),_0x3283d0=_0x4551a6['bool'](_0x27d585(0x215)),_0x5a9d39=await fetchAllSqlQueries(_0x4551a6[_0x27d585(0x22f)],{'sqlCode':_0x4551a6[_0x27d585(0x201)](_0x27d585(0x213))||undefined,'sqlName':_0x4551a6[_0x27d585(0x201)](_0x27d585(0x200))||undefined});if(_0x5a9d39[_0x27d585(0x220)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x27d585(0x218)};const _0xc36d4a=[],_0x5c308c=[];for(const _0x254246 of _0x5a9d39){try{_0xc36d4a[_0x27d585(0x209)](await ensureSqlContent(_0x254246));}catch(_0xb0ff5b){_0x5c308c['push']({'sqlCode':_0x254246[_0x27d585(0x21f)],'error':_0xb0ff5b instanceof Error?_0xb0ff5b[_0x27d585(0x20b)]:String(_0xb0ff5b)});}}if(_0x3283d0&&!_0x4551a6[_0x27d585(0x219)]){let _0x8cde8d=![];for(const _0x509368 of _0xc36d4a){const _0x4cb803=detectModeFromSql(_0x509368),_0x5be37a=_0x509368[_0x27d585(0x1f6)]?await getDbName(_0x4551a6['appCode'],Number(_0x509368['dbId']))[_0x27d585(0x21c)](()=>undefined):undefined,_0x2353e3=buildLocalSqlFileContent({'sqlCode':_0x509368['sqlCode'],'sqlName':_0x509368[_0x27d585(0x1f9)],'dbId':_0x509368[_0x27d585(0x1f6)]},ensureRemoteSqlContent(_0x509368),{'dbName':_0x5be37a,'mode':_0x4cb803,'syncedAt':new Date()[_0x27d585(0x1fc)](),'description':_0x509368[_0x27d585(0x1fd)]}),_0x42ed4b=resolveLocalSqlFilePath(_0x262daf,_0x509368[_0x27d585(0x21f)],buildSqlLockEntry(_0x509368,ensureRemoteSqlContent(_0x509368),'',{'dbName':_0x5be37a}));if(await fileExists(_0x42ed4b)){const _0x5ec3e6=await readFile(_0x42ed4b,_0x27d585(0x230));if(!isEquivalentPulledSqlFile(_0x5ec3e6,_0x2353e3,_0x4cb803)){_0x8cde8d=!![];break;}}}if(_0x8cde8d){const _0x45dc06=await confirmForceOverwrite(_0x27d585(0x21e));if(!_0x45dc06)throw CliErrors[_0x27d585(0x1fa)](_0x27d585(0x221));}}const _0x429f1e=cloneSqlLockData(_0x443965),_0x533c9a=_0x429f1e[_0x27d585(0x20c)][_0x262daf['appCode']],_0x29fdf0=[],_0x5145c6=[];for(const _0x46bfc2 of _0xc36d4a){const _0x592a7e=_0x533c9a[_0x27d585(0x226)][_0x46bfc2['sqlCode']],_0x5f004f=ensureRemoteSqlContent(_0x46bfc2),_0x11e2aa=detectModeFromSql(_0x46bfc2),_0x2252b9=_0x46bfc2[_0x27d585(0x1f6)]?await getDbName(_0x4551a6[_0x27d585(0x22f)],Number(_0x46bfc2[_0x27d585(0x1f6)]))[_0x27d585(0x21c)](()=>undefined):undefined,_0xbb1b57=buildLocalSqlFileContent({'sqlCode':_0x46bfc2['sqlCode'],'sqlName':_0x46bfc2['sqlName'],'dbId':_0x46bfc2[_0x27d585(0x1f6)]},_0x5f004f,{'dbName':_0x2252b9,'mode':_0x11e2aa,'syncedAt':new Date()[_0x27d585(0x1fc)](),'description':_0x46bfc2['description']}),_0x17543f=buildSqlLockEntry(_0x46bfc2,_0x5f004f,computeSqlContentHash(_0xbb1b57),{'dbName':_0x2252b9}),_0x3dbfed=_0x17543f[_0x27d585(0x210)],_0x4ee2a3=join(_0x262daf['sqlRootDir'],_0x3dbfed);try{if(await fileExists(_0x4ee2a3)){const _0x1622ff=await readFile(_0x4ee2a3,_0x27d585(0x230));if(isEquivalentPulledSqlFile(_0x1622ff,_0xbb1b57,_0x11e2aa)){_0x5145c6[_0x27d585(0x209)]({'sqlCode':_0x46bfc2[_0x27d585(0x21f)],'reason':'unchanged'}),_0x533c9a[_0x27d585(0x226)][_0x46bfc2[_0x27d585(0x21f)]]={..._0x17543f,'hash':computeSqlContentHash(_0x1622ff),'path':_0x3dbfed};continue;}if(!_0x3283d0){_0x5145c6[_0x27d585(0x209)]({'sqlCode':_0x46bfc2[_0x27d585(0x21f)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0xa1947b=_0x592a7e?.[_0x27d585(0x210)]?join(_0x262daf['sqlRootDir'],_0x592a7e[_0x27d585(0x210)]):undefined;_0xa1947b&&_0xa1947b!==_0x4ee2a3&&await fileExists(_0xa1947b)&&await rm(_0xa1947b,{'force':!![]}),await ensureParentDirectory(_0x4ee2a3),await writeFile(_0x4ee2a3,_0xbb1b57,_0x27d585(0x230)),_0x533c9a[_0x27d585(0x226)][_0x46bfc2[_0x27d585(0x21f)]]={..._0x17543f,'path':_0x3dbfed},_0x29fdf0[_0x27d585(0x209)]({'sqlCode':_0x46bfc2[_0x27d585(0x21f)],'filePath':_0x4ee2a3});}catch(_0xe357e3){_0x5c308c[_0x27d585(0x209)]({'sqlCode':_0x46bfc2['sqlCode'],'error':_0xe357e3 instanceof Error?_0xe357e3[_0x27d585(0x20b)]:String(_0xe357e3)});}}return _0x533c9a[_0x27d585(0x207)]=new Date()[_0x27d585(0x1fc)](),await writeSqlLockFile(_0x262daf[_0x27d585(0x22b)],_0x429f1e),{'ok':_0x5c308c['length']===0x0,'data':{'pulled':_0x29fdf0,'skipped':_0x5145c6,'failed':_0x5c308c},'message':_0x27d585(0x22d)+_0x29fdf0['length']+_0x27d585(0x1ff)+_0x5145c6[_0x27d585(0x220)]+_0x27d585(0x223)+_0x5c308c[_0x27d585(0x220)]+_0x27d585(0x227)};}};function detectModeFromSql(_0x24c0b8){const _0xa05d1c=a170_0x289e6c,_0x9993a0=ensureRemoteSqlContent(_0x24c0b8),_0x1228e3=stripLocalSqlMetadata(_0x9993a0,_0xa05d1c(0x1f8))[_0xa05d1c(0x22a)]();if(/^<(select|insert|update|delete)\b/i[_0xa05d1c(0x224)](_0x1228e3))return _0xa05d1c(0x1f8);return _0xa05d1c(0x217);}function isEquivalentPulledSqlFile(_0x520f62,_0x2bb77f,_0x387437){return normalizePullComparableContent(_0x520f62,_0x387437)===normalizePullComparableContent(_0x2bb77f,_0x387437);}function normalizePullComparableContent(_0x125f8f,_0x1181e5){const _0xec8e82=a170_0x289e6c,_0x38de13=_0x125f8f[_0xec8e82(0x225)](/\r\n/g,'\x0a')[_0xec8e82(0x202)]('\x0a'),_0x1c28c0=_0x38de13[_0xec8e82(0x21b)](_0x4df1cf=>!isSyncedAtMetadataLine(_0x4df1cf,_0x1181e5));return _0x1c28c0['join']('\x0a');}function isSyncedAtMetadataLine(_0xac9f9,_0x5e93d1){const _0x1f4105=a170_0x289e6c;if(_0x5e93d1===_0x1f4105(0x1f8))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x1f4105(0x224)](_0xac9f9);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x1f4105(0x224)](_0xac9f9);}
@@ -1 +1 @@
1
- const a163_0x4fcb02=a163_0x2602;(function(_0x133872,_0x2af96a){const _0x42f86a=a163_0x2602,_0xd5f45a=_0x133872();while(!![]){try{const _0x5aa851=parseInt(_0x42f86a(0xd7))/0x1*(-parseInt(_0x42f86a(0xbc))/0x2)+parseInt(_0x42f86a(0xda))/0x3+parseInt(_0x42f86a(0xca))/0x4*(parseInt(_0x42f86a(0xe8))/0x5)+-parseInt(_0x42f86a(0xf5))/0x6*(-parseInt(_0x42f86a(0xd8))/0x7)+-parseInt(_0x42f86a(0xdd))/0x8*(-parseInt(_0x42f86a(0xe9))/0x9)+parseInt(_0x42f86a(0xee))/0xa*(parseInt(_0x42f86a(0xbb))/0xb)+-parseInt(_0x42f86a(0xeb))/0xc;if(_0x5aa851===_0x2af96a)break;else _0xd5f45a['push'](_0xd5f45a['shift']());}catch(_0x2368c1){_0xd5f45a['push'](_0xd5f45a['shift']());}}}(a163_0x44a6,0x72254));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a163_0x2602(_0x251ad2,_0x2c51af){_0x251ad2=_0x251ad2-0xb9;const _0x44a615=a163_0x44a6();let _0x260226=_0x44a615[_0x251ad2];return _0x260226;}import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a163_0x44a6(){const _0x3cfff3=['Push\x20local\x20SQL\x20files\x20to\x20remote','Push\x20complete:\x20','validation','projectRoot','relativePath','sqlConfig','unchanged','replace','bool','force','sqlRootDir','\x20failed','1316624aTpuXK','dbDirectory','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','No\x20database\x20matches\x20local\x20directory\x20\x22','sqls','lockFilePath','push','dbName','sqlName','has','sql','Local\x20SQL\x20not\x20found:\x20','417406fOJnZv','352422wxWIjL','catch','2487723RPmtHB','str','filter','3352yNEfDq','toISOString','Would\x20push\x20','sqlCode','lastSync','trashDir','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','length','high-risk-write','sqlcode','hash','5GJCQil','11259qzLkbL','mode','16840260UnsuPE','dbId','remoteId','8217570DThhtW','path','version','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','get','exec','24GdZEhl','boolean','Local\x20directory\x20\x22','filePath','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','map','utf8','appCode','/smartapi/custom/updateUserCustomSql','join','11inpxWu','4bbNPev','isFinite'];a163_0x44a6=function(){return _0x3cfff3;};return a163_0x44a6();}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(_0x19dfd5,_0x47c83c,_0x484e8d){const _0x5c7e04=a163_0x2602,_0x2fe03a=await scanLocalSqlQueries(_0x19dfd5),_0x136324=new Map();for(const _0x49b014 of _0x2fe03a){if(_0x484e8d&&_0x49b014['sqlCode']!==_0x484e8d)continue;const _0x2d2cc9=_0x136324[_0x5c7e04(0xf3)](_0x49b014[_0x5c7e04(0xe0)])??[];_0x2d2cc9[_0x5c7e04(0xd1)](_0x49b014),_0x136324['set'](_0x49b014['sqlCode'],_0x2d2cc9);}if(_0x484e8d&&!_0x136324[_0x5c7e04(0xd4)](_0x484e8d))throw CliErrors[_0x5c7e04(0xc0)](_0x5c7e04(0xd6)+_0x484e8d);const _0x23250b=[];for(const [_0xe4a954,_0x13ba36]of _0x136324['entries']()){if(_0x13ba36[_0x5c7e04(0xe4)]===0x1){_0x23250b[_0x5c7e04(0xd1)](_0x13ba36[0x0]);continue;}const _0x49d652=_0x47c83c[_0x5c7e04(0xcf)][_0xe4a954],_0x1accd4=_0x49d652?.[_0x5c7e04(0xef)],_0x75453c=_0x1accd4?_0x13ba36['filter'](_0x365c49=>_0x365c49[_0x5c7e04(0xc2)]!==_0x1accd4):_0x13ba36;if(_0x49d652&&_0x75453c[_0x5c7e04(0xe4)]===0x1){_0x23250b[_0x5c7e04(0xd1)](_0x75453c[0x0]);continue;}throw CliErrors[_0x5c7e04(0xc0)](_0x5c7e04(0xf9)+_0xe4a954+_0x5c7e04(0xcd));}return _0x23250b;}export const sqlPush={'service':a163_0x4fcb02(0xd5),'command':'push','description':a163_0x4fcb02(0xbe),'risk':a163_0x4fcb02(0xe5),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a163_0x4fcb02(0xc7),'type':a163_0x4fcb02(0xf6),'description':a163_0x4fcb02(0xcc)}],async 'dryRun'(_0x254499){const _0x72bc74=a163_0x4fcb02,_0xa1e0fb=loadSqlProjectConfig(_0x254499[_0x72bc74(0xfc)]),_0x5b0dfa=await readSqlLockFile(_0xa1e0fb[_0x72bc74(0xd0)]),{appLock:_0x17eaac}=ensureSqlLockScope(_0x5b0dfa??createEmptySqlLock(),_0x254499[_0x72bc74(0xfc)],_0xa1e0fb['sqlRoot'],_0x72bc74(0xd1)),_0x2ceecc=await getTargetSqlQueries(_0xa1e0fb,_0x17eaac,_0x254499[_0x72bc74(0xdb)](_0x72bc74(0xe6))||undefined),_0x2bca84=[];for(const _0x4949a8 of _0x2ceecc){const _0x339de8=await computeSqlFileHash(_0x4949a8[_0x72bc74(0xf8)]),_0x191d00=_0x17eaac[_0x72bc74(0xcf)][_0x4949a8[_0x72bc74(0xe0)]],_0xfdce85=!!_0x191d00&&(_0x191d00[_0x72bc74(0xef)]!==_0x4949a8[_0x72bc74(0xc2)]||!!_0x4949a8[_0x72bc74(0xd3)]&&_0x191d00[_0x72bc74(0xd3)]!==_0x4949a8['sqlName']);if(!_0x254499[_0x72bc74(0xc6)](_0x72bc74(0xc7))&&_0x191d00&&_0x191d00[_0x72bc74(0xe7)]===_0x339de8&&!_0xfdce85)continue;_0x2bca84[_0x72bc74(0xd1)](_0x4949a8[_0x72bc74(0xe0)]);}return{'method':'POST','url':_0x72bc74(0xb9),'body':{'sqlCodes':_0x2bca84,'appCode':_0x254499[_0x72bc74(0xfc)]},'description':_0x72bc74(0xdf)+_0x2bca84[_0x72bc74(0xe4)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x549bff){const _0x3cde4a=a163_0x4fcb02,_0x30bad7=loadSqlProjectConfig(_0x549bff[_0x3cde4a(0xfc)]),_0x4b70a3=await readSqlLockFile(_0x30bad7[_0x3cde4a(0xd0)]),{lockData:_0x4d765c,appLock:_0x2a0103}=ensureSqlLockScope(_0x4b70a3??createEmptySqlLock(),_0x549bff['appCode'],_0x30bad7['sqlRoot'],'push'),_0xfb7219=await getTargetSqlQueries(_0x30bad7,_0x2a0103,_0x549bff[_0x3cde4a(0xdb)](_0x3cde4a(0xe6))||undefined);if(_0xfb7219[_0x3cde4a(0xe4)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x3374c1=[],_0xa7a657=[],_0x2a2ecb=[];for(const _0x1bc7bf of _0xfb7219){const _0x3a4555=_0x2a0103['sqls'][_0x1bc7bf[_0x3cde4a(0xe0)]];if(!_0x3a4555){_0x2a2ecb[_0x3cde4a(0xd1)]({'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'error':_0x3cde4a(0xe3)});continue;}try{const _0x157b1d=await computeSqlFileHash(_0x1bc7bf['filePath']),_0x1f0e66=_0x3a4555[_0x3cde4a(0xef)]!==_0x1bc7bf[_0x3cde4a(0xc2)]||!!_0x1bc7bf[_0x3cde4a(0xd3)]&&_0x3a4555[_0x3cde4a(0xd3)]!==_0x1bc7bf[_0x3cde4a(0xd3)];if(!_0x549bff[_0x3cde4a(0xc6)](_0x3cde4a(0xc7))&&_0x3a4555['hash']===_0x157b1d&&!_0x1f0e66){_0xa7a657[_0x3cde4a(0xd1)]({'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'reason':_0x3cde4a(0xc4)});continue;}if(_0x3a4555['version']==null){_0x2a2ecb[_0x3cde4a(0xd1)]({'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'error':_0x3cde4a(0xf1)});continue;}const _0x4f7c38=await readFile(_0x1bc7bf[_0x3cde4a(0xf8)],_0x3cde4a(0xfb)),_0x411c1a=stripLocalSqlMetadata(_0x4f7c38,_0x1bc7bf[_0x3cde4a(0xea)]),_0x366988=_0x1bc7bf[_0x3cde4a(0xd3)]||_0x3a4555[_0x3cde4a(0xd3)],_0x9316d3=await resolveTargetDbBinding(_0x549bff[_0x3cde4a(0xfc)],_0x1bc7bf,_0x3a4555),_0x3d0ee5=await updateSqlQuery({'id':_0x3a4555[_0x3cde4a(0xed)],'appCode':_0x549bff[_0x3cde4a(0xfc)],'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'sqlName':_0x366988,'dbId':_0x9316d3[_0x3cde4a(0xec)],'version':_0x3a4555[_0x3cde4a(0xf0)],'sqlContent':_0x411c1a,'sqlConfig':_0x3a4555[_0x3cde4a(0xc3)]??undefined}),_0x3c6184=_0x3d0ee5[_0x3cde4a(0xec)]?await getDbName(_0x549bff[_0x3cde4a(0xfc)],Number(_0x3d0ee5[_0x3cde4a(0xec)]))['catch'](()=>_0x9316d3[_0x3cde4a(0xd2)]):_0x9316d3[_0x3cde4a(0xd2)];_0x2a0103[_0x3cde4a(0xcf)][_0x1bc7bf[_0x3cde4a(0xe0)]]={...buildSqlLockEntry(_0x3d0ee5,_0x411c1a,_0x157b1d,{'dbName':_0x3c6184}),'path':_0x1bc7bf['relativePath'],'mode':_0x3a4555['mode']},await archivePreviousSqlFileIfNeeded(_0x30bad7,_0x3a4555['path'],_0x1bc7bf['relativePath']),_0x3374c1['push']({'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'remoteId':_0x3a4555[_0x3cde4a(0xed)]});}catch(_0x3e61d9){_0x2a2ecb[_0x3cde4a(0xd1)]({'sqlCode':_0x1bc7bf[_0x3cde4a(0xe0)],'error':_0x3e61d9 instanceof Error?_0x3e61d9['message']:String(_0x3e61d9)});}}return _0x2a0103[_0x3cde4a(0xe1)]=new Date()[_0x3cde4a(0xde)](),await writeSqlLockFile(_0x30bad7['lockFilePath'],_0x4d765c),{'ok':_0x2a2ecb[_0x3cde4a(0xe4)]===0x0,'data':{'pushed':_0x3374c1,'skipped':_0xa7a657,'failed':_0x2a2ecb},'message':_0x3cde4a(0xbf)+_0x3374c1[_0x3cde4a(0xe4)]+'\x20pushed,\x20'+_0xa7a657[_0x3cde4a(0xe4)]+'\x20skipped,\x20'+_0x2a2ecb[_0x3cde4a(0xe4)]+_0x3cde4a(0xc9)};}};async function archivePreviousSqlFileIfNeeded(_0x3fdb63,_0x291e21,_0xa809c6){const _0x928827=a163_0x4fcb02;if(!_0x291e21||_0x291e21===_0xa809c6)return;const _0x161f6e=join(_0x3fdb63['sqlRootDir'],_0x291e21);if(!await fileExists(_0x161f6e))return;const _0x5c078e=await moveToTrash(_0x3fdb63[_0x928827(0xc1)],_0x3fdb63[_0x928827(0xe2)],_0x161f6e);await cleanupEmptyDirectories(dirname(_0x161f6e),_0x3fdb63[_0x928827(0xc8)]),void _0x5c078e;}async function moveToTrash(_0x55650c,_0xbb6a2d,_0x116648){const _0x2e8c70=a163_0x4fcb02,_0x6b2cef=new Date()['toISOString']()[_0x2e8c70(0xc5)](/[:.]/g,'-'),_0x5a322d=relative(_0x55650c,_0x116648),_0x3ec852=join(_0xbb6a2d,_0x6b2cef,_0x5a322d);return await mkdir(dirname(_0x3ec852),{'recursive':!![]}),await rename(_0x116648,_0x3ec852),_0x3ec852;}async function cleanupEmptyDirectories(_0x5a5a76,_0x576707){let _0x2c08c3=resolve(_0x5a5a76);const _0x3802d4=resolve(_0x576707);while(_0x2c08c3['startsWith'](''+_0x3802d4+sep)||_0x2c08c3===_0x3802d4){if(_0x2c08c3===_0x3802d4)return;try{const _0x35498a=await readdir(_0x2c08c3);if(_0x35498a['length']>0x0)return;await rmdir(_0x2c08c3);}catch{return;}_0x2c08c3=dirname(_0x2c08c3);}}async function resolveTargetDbBinding(_0x5c60fa,_0x2f846d,_0x16a94b){const _0x22afbc=a163_0x4fcb02,_0x5d5f03=_0x2f846d[_0x22afbc(0xcb)];if(!_0x5d5f03)return{'dbId':_0x16a94b['dbId'],'dbName':_0x16a94b['dbName']};const _0x19c723=buildDbDirectoryName(_0x16a94b[_0x22afbc(0xd2)],_0x16a94b[_0x22afbc(0xec)]);if(_0x5d5f03===_0x19c723)return{'dbId':_0x16a94b[_0x22afbc(0xec)],'dbName':_0x16a94b[_0x22afbc(0xd2)]};const _0x465d99=parseExplicitDbDirectory(_0x5d5f03);if(_0x465d99!=null)return{'dbId':_0x465d99,'dbName':await getDbName(_0x5c60fa,_0x465d99)[_0x22afbc(0xd9)](()=>undefined)};const _0x46d888=await listDatabases(_0x5c60fa),_0x35c957=_0x46d888[_0x22afbc(0xdc)](_0x153eda=>buildDbDirectoryName(_0x153eda[_0x22afbc(0xd2)],_0x153eda['dbId'])===_0x5d5f03);if(_0x35c957[_0x22afbc(0xe4)]===0x1)return{'dbId':_0x35c957[0x0][_0x22afbc(0xec)],'dbName':_0x35c957[0x0]['dbName']};if(_0x35c957['length']===0x0)throw CliErrors['validation'](_0x22afbc(0xce)+_0x5d5f03+'\x22\x20for\x20sqlCode\x20'+_0x2f846d[_0x22afbc(0xe0)]+'.');const _0x1876aa=_0x35c957[_0x22afbc(0xfa)](_0x3337a6=>_0x3337a6['dbName']+'\x20('+_0x3337a6[_0x22afbc(0xec)]+')')[_0x22afbc(0xba)](',\x20');throw CliErrors[_0x22afbc(0xc0)](_0x22afbc(0xf7)+_0x5d5f03+_0x22afbc(0xf2)+_0x2f846d['sqlCode']+':\x20'+_0x1876aa);}function parseExplicitDbDirectory(_0x4a9e2b){const _0x86548f=a163_0x4fcb02,_0xc9edbe=/^db-(\d+)$/[_0x86548f(0xf4)](_0x4a9e2b);if(!_0xc9edbe)return null;const _0x44c1ce=Number(_0xc9edbe[0x1]);return Number[_0x86548f(0xbd)](_0x44c1ce)&&_0x44c1ce>0x0?_0x44c1ce:null;}
1
+ const a171_0x4f8fc5=a171_0x1226;(function(_0x365627,_0x1dfd80){const _0x2664c1=a171_0x1226,_0x208f1e=_0x365627();while(!![]){try{const _0x21b9cf=-parseInt(_0x2664c1(0x137))/0x1+parseInt(_0x2664c1(0x10a))/0x2*(-parseInt(_0x2664c1(0x11b))/0x3)+parseInt(_0x2664c1(0x103))/0x4+parseInt(_0x2664c1(0x13c))/0x5*(-parseInt(_0x2664c1(0x12e))/0x6)+parseInt(_0x2664c1(0x110))/0x7*(parseInt(_0x2664c1(0x113))/0x8)+parseInt(_0x2664c1(0x119))/0x9+-parseInt(_0x2664c1(0x11d))/0xa*(-parseInt(_0x2664c1(0x121))/0xb);if(_0x21b9cf===_0x1dfd80)break;else _0x208f1e['push'](_0x208f1e['shift']());}catch(_0x246d7b){_0x208f1e['push'](_0x208f1e['shift']());}}}(a171_0x13ef,0x652a4));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';function a171_0x13ef(){const _0x27834a=['sqlRoot','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','get','Push\x20local\x20SQL\x20files\x20to\x20remote','\x20SQL\x20file(s)','appCode','24558YrKRSo','sqlRootDir','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','join','push','sqls','lockFilePath','catch','No\x20local\x20SQL\x20files\x20found.','403276mPhCnQ','remoteId','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','validation','\x20pushed,\x20','905yltCpY','projectRoot','\x20failed','mode','length','exec','Local\x20SQL\x20not\x20found:\x20','path','1461692VlfBlc','isFinite','force','sql','relativePath','bool','set','87018QYGVxR','toISOString','sqlName','filter','sqlCode','sqlcode','1799NSfESU','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','str','16312QmutxP','filePath','trashDir','No\x20database\x20matches\x20local\x20directory\x20\x22','message','high-risk-write','445707iDeKdW','Local\x20directory\x20\x22','3nOzBSO','\x22\x20for\x20sqlCode\x20','2070hgAHkY','boolean','startsWith','dbId','35233JPWwRj','Push\x20complete:\x20','map','\x20skipped,\x20','/smartapi/custom/updateUserCustomSql','hash','dbName'];a171_0x13ef=function(){return _0x27834a;};return a171_0x13ef();}function a171_0x1226(_0x4d8ee2,_0x4dc605){_0x4d8ee2=_0x4d8ee2-0x103;const _0x13ef14=a171_0x13ef();let _0x1226ad=_0x13ef14[_0x4d8ee2];return _0x1226ad;}async function getTargetSqlQueries(_0x4f0f5b,_0x5ece69,_0x8f9b49){const _0x1bd0f6=a171_0x1226,_0xdb8584=await scanLocalSqlQueries(_0x4f0f5b),_0x58160f=new Map();for(const _0x46a220 of _0xdb8584){if(_0x8f9b49&&_0x46a220[_0x1bd0f6(0x10e)]!==_0x8f9b49)continue;const _0x2b23b3=_0x58160f[_0x1bd0f6(0x12a)](_0x46a220['sqlCode'])??[];_0x2b23b3[_0x1bd0f6(0x132)](_0x46a220),_0x58160f[_0x1bd0f6(0x109)](_0x46a220[_0x1bd0f6(0x10e)],_0x2b23b3);}if(_0x8f9b49&&!_0x58160f['has'](_0x8f9b49))throw CliErrors[_0x1bd0f6(0x13a)](_0x1bd0f6(0x142)+_0x8f9b49);const _0x5a92bc=[];for(const [_0x3e488e,_0x4f3cf6]of _0x58160f['entries']()){if(_0x4f3cf6['length']===0x1){_0x5a92bc['push'](_0x4f3cf6[0x0]);continue;}const _0x30f0e3=_0x5ece69[_0x1bd0f6(0x133)][_0x3e488e],_0x2130bd=_0x30f0e3?.[_0x1bd0f6(0x143)],_0x36d87c=_0x2130bd?_0x4f3cf6[_0x1bd0f6(0x10d)](_0x1abfa5=>_0x1abfa5[_0x1bd0f6(0x107)]!==_0x2130bd):_0x4f3cf6;if(_0x30f0e3&&_0x36d87c['length']===0x1){_0x5a92bc[_0x1bd0f6(0x132)](_0x36d87c[0x0]);continue;}throw CliErrors['validation'](_0x1bd0f6(0x129)+_0x3e488e+'.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.');}return _0x5a92bc;}export const sqlPush={'service':a171_0x4f8fc5(0x106),'command':a171_0x4f8fc5(0x132),'description':a171_0x4f8fc5(0x12b),'risk':a171_0x4f8fc5(0x118),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a171_0x4f8fc5(0x105),'type':a171_0x4f8fc5(0x11e),'description':a171_0x4f8fc5(0x111)}],async 'dryRun'(_0x2c4d3e){const _0x129c25=a171_0x4f8fc5,_0x33ba05=loadSqlProjectConfig(_0x2c4d3e[_0x129c25(0x12d)]),_0x3aa521=await readSqlLockFile(_0x33ba05['lockFilePath']),{appLock:_0x50caf8}=ensureSqlLockScope(_0x3aa521??createEmptySqlLock(),_0x2c4d3e[_0x129c25(0x12d)],_0x33ba05[_0x129c25(0x128)],_0x129c25(0x132)),_0x2e2de4=await getTargetSqlQueries(_0x33ba05,_0x50caf8,_0x2c4d3e[_0x129c25(0x112)](_0x129c25(0x10f))||undefined),_0x56a5ac=[];for(const _0xa594e4 of _0x2e2de4){const _0x30eb84=await computeSqlFileHash(_0xa594e4[_0x129c25(0x114)]),_0xad72b3=_0x50caf8[_0x129c25(0x133)][_0xa594e4[_0x129c25(0x10e)]],_0x37975a=!!_0xad72b3&&(_0xad72b3[_0x129c25(0x143)]!==_0xa594e4['relativePath']||!!_0xa594e4['sqlName']&&_0xad72b3['sqlName']!==_0xa594e4[_0x129c25(0x10c)]);if(!_0x2c4d3e[_0x129c25(0x108)](_0x129c25(0x105))&&_0xad72b3&&_0xad72b3[_0x129c25(0x126)]===_0x30eb84&&!_0x37975a)continue;_0x56a5ac[_0x129c25(0x132)](_0xa594e4[_0x129c25(0x10e)]);}return{'method':'POST','url':_0x129c25(0x125),'body':{'sqlCodes':_0x56a5ac,'appCode':_0x2c4d3e[_0x129c25(0x12d)]},'description':'Would\x20push\x20'+_0x56a5ac[_0x129c25(0x140)]+_0x129c25(0x12c)};},async 'execute'(_0x481651){const _0x568abb=a171_0x4f8fc5,_0xc90e9a=loadSqlProjectConfig(_0x481651[_0x568abb(0x12d)]),_0x577c44=await readSqlLockFile(_0xc90e9a[_0x568abb(0x134)]),{lockData:_0x3499b6,appLock:_0x23b7a7}=ensureSqlLockScope(_0x577c44??createEmptySqlLock(),_0x481651['appCode'],_0xc90e9a[_0x568abb(0x128)],'push'),_0xc60809=await getTargetSqlQueries(_0xc90e9a,_0x23b7a7,_0x481651[_0x568abb(0x112)](_0x568abb(0x10f))||undefined);if(_0xc60809[_0x568abb(0x140)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x568abb(0x136)};const _0x93a356=[],_0x2add5f=[],_0x2b9a2d=[];for(const _0x4fc07f of _0xc60809){const _0x529f14=_0x23b7a7['sqls'][_0x4fc07f[_0x568abb(0x10e)]];if(!_0x529f14){_0x2b9a2d[_0x568abb(0x132)]({'sqlCode':_0x4fc07f[_0x568abb(0x10e)],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x36f57c=await computeSqlFileHash(_0x4fc07f[_0x568abb(0x114)]),_0x620890=_0x529f14['path']!==_0x4fc07f[_0x568abb(0x107)]||!!_0x4fc07f[_0x568abb(0x10c)]&&_0x529f14[_0x568abb(0x10c)]!==_0x4fc07f['sqlName'];if(!_0x481651[_0x568abb(0x108)](_0x568abb(0x105))&&_0x529f14['hash']===_0x36f57c&&!_0x620890){_0x2add5f[_0x568abb(0x132)]({'sqlCode':_0x4fc07f[_0x568abb(0x10e)],'reason':'unchanged'});continue;}if(_0x529f14['version']==null){_0x2b9a2d[_0x568abb(0x132)]({'sqlCode':_0x4fc07f[_0x568abb(0x10e)],'error':_0x568abb(0x130)});continue;}const _0x176461=await readFile(_0x4fc07f[_0x568abb(0x114)],'utf8'),_0x460f27=stripLocalSqlMetadata(_0x176461,_0x4fc07f[_0x568abb(0x13f)]),_0x384b39=_0x4fc07f[_0x568abb(0x10c)]||_0x529f14[_0x568abb(0x10c)],_0xee4c69=await resolveTargetDbBinding(_0x481651['appCode'],_0x4fc07f,_0x529f14),_0x29cac2=await updateSqlQuery({'id':_0x529f14['remoteId'],'appCode':_0x481651[_0x568abb(0x12d)],'sqlCode':_0x4fc07f[_0x568abb(0x10e)],'sqlName':_0x384b39,'dbId':_0xee4c69[_0x568abb(0x120)],'version':_0x529f14['version'],'sqlContent':_0x460f27,'sqlConfig':_0x529f14['sqlConfig']??undefined}),_0x2df168=_0x29cac2['dbId']?await getDbName(_0x481651[_0x568abb(0x12d)],Number(_0x29cac2[_0x568abb(0x120)]))['catch'](()=>_0xee4c69[_0x568abb(0x127)]):_0xee4c69[_0x568abb(0x127)];_0x23b7a7[_0x568abb(0x133)][_0x4fc07f[_0x568abb(0x10e)]]={...buildSqlLockEntry(_0x29cac2,_0x460f27,_0x36f57c,{'dbName':_0x2df168}),'path':_0x4fc07f[_0x568abb(0x107)],'mode':_0x529f14['mode']},await archivePreviousSqlFileIfNeeded(_0xc90e9a,_0x529f14['path'],_0x4fc07f['relativePath']),_0x93a356[_0x568abb(0x132)]({'sqlCode':_0x4fc07f[_0x568abb(0x10e)],'remoteId':_0x529f14[_0x568abb(0x138)]});}catch(_0x53ffc1){_0x2b9a2d['push']({'sqlCode':_0x4fc07f[_0x568abb(0x10e)],'error':_0x53ffc1 instanceof Error?_0x53ffc1[_0x568abb(0x117)]:String(_0x53ffc1)});}}return _0x23b7a7['lastSync']=new Date()[_0x568abb(0x10b)](),await writeSqlLockFile(_0xc90e9a[_0x568abb(0x134)],_0x3499b6),{'ok':_0x2b9a2d['length']===0x0,'data':{'pushed':_0x93a356,'skipped':_0x2add5f,'failed':_0x2b9a2d},'message':_0x568abb(0x122)+_0x93a356['length']+_0x568abb(0x13b)+_0x2add5f[_0x568abb(0x140)]+_0x568abb(0x124)+_0x2b9a2d[_0x568abb(0x140)]+_0x568abb(0x13e)};}};async function archivePreviousSqlFileIfNeeded(_0x23bbbe,_0x5c1f2f,_0x2ccafa){const _0x96207=a171_0x4f8fc5;if(!_0x5c1f2f||_0x5c1f2f===_0x2ccafa)return;const _0x3805a7=join(_0x23bbbe[_0x96207(0x12f)],_0x5c1f2f);if(!await fileExists(_0x3805a7))return;const _0x3cc35a=await moveToTrash(_0x23bbbe[_0x96207(0x13d)],_0x23bbbe[_0x96207(0x115)],_0x3805a7);await cleanupEmptyDirectories(dirname(_0x3805a7),_0x23bbbe[_0x96207(0x12f)]),void _0x3cc35a;}async function moveToTrash(_0x324003,_0x37e32d,_0x2572cc){const _0x45e0b7=a171_0x4f8fc5,_0x3412d7=new Date()[_0x45e0b7(0x10b)]()['replace'](/[:.]/g,'-'),_0x50f5e6=relative(_0x324003,_0x2572cc),_0x17ea4a=join(_0x37e32d,_0x3412d7,_0x50f5e6);return await mkdir(dirname(_0x17ea4a),{'recursive':!![]}),await rename(_0x2572cc,_0x17ea4a),_0x17ea4a;}async function cleanupEmptyDirectories(_0x20c57c,_0x4ef459){const _0x63fa8f=a171_0x4f8fc5;let _0x32e01d=resolve(_0x20c57c);const _0x39cab5=resolve(_0x4ef459);while(_0x32e01d[_0x63fa8f(0x11f)](''+_0x39cab5+sep)||_0x32e01d===_0x39cab5){if(_0x32e01d===_0x39cab5)return;try{const _0x5ea43d=await readdir(_0x32e01d);if(_0x5ea43d[_0x63fa8f(0x140)]>0x0)return;await rmdir(_0x32e01d);}catch{return;}_0x32e01d=dirname(_0x32e01d);}}async function resolveTargetDbBinding(_0x31fbee,_0x4d3694,_0x5341d7){const _0xb10606=a171_0x4f8fc5,_0x2c8bd4=_0x4d3694['dbDirectory'];if(!_0x2c8bd4)return{'dbId':_0x5341d7[_0xb10606(0x120)],'dbName':_0x5341d7[_0xb10606(0x127)]};const _0x5b75c1=buildDbDirectoryName(_0x5341d7[_0xb10606(0x127)],_0x5341d7[_0xb10606(0x120)]);if(_0x2c8bd4===_0x5b75c1)return{'dbId':_0x5341d7['dbId'],'dbName':_0x5341d7[_0xb10606(0x127)]};const _0x116f1d=parseExplicitDbDirectory(_0x2c8bd4);if(_0x116f1d!=null)return{'dbId':_0x116f1d,'dbName':await getDbName(_0x31fbee,_0x116f1d)[_0xb10606(0x135)](()=>undefined)};const _0x1134dc=await listDatabases(_0x31fbee),_0x2f7b6d=_0x1134dc[_0xb10606(0x10d)](_0x34805e=>buildDbDirectoryName(_0x34805e[_0xb10606(0x127)],_0x34805e['dbId'])===_0x2c8bd4);if(_0x2f7b6d[_0xb10606(0x140)]===0x1)return{'dbId':_0x2f7b6d[0x0]['dbId'],'dbName':_0x2f7b6d[0x0][_0xb10606(0x127)]};if(_0x2f7b6d[_0xb10606(0x140)]===0x0)throw CliErrors['validation'](_0xb10606(0x116)+_0x2c8bd4+_0xb10606(0x11c)+_0x4d3694['sqlCode']+'.');const _0xaf00a0=_0x2f7b6d[_0xb10606(0x123)](_0x3bcfc1=>_0x3bcfc1['dbName']+'\x20('+_0x3bcfc1[_0xb10606(0x120)]+')')[_0xb10606(0x131)](',\x20');throw CliErrors[_0xb10606(0x13a)](_0xb10606(0x11a)+_0x2c8bd4+_0xb10606(0x139)+_0x4d3694[_0xb10606(0x10e)]+':\x20'+_0xaf00a0);}function parseExplicitDbDirectory(_0x3a42b9){const _0x5adc7e=a171_0x4f8fc5,_0x2151fe=/^db-(\d+)$/[_0x5adc7e(0x141)](_0x3a42b9);if(!_0x2151fe)return null;const _0x2c5dcb=Number(_0x2151fe[0x1]);return Number[_0x5adc7e(0x104)](_0x2c5dcb)&&_0x2c5dcb>0x0?_0x2c5dcb:null;}
@@ -1 +1 @@
1
- const a164_0x1300b7=a164_0x4260;(function(_0x39d2f7,_0x271860){const _0x47e23e=a164_0x4260,_0x555d65=_0x39d2f7();while(!![]){try{const _0x5b7d11=parseInt(_0x47e23e(0x174))/0x1*(-parseInt(_0x47e23e(0x179))/0x2)+-parseInt(_0x47e23e(0x178))/0x3*(-parseInt(_0x47e23e(0x17a))/0x4)+parseInt(_0x47e23e(0x172))/0x5+parseInt(_0x47e23e(0x176))/0x6+parseInt(_0x47e23e(0x16a))/0x7+parseInt(_0x47e23e(0x16e))/0x8*(-parseInt(_0x47e23e(0x175))/0x9)+-parseInt(_0x47e23e(0x173))/0xa;if(_0x5b7d11===_0x271860)break;else _0x555d65['push'](_0x555d65['shift']());}catch(_0x15c287){_0x555d65['push'](_0x555d65['shift']());}}}(a164_0x3cb9,0xb8a8c));import{CliErrors}from'../../errors.js';function a164_0x4260(_0x3b6480,_0x4f7c59){_0x3b6480=_0x3b6480-0x16a;const _0x3cb957=a164_0x3cb9();let _0x4260e4=_0x3cb957[_0x3b6480];return _0x4260e4;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a164_0x1300b7(0x170),a164_0x1300b7(0x17c),a164_0x1300b7(0x180)][a164_0x1300b7(0x16f)]('\x0a');function a164_0x3cb9(){const _0x446755=['116999dvsJQP','2996235XymIMb','8272716vqJiXc','file','153921kvwvkr','8XjbuKg','104cUHHVv','sqlname','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','string','Path\x20to\x20the\x20SQL\x20file','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`.','5324291HKSSPO','write','sql','validation','8bERkQX','join','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','save','6459285KnBAyM','32079630VuwzWE'];a164_0x3cb9=function(){return _0x446755;};return a164_0x3cb9();}export const sqlSave={'service':a164_0x1300b7(0x16c),'command':a164_0x1300b7(0x171),'description':a164_0x1300b7(0x17d),'risk':a164_0x1300b7(0x16b),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a164_0x1300b7(0x177),'type':a164_0x1300b7(0x17e),'required':!![],'description':a164_0x1300b7(0x17f)},SQLCODE_FLAG_OPTIONAL,{'name':a164_0x1300b7(0x17b),'type':a164_0x1300b7(0x17e),'description':'SQL\x20query\x20display\x20name'},{'name':'db','type':a164_0x1300b7(0x17e),'description':'Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)'},{'name':'description','type':'string','description':'Query\x20description'}],async 'validate'(){const _0x45d6c0=a164_0x1300b7;throw CliErrors[_0x45d6c0(0x16d)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a172_0x306138=a172_0x1651;(function(_0x2f46d9,_0x1b94b7){const _0x1ea1c3=a172_0x1651,_0x141ce9=_0x2f46d9();while(!![]){try{const _0x1a834a=-parseInt(_0x1ea1c3(0x99))/0x1*(-parseInt(_0x1ea1c3(0x9d))/0x2)+-parseInt(_0x1ea1c3(0x94))/0x3+-parseInt(_0x1ea1c3(0xa3))/0x4+-parseInt(_0x1ea1c3(0x91))/0x5*(parseInt(_0x1ea1c3(0xa2))/0x6)+-parseInt(_0x1ea1c3(0x9c))/0x7+-parseInt(_0x1ea1c3(0x8f))/0x8*(parseInt(_0x1ea1c3(0xa1))/0x9)+parseInt(_0x1ea1c3(0x9e))/0xa;if(_0x1a834a===_0x1b94b7)break;else _0x141ce9['push'](_0x141ce9['shift']());}catch(_0x18f657){_0x141ce9['push'](_0x141ce9['shift']());}}}(a172_0x3de1,0xeff21));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a172_0x306138(0x93),a172_0x306138(0x97),a172_0x306138(0xa4)][a172_0x306138(0xa0)]('\x0a');function a172_0x3de1(){const _0x1bb44a=['validation','description','5397416XZsDnj','SQL\x20query\x20display\x20name','8552730bnhKqc','Path\x20to\x20the\x20SQL\x20file','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','620013MtxukK','sqlname','save','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','4HvstJn','string','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','8102556PobNdP','767066yGmBpS','40630020xgfDAP','write','join','9PaTvMP','6IlultL','3459660SetFtY','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`.','Query\x20description'];a172_0x3de1=function(){return _0x1bb44a;};return a172_0x3de1();}function a172_0x1651(_0x177a4d,_0x1c3ed7){_0x177a4d=_0x177a4d-0x8f;const _0x3de12c=a172_0x3de1();let _0x1651d5=_0x3de12c[_0x177a4d];return _0x1651d5;}export const sqlSave={'service':'sql','command':a172_0x306138(0x96),'description':a172_0x306138(0x9b),'risk':a172_0x306138(0x9f),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':'file','type':a172_0x306138(0x9a),'required':!![],'description':a172_0x306138(0x92)},SQLCODE_FLAG_OPTIONAL,{'name':a172_0x306138(0x95),'type':a172_0x306138(0x9a),'description':a172_0x306138(0x90)},{'name':'db','type':a172_0x306138(0x9a),'description':a172_0x306138(0x98)},{'name':a172_0x306138(0xa7),'type':a172_0x306138(0x9a),'description':a172_0x306138(0xa5)}],async 'validate'(){const _0x498226=a172_0x306138;throw CliErrors[_0x498226(0xa6)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0xc7e365=a172_0x306138;throw CliErrors[_0xc7e365(0xa6)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- const a165_0x17a4bc=a165_0x48c4;(function(_0x584429,_0x39f5b7){const _0x2e73b2=a165_0x48c4,_0x5e9c63=_0x584429();while(!![]){try{const _0x39ad2f=parseInt(_0x2e73b2(0xf2))/0x1+parseInt(_0x2e73b2(0x115))/0x2*(parseInt(_0x2e73b2(0x10e))/0x3)+-parseInt(_0x2e73b2(0xf5))/0x4+parseInt(_0x2e73b2(0x113))/0x5*(-parseInt(_0x2e73b2(0xf8))/0x6)+-parseInt(_0x2e73b2(0x108))/0x7*(parseInt(_0x2e73b2(0x100))/0x8)+parseInt(_0x2e73b2(0x106))/0x9+-parseInt(_0x2e73b2(0xe8))/0xa*(-parseInt(_0x2e73b2(0xf4))/0xb);if(_0x39ad2f===_0x39f5b7)break;else _0x5e9c63['push'](_0x5e9c63['shift']());}catch(_0x55a8f1){_0x5e9c63['push'](_0x5e9c63['shift']());}}}(a165_0x13e1,0x41f98));import{createInterface}from'node:readline';function a165_0x48c4(_0x11a2da,_0x49ad77){_0x11a2da=_0x11a2da-0xe8;const _0x13e1c3=a165_0x13e1();let _0x48c4f8=_0x13e1c3[_0x11a2da];return _0x48c4f8;}import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a165_0x17a4bc(0xfe);export function buildSqlLockEntry(_0x15adae,_0x248b0a,_0x477103,_0x1fb956){const _0x318078=a165_0x17a4bc,_0xf8f53a=detectSqlMode(_0x248b0a);return{'path':buildSqlRelativePath(_0x15adae['sqlCode'],_0x15adae[_0x318078(0xf6)],_0x1fb956?.['dbName'],_0xf8f53a,_0x15adae[_0x318078(0xff)]),'hash':_0x477103,'remoteId':_0x15adae['id'],'version':_0x15adae[_0x318078(0x112)],'dbId':Number(_0x15adae['dbId']),'dbName':_0x1fb956?.['dbName'],'sqlName':_0x15adae[_0x318078(0xf6)],'sqlConfig':_0x15adae['sqlConfig']??undefined,'mode':_0xf8f53a};}export function cloneSqlLockData(_0x4baa6f){const _0x1ca22b=a165_0x17a4bc;return{'apps':Object[_0x1ca22b(0x103)](Object[_0x1ca22b(0xfd)](_0x4baa6f[_0x1ca22b(0xfc)])[_0x1ca22b(0x104)](([_0x451973,_0x303c50])=>[_0x451973,{'sqlRoot':_0x303c50['sqlRoot'],'lastSync':_0x303c50[_0x1ca22b(0x10f)],'sqls':{..._0x303c50['sqls']}}]))};}export function ensureRemoteSqlContent(_0x58baef){const _0x30d799=a165_0x17a4bc;return _0x58baef[_0x30d799(0xea)]??'';}export function buildLocalSqlFileContent(_0x2e355e,_0x13f355,_0x220418){const _0x3dd1f8=a165_0x17a4bc,_0x3d2eb9=_0x220418?.[_0x3dd1f8(0xf0)]??detectSqlMode(_0x13f355),_0xbc0931=stripLocalSqlMetadata(_0x13f355,_0x3d2eb9)[_0x3dd1f8(0x105)](),_0x5cc791=[...buildMetadataHeaderLines({'sqlCode':_0x2e355e['sqlCode'],'sqlName':_0x2e355e['sqlName'],'dbId':_0x2e355e['dbId'],'dbName':_0x220418?.[_0x3dd1f8(0xed)],'mode':_0x3d2eb9,'syncedAt':_0x220418?.['syncedAt'],'description':_0x220418?.[_0x3dd1f8(0xf7)]},_0x3d2eb9),'',_0xbc0931],_0x10662c=_0x5cc791[_0x3dd1f8(0xfb)]('\x0a');return _0x10662c[_0x3dd1f8(0xf3)]('\x0a')?_0x10662c:_0x10662c+'\x0a';}export function stripLocalSqlMetadata(_0xeff373,_0x20df7f){const _0x557070=a165_0x17a4bc,_0x510006=_0xeff373[_0x557070(0x10a)](/\r\n/g,'\x0a')[_0x557070(0x10d)]('\x0a'),_0x39c703=[];let _0x22c4df=0x0;if(_0x20df7f===_0x557070(0xf1))while(_0x22c4df<_0x510006[_0x557070(0x114)]){const _0x280d6b=_0x510006[_0x22c4df]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x280d6b)){_0x22c4df++;continue;}if(_0x280d6b[_0x557070(0x105)]()===''&&_0x22c4df>0x0){_0x22c4df++;continue;}break;}else while(_0x22c4df<_0x510006[_0x557070(0x114)]){const _0x4605bd=_0x510006[_0x22c4df]??'';if(/^\s*--\s*@lovrabet\./[_0x557070(0xf9)](_0x4605bd)){_0x22c4df++;continue;}if(_0x4605bd[_0x557070(0x105)]()===''&&_0x22c4df>0x0){_0x22c4df++;continue;}break;}for(;_0x22c4df<_0x510006[_0x557070(0x114)];_0x22c4df++){_0x39c703[_0x557070(0x111)](_0x510006[_0x22c4df]);}return _0x39c703[_0x557070(0xfb)]('\x0a')[_0x557070(0xec)]();}export function resolveSqlMode(_0x1412df,_0x1cd9fe){const _0x7a3f40=a165_0x17a4bc;if(_0x1cd9fe?.[_0x7a3f40(0xf0)])return _0x1cd9fe[_0x7a3f40(0xf0)];return detectSqlMode(_0x1412df);}export function resolveSqlFileName(_0xbc10dc,_0x3a1d42,_0x14e159){const _0x1ec154=a165_0x17a4bc;if(_0x14e159?.['path'])return _0x14e159['path'];if(_0x14e159?.[_0x1ec154(0xf6)]||_0x14e159?.['dbName'])return buildSqlRelativePath(_0xbc10dc,_0x14e159?.[_0x1ec154(0xf6)],_0x14e159?.['dbName'],resolveSqlMode(_0x3a1d42,_0x14e159),_0x14e159?.['dbId']);return buildDefaultSqlFileName(_0xbc10dc,resolveSqlMode(_0x3a1d42,_0x14e159));}export function resolveSqlLocalDir(_0x3403a1,_0x9e6b43){return join(_0x3403a1,SQL_LOCAL_REL_DIR,_0x9e6b43);}function a165_0x13e1(){const _0x4370b2=['55PmHVUr','983880zQpoWq','sqlName','description','33162WsaWyJ','test','sqlCode','join','apps','entries','.rabetbase/sql','dbId','1346848KgHHjJ','--\x20@lovrabet.','yes','fromEntries','map','trim','3140856MvsFvr','filter','7aVNdeB','\x20-->','replace','stderr','close','split','522711iCJlOx','lastSync','includes','push','version','485ajvQfD','length','4MawUrg','705230gBIJax','<!--\x20@lovrabet.','sqlContent','\x20[y/N]\x20','trimStart','dbName','syncedAt','question','mode','mybatisXml','170604FUbeOE','endsWith'];a165_0x13e1=function(){return _0x4370b2;};return a165_0x13e1();}export async function confirmForceOverwrite(_0x147bd1){const _0x4c9942=a165_0x17a4bc,_0x1fa38b=createInterface({'input':process['stdin'],'output':process[_0x4c9942(0x10b)]}),_0x2ae0bd=await new Promise(_0x1d274f=>{const _0x56584b=_0x4c9942;_0x1fa38b[_0x56584b(0xef)](_0x147bd1+_0x56584b(0xeb),_0x1d274f);});return _0x1fa38b[_0x4c9942(0x10c)](),['y',_0x4c9942(0x102)][_0x4c9942(0x110)](_0x2ae0bd[_0x4c9942(0x105)]()['toLowerCase']());}export function findSqlLockScope(_0x5e35de,_0x35e069){const _0x304c63=a165_0x17a4bc;return _0x5e35de[_0x304c63(0xfc)][_0x35e069];}function buildMetadataHeaderLines(_0x3efc01,_0x435b43){const _0x49314d=a165_0x17a4bc,_0x31818d=[[_0x49314d(0xfa),_0x3efc01[_0x49314d(0xfa)]],[_0x49314d(0xf6),_0x3efc01[_0x49314d(0xf6)]],[_0x49314d(0xff),_0x3efc01[_0x49314d(0xff)]],[_0x49314d(0xed),_0x3efc01['dbName']],[_0x49314d(0xf0),_0x3efc01[_0x49314d(0xf0)]],['syncedAt',_0x3efc01[_0x49314d(0xee)]],[_0x49314d(0xf7),_0x3efc01[_0x49314d(0xf7)]]];if(_0x435b43==='mybatisXml')return _0x31818d[_0x49314d(0x107)](([,_0x5b6050])=>_0x5b6050!==undefined&&_0x5b6050!==null&&String(_0x5b6050)['trim']()!=='')[_0x49314d(0x104)](([_0x43e377,_0x323af2])=>_0x49314d(0xe9)+_0x43e377+':\x20'+String(_0x323af2)+_0x49314d(0x109));return _0x31818d['filter'](([,_0x2b2906])=>_0x2b2906!==undefined&&_0x2b2906!==null&&String(_0x2b2906)[_0x49314d(0x105)]()!=='')[_0x49314d(0x104)](([_0x2500b7,_0x3b38dd])=>_0x49314d(0x101)+_0x2500b7+':\x20'+String(_0x3b38dd));}
1
+ const a173_0x1f2e72=a173_0x57d4;(function(_0x20f762,_0x4b1c20){const _0x10a3d3=a173_0x57d4,_0x323f42=_0x20f762();while(!![]){try{const _0x196262=parseInt(_0x10a3d3(0x70))/0x1*(-parseInt(_0x10a3d3(0x84))/0x2)+-parseInt(_0x10a3d3(0x74))/0x3+-parseInt(_0x10a3d3(0x89))/0x4+-parseInt(_0x10a3d3(0x7d))/0x5+-parseInt(_0x10a3d3(0x87))/0x6+-parseInt(_0x10a3d3(0x83))/0x7+parseInt(_0x10a3d3(0x7e))/0x8;if(_0x196262===_0x4b1c20)break;else _0x323f42['push'](_0x323f42['shift']());}catch(_0x30e8da){_0x323f42['push'](_0x323f42['shift']());}}}(a173_0x427f,0x93d86));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a173_0x1f2e72(0x88);export function buildSqlLockEntry(_0x3cd090,_0x41d62c,_0x2e75d6,_0x1b38b5){const _0x2469da=a173_0x1f2e72,_0x560e7c=detectSqlMode(_0x41d62c);return{'path':buildSqlRelativePath(_0x3cd090[_0x2469da(0x91)],_0x3cd090[_0x2469da(0x8a)],_0x1b38b5?.['dbName'],_0x560e7c,_0x3cd090[_0x2469da(0x76)]),'hash':_0x2e75d6,'remoteId':_0x3cd090['id'],'version':_0x3cd090[_0x2469da(0x73)],'dbId':Number(_0x3cd090['dbId']),'dbName':_0x1b38b5?.[_0x2469da(0x8f)],'sqlName':_0x3cd090[_0x2469da(0x8a)],'sqlConfig':_0x3cd090[_0x2469da(0x81)]??undefined,'mode':_0x560e7c};}function a173_0x427f(){const _0x1f7d6e=['mybatisXml','dbId','trimStart','endsWith','fromEntries','includes','question','length','4958240ZykzZr','37219128PkuInl','close','apps','sqlConfig','test','2867984wwLozz','2boGRgS','stderr','syncedAt','4535106cFjuSM','.rabetbase/sql','295612CcwwmW','sqlName','toLowerCase','mode','split','trim','dbName','map','sqlCode','stdin','description','lastSync','815585BhvmmC','join','\x20[y/N]\x20','version','3000354oMJzjs'];a173_0x427f=function(){return _0x1f7d6e;};return a173_0x427f();}export function cloneSqlLockData(_0x611fd1){const _0x109cbb=a173_0x1f2e72;return{'apps':Object[_0x109cbb(0x79)](Object['entries'](_0x611fd1[_0x109cbb(0x80)])[_0x109cbb(0x90)](([_0x2b2ed2,_0x3edc70])=>[_0x2b2ed2,{'sqlRoot':_0x3edc70['sqlRoot'],'lastSync':_0x3edc70[_0x109cbb(0x6f)],'sqls':{..._0x3edc70['sqls']}}]))};}export function ensureRemoteSqlContent(_0x45854c){return _0x45854c['sqlContent']??'';}export function buildLocalSqlFileContent(_0x2a6bd8,_0xfb7080,_0x23d38a){const _0x36ea25=a173_0x1f2e72,_0x1fb54c=_0x23d38a?.[_0x36ea25(0x8c)]??detectSqlMode(_0xfb7080),_0x4b37e3=stripLocalSqlMetadata(_0xfb7080,_0x1fb54c)['trim'](),_0x28061b=[...buildMetadataHeaderLines({'sqlCode':_0x2a6bd8[_0x36ea25(0x91)],'sqlName':_0x2a6bd8[_0x36ea25(0x8a)],'dbId':_0x2a6bd8[_0x36ea25(0x76)],'dbName':_0x23d38a?.['dbName'],'mode':_0x1fb54c,'syncedAt':_0x23d38a?.[_0x36ea25(0x86)],'description':_0x23d38a?.[_0x36ea25(0x6e)]},_0x1fb54c),'',_0x4b37e3],_0x36cb8a=_0x28061b[_0x36ea25(0x71)]('\x0a');return _0x36cb8a[_0x36ea25(0x78)]('\x0a')?_0x36cb8a:_0x36cb8a+'\x0a';}export function stripLocalSqlMetadata(_0x4718f6,_0x53db53){const _0x5f3888=a173_0x1f2e72,_0x57e870=_0x4718f6['replace'](/\r\n/g,'\x0a')[_0x5f3888(0x8d)]('\x0a'),_0x163ce0=[];let _0x41acbc=0x0;if(_0x53db53===_0x5f3888(0x75))while(_0x41acbc<_0x57e870[_0x5f3888(0x7c)]){const _0x31229d=_0x57e870[_0x41acbc]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x31229d)){_0x41acbc++;continue;}if(_0x31229d['trim']()===''&&_0x41acbc>0x0){_0x41acbc++;continue;}break;}else while(_0x41acbc<_0x57e870['length']){const _0x2e70f0=_0x57e870[_0x41acbc]??'';if(/^\s*--\s*@lovrabet\./[_0x5f3888(0x82)](_0x2e70f0)){_0x41acbc++;continue;}if(_0x2e70f0[_0x5f3888(0x8e)]()===''&&_0x41acbc>0x0){_0x41acbc++;continue;}break;}for(;_0x41acbc<_0x57e870[_0x5f3888(0x7c)];_0x41acbc++){_0x163ce0['push'](_0x57e870[_0x41acbc]);}return _0x163ce0[_0x5f3888(0x71)]('\x0a')[_0x5f3888(0x77)]();}export function resolveSqlMode(_0x452322,_0x47fe3d){const _0x412722=a173_0x1f2e72;if(_0x47fe3d?.[_0x412722(0x8c)])return _0x47fe3d['mode'];return detectSqlMode(_0x452322);}export function resolveSqlFileName(_0x38b575,_0x98f235,_0x184a1e){const _0x4a0648=a173_0x1f2e72;if(_0x184a1e?.['path'])return _0x184a1e['path'];if(_0x184a1e?.['sqlName']||_0x184a1e?.[_0x4a0648(0x8f)])return buildSqlRelativePath(_0x38b575,_0x184a1e?.['sqlName'],_0x184a1e?.[_0x4a0648(0x8f)],resolveSqlMode(_0x98f235,_0x184a1e),_0x184a1e?.[_0x4a0648(0x76)]);return buildDefaultSqlFileName(_0x38b575,resolveSqlMode(_0x98f235,_0x184a1e));}export function resolveSqlLocalDir(_0x4302c6,_0x33f3df){return join(_0x4302c6,SQL_LOCAL_REL_DIR,_0x33f3df);}export async function confirmForceOverwrite(_0x2bc2d4){const _0x17a029=a173_0x1f2e72,_0x5b4429=createInterface({'input':process[_0x17a029(0x92)],'output':process[_0x17a029(0x85)]}),_0x29a535=await new Promise(_0x23040e=>{const _0x352cfd=_0x17a029;_0x5b4429[_0x352cfd(0x7b)](_0x2bc2d4+_0x352cfd(0x72),_0x23040e);});return _0x5b4429[_0x17a029(0x7f)](),['y','yes'][_0x17a029(0x7a)](_0x29a535['trim']()[_0x17a029(0x8b)]());}function a173_0x57d4(_0x1024ee,_0x444efb){_0x1024ee=_0x1024ee-0x6e;const _0x427f6c=a173_0x427f();let _0x57d47d=_0x427f6c[_0x1024ee];return _0x57d47d;}export function findSqlLockScope(_0x239397,_0x150fdb){return _0x239397['apps'][_0x150fdb];}function buildMetadataHeaderLines(_0x1b5932,_0x566a86){const _0x4858d1=a173_0x1f2e72,_0x154ed3=[[_0x4858d1(0x91),_0x1b5932['sqlCode']],[_0x4858d1(0x8a),_0x1b5932[_0x4858d1(0x8a)]],[_0x4858d1(0x76),_0x1b5932[_0x4858d1(0x76)]],[_0x4858d1(0x8f),_0x1b5932[_0x4858d1(0x8f)]],[_0x4858d1(0x8c),_0x1b5932[_0x4858d1(0x8c)]],[_0x4858d1(0x86),_0x1b5932[_0x4858d1(0x86)]],[_0x4858d1(0x6e),_0x1b5932[_0x4858d1(0x6e)]]];if(_0x566a86===_0x4858d1(0x75))return _0x154ed3['filter'](([,_0x525a2b])=>_0x525a2b!==undefined&&_0x525a2b!==null&&String(_0x525a2b)[_0x4858d1(0x8e)]()!=='')[_0x4858d1(0x90)](([_0x3868af,_0x51c41a])=>'<!--\x20@lovrabet.'+_0x3868af+':\x20'+String(_0x51c41a)+'\x20-->');return _0x154ed3['filter'](([,_0x43f674])=>_0x43f674!==undefined&&_0x43f674!==null&&String(_0x43f674)['trim']()!=='')[_0x4858d1(0x90)](([_0x3f3a24,_0xe4f7af])=>'--\x20@lovrabet.'+_0x3f3a24+':\x20'+String(_0xe4f7af));}
@@ -1 +1 @@
1
- const a166_0x5bf413=a166_0x1f89;(function(_0x4650a6,_0x10b7bb){const _0x4883a1=a166_0x1f89,_0x53a054=_0x4650a6();while(!![]){try{const _0x5eda36=-parseInt(_0x4883a1(0xa1))/0x1*(parseInt(_0x4883a1(0x83))/0x2)+parseInt(_0x4883a1(0x8e))/0x3*(parseInt(_0x4883a1(0x80))/0x4)+parseInt(_0x4883a1(0x87))/0x5+parseInt(_0x4883a1(0x82))/0x6*(-parseInt(_0x4883a1(0x9c))/0x7)+parseInt(_0x4883a1(0x8d))/0x8*(parseInt(_0x4883a1(0x93))/0x9)+-parseInt(_0x4883a1(0x98))/0xa*(parseInt(_0x4883a1(0x81))/0xb)+parseInt(_0x4883a1(0x9a))/0xc*(parseInt(_0x4883a1(0x85))/0xd);if(_0x5eda36===_0x10b7bb)break;else _0x53a054['push'](_0x53a054['shift']());}catch(_0x2e66db){_0x53a054['push'](_0x53a054['shift']());}}}(a166_0x2493,0x46b23));import{listSqlQueries}from'../../core/api-client.js';function a166_0x2493(){const _0x88a400=['951HAPHYt','sqlCode','\x20modified,\x20','remote','bool','251388YRfpek','sqlName','read','has','boolean','57400tgxPDX','filePath','12OhtKMa','length','547687dTNRAR','\x20added,\x20','lockKey','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','sql','8623Mxmmpd','sqlRoot','All\x20SQL\x20queries\x20are\x20in\x20sync.','status','relativePath','push','tableData','path','6124XNseTL','1001VnvpRV','18SsbYuY','38bfCums','sqls','3763864RKmtMD','hash','362500kQfxAc','keys','appCode','map','\x20missing,\x20','paging','104LkRLmk'];a166_0x2493=function(){return _0x88a400;};return a166_0x2493();}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';function a166_0x1f89(_0x36a403,_0x28928f){_0x36a403=_0x36a403-0x7c;const _0x249390=a166_0x2493();let _0x1f89cb=_0x249390[_0x36a403];return _0x1f89cb;}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x2ff3c7){const _0x666628=a166_0x1f89,_0x6f0386=[];let _0x10794b=0x1;while(!![]){const _0x36ddb6=await listSqlQueries(_0x2ff3c7,{'currentPage':_0x10794b,'pageSize':PAGE_SIZE}),_0x69697f=_0x36ddb6[_0x666628(0x7e)]??[];_0x6f0386[_0x666628(0x7d)](..._0x69697f[_0x666628(0x8a)](_0x4a6f0f=>_0x4a6f0f[_0x666628(0x8f)]));if(_0x69697f[_0x666628(0x9b)]===0x0)break;const _0x55e51b=_0x36ddb6[_0x666628(0x8c)]?.['totalCount'];if(_0x55e51b!=null?_0x6f0386[_0x666628(0x9b)]>=_0x55e51b:_0x69697f[_0x666628(0x9b)]<PAGE_SIZE)break;_0x10794b++;}return _0x6f0386;}export const sqlStatus={'service':a166_0x5bf413(0xa0),'command':a166_0x5bf413(0xa4),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':a166_0x5bf413(0x95),'flags':[{'name':a166_0x5bf413(0x91),'type':a166_0x5bf413(0x97),'description':a166_0x5bf413(0x9f)}],async 'execute'(_0x3eef01){const _0x318a15=a166_0x5bf413,_0x463275=loadSqlProjectConfig(_0x3eef01[_0x318a15(0x89)]),_0x4b9910=await readSqlLockFile(_0x463275['lockFilePath']),{appLock:_0x4569f6}=ensureSqlLockScope(_0x4b9910??createEmptySqlLock(),_0x463275['appCode'],_0x463275[_0x318a15(0xa2)],_0x318a15(0xa4)),_0x5c3277=await scanLocalSqlQueries(_0x463275),_0xb8f6c=[],_0x13e470=[],_0x196c92=[],_0x44d276=[],_0x1c48d1=new Set(_0x5c3277[_0x318a15(0x8a)](_0x5905a9=>_0x5905a9[_0x318a15(0x9e)]));for(const _0x471a82 of _0x5c3277){const _0x58cc52=await computeSqlFileHash(_0x471a82[_0x318a15(0x99)]),_0x1833eb=_0x4569f6[_0x318a15(0x84)][_0x471a82[_0x318a15(0x9e)]],_0x1d539d=!!_0x1833eb&&_0x1833eb[_0x318a15(0x7f)]!==_0x471a82[_0x318a15(0x7c)],_0x19dd39=!!_0x1833eb&&!!_0x471a82[_0x318a15(0x94)]&&_0x1833eb['sqlName']!==_0x471a82[_0x318a15(0x94)];if(!_0x1833eb)_0xb8f6c[_0x318a15(0x7d)](_0x471a82['lockKey']);else _0x1833eb[_0x318a15(0x86)]!==_0x58cc52||_0x1d539d||_0x19dd39?_0x13e470[_0x318a15(0x7d)](_0x471a82[_0x318a15(0x9e)]):_0x196c92[_0x318a15(0x7d)](_0x471a82['lockKey']);}for(const _0x34328b of Object[_0x318a15(0x88)](_0x4569f6[_0x318a15(0x84)])){!_0x1c48d1[_0x318a15(0x96)](_0x34328b)&&_0x44d276['push'](_0x34328b);}const _0x14e88f=[];if(_0x3eef01[_0x318a15(0x92)]('remote')){const _0x2d657d=await fetchAllSqlCodes(_0x3eef01[_0x318a15(0x89)]);for(const _0x1e0b1b of _0x2d657d){!_0x1c48d1['has'](_0x1e0b1b)&&!_0x4569f6[_0x318a15(0x84)][_0x1e0b1b]&&_0x14e88f[_0x318a15(0x7d)](_0x1e0b1b);}}const _0x4554ea=_0xb8f6c[_0x318a15(0x9b)]===0x0&&_0x13e470['length']===0x0&&_0x44d276['length']===0x0&&_0x14e88f[_0x318a15(0x9b)]===0x0;return{'ok':!![],'data':{'added':_0xb8f6c,'modified':_0x13e470,'missing':_0x44d276,'unchanged':_0x196c92,'remoteOnly':_0x14e88f},'message':_0x4554ea?_0x318a15(0xa3):_0xb8f6c[_0x318a15(0x9b)]+_0x318a15(0x9d)+_0x13e470['length']+_0x318a15(0x90)+_0x44d276[_0x318a15(0x9b)]+_0x318a15(0x8b)+_0x196c92['length']+'\x20unchanged'+(_0x14e88f[_0x318a15(0x9b)]>0x0?',\x20'+_0x14e88f[_0x318a15(0x9b)]+'\x20remote-only':'')};}};
1
+ const a174_0x5bd750=a174_0x2b3e;(function(_0x73738d,_0x15a01f){const _0x586363=a174_0x2b3e,_0x3a13c7=_0x73738d();while(!![]){try{const _0x7b1905=parseInt(_0x586363(0x191))/0x1*(parseInt(_0x586363(0x1a4))/0x2)+-parseInt(_0x586363(0x1a1))/0x3+parseInt(_0x586363(0x196))/0x4*(-parseInt(_0x586363(0x193))/0x5)+-parseInt(_0x586363(0x19e))/0x6+-parseInt(_0x586363(0x18f))/0x7*(parseInt(_0x586363(0x1a0))/0x8)+-parseInt(_0x586363(0x1ae))/0x9*(parseInt(_0x586363(0x1ab))/0xa)+parseInt(_0x586363(0x1a6))/0xb;if(_0x7b1905===_0x15a01f)break;else _0x3a13c7['push'](_0x3a13c7['shift']());}catch(_0x742bc7){_0x3a13c7['push'](_0x3a13c7['shift']());}}}(a174_0x237e,0xa1730));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';function a174_0x2b3e(_0x17bda0,_0x1f4e57){_0x17bda0=_0x17bda0-0x189;const _0x237e84=a174_0x237e();let _0x2b3e0f=_0x237e84[_0x17bda0];return _0x2b3e0f;}import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;function a174_0x237e(){const _0x34a13d=['appCode','lockKey','170xcezqR','totalCount','All\x20SQL\x20queries\x20are\x20in\x20sync.','397737nNMmeF','map','\x20remote-only','length','bool','remote','relativePath','63385OZHLfD','keys','1ExjLEZ','\x20modified,\x20','5NRxPbb','sqlRoot','hash','2360900rcjFPs','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','sqlName','lockFilePath','read','status','sqls','\x20added,\x20','125670LJJdPh','tableData','456LYcQuB','3137808QHKbKG','path','push','221618qwfBrr','filePath','38225099UVXgkO','has','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally'];a174_0x237e=function(){return _0x34a13d;};return a174_0x237e();}async function fetchAllSqlCodes(_0x49b27f){const _0x6411f1=a174_0x2b3e,_0x12c3c5=[];let _0x4d41e0=0x1;while(!![]){const _0xf3b212=await listSqlQueries(_0x49b27f,{'currentPage':_0x4d41e0,'pageSize':PAGE_SIZE}),_0x1ab38b=_0xf3b212[_0x6411f1(0x19f)]??[];_0x12c3c5[_0x6411f1(0x1a3)](..._0x1ab38b[_0x6411f1(0x189)](_0x3e4d6e=>_0x3e4d6e['sqlCode']));if(_0x1ab38b[_0x6411f1(0x18b)]===0x0)break;const _0x40ab73=_0xf3b212['paging']?.[_0x6411f1(0x1ac)];if(_0x40ab73!=null?_0x12c3c5['length']>=_0x40ab73:_0x1ab38b[_0x6411f1(0x18b)]<PAGE_SIZE)break;_0x4d41e0++;}return _0x12c3c5;}export const sqlStatus={'service':'sql','command':a174_0x5bd750(0x19b),'description':a174_0x5bd750(0x197),'risk':a174_0x5bd750(0x19a),'flags':[{'name':a174_0x5bd750(0x18d),'type':'boolean','description':a174_0x5bd750(0x1a8)}],async 'execute'(_0x435146){const _0x54e251=a174_0x5bd750,_0x2f6990=loadSqlProjectConfig(_0x435146[_0x54e251(0x1a9)]),_0x3bc224=await readSqlLockFile(_0x2f6990[_0x54e251(0x199)]),{appLock:_0x33d90e}=ensureSqlLockScope(_0x3bc224??createEmptySqlLock(),_0x2f6990[_0x54e251(0x1a9)],_0x2f6990[_0x54e251(0x194)],_0x54e251(0x19b)),_0x305aea=await scanLocalSqlQueries(_0x2f6990),_0x284712=[],_0x9dd119=[],_0x3aa04b=[],_0x4e44d2=[],_0x414851=new Set(_0x305aea[_0x54e251(0x189)](_0x160920=>_0x160920['lockKey']));for(const _0x42b32b of _0x305aea){const _0x1f8a2b=await computeSqlFileHash(_0x42b32b[_0x54e251(0x1a5)]),_0x5d728b=_0x33d90e[_0x54e251(0x19c)][_0x42b32b['lockKey']],_0x17aed9=!!_0x5d728b&&_0x5d728b[_0x54e251(0x1a2)]!==_0x42b32b[_0x54e251(0x18e)],_0xd5a574=!!_0x5d728b&&!!_0x42b32b[_0x54e251(0x198)]&&_0x5d728b[_0x54e251(0x198)]!==_0x42b32b[_0x54e251(0x198)];if(!_0x5d728b)_0x284712[_0x54e251(0x1a3)](_0x42b32b[_0x54e251(0x1aa)]);else _0x5d728b[_0x54e251(0x195)]!==_0x1f8a2b||_0x17aed9||_0xd5a574?_0x9dd119[_0x54e251(0x1a3)](_0x42b32b[_0x54e251(0x1aa)]):_0x3aa04b[_0x54e251(0x1a3)](_0x42b32b[_0x54e251(0x1aa)]);}for(const _0x11021e of Object[_0x54e251(0x190)](_0x33d90e['sqls'])){!_0x414851[_0x54e251(0x1a7)](_0x11021e)&&_0x4e44d2[_0x54e251(0x1a3)](_0x11021e);}const _0x55bce2=[];if(_0x435146[_0x54e251(0x18c)]('remote')){const _0x295438=await fetchAllSqlCodes(_0x435146[_0x54e251(0x1a9)]);for(const _0x3fd521 of _0x295438){!_0x414851[_0x54e251(0x1a7)](_0x3fd521)&&!_0x33d90e['sqls'][_0x3fd521]&&_0x55bce2[_0x54e251(0x1a3)](_0x3fd521);}}const _0x49412b=_0x284712[_0x54e251(0x18b)]===0x0&&_0x9dd119[_0x54e251(0x18b)]===0x0&&_0x4e44d2[_0x54e251(0x18b)]===0x0&&_0x55bce2[_0x54e251(0x18b)]===0x0;return{'ok':!![],'data':{'added':_0x284712,'modified':_0x9dd119,'missing':_0x4e44d2,'unchanged':_0x3aa04b,'remoteOnly':_0x55bce2},'message':_0x49412b?_0x54e251(0x1ad):_0x284712['length']+_0x54e251(0x19d)+_0x9dd119['length']+_0x54e251(0x192)+_0x4e44d2['length']+'\x20missing,\x20'+_0x3aa04b[_0x54e251(0x18b)]+'\x20unchanged'+(_0x55bce2[_0x54e251(0x18b)]>0x0?',\x20'+_0x55bce2[_0x54e251(0x18b)]+_0x54e251(0x18a):'')};}};