@lovrabet/rabetbase-cli 2.2.5-beta.2 → 2.3.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) 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/discover.js +1 -1
  21. package/lib/commands/app/index.js +1 -1
  22. package/lib/commands/app/list.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/use.js +1 -1
  26. package/lib/commands/app-config/delete.js +1 -1
  27. package/lib/commands/app-config/get.js +1 -1
  28. package/lib/commands/app-config/index.js +1 -1
  29. package/lib/commands/app-config/list.js +1 -1
  30. package/lib/commands/app-config/set.js +1 -1
  31. package/lib/commands/app-config/shared.js +1 -1
  32. package/lib/commands/auth/index.js +1 -1
  33. package/lib/commands/bff/create.js +1 -1
  34. package/lib/commands/bff/delete.js +1 -1
  35. package/lib/commands/bff/detail.js +1 -1
  36. package/lib/commands/bff/index.js +1 -1
  37. package/lib/commands/bff/list.js +1 -1
  38. package/lib/commands/bff/pull.js +1 -1
  39. package/lib/commands/bff/push.js +1 -1
  40. package/lib/commands/bff/status.js +1 -1
  41. package/lib/commands/cli-skill/index.js +1 -0
  42. package/lib/commands/cli-update.js +1 -1
  43. package/lib/commands/codegen/index.js +1 -1
  44. package/lib/commands/codegen/sdk.js +1 -1
  45. package/lib/commands/codegen/sql.js +1 -1
  46. package/lib/commands/common/app-selector.js +1 -1
  47. package/lib/commands/common/flags.js +1 -1
  48. package/lib/commands/common/validate.js +1 -1
  49. package/lib/commands/config/get.js +1 -1
  50. package/lib/commands/config/index.js +1 -1
  51. package/lib/commands/config/list.js +1 -1
  52. package/lib/commands/config/set.js +1 -1
  53. package/lib/commands/config/shared.js +1 -1
  54. package/lib/commands/data/filter.js +1 -1
  55. package/lib/commands/data/getOne.js +1 -1
  56. package/lib/commands/data/index.js +1 -1
  57. package/lib/commands/data/shared.js +1 -1
  58. package/lib/commands/dataset/business-group-update.js +1 -1
  59. package/lib/commands/dataset/capability.js +1 -1
  60. package/lib/commands/dataset/delete.js +1 -1
  61. package/lib/commands/dataset/detail.js +1 -1
  62. package/lib/commands/dataset/extend-update.js +1 -1
  63. package/lib/commands/dataset/field-update.js +1 -1
  64. package/lib/commands/dataset/index.js +1 -1
  65. package/lib/commands/dataset/list.js +1 -1
  66. package/lib/commands/dataset/operations.js +1 -1
  67. package/lib/commands/dataset/relation-create.js +1 -1
  68. package/lib/commands/dataset/relation-delete.js +1 -1
  69. package/lib/commands/dataset/relation-shared.js +1 -1
  70. package/lib/commands/dataset/relation-update.js +1 -1
  71. package/lib/commands/dataset/relations.js +1 -1
  72. package/lib/commands/dataset/rename.js +1 -1
  73. package/lib/commands/dataset/restore.js +1 -1
  74. package/lib/commands/db/analyze-cancel.js +1 -1
  75. package/lib/commands/db/analyze-start.js +1 -1
  76. package/lib/commands/db/analyze-status.js +1 -1
  77. package/lib/commands/db/create.js +1 -1
  78. package/lib/commands/db/delete.js +1 -1
  79. package/lib/commands/db/detail.js +1 -1
  80. package/lib/commands/db/diff.js +1 -1
  81. package/lib/commands/db/index.js +1 -1
  82. package/lib/commands/db/list.js +1 -1
  83. package/lib/commands/db/shared.js +1 -1
  84. package/lib/commands/db/tables.js +1 -1
  85. package/lib/commands/db/test.js +1 -1
  86. package/lib/commands/db/update.js +1 -1
  87. package/lib/commands/doctor.js +1 -1
  88. package/lib/commands/init/index.js +1 -1
  89. package/lib/commands/issue/index.js +1 -1
  90. package/lib/commands/issue/nudge.js +1 -1
  91. package/lib/commands/issue/report.js +1 -1
  92. package/lib/commands/issue/shared.js +1 -1
  93. package/lib/commands/logs/index.js +1 -1
  94. package/lib/commands/menu/index.js +1 -1
  95. package/lib/commands/menu/list.js +1 -1
  96. package/lib/commands/menu/shared/compare-table.js +1 -1
  97. package/lib/commands/menu/shared/index.js +1 -1
  98. package/lib/commands/menu/shared/inquirer.js +1 -1
  99. package/lib/commands/menu/shared/local-pages.js +1 -1
  100. package/lib/commands/menu/shared/logic.js +1 -1
  101. package/lib/commands/menu/shared/service.js +1 -1
  102. package/lib/commands/menu/shared/sync-core.js +1 -1
  103. package/lib/commands/menu/shared/update-core.js +1 -1
  104. package/lib/commands/menu/shared/valid-url.js +1 -1
  105. package/lib/commands/menu/sync.js +1 -1
  106. package/lib/commands/menu/update.js +1 -1
  107. package/lib/commands/page/generate-start.js +1 -1
  108. package/lib/commands/page/generate-status.js +1 -1
  109. package/lib/commands/page/index.js +1 -1
  110. package/lib/commands/page/pull.js +1 -1
  111. package/lib/commands/page/push.js +1 -1
  112. package/lib/commands/page/relation-audit.js +1 -1
  113. package/lib/commands/page/shared.js +1 -1
  114. package/lib/commands/page/standard-page-status.js +1 -1
  115. package/lib/commands/page/sync.js +1 -1
  116. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  117. package/lib/commands/project/create/format-elapsed.js +1 -1
  118. package/lib/commands/project/create/main.js +1 -1
  119. package/lib/commands/project/create/non-interactive.js +1 -1
  120. package/lib/commands/project/create/project-template-path.js +1 -1
  121. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  122. package/lib/commands/project/create/use-format-code.js +1 -1
  123. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  124. package/lib/commands/project/index.js +1 -1
  125. package/lib/commands/project/init.js +1 -1
  126. package/lib/commands/project/upgrade.js +1 -1
  127. package/lib/commands/registry.js +1 -1
  128. package/lib/commands/run/index.js +1 -1
  129. package/lib/commands/schema.js +1 -1
  130. package/lib/commands/sql/create.js +1 -1
  131. package/lib/commands/sql/delete.js +1 -1
  132. package/lib/commands/sql/detail.js +1 -1
  133. package/lib/commands/sql/exec.js +1 -1
  134. package/lib/commands/sql/index.js +1 -1
  135. package/lib/commands/sql/list.js +1 -1
  136. package/lib/commands/sql/pull.js +1 -1
  137. package/lib/commands/sql/push.js +1 -1
  138. package/lib/commands/sql/save.js +1 -1
  139. package/lib/commands/sql/shared.js +1 -1
  140. package/lib/commands/sql/status.js +1 -1
  141. package/lib/commands/sql/validate.js +1 -1
  142. package/lib/commands/workspace/index.js +1 -1
  143. package/lib/config/schema.js +1 -1
  144. package/lib/constant/cdn.js +1 -1
  145. package/lib/constant/cli.js +1 -1
  146. package/lib/constant/defaults.js +1 -1
  147. package/lib/constant/domain.js +1 -1
  148. package/lib/constant/env.js +1 -1
  149. package/lib/constant/output.js +1 -1
  150. package/lib/constant/paths.js +1 -1
  151. package/lib/constant/risk.js +1 -1
  152. package/lib/context/app-resolver.js +1 -1
  153. package/lib/context/auth-resolver.js +1 -1
  154. package/lib/context/config-loader.js +1 -1
  155. package/lib/context.js +1 -1
  156. package/lib/core/alias-resolver.js +1 -1
  157. package/lib/core/api-client.js +1 -1
  158. package/lib/core/bff/config.js +1 -1
  159. package/lib/core/bff/file-system.js +1 -1
  160. package/lib/core/bff/hash.js +1 -1
  161. package/lib/core/bff/lock.js +1 -1
  162. package/lib/core/bff/utils.js +1 -1
  163. package/lib/core/db-resolver.js +1 -1
  164. package/lib/core/page/file-system.js +1 -1
  165. package/lib/core/page/hash.js +1 -1
  166. package/lib/core/page/lock.js +1 -1
  167. package/lib/core/sql-sync/config.js +1 -1
  168. package/lib/core/sql-sync/file-system.js +1 -1
  169. package/lib/core/sql-sync/hash.js +1 -1
  170. package/lib/core/sql-sync/lock.js +1 -1
  171. package/lib/core/sql-sync/utils.js +1 -1
  172. package/lib/core/sql-validator.js +1 -1
  173. package/lib/errors.js +1 -1
  174. package/lib/framework/build-all-flags.js +1 -1
  175. package/lib/framework/flags.js +1 -1
  176. package/lib/framework/help.js +1 -1
  177. package/lib/framework/index.js +1 -1
  178. package/lib/framework/output.js +1 -1
  179. package/lib/framework/response.js +1 -1
  180. package/lib/framework/runner-alias.js +1 -1
  181. package/lib/framework/runner.js +1 -1
  182. package/lib/framework/schema-export.js +1 -1
  183. package/lib/framework/types.js +1 -1
  184. package/lib/generated/build-info.js +1 -1
  185. package/lib/help.js +1 -1
  186. package/lib/skills/main.js +1 -1
  187. package/lib/skills/npx-skills-add.js +1 -1
  188. package/lib/telemetry/cli-command-trace.js +1 -1
  189. package/lib/telemetry/cli-help-trace.js +1 -1
  190. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  191. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  192. package/lib/telemetry/send-cli-trace-log.js +1 -1
  193. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  194. package/lib/utils/ai_config.js +1 -1
  195. package/lib/utils/apply-jq-filter.js +1 -1
  196. package/lib/utils/cdn-config.js +1 -1
  197. package/lib/utils/check-sdk-version.js +1 -1
  198. package/lib/utils/cli-version-check.js +1 -1
  199. package/lib/utils/cli-version-policy.js +1 -1
  200. package/lib/utils/config.js +1 -1
  201. package/lib/utils/copy-directory.js +1 -1
  202. package/lib/utils/entity-with-id.js +1 -1
  203. package/lib/utils/file-utils.js +1 -1
  204. package/lib/utils/guides-cdn.js +1 -1
  205. package/lib/utils/http-client.js +1 -1
  206. package/lib/utils/is-non-interactive.js +1 -1
  207. package/lib/utils/logger.js +1 -1
  208. package/lib/utils/params.js +1 -1
  209. package/lib/utils/platform.js +1 -1
  210. package/lib/utils/rules-cdn.js +1 -1
  211. package/lib/utils/sleep.js +1 -1
  212. package/lib/utils/template-replacer.js +1 -1
  213. package/lib/utils/update-notice.js +1 -1
  214. package/lib/utils/version.js +1 -1
  215. package/lib/utils/with-active-cookie.js +1 -1
  216. package/lib/utils/write-cli-side-channel.js +1 -1
  217. package/package.json +1 -1
  218. package/lib/commands/skill/index.js +0 -1
@@ -1 +1 @@
1
- const a128_0x2cefdf=a128_0x1f82;(function(_0x13a180,_0x3d5eb7){const _0x3bca2b=a128_0x1f82,_0x2ef44f=_0x13a180();while(!![]){try{const _0x2b2eab=-parseInt(_0x3bca2b(0x128))/0x1+-parseInt(_0x3bca2b(0x129))/0x2*(parseInt(_0x3bca2b(0x11e))/0x3)+parseInt(_0x3bca2b(0x127))/0x4+-parseInt(_0x3bca2b(0x124))/0x5+-parseInt(_0x3bca2b(0x12b))/0x6*(parseInt(_0x3bca2b(0x122))/0x7)+-parseInt(_0x3bca2b(0x125))/0x8+-parseInt(_0x3bca2b(0x11f))/0x9*(-parseInt(_0x3bca2b(0x123))/0xa);if(_0x2b2eab===_0x3d5eb7)break;else _0x2ef44f['push'](_0x2ef44f['shift']());}catch(_0x258d40){_0x2ef44f['push'](_0x2ef44f['shift']());}}}(a128_0x4d5f,0x7945c));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x4cb50d){const _0x49bb43=await buildSchemaPayload();return{'ok':!![],'data':_0x49bb43};}function a128_0x1f82(_0x4ac9da,_0x3e2e57){_0x4ac9da=_0x4ac9da-0x11e;const _0x4d5fad=a128_0x4d5f();let _0x1f82ff=_0x4d5fad[_0x4ac9da];return _0x1f82ff;}export const schemaDefinition={'service':a128_0x2cefdf(0x120),'command':'export','description':a128_0x2cefdf(0x12a),'risk':a128_0x2cefdf(0x126),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a128_0x2cefdf(0x121),'flags':[],'execute':execute};function a128_0x4d5f(){const _0x4cc594=['821778pohwaQ','1159467ZodqTU','22346514avdkXU','schema','json','21wyhSas','10CctuKY','3566785crSUNa','3075952khnMSn','read','3583968WcGeRL','600488CqsmyO','4GJoarl','Export\x20machine-readable\x20command\x20schema\x20(JSON)'];a128_0x4d5f=function(){return _0x4cc594;};return a128_0x4d5f();}
1
+ function a129_0x47e0(){const _0x586653=['schema','20VHqvmT','2tefjCB','381933kobnNc','5GCXOZy','161245iXGdPX','1980996uFWTIa','2755344WyuGlo','json','7LEYFqe','1072808ImaiHX','1749093UgNxZW','export','96PGsqph','read','1210868rNPrFb'];a129_0x47e0=function(){return _0x586653;};return a129_0x47e0();}const a129_0x2c5ccb=a129_0x8380;function a129_0x8380(_0x4f83c2,_0x12396d){_0x4f83c2=_0x4f83c2-0x116;const _0x47e0e5=a129_0x47e0();let _0x83802c=_0x47e0e5[_0x4f83c2];return _0x83802c;}(function(_0x310cc0,_0x29e00c){const _0x2c28ff=a129_0x8380,_0x16967d=_0x310cc0();while(!![]){try{const _0x4cd966=parseInt(_0x2c28ff(0x11e))/0x1+parseInt(_0x2c28ff(0x11b))/0x2*(-parseInt(_0x2c28ff(0x124))/0x3)+parseInt(_0x2c28ff(0x118))/0x4*(parseInt(_0x2c28ff(0x11d))/0x5)+parseInt(_0x2c28ff(0x11f))/0x6*(parseInt(_0x2c28ff(0x122))/0x7)+-parseInt(_0x2c28ff(0x116))/0x8*(-parseInt(_0x2c28ff(0x11c))/0x9)+-parseInt(_0x2c28ff(0x11a))/0xa*(parseInt(_0x2c28ff(0x123))/0xb)+-parseInt(_0x2c28ff(0x120))/0xc;if(_0x4cd966===_0x29e00c)break;else _0x16967d['push'](_0x16967d['shift']());}catch(_0x48bf53){_0x16967d['push'](_0x16967d['shift']());}}}(a129_0x47e0,0x482f9));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x5c4073){const _0xa81244=await buildSchemaPayload();return{'ok':!![],'data':_0xa81244};}export const schemaDefinition={'service':a129_0x2c5ccb(0x119),'command':a129_0x2c5ccb(0x125),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a129_0x2c5ccb(0x117),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a129_0x2c5ccb(0x121),'flags':[],'execute':execute};
@@ -1 +1 @@
1
- const a130_0x73739=a130_0x290c;(function(_0x56903f,_0x224ac1){const _0x4be092=a130_0x290c,_0x2523b1=_0x56903f();while(!![]){try{const _0x2a7b40=-parseInt(_0x4be092(0xb6))/0x1+parseInt(_0x4be092(0x93))/0x2*(parseInt(_0x4be092(0xd0))/0x3)+-parseInt(_0x4be092(0xb4))/0x4+parseInt(_0x4be092(0xae))/0x5*(parseInt(_0x4be092(0xcc))/0x6)+parseInt(_0x4be092(0xb7))/0x7*(parseInt(_0x4be092(0xce))/0x8)+-parseInt(_0x4be092(0x94))/0x9*(parseInt(_0x4be092(0xc7))/0xa)+parseInt(_0x4be092(0xa6))/0xb*(parseInt(_0x4be092(0xa7))/0xc);if(_0x2a7b40===_0x224ac1)break;else _0x2523b1['push'](_0x2523b1['shift']());}catch(_0x1b718f){_0x2523b1['push'](_0x2523b1['shift']());}}}(a130_0x2e8a,0x46994));import{writeFile}from'node:fs/promises';function a130_0x290c(_0x33a630,_0x2c398e){_0x33a630=_0x33a630-0x8e;const _0x2e8a9=a130_0x2e8a();let _0x290c45=_0x2e8a9[_0x33a630];return _0x290c45;}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';function a130_0x2e8a(){const _0x497ab8=['<server-generated-sqlCode>','Created\x20SQL\x20query\x20','isInteger','534uoPpuY','dbName','16WvOXpm','nonInteractive','451155IPCpqM','string','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','适合带动态标签的\x20MyBatis\x20XML\x20SQL','name','number','2TLyQtV','225MSqrhT','mode','sqls','请选择目标数据库:','appCode','validation','请选择本地\x20SQL\x20模式:','sqlRootDir','Target\x20database\x20ID','db-id','请输入\x20SQL\x20名称:','MyBatis\x20XML(mybatisXml)','sqlName','sql','</select>','flagMissing','请输入目标数据库\x20dbId:','dbId','77pzLTzq','879864OCWAoP','__manual__','high-risk-write','toISOString','SQL\x20query\x20display\x20name','catch','str','8660SjZvIT','utf8','new','isFinite','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','普通\x20SQL(sql)','1295820eKitkH','mybatisXml','172146JLVcze','856226bBhVxI','parse','lockFilePath','trim','create','Local\x20SQL\x20file\x20mode','Invalid\x20database\x20selection\x20payload:\x20','length','stringify','POST','/smartapi/custom/saveUserCustomSql','\x20\x20SELECT\x201\x20AS\x20id','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','File\x20already\x20exists:\x20','110860RgxqSa','sqlCode'];a130_0x2e8a=function(){return _0x497ab8;};return a130_0x2e8a();}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(_0x51fdc8){const _0x30d644=a130_0x290c;if(_0x51fdc8===_0x30d644(0xb5))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x30d644(0xc2),_0x30d644(0xa2),'']['join']('\x0a');return['SELECT\x201\x20AS\x20id;','']['join']('\x0a');}export const sqlCreate={'service':a130_0x73739(0xa1),'command':a130_0x73739(0xbb),'description':a130_0x73739(0x8f),'risk':a130_0x73739(0xa9),'flags':[{'name':'name','type':a130_0x73739(0x8e),'description':a130_0x73739(0xab)},{'name':a130_0x73739(0x9d),'type':'number','description':a130_0x73739(0x9c)},{'name':'mode','type':a130_0x73739(0x8e),'enum':['sql','mybatisXml'],'description':a130_0x73739(0xbc)}],async 'validate'(_0x5d398c){const _0x1ceb08=a130_0x73739;if(!_0x5d398c[_0x1ceb08(0xcf)])return;if(!_0x5d398c[_0x1ceb08(0xad)](_0x1ceb08(0x91))['trim']())throw CliErrors[_0x1ceb08(0xa3)](_0x1ceb08(0x91),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x540a8d=resolveProvidedDbId(_0x5d398c);if(typeof _0x540a8d!==_0x1ceb08(0x92)||!Number[_0x1ceb08(0xb1)](_0x540a8d)||_0x540a8d<=0x0)throw CliErrors['flagMissing'](_0x1ceb08(0x9d),_0x1ceb08(0xb2));if(!_0x5d398c[_0x1ceb08(0xad)](_0x1ceb08(0x95))[_0x1ceb08(0xba)]())throw CliErrors[_0x1ceb08(0xa3)](_0x1ceb08(0x95),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x11a83a){const _0x58c34d=a130_0x73739,_0x48eac8=loadSqlProjectConfig(_0x11a83a[_0x58c34d(0x98)]),{sqlName:_0x47b3a9,dbId:_0x375807,dbName:_0x36a42b,mode:_0x4d42a5}=await resolveSqlNewInputs(_0x11a83a),_0x4f7422=buildSqlRelativePath(_0x58c34d(0xc9),_0x47b3a9,_0x36a42b,_0x4d42a5,_0x375807),_0x5836bb=_0x48eac8[_0x58c34d(0x9b)]+'/'+_0x4f7422;return{'method':_0x58c34d(0xc0),'url':_0x58c34d(0xc1),'body':{'appCode':_0x11a83a[_0x58c34d(0x98)],'sqlName':_0x47b3a9,'dbId':_0x375807,'mode':_0x4d42a5,'localPath':_0x5836bb},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x48eac8['sqlRootDir']};},async 'execute'(_0x3bdb35){const _0x43a04c=a130_0x73739,_0x42d5cd=loadSqlProjectConfig(_0x3bdb35['appCode']),{sqlName:_0x2f6414,dbId:_0x563be7,dbName:_0xca2da3,mode:_0x510c27}=await resolveSqlNewInputs(_0x3bdb35),_0x5a1ace=generateSqlTemplate(_0x510c27),_0x1d505b=await createSqlQuery({'appCode':_0x3bdb35[_0x43a04c(0x98)],'sqlName':_0x2f6414,'dbId':_0x563be7,'sqlContent':_0x5a1ace}),_0x321968=ensureRemoteSqlContent(_0x1d505b),_0x539f67=_0xca2da3||await getDbName(_0x3bdb35[_0x43a04c(0x98)],_0x563be7)[_0x43a04c(0xac)](()=>undefined),_0x4731e7=buildSqlRelativePath(_0x1d505b['sqlCode'],_0x1d505b[_0x43a04c(0xa0)],_0x539f67,_0x510c27,_0x563be7),_0x3bc737=_0x42d5cd[_0x43a04c(0x9b)]+'/'+_0x4731e7,_0x1a1855=buildLocalSqlFileContent({'sqlCode':_0x1d505b['sqlCode'],'sqlName':_0x1d505b['sqlName'],'dbId':_0x1d505b[_0x43a04c(0xa5)]},_0x321968,{'dbName':_0x539f67,'mode':_0x510c27,'syncedAt':new Date()[_0x43a04c(0xaa)](),'description':_0x1d505b['description']});if(await fileExists(_0x3bc737))throw CliErrors[_0x43a04c(0x99)](_0x43a04c(0xc6)+_0x3bc737);await ensureParentDirectory(_0x3bc737),await writeFile(_0x3bc737,_0x1a1855,_0x43a04c(0xaf));const _0x570063=await readSqlLockFile(_0x42d5cd[_0x43a04c(0xb9)]),{lockData:_0x119d96,appLock:_0xe83796}=ensureSqlLockScope(_0x570063??createEmptySqlLock(),_0x42d5cd[_0x43a04c(0x98)],_0x42d5cd['sqlRoot'],_0x43a04c(0xb0));return _0xe83796[_0x43a04c(0x96)][_0x1d505b['sqlCode']]={...buildSqlLockEntry(_0x1d505b,_0x321968,computeSqlContentHash(_0x1a1855),{'dbName':_0x539f67}),'path':_0x4731e7,'mode':_0x510c27},_0xe83796['lastSync']=new Date()[_0x43a04c(0xaa)](),await writeSqlLockFile(_0x42d5cd[_0x43a04c(0xb9)],_0x119d96),{'ok':!![],'data':{'id':_0x1d505b['id'],'sqlCode':_0x1d505b[_0x43a04c(0xc8)],'sqlName':_0x1d505b['sqlName'],'dbId':_0x1d505b[_0x43a04c(0xa5)],'path':_0x3bc737,'mode':_0x510c27},'message':_0x43a04c(0xca)+_0x1d505b[_0x43a04c(0xc8)]};}};async function resolveSqlNewInputs(_0x4a9a95){const _0x4318f3=await resolveSqlNameInput(_0x4a9a95),{dbId:_0xa63dbe,dbName:_0x4d04e8}=await resolveDbSelection(_0x4a9a95),_0x476307=await resolveSqlModeInput(_0x4a9a95);return{'sqlName':_0x4318f3,'dbId':_0xa63dbe,'dbName':_0x4d04e8,'mode':_0x476307};}async function resolveSqlNameInput(_0x1229cc){const _0x2f2693=a130_0x73739,_0x5fd8b=_0x1229cc['str'](_0x2f2693(0x91))[_0x2f2693(0xba)]();if(_0x5fd8b)return _0x5fd8b;if(_0x1229cc[_0x2f2693(0xcf)])throw CliErrors[_0x2f2693(0xa3)]('name',_0x2f2693(0xc5));return(await input({'message':_0x2f2693(0x9e),'validate':_0x3560f4=>_0x3560f4[_0x2f2693(0xba)]()?!![]:'SQL\x20名称不能为空'}))[_0x2f2693(0xba)]();}async function resolveDbSelection(_0x8af65b){const _0x46ec53=a130_0x73739,_0x5b570e=resolveProvidedDbId(_0x8af65b);if(typeof _0x5b570e===_0x46ec53(0x92)&&Number[_0x46ec53(0xb1)](_0x5b570e)&&_0x5b570e>0x0)return{'dbId':_0x5b570e,'dbName':await getDbName(_0x8af65b['appCode'],_0x5b570e)[_0x46ec53(0xac)](()=>undefined)};if(_0x8af65b[_0x46ec53(0xcf)])throw CliErrors['flagMissing'](_0x46ec53(0x9d),_0x46ec53(0xb2));const _0x28fe98=await listDatabases(_0x8af65b['appCode'])[_0x46ec53(0xac)](()=>[]);if(_0x28fe98[_0x46ec53(0xbe)]===0x1)return{'dbId':_0x28fe98[0x0][_0x46ec53(0xa5)],'dbName':_0x28fe98[0x0][_0x46ec53(0xcd)]};if(_0x28fe98[_0x46ec53(0xbe)]>0x1){const _0xe83c1b=await select({'message':_0x46ec53(0x97),'choices':[..._0x28fe98['map'](_0x37e563=>({'name':_0x37e563[_0x46ec53(0xcd)]+'\x20('+_0x37e563[_0x46ec53(0xa5)]+')','value':serializeDbSelection(_0x37e563)})),{'name':'✎\x20手动输入\x20dbId','value':_0x46ec53(0xa8)}]});if(_0xe83c1b!=='__manual__')return deserializeDbSelection(_0xe83c1b);}const _0x34fce4=await input({'message':_0x46ec53(0xa4),'validate':_0x153d42=>{const _0x4c1161=_0x46ec53,_0x3c4169=_0x153d42['trim']();if(!_0x3c4169)return'dbId\x20不能为空';const _0x32d537=Number(_0x3c4169);if(!Number[_0x4c1161(0xcb)](_0x32d537)||_0x32d537<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0x34fce4[_0x46ec53(0xba)]())};}async function resolveSqlModeInput(_0x33beac){const _0x249fe7=a130_0x73739,_0x11dac2=_0x33beac['str']('mode')[_0x249fe7(0xba)]();if(_0x11dac2==='sql'||_0x11dac2==='mybatisXml')return _0x11dac2;if(_0x33beac[_0x249fe7(0xcf)])throw CliErrors[_0x249fe7(0xa3)](_0x249fe7(0x95),_0x249fe7(0xc3));return await select({'message':_0x249fe7(0x9a),'choices':[{'name':_0x249fe7(0xb3),'value':_0x249fe7(0xa1),'description':_0x249fe7(0xc4)},{'name':_0x249fe7(0x9f),'value':_0x249fe7(0xb5),'description':_0x249fe7(0x90)}]});}function serializeDbSelection(_0x171d6f){const _0x210f03=a130_0x73739;return JSON[_0x210f03(0xbf)]({'dbId':_0x171d6f[_0x210f03(0xa5)],'dbName':_0x171d6f['dbName']});}function deserializeDbSelection(_0x3cb83a){const _0x129068=a130_0x73739;try{const _0x5e7cfa=JSON[_0x129068(0xb8)](_0x3cb83a);if(typeof _0x5e7cfa['dbId']===_0x129068(0x92)&&Number['isFinite'](_0x5e7cfa[_0x129068(0xa5)]))return{'dbId':_0x5e7cfa[_0x129068(0xa5)],'dbName':_0x5e7cfa['dbName']};}catch{}throw CliErrors['validation'](_0x129068(0xbd)+_0x3cb83a);}function resolveProvidedDbId(_0x4bfe02){const _0x39a6c5=a130_0x73739,_0xb846e2=_0x4bfe02['flag'](_0x39a6c5(0x9d));if(typeof _0xb846e2==='number'&&Number[_0x39a6c5(0xb1)](_0xb846e2))return _0xb846e2;return undefined;}
1
+ const a130_0x371a44=a130_0x2580;(function(_0x2aea06,_0x4e4599){const _0x9d8d9f=a130_0x2580,_0x57b674=_0x2aea06();while(!![]){try{const _0x9330f3=-parseInt(_0x9d8d9f(0x1e2))/0x1+parseInt(_0x9d8d9f(0x1e4))/0x2*(parseInt(_0x9d8d9f(0x1e8))/0x3)+-parseInt(_0x9d8d9f(0x1ed))/0x4*(-parseInt(_0x9d8d9f(0x1fc))/0x5)+parseInt(_0x9d8d9f(0x1c8))/0x6*(parseInt(_0x9d8d9f(0x1ec))/0x7)+parseInt(_0x9d8d9f(0x1f4))/0x8+parseInt(_0x9d8d9f(0x1cc))/0x9*(-parseInt(_0x9d8d9f(0x1f8))/0xa)+parseInt(_0x9d8d9f(0x1f9))/0xb;if(_0x9330f3===_0x4e4599)break;else _0x57b674['push'](_0x57b674['shift']());}catch(_0x1ad25a){_0x57b674['push'](_0x57b674['shift']());}}}(a130_0x3435,0x47cfc));function a130_0x2580(_0x412fc4,_0x2d98dc){_0x412fc4=_0x412fc4-0x1c4;const _0x343558=a130_0x3435();let _0x2580a9=_0x343558[_0x412fc4];return _0x2580a9;}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(_0x50becd){const _0x31e1cb=a130_0x2580;if(_0x50becd===_0x31e1cb(0x1ea))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','\x20\x20SELECT\x201\x20AS\x20id','</select>','']['join']('\x0a');return['SELECT\x201\x20AS\x20id;','']['join']('\x0a');}export const sqlCreate={'service':a130_0x371a44(0x1f3),'command':a130_0x371a44(0x1f2),'description':a130_0x371a44(0x1dd),'risk':a130_0x371a44(0x1cf),'flags':[{'name':a130_0x371a44(0x1d9),'type':'string','description':'SQL\x20query\x20display\x20name'},{'name':a130_0x371a44(0x1df),'type':a130_0x371a44(0x1f0),'description':'Target\x20database\x20ID'},{'name':a130_0x371a44(0x1ce),'type':a130_0x371a44(0x1ef),'enum':[a130_0x371a44(0x1f3),a130_0x371a44(0x1ea)],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x441079){const _0xd55c3e=a130_0x371a44;if(!_0x441079[_0xd55c3e(0x1d0)])return;if(!_0x441079[_0xd55c3e(0x1e1)]('name')['trim']())throw CliErrors['flagMissing'](_0xd55c3e(0x1d9),_0xd55c3e(0x1fb));const _0x307071=resolveProvidedDbId(_0x441079);if(typeof _0x307071!=='number'||!Number['isFinite'](_0x307071)||_0x307071<=0x0)throw CliErrors[_0xd55c3e(0x1d4)](_0xd55c3e(0x1df),_0xd55c3e(0x1f5));if(!_0x441079[_0xd55c3e(0x1e1)](_0xd55c3e(0x1ce))[_0xd55c3e(0x1d2)]())throw CliErrors['flagMissing'](_0xd55c3e(0x1ce),_0xd55c3e(0x201));},async 'dryRun'(_0x34ef62){const _0x94b256=a130_0x371a44,_0x41bfde=loadSqlProjectConfig(_0x34ef62[_0x94b256(0x1cb)]),{sqlName:_0xb96757,dbId:_0x254648,dbName:_0x3769ba,mode:_0x4ef298}=await resolveSqlNewInputs(_0x34ef62),_0x45554e=buildSqlRelativePath('<server-generated-sqlCode>',_0xb96757,_0x3769ba,_0x4ef298,_0x254648),_0x15d041=_0x41bfde['sqlRootDir']+'/'+_0x45554e;return{'method':'POST','url':_0x94b256(0x1fe),'body':{'appCode':_0x34ef62[_0x94b256(0x1cb)],'sqlName':_0xb96757,'dbId':_0x254648,'mode':_0x4ef298,'localPath':_0x15d041},'description':_0x94b256(0x1d5)+_0x41bfde[_0x94b256(0x1e7)]};},async 'execute'(_0xb285f2){const _0x49840a=a130_0x371a44,_0x170fd1=loadSqlProjectConfig(_0xb285f2[_0x49840a(0x1cb)]),{sqlName:_0x280dcd,dbId:_0x592221,dbName:_0x50ce59,mode:_0x19b2db}=await resolveSqlNewInputs(_0xb285f2),_0x1894a9=generateSqlTemplate(_0x19b2db),_0x3c121a=await createSqlQuery({'appCode':_0xb285f2[_0x49840a(0x1cb)],'sqlName':_0x280dcd,'dbId':_0x592221,'sqlContent':_0x1894a9}),_0x18034f=ensureRemoteSqlContent(_0x3c121a),_0x2bbc38=_0x50ce59||await getDbName(_0xb285f2[_0x49840a(0x1cb)],_0x592221)[_0x49840a(0x1cd)](()=>undefined),_0x1f4fa8=buildSqlRelativePath(_0x3c121a[_0x49840a(0x1c9)],_0x3c121a[_0x49840a(0x1e3)],_0x2bbc38,_0x19b2db,_0x592221),_0x446da0=_0x170fd1['sqlRootDir']+'/'+_0x1f4fa8,_0x5e1504=buildLocalSqlFileContent({'sqlCode':_0x3c121a[_0x49840a(0x1c9)],'sqlName':_0x3c121a[_0x49840a(0x1e3)],'dbId':_0x3c121a[_0x49840a(0x1de)]},_0x18034f,{'dbName':_0x2bbc38,'mode':_0x19b2db,'syncedAt':new Date()[_0x49840a(0x1fd)](),'description':_0x3c121a[_0x49840a(0x1ff)]});if(await fileExists(_0x446da0))throw CliErrors[_0x49840a(0x1c7)](_0x49840a(0x1d8)+_0x446da0);await ensureParentDirectory(_0x446da0),await writeFile(_0x446da0,_0x5e1504,_0x49840a(0x1f7));const _0x21c123=await readSqlLockFile(_0x170fd1[_0x49840a(0x1dc)]),{lockData:_0x42596d,appLock:_0x2b9d63}=ensureSqlLockScope(_0x21c123??createEmptySqlLock(),_0x170fd1[_0x49840a(0x1cb)],_0x170fd1['sqlRoot'],_0x49840a(0x1db));return _0x2b9d63[_0x49840a(0x202)][_0x3c121a[_0x49840a(0x1c9)]]={...buildSqlLockEntry(_0x3c121a,_0x18034f,computeSqlContentHash(_0x5e1504),{'dbName':_0x2bbc38}),'path':_0x1f4fa8,'mode':_0x19b2db},_0x2b9d63[_0x49840a(0x1c4)]=new Date()[_0x49840a(0x1fd)](),await writeSqlLockFile(_0x170fd1[_0x49840a(0x1dc)],_0x42596d),{'ok':!![],'data':{'id':_0x3c121a['id'],'sqlCode':_0x3c121a['sqlCode'],'sqlName':_0x3c121a[_0x49840a(0x1e3)],'dbId':_0x3c121a[_0x49840a(0x1de)],'path':_0x446da0,'mode':_0x19b2db},'message':_0x49840a(0x1e6)+_0x3c121a[_0x49840a(0x1c9)]};}};async function resolveSqlNewInputs(_0x375fba){const _0x506251=await resolveSqlNameInput(_0x375fba),{dbId:_0x53cc31,dbName:_0x2c76b7}=await resolveDbSelection(_0x375fba),_0x5c083b=await resolveSqlModeInput(_0x375fba);return{'sqlName':_0x506251,'dbId':_0x53cc31,'dbName':_0x2c76b7,'mode':_0x5c083b};}async function resolveSqlNameInput(_0x16403f){const _0x1165fd=a130_0x371a44,_0x34aebd=_0x16403f[_0x1165fd(0x1e1)](_0x1165fd(0x1d9))[_0x1165fd(0x1d2)]();if(_0x34aebd)return _0x34aebd;if(_0x16403f[_0x1165fd(0x1d0)])throw CliErrors[_0x1165fd(0x1d4)]('name','--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x1165fd(0x1fa),'validate':_0xa75931=>_0xa75931[_0x1165fd(0x1d2)]()?!![]:_0x1165fd(0x1e0)}))[_0x1165fd(0x1d2)]();}async function resolveDbSelection(_0x1e5e3a){const _0x1bcd66=a130_0x371a44,_0x48ab6e=resolveProvidedDbId(_0x1e5e3a);if(typeof _0x48ab6e===_0x1bcd66(0x1f0)&&Number[_0x1bcd66(0x1c5)](_0x48ab6e)&&_0x48ab6e>0x0)return{'dbId':_0x48ab6e,'dbName':await getDbName(_0x1e5e3a[_0x1bcd66(0x1cb)],_0x48ab6e)[_0x1bcd66(0x1cd)](()=>undefined)};if(_0x1e5e3a[_0x1bcd66(0x1d0)])throw CliErrors['flagMissing'](_0x1bcd66(0x1df),_0x1bcd66(0x1f5));const _0x2939f7=await listDatabases(_0x1e5e3a[_0x1bcd66(0x1cb)])[_0x1bcd66(0x1cd)](()=>[]);if(_0x2939f7['length']===0x1)return{'dbId':_0x2939f7[0x0]['dbId'],'dbName':_0x2939f7[0x0]['dbName']};if(_0x2939f7['length']>0x1){const _0x5daf15=await select({'message':_0x1bcd66(0x1da),'choices':[..._0x2939f7[_0x1bcd66(0x1d1)](_0x22861e=>({'name':_0x22861e[_0x1bcd66(0x1eb)]+'\x20('+_0x22861e['dbId']+')','value':serializeDbSelection(_0x22861e)})),{'name':'✎\x20手动输入\x20dbId','value':'__manual__'}]});if(_0x5daf15!==_0x1bcd66(0x1ee))return deserializeDbSelection(_0x5daf15);}const _0x3a17f3=await input({'message':_0x1bcd66(0x1d6),'validate':_0x2eb322=>{const _0xa56c67=_0x1bcd66,_0x2512da=_0x2eb322['trim']();if(!_0x2512da)return'dbId\x20不能为空';const _0x5056ca=Number(_0x2512da);if(!Number['isInteger'](_0x5056ca)||_0x5056ca<=0x0)return _0xa56c67(0x1e9);return!![];}});return{'dbId':Number(_0x3a17f3['trim']())};}function a130_0x3435(){const _0x5dfa20=['description','MyBatis\x20XML(mybatisXml)','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','sqls','lastSync','isFinite','parse','validation','6oZAzEm','sqlCode','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','appCode','162jgklFI','catch','mode','high-risk-write','nonInteractive','map','trim','Invalid\x20database\x20selection\x20payload:\x20','flagMissing','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','请输入目标数据库\x20dbId:','flag','File\x20already\x20exists:\x20','name','请选择目标数据库:','new','lockFilePath','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','dbId','db-id','SQL\x20名称不能为空','str','202046aTheRC','sqlName','2386UcwATF','适合带动态标签的\x20MyBatis\x20XML\x20SQL','Created\x20SQL\x20query\x20','sqlRootDir','489gutRZK','dbId\x20必须为正整数','mybatisXml','dbName','1506953BsWjFW','20EkKHKc','__manual__','string','number','普通\x20SQL(sql)','create','sql','3518248cryHTQ','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','stringify','utf8','298790SZfMYp','1652024hwOMVb','请输入\x20SQL\x20名称:','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','34305QeXDXM','toISOString','/smartapi/custom/saveUserCustomSql'];a130_0x3435=function(){return _0x5dfa20;};return a130_0x3435();}async function resolveSqlModeInput(_0x644cd3){const _0x1fa333=a130_0x371a44,_0x121144=_0x644cd3[_0x1fa333(0x1e1)](_0x1fa333(0x1ce))[_0x1fa333(0x1d2)]();if(_0x121144==='sql'||_0x121144==='mybatisXml')return _0x121144;if(_0x644cd3[_0x1fa333(0x1d0)])throw CliErrors[_0x1fa333(0x1d4)]('mode',_0x1fa333(0x201));return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x1fa333(0x1f1),'value':_0x1fa333(0x1f3),'description':_0x1fa333(0x1ca)},{'name':_0x1fa333(0x200),'value':_0x1fa333(0x1ea),'description':_0x1fa333(0x1e5)}]});}function serializeDbSelection(_0x2c2214){const _0x40b38a=a130_0x371a44;return JSON[_0x40b38a(0x1f6)]({'dbId':_0x2c2214[_0x40b38a(0x1de)],'dbName':_0x2c2214[_0x40b38a(0x1eb)]});}function deserializeDbSelection(_0x20bca0){const _0x27ea8a=a130_0x371a44;try{const _0x4be340=JSON[_0x27ea8a(0x1c6)](_0x20bca0);if(typeof _0x4be340[_0x27ea8a(0x1de)]===_0x27ea8a(0x1f0)&&Number[_0x27ea8a(0x1c5)](_0x4be340[_0x27ea8a(0x1de)]))return{'dbId':_0x4be340[_0x27ea8a(0x1de)],'dbName':_0x4be340['dbName']};}catch{}throw CliErrors[_0x27ea8a(0x1c7)](_0x27ea8a(0x1d3)+_0x20bca0);}function resolveProvidedDbId(_0x56fc24){const _0x247866=a130_0x371a44,_0x3c469f=_0x56fc24[_0x247866(0x1d7)](_0x247866(0x1df));if(typeof _0x3c469f===_0x247866(0x1f0)&&Number[_0x247866(0x1c5)](_0x3c469f))return _0x3c469f;return undefined;}
@@ -1 +1 @@
1
- const a131_0x13bc97=a131_0x2fb9;(function(_0x9909a2,_0x3b70e5){const _0x1e0f66=a131_0x2fb9,_0x4b457d=_0x9909a2();while(!![]){try{const _0x4be0f5=parseInt(_0x1e0f66(0xdd))/0x1*(-parseInt(_0x1e0f66(0xe3))/0x2)+-parseInt(_0x1e0f66(0xcc))/0x3*(parseInt(_0x1e0f66(0xec))/0x4)+-parseInt(_0x1e0f66(0xcf))/0x5*(-parseInt(_0x1e0f66(0xd2))/0x6)+-parseInt(_0x1e0f66(0xc9))/0x7*(-parseInt(_0x1e0f66(0xde))/0x8)+-parseInt(_0x1e0f66(0xe4))/0x9*(-parseInt(_0x1e0f66(0xda))/0xa)+parseInt(_0x1e0f66(0xcb))/0xb*(parseInt(_0x1e0f66(0xca))/0xc)+parseInt(_0x1e0f66(0xe5))/0xd*(-parseInt(_0x1e0f66(0xe7))/0xe);if(_0x4be0f5===_0x3b70e5)break;else _0x4b457d['push'](_0x4b457d['shift']());}catch(_0x253731){_0x4b457d['push'](_0x4b457d['shift']());}}}(a131_0x273e,0xcc2f6));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a131_0x273e(){const _0x4ea78d=['1160685nJIcTu','91rHjdDo','trashedTo','3482962BERGKe','lockFilePath','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','toISOString','remoteId','76qoWUTj','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','4417gKuIwe','804SVxIzq','159511TywlJv','147084ZqvrCj','sql','length','480ZKfsNJ','sqlRootDir','high-risk-write','89100KKTrru','projectRoot','validation','sqlcode','filter','/smartapi/custom/deleteUserCustomSql','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','trashDir','110FfiYiN','sqls','fromEntries','269jCXbbz','8952mJszrF','entries','delete','appCode','Deleted\x20','7528budecN'];a131_0x273e=function(){return _0x4ea78d;};return a131_0x273e();}function a131_0x2fb9(_0xd2ad94,_0xceb012){_0xd2ad94=_0xd2ad94-0xc8;const _0x273e54=a131_0x273e();let _0x2fb95b=_0x273e54[_0xd2ad94];return _0x2fb95b;}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a131_0x13bc97(0xcd),'command':a131_0x13bc97(0xe0),'description':'Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','risk':a131_0x13bc97(0xd1),'flags':[SQLCODE_FLAG],async 'validate'(_0x48b82c){const _0x5d9ce5=a131_0x13bc97,_0x8acce8=loadSqlProjectConfig(_0x48b82c['appCode']),_0x546aad=await readSqlLockFile(_0x8acce8[_0x5d9ce5(0xe8)]);if(!_0x546aad)throw CliErrors[_0x5d9ce5(0xd4)](_0x5d9ce5(0xc8));},async 'dryRun'(_0x1f0e42){const _0x3df9f3=a131_0x13bc97,_0x44b4b8=loadSqlProjectConfig(_0x1f0e42[_0x3df9f3(0xe1)]),_0x4e9c1c=await readSqlLockFile(_0x44b4b8[_0x3df9f3(0xe8)]);if(!_0x4e9c1c)throw CliErrors[_0x3df9f3(0xd4)](_0x3df9f3(0xc8));const {appLock:_0x2bd8d9}=ensureSqlLockScope(_0x4e9c1c,_0x1f0e42[_0x3df9f3(0xe1)],_0x44b4b8['sqlRoot'],_0x3df9f3(0xe0)),_0x1cde0d=_0x1f0e42['str'](_0x3df9f3(0xd5)),_0x27796b=_0x2bd8d9[_0x3df9f3(0xdb)][_0x1cde0d];if(!_0x27796b)throw CliErrors['validation'](_0x3df9f3(0xd8)+_0x1cde0d+'\x22.');return{'method':'POST','url':_0x3df9f3(0xd7),'body':{'sqlCode':_0x1cde0d,'id':_0x27796b['remoteId'],'localPath':resolveLocalSqlFilePath(_0x44b4b8,_0x1cde0d,_0x27796b)},'description':'Would\x20delete\x20SQL\x20'+_0x1cde0d+_0x3df9f3(0xe9)+_0x44b4b8[_0x3df9f3(0xd9)]};},async 'execute'(_0x178855){const _0x391561=a131_0x13bc97,_0x245c61=loadSqlProjectConfig(_0x178855[_0x391561(0xe1)]),_0x438ca5=await readSqlLockFile(_0x245c61[_0x391561(0xe8)]);if(!_0x438ca5)throw CliErrors['validation']('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x2b8515,appLock:_0x18b7a6}=ensureSqlLockScope(_0x438ca5,_0x178855[_0x391561(0xe1)],_0x245c61['sqlRoot'],_0x391561(0xe0)),_0x535faf=_0x178855['str'](_0x391561(0xd5)),_0x45ba7b=_0x18b7a6['sqls'][_0x535faf];if(!_0x45ba7b)throw CliErrors[_0x391561(0xd4)](_0x391561(0xd8)+_0x535faf+'\x22.');await deleteSqlQuery({'id':_0x45ba7b['remoteId'],'sqlCode':_0x535faf}),_0x18b7a6[_0x391561(0xdb)]=Object[_0x391561(0xdc)](Object[_0x391561(0xdf)](_0x18b7a6[_0x391561(0xdb)])[_0x391561(0xd6)](([_0x35b28c])=>_0x35b28c!==_0x535faf)),_0x18b7a6['lastSync']=new Date()[_0x391561(0xea)](),await writeSqlLockFile(_0x245c61[_0x391561(0xe8)],_0x2b8515);const _0xe23551=resolveLocalSqlFilePath(_0x245c61,_0x535faf,_0x45ba7b);let _0xbbf735;await fileExists(_0xe23551)&&(_0xbbf735=await moveToTrash(_0x245c61[_0x391561(0xd3)],_0x245c61[_0x391561(0xd9)],_0xe23551),await cleanupEmptyDirectories(dirname(_0xe23551),_0x245c61[_0x391561(0xd0)]));const _0x4c631f={'deleted':_0x535faf,'remoteId':_0x45ba7b[_0x391561(0xeb)]};if(_0xbbf735)_0x4c631f[_0x391561(0xe6)]=_0xbbf735;return{'ok':!![],'data':_0x4c631f,'message':_0x391561(0xe2)+_0x535faf+(_0xbbf735?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x52024f,_0x24bd4c,_0xdec060){const _0x1b9062=a131_0x13bc97,_0x348382=new Date()[_0x1b9062(0xea)]()['replace'](/[:.]/g,'-'),_0x285357=relative(_0x52024f,_0xdec060),_0x3be802=join(_0x24bd4c,_0x348382,_0x285357);return await mkdir(dirname(_0x3be802),{'recursive':!![]}),await rename(_0xdec060,_0x3be802),_0x3be802;}async function cleanupEmptyDirectories(_0xc9fcbc,_0x2e4c3e){const _0x3c7d88=a131_0x13bc97;let _0x4e9641=resolve(_0xc9fcbc);const _0x5e52c7=resolve(_0x2e4c3e);while(_0x4e9641['startsWith'](''+_0x5e52c7+sep)||_0x4e9641===_0x5e52c7){if(_0x4e9641===_0x5e52c7)return;try{const _0x4a8d89=await readdir(_0x4e9641);if(_0x4a8d89[_0x3c7d88(0xce)]>0x0)return;await rmdir(_0x4e9641);}catch{return;}_0x4e9641=dirname(_0x4e9641);}}
1
+ const a131_0x1a026d=a131_0xba61;(function(_0x263978,_0x5ccafd){const _0x317e44=a131_0xba61,_0x4f411c=_0x263978();while(!![]){try{const _0x3b0917=parseInt(_0x317e44(0xdc))/0x1+-parseInt(_0x317e44(0xd9))/0x2+-parseInt(_0x317e44(0xcc))/0x3+-parseInt(_0x317e44(0xe1))/0x4+parseInt(_0x317e44(0xd3))/0x5*(-parseInt(_0x317e44(0xc5))/0x6)+parseInt(_0x317e44(0xd7))/0x7*(-parseInt(_0x317e44(0xcb))/0x8)+parseInt(_0x317e44(0xda))/0x9;if(_0x3b0917===_0x5ccafd)break;else _0x4f411c['push'](_0x4f411c['shift']());}catch(_0xc3af95){_0x4f411c['push'](_0x4f411c['shift']());}}}(a131_0x593b,0x882d8));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';function a131_0xba61(_0x37008e,_0x17b9cc){_0x37008e=_0x37008e-0xc4;const _0x593b57=a131_0x593b();let _0xba61f0=_0x593b57[_0x37008e];return _0xba61f0;}import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';function a131_0x593b(){const _0xe63632=['POST','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','lockFilePath','1534520dVLCpZ','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','replace','entries','sqlcode','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','delete','toISOString','6QRVHiF','trashDir','remoteId','Would\x20delete\x20SQL\x20','sqls','\x20(local\x20file\x20moved\x20to\x20trash)','56PMsiBl','441027hzcXKS','sqlRoot','startsWith','appCode','lastSync','length','validation','1074415mpgUua','sql','fromEntries','trashedTo','631491wuaElW','str','1686066gXTPgj','20393901KixHiT','filter','511841ANjavz','/smartapi/custom/deleteUserCustomSql'];a131_0x593b=function(){return _0xe63632;};return a131_0x593b();}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':a131_0x1a026d(0xd4),'command':a131_0x1a026d(0xe7),'description':a131_0x1a026d(0xe2),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x40f002){const _0x5e7aac=a131_0x1a026d,_0x56b4ad=loadSqlProjectConfig(_0x40f002[_0x5e7aac(0xcf)]),_0x3ec5d3=await readSqlLockFile(_0x56b4ad['lockFilePath']);if(!_0x3ec5d3)throw CliErrors[_0x5e7aac(0xd2)](_0x5e7aac(0xe6));},async 'dryRun'(_0xc98ec7){const _0x5e572d=a131_0x1a026d,_0x5d08ef=loadSqlProjectConfig(_0xc98ec7['appCode']),_0x1d02f5=await readSqlLockFile(_0x5d08ef[_0x5e572d(0xe0)]);if(!_0x1d02f5)throw CliErrors[_0x5e572d(0xd2)](_0x5e572d(0xe6));const {appLock:_0x19f8c0}=ensureSqlLockScope(_0x1d02f5,_0xc98ec7['appCode'],_0x5d08ef['sqlRoot'],_0x5e572d(0xe7)),_0x582191=_0xc98ec7[_0x5e572d(0xd8)](_0x5e572d(0xe5)),_0x44aa76=_0x19f8c0['sqls'][_0x582191];if(!_0x44aa76)throw CliErrors[_0x5e572d(0xd2)](_0x5e572d(0xdf)+_0x582191+'\x22.');return{'method':_0x5e572d(0xde),'url':_0x5e572d(0xdd),'body':{'sqlCode':_0x582191,'id':_0x44aa76[_0x5e572d(0xc7)],'localPath':resolveLocalSqlFilePath(_0x5d08ef,_0x582191,_0x44aa76)},'description':_0x5e572d(0xc8)+_0x582191+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0x5d08ef[_0x5e572d(0xc6)]};},async 'execute'(_0x2321a3){const _0x5d66e7=a131_0x1a026d,_0x24369f=loadSqlProjectConfig(_0x2321a3[_0x5d66e7(0xcf)]),_0x274917=await readSqlLockFile(_0x24369f[_0x5d66e7(0xe0)]);if(!_0x274917)throw CliErrors[_0x5d66e7(0xd2)]('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x379dda,appLock:_0x4cc77a}=ensureSqlLockScope(_0x274917,_0x2321a3[_0x5d66e7(0xcf)],_0x24369f[_0x5d66e7(0xcd)],_0x5d66e7(0xe7)),_0x41c7eb=_0x2321a3[_0x5d66e7(0xd8)]('sqlcode'),_0x477a23=_0x4cc77a[_0x5d66e7(0xc9)][_0x41c7eb];if(!_0x477a23)throw CliErrors[_0x5d66e7(0xd2)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x41c7eb+'\x22.');await deleteSqlQuery({'id':_0x477a23[_0x5d66e7(0xc7)],'sqlCode':_0x41c7eb}),_0x4cc77a[_0x5d66e7(0xc9)]=Object[_0x5d66e7(0xd5)](Object[_0x5d66e7(0xe4)](_0x4cc77a[_0x5d66e7(0xc9)])[_0x5d66e7(0xdb)](([_0x250f59])=>_0x250f59!==_0x41c7eb)),_0x4cc77a[_0x5d66e7(0xd0)]=new Date()[_0x5d66e7(0xc4)](),await writeSqlLockFile(_0x24369f[_0x5d66e7(0xe0)],_0x379dda);const _0x4701eb=resolveLocalSqlFilePath(_0x24369f,_0x41c7eb,_0x477a23);let _0xb216fd;await fileExists(_0x4701eb)&&(_0xb216fd=await moveToTrash(_0x24369f['projectRoot'],_0x24369f[_0x5d66e7(0xc6)],_0x4701eb),await cleanupEmptyDirectories(dirname(_0x4701eb),_0x24369f['sqlRootDir']));const _0x3f8a0c={'deleted':_0x41c7eb,'remoteId':_0x477a23[_0x5d66e7(0xc7)]};if(_0xb216fd)_0x3f8a0c[_0x5d66e7(0xd6)]=_0xb216fd;return{'ok':!![],'data':_0x3f8a0c,'message':'Deleted\x20'+_0x41c7eb+(_0xb216fd?_0x5d66e7(0xca):'')};}};async function moveToTrash(_0x1eb2d9,_0x48ae59,_0xee8f0){const _0x5d5c59=a131_0x1a026d,_0x2f9326=new Date()[_0x5d5c59(0xc4)]()[_0x5d5c59(0xe3)](/[:.]/g,'-'),_0x404dab=relative(_0x1eb2d9,_0xee8f0),_0x3a4bd1=join(_0x48ae59,_0x2f9326,_0x404dab);return await mkdir(dirname(_0x3a4bd1),{'recursive':!![]}),await rename(_0xee8f0,_0x3a4bd1),_0x3a4bd1;}async function cleanupEmptyDirectories(_0x4fb892,_0x5e6a97){const _0x2f1f25=a131_0x1a026d;let _0x33b1a1=resolve(_0x4fb892);const _0x57a3c4=resolve(_0x5e6a97);while(_0x33b1a1[_0x2f1f25(0xce)](''+_0x57a3c4+sep)||_0x33b1a1===_0x57a3c4){if(_0x33b1a1===_0x57a3c4)return;try{const _0x3f3d6b=await readdir(_0x33b1a1);if(_0x3f3d6b[_0x2f1f25(0xd1)]>0x0)return;await rmdir(_0x33b1a1);}catch{return;}_0x33b1a1=dirname(_0x33b1a1);}}
@@ -1 +1 @@
1
- const a132_0x56406e=a132_0x2c3d;(function(_0x383a59,_0x2a3047){const _0x426a82=a132_0x2c3d,_0x19c6b6=_0x383a59();while(!![]){try{const _0xd7867e=-parseInt(_0x426a82(0x111))/0x1*(parseInt(_0x426a82(0x103))/0x2)+-parseInt(_0x426a82(0x108))/0x3*(-parseInt(_0x426a82(0x11a))/0x4)+parseInt(_0x426a82(0x11b))/0x5+-parseInt(_0x426a82(0x10f))/0x6+parseInt(_0x426a82(0x107))/0x7+parseInt(_0x426a82(0x118))/0x8*(-parseInt(_0x426a82(0x117))/0x9)+parseInt(_0x426a82(0x114))/0xa*(parseInt(_0x426a82(0x110))/0xb);if(_0xd7867e===_0x2a3047)break;else _0x19c6b6['push'](_0x19c6b6['shift']());}catch(_0x32b3ee){_0x19c6b6['push'](_0x19c6b6['shift']());}}}(a132_0xf7d3,0xe0b5e));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a132_0x2c3d(_0x1384a1,_0x37f60d){_0x1384a1=_0x1384a1-0x103;const _0xf7d3b9=a132_0xf7d3();let _0x2c3d27=_0xf7d3b9[_0x1384a1];return _0x2c3d27;}function a132_0xf7d3(){const _0x92503d=['1918132zMKnCR','sqlContent','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','bool','10047282QlxXaM','498ADtfeP','dbId','verbose','sqlCode','sqlName','detail','boolean','3709506WOZOnh','11hjFnEu','1TtjzOU','description','appCode','6952350qQUvvX','sqlcode','read','5190228VbYNaL','8pINrmi','str','6316zIIfGW','3408740VeTCXm'];a132_0xf7d3=function(){return _0x92503d;};return a132_0xf7d3();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':a132_0x56406e(0x10d),'description':a132_0x56406e(0x105),'risk':a132_0x56406e(0x116),'flags':[SQLCODE_FLAG,{'name':a132_0x56406e(0x10a),'type':a132_0x56406e(0x10e),'description':'Return\x20full\x20raw\x20SQL\x20query\x20object'}],async 'execute'(_0x4fb00d){const _0x509e4e=a132_0x56406e,_0xbf432c=await getSqlQueryInfo(_0x4fb00d[_0x509e4e(0x113)],_0x4fb00d[_0x509e4e(0x119)](_0x509e4e(0x115))),_0x2dc1d5=_0x4fb00d[_0x509e4e(0x106)](_0x509e4e(0x10a));if(_0x2dc1d5)return{'ok':!![],'data':_0xbf432c};const _0x17d65f=_0xbf432c[_0x509e4e(0x109)]?await getDbName(_0x4fb00d[_0x509e4e(0x113)],_0xbf432c['dbId']):undefined;return{'ok':!![],'data':{'sqlCode':_0xbf432c[_0x509e4e(0x10b)],'sqlName':_0xbf432c[_0x509e4e(0x10c)],'db':_0x17d65f?_0x17d65f+'\x20('+_0xbf432c[_0x509e4e(0x109)]+')':_0xbf432c[_0x509e4e(0x109)]??'','description':_0xbf432c[_0x509e4e(0x112)]??'','sqlContent':_0xbf432c[_0x509e4e(0x104)]??''}};}};
1
+ const a132_0x22d0e1=a132_0x2ed9;function a132_0x2ed9(_0x3a5548,_0x1b7b55){_0x3a5548=_0x3a5548-0xc7;const _0x43be1f=a132_0x43be();let _0x2ed996=_0x43be1f[_0x3a5548];return _0x2ed996;}(function(_0x593126,_0x1dc95d){const _0x875487=a132_0x2ed9,_0x1d05e9=_0x593126();while(!![]){try{const _0x541fac=-parseInt(_0x875487(0xc8))/0x1+parseInt(_0x875487(0xd7))/0x2+parseInt(_0x875487(0xd2))/0x3*(-parseInt(_0x875487(0xdd))/0x4)+-parseInt(_0x875487(0xd0))/0x5*(-parseInt(_0x875487(0xdc))/0x6)+parseInt(_0x875487(0xdf))/0x7+parseInt(_0x875487(0xd3))/0x8+parseInt(_0x875487(0xc7))/0x9*(-parseInt(_0x875487(0xcc))/0xa);if(_0x541fac===_0x1dc95d)break;else _0x1d05e9['push'](_0x1d05e9['shift']());}catch(_0x27dc2b){_0x1d05e9['push'](_0x1d05e9['shift']());}}}(a132_0x43be,0x42b1e));import{getSqlQueryInfo}from'../../core/api-client.js';function a132_0x43be(){const _0x182be9=['verbose','bool','36535RAKWev','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','51AEOofX','2618792oxAHkB','sqlName','appCode','read','769116MTTxlN','sqlcode','str','sqlContent','sql','402rJQjWO','35172WhQDVC','dbId','615328XYmtRU','144QfuOmd','469629EttEOZ','detail','Return\x20full\x20raw\x20SQL\x20query\x20object','sqlCode','248180qnCfMS','boolean'];a132_0x43be=function(){return _0x182be9;};return a132_0x43be();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a132_0x22d0e1(0xdb),'command':a132_0x22d0e1(0xc9),'description':a132_0x22d0e1(0xd1),'risk':a132_0x22d0e1(0xd6),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a132_0x22d0e1(0xcd),'description':a132_0x22d0e1(0xca)}],async 'execute'(_0x4a86a9){const _0x199b39=a132_0x22d0e1,_0x4976e3=await getSqlQueryInfo(_0x4a86a9['appCode'],_0x4a86a9[_0x199b39(0xd9)](_0x199b39(0xd8))),_0x33a7df=_0x4a86a9[_0x199b39(0xcf)](_0x199b39(0xce));if(_0x33a7df)return{'ok':!![],'data':_0x4976e3};const _0x10685c=_0x4976e3['dbId']?await getDbName(_0x4a86a9[_0x199b39(0xd5)],_0x4976e3['dbId']):undefined;return{'ok':!![],'data':{'sqlCode':_0x4976e3[_0x199b39(0xcb)],'sqlName':_0x4976e3[_0x199b39(0xd4)],'db':_0x10685c?_0x10685c+'\x20('+_0x4976e3[_0x199b39(0xde)]+')':_0x4976e3['dbId']??'','description':_0x4976e3['description']??'','sqlContent':_0x4976e3[_0x199b39(0xda)]??''}};}};
@@ -1 +1 @@
1
- const a133_0x257a50=a133_0x5050;(function(_0x3035e5,_0x221ed3){const _0x3944ad=a133_0x5050,_0x58bc80=_0x3035e5();while(!![]){try{const _0x142fdb=parseInt(_0x3944ad(0x107))/0x1*(parseInt(_0x3944ad(0x111))/0x2)+parseInt(_0x3944ad(0x113))/0x3+parseInt(_0x3944ad(0x115))/0x4*(-parseInt(_0x3944ad(0x103))/0x5)+-parseInt(_0x3944ad(0x10b))/0x6+-parseInt(_0x3944ad(0x112))/0x7+-parseInt(_0x3944ad(0x109))/0x8+parseInt(_0x3944ad(0x10f))/0x9;if(_0x142fdb===_0x221ed3)break;else _0x58bc80['push'](_0x58bc80['shift']());}catch(_0x18bfa8){_0x58bc80['push'](_0x58bc80['shift']());}}}(a133_0x47a8,0x959d0));function a133_0x5050(_0x5ac7ff,_0x2d5b91){_0x5ac7ff=_0x5ac7ff-0xfe;const _0x47a80d=a133_0x47a8();let _0x50506f=_0x47a80d[_0x5ac7ff];return _0x50506f;}function a133_0x47a8(){const _0x3e7dc5=['read','Returned\x20','sql','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','isArray','9155YbTsBH','str','execError','execSuccess','6436LBvWea','params','8478352PAToxB','exec','4119246DpnSYq','now','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','length','20261718WFnqkz','sqlcode','362axadOg','731094PyFVgx','284121IOXNmD','SQL\x20execution\x20failed','2288duSqwr'];a133_0x47a8=function(){return _0x3e7dc5;};return a133_0x47a8();}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':a133_0x257a50(0x100),'command':a133_0x257a50(0x10a),'description':a133_0x257a50(0x10d),'risk':a133_0x257a50(0xfe),'flags':[SQLCODE_FLAG,{'name':'params','type':'string','description':a133_0x257a50(0x101)}],async 'execute'(_0x3a2e88){const _0x29331b=a133_0x257a50,_0x11efab=parseJsonParams(_0x3a2e88[_0x29331b(0x104)](_0x29331b(0x108))),_0x2f004b=Date['now'](),_0x492c5f=await executeSql(_0x3a2e88['appCode'],_0x3a2e88[_0x29331b(0x104)](_0x29331b(0x110)),_0x11efab),_0x26a394=Date[_0x29331b(0x10c)]()-_0x2f004b,_0x39d9ea=_0x492c5f?.['execResult']??_0x492c5f,_0x5b3004=_0x492c5f?.[_0x29331b(0x106)]??!![];if(!_0x5b3004)return{'ok':![],'data':{'error':_0x492c5f?.[_0x29331b(0x105)]||_0x29331b(0x114),'elapsed':_0x26a394},'message':_0x29331b(0x114)};const _0x4ec871=Array[_0x29331b(0x102)](_0x39d9ea)?_0x39d9ea:[];return{'ok':!![],'data':{'rows':_0x4ec871,'rowCount':_0x4ec871['length'],'elapsed':_0x26a394},'message':_0x29331b(0xff)+_0x4ec871[_0x29331b(0x10e)]+'\x20row(s)\x20in\x20'+_0x26a394+'ms'};}};
1
+ const a133_0x5b7fae=a133_0xaed9;(function(_0x4bd2ce,_0x356790){const _0x5828fc=a133_0xaed9,_0x5acd71=_0x4bd2ce();while(!![]){try{const _0x40ceef=-parseInt(_0x5828fc(0x7f))/0x1+-parseInt(_0x5828fc(0x8b))/0x2*(-parseInt(_0x5828fc(0x88))/0x3)+parseInt(_0x5828fc(0x87))/0x4+parseInt(_0x5828fc(0x8e))/0x5+-parseInt(_0x5828fc(0x8a))/0x6+parseInt(_0x5828fc(0x80))/0x7+parseInt(_0x5828fc(0x85))/0x8*(parseInt(_0x5828fc(0x7c))/0x9);if(_0x40ceef===_0x356790)break;else _0x5acd71['push'](_0x5acd71['shift']());}catch(_0x570a89){_0x5acd71['push'](_0x5acd71['shift']());}}}(a133_0x536f,0x4f6a3));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a133_0x536f(){const _0x152b22=['now','16KOhoNy','sqlcode','270908aGHhMz','105MkdvBY','sql','3623034dIiegN','7258rTwgxi','SQL\x20execution\x20failed','execError','2656980RfJDhl','length','appCode','\x20row(s)\x20in\x20','1402425xwGWru','str','params','599796YkEMVP','3437910BsuSck','string','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','execSuccess'];a133_0x536f=function(){return _0x152b22;};return a133_0x536f();}function a133_0xaed9(_0x40f4e1,_0x4b0feb){_0x40f4e1=_0x40f4e1-0x7c;const _0x536f9e=a133_0x536f();let _0xaed9d5=_0x536f9e[_0x40f4e1];return _0xaed9d5;}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a133_0x5b7fae(0x89),'command':'exec','description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':'params','type':a133_0x5b7fae(0x81),'description':a133_0x5b7fae(0x82)}],async 'execute'(_0x4ae3fe){const _0x1e88d6=a133_0x5b7fae,_0x20a7b1=parseJsonParams(_0x4ae3fe['str'](_0x1e88d6(0x7e))),_0x2ab0a0=Date['now'](),_0x1c2b50=await executeSql(_0x4ae3fe[_0x1e88d6(0x90)],_0x4ae3fe[_0x1e88d6(0x7d)](_0x1e88d6(0x86)),_0x20a7b1),_0x536877=Date[_0x1e88d6(0x84)]()-_0x2ab0a0,_0x4b705=_0x1c2b50?.['execResult']??_0x1c2b50,_0x3d5382=_0x1c2b50?.[_0x1e88d6(0x83)]??!![];if(!_0x3d5382)return{'ok':![],'data':{'error':_0x1c2b50?.[_0x1e88d6(0x8d)]||'SQL\x20execution\x20failed','elapsed':_0x536877},'message':_0x1e88d6(0x8c)};const _0x3a180d=Array['isArray'](_0x4b705)?_0x4b705:[];return{'ok':!![],'data':{'rows':_0x3a180d,'rowCount':_0x3a180d[_0x1e88d6(0x8f)],'elapsed':_0x536877},'message':'Returned\x20'+_0x3a180d['length']+_0x1e88d6(0x91)+_0x536877+'ms'};}};
@@ -1 +1 @@
1
- (function(_0xdf1e0b,_0x32ba21){const _0x2066c4=a134_0x3237,_0x570364=_0xdf1e0b();while(!![]){try{const _0x164129=-parseInt(_0x2066c4(0x10d))/0x1*(parseInt(_0x2066c4(0x108))/0x2)+-parseInt(_0x2066c4(0x106))/0x3*(parseInt(_0x2066c4(0x107))/0x4)+parseInt(_0x2066c4(0x10c))/0x5*(-parseInt(_0x2066c4(0x105))/0x6)+-parseInt(_0x2066c4(0x104))/0x7+parseInt(_0x2066c4(0x10a))/0x8*(parseInt(_0x2066c4(0x10b))/0x9)+parseInt(_0x2066c4(0x109))/0xa+parseInt(_0x2066c4(0x10e))/0xb;if(_0x164129===_0x32ba21)break;else _0x570364['push'](_0x570364['shift']());}catch(_0x4a9242){_0x570364['push'](_0x570364['shift']());}}}(a134_0x4ac0,0x4c758));import{sqlList}from'../../commands/sql/list.js';function a134_0x3237(_0x15cea6,_0x58af31){_0x15cea6=_0x15cea6-0x104;const _0x4ac0d9=a134_0x4ac0();let _0x32373d=_0x4ac0d9[_0x15cea6];return _0x32373d;}import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';function a134_0x4ac0(){const _0x2f8ab3=['1395624oswNiI','41361rdxwax','104ptvTGb','298rRhjjC','1933730fCkUAL','6520NymymO','4005uIdEEZ','5UCYfUS','739lAuNnD','5086026JCqAtS','28427xQBuSk'];a134_0x4ac0=function(){return _0x2f8ab3;};return a134_0x4ac0();}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';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x15975a,_0x2ccd36){const _0x58ce89=a134_0xb5f5,_0x3aa22e=_0x15975a();while(!![]){try{const _0x194b14=parseInt(_0x58ce89(0x117))/0x1+parseInt(_0x58ce89(0x11c))/0x2*(parseInt(_0x58ce89(0x116))/0x3)+-parseInt(_0x58ce89(0x114))/0x4+-parseInt(_0x58ce89(0x118))/0x5+-parseInt(_0x58ce89(0x119))/0x6*(-parseInt(_0x58ce89(0x11d))/0x7)+parseInt(_0x58ce89(0x11a))/0x8+parseInt(_0x58ce89(0x115))/0x9*(-parseInt(_0x58ce89(0x11b))/0xa);if(_0x194b14===_0x2ccd36)break;else _0x3aa22e['push'](_0x3aa22e['shift']());}catch(_0x2d4a1b){_0x3aa22e['push'](_0x3aa22e['shift']());}}}(a134_0x33e2,0xf4148));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';function a134_0x33e2(){const _0xdfc915=['1905792ZUlFaJ','31495599TTLERQ','39JBqcoM','1115045PzYSTj','2007835AEHpRO','486PeGePC','14051080efLtiM','10gQBbPA','146266xJtpRL','134393BpiRKz'];a134_0x33e2=function(){return _0xdfc915;};return a134_0x33e2();}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';function a134_0xb5f5(_0x2f90bb,_0x30b4af){_0x2f90bb=_0x2f90bb-0x114;const _0x33e233=a134_0x33e2();let _0xb5f57c=_0x33e233[_0x2f90bb];return _0xb5f57c;}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 a135_0x22e7b1=a135_0xd60f;function a135_0x27e9(){const _0x261820=['length','Found\x20','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','all','List\x20custom\x20SQL\x20queries','name','pagesize','1196888ynRZiB','1012370mkKvuZ','paging','4829032EANsQE','\x20SQL\x20queries\x20(total:\x20','dbId','string','num','appCode','map','Filter\x20by\x20SQL\x20name','105632qgWTky','2752692xBaEWZ','27OipEIa','195727aQgDCp','Page\x20size','verbose','39gKNgnB','bool','number','No\x20custom\x20SQL\x20queries\x20found.','boolean','page','sql','tableData','94458chrAaS','sqlCode','Page\x20number','str','list'];a135_0x27e9=function(){return _0x261820;};return a135_0x27e9();}(function(_0x68c5c5,_0x1a9dd8){const _0x4fb87e=a135_0xd60f,_0xe8898=_0x68c5c5();while(!![]){try{const _0x4392ae=parseInt(_0x4fb87e(0x15c))/0x1+parseInt(_0x4fb87e(0x16a))/0x2*(-parseInt(_0x4fb87e(0x162))/0x3)+-parseInt(_0x4fb87e(0x176))/0x4+-parseInt(_0x4fb87e(0x177))/0x5+-parseInt(_0x4fb87e(0x15d))/0x6+-parseInt(_0x4fb87e(0x15f))/0x7+parseInt(_0x4fb87e(0x179))/0x8*(parseInt(_0x4fb87e(0x15e))/0x9);if(_0x4392ae===_0x1a9dd8)break;else _0xe8898['push'](_0xe8898['shift']());}catch(_0x2292d9){_0xe8898['push'](_0xe8898['shift']());}}}(a135_0x27e9,0x4caf7));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a135_0xd60f(_0x4c2ee3,_0x34326d){_0x4c2ee3=_0x4c2ee3-0x15a;const _0x27e9d=a135_0x27e9();let _0xd60fdb=_0x27e9d[_0x4c2ee3];return _0xd60fdb;}export const sqlList={'service':a135_0x22e7b1(0x168),'command':a135_0x22e7b1(0x16e),'description':a135_0x22e7b1(0x173),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a135_0x22e7b1(0x17c),'description':a135_0x22e7b1(0x15b)},{'name':a135_0x22e7b1(0x167),'type':a135_0x22e7b1(0x164),'description':a135_0x22e7b1(0x16c),'default':0x1},{'name':a135_0x22e7b1(0x175),'type':a135_0x22e7b1(0x164),'description':a135_0x22e7b1(0x160)},{'name':a135_0x22e7b1(0x161),'type':a135_0x22e7b1(0x166),'description':a135_0x22e7b1(0x171)}],async 'execute'(_0x6918e8){const _0x4dac52=a135_0x22e7b1,_0x53e533=await listSqlQueries(_0x6918e8['appCode'],{'sqlCode':_0x6918e8[_0x4dac52(0x16d)]('sqlcode')||undefined,'sqlName':_0x6918e8[_0x4dac52(0x16d)](_0x4dac52(0x174))||undefined,'currentPage':_0x6918e8[_0x4dac52(0x17d)]('page'),'pageSize':_0x6918e8[_0x4dac52(0x17d)](_0x4dac52(0x175),0x32)}),_0x75dc03=_0x6918e8[_0x4dac52(0x163)](_0x4dac52(0x161)),_0x2ade09=_0x53e533[_0x4dac52(0x169)]??[],_0x4d7acf=_0x53e533[_0x4dac52(0x178)]?.['totalCount']??_0x2ade09[_0x4dac52(0x16f)];let _0xc714bf;return _0x75dc03?_0xc714bf=_0x2ade09:_0xc714bf=await Promise[_0x4dac52(0x172)](_0x2ade09[_0x4dac52(0x15a)](async _0x5c8a50=>{const _0x2fd531=_0x4dac52;let _0x385cb4;try{_0x385cb4=_0x5c8a50[_0x2fd531(0x17b)]?await getDbName(_0x6918e8[_0x2fd531(0x17e)],_0x5c8a50[_0x2fd531(0x17b)]):undefined;}catch{}return{'sqlCode':_0x5c8a50[_0x2fd531(0x16b)],'sqlName':_0x5c8a50['sqlName'],'description':_0x5c8a50['description']??'','db':_0x385cb4?_0x385cb4+'\x20('+_0x5c8a50[_0x2fd531(0x17b)]+')':_0x5c8a50['dbId']??''};})),{'ok':!![],'data':_0xc714bf,'message':_0x2ade09[_0x4dac52(0x16f)]===0x0?_0x4dac52(0x165):_0x4dac52(0x170)+_0x2ade09[_0x4dac52(0x16f)]+_0x4dac52(0x17a)+_0x4d7acf+').'};}};
1
+ const a135_0x3b34cf=a135_0xaffc;(function(_0x2625a6,_0x1c9c0d){const _0x5ebad9=a135_0xaffc,_0x25723e=_0x2625a6();while(!![]){try{const _0x592605=parseInt(_0x5ebad9(0xed))/0x1+parseInt(_0x5ebad9(0xee))/0x2+-parseInt(_0x5ebad9(0xff))/0x3+-parseInt(_0x5ebad9(0xea))/0x4*(parseInt(_0x5ebad9(0x10a))/0x5)+parseInt(_0x5ebad9(0xf4))/0x6*(-parseInt(_0x5ebad9(0xfd))/0x7)+-parseInt(_0x5ebad9(0xf5))/0x8+parseInt(_0x5ebad9(0x107))/0x9;if(_0x592605===_0x1c9c0d)break;else _0x25723e['push'](_0x25723e['shift']());}catch(_0x399cee){_0x25723e['push'](_0x25723e['shift']());}}}(a135_0x12b8,0xa1f6e));function a135_0x12b8(){const _0x5a258a=['list','page','length','all','boolean','sqlcode','11790801eMBxZT','read','name','3935ZBQsFq','appCode','No\x20custom\x20SQL\x20queries\x20found.','sqlName','paging','Filter\x20by\x20SQL\x20name','2636iBbtVo','List\x20custom\x20SQL\x20queries','pagesize','865268bfedOY','2164100GtKaeb','Page\x20size','number','verbose','bool','num','1386FZVFBu','6390632EWNcOG','map','Found\x20','totalCount','dbId','Page\x20number','str','\x20SQL\x20queries\x20(total:\x20','22295DKtlsT','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','1622412VRvvAs','sqlCode'];a135_0x12b8=function(){return _0x5a258a;};return a135_0x12b8();}import{listSqlQueries}from'../../core/api-client.js';function a135_0xaffc(_0x58c199,_0x5e9c84){_0x58c199=_0x58c199-0xe7;const _0x12b82b=a135_0x12b8();let _0xaffcbf=_0x12b82b[_0x58c199];return _0xaffcbf;}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a135_0x3b34cf(0x101),'description':a135_0x3b34cf(0xeb),'risk':a135_0x3b34cf(0x108),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a135_0x3b34cf(0x109),'type':'string','description':a135_0x3b34cf(0xe9)},{'name':'page','type':a135_0x3b34cf(0xf0),'description':a135_0x3b34cf(0xfa),'default':0x1},{'name':a135_0x3b34cf(0xec),'type':a135_0x3b34cf(0xf0),'description':a135_0x3b34cf(0xef)},{'name':a135_0x3b34cf(0xf1),'type':a135_0x3b34cf(0x105),'description':a135_0x3b34cf(0xfe)}],async 'execute'(_0x306808){const _0x4b1df4=a135_0x3b34cf,_0x5ca5cc=await listSqlQueries(_0x306808[_0x4b1df4(0x10b)],{'sqlCode':_0x306808[_0x4b1df4(0xfb)](_0x4b1df4(0x106))||undefined,'sqlName':_0x306808['str'](_0x4b1df4(0x109))||undefined,'currentPage':_0x306808['num'](_0x4b1df4(0x102)),'pageSize':_0x306808[_0x4b1df4(0xf3)]('pagesize',0x32)}),_0x26f24d=_0x306808[_0x4b1df4(0xf2)](_0x4b1df4(0xf1)),_0x1626fb=_0x5ca5cc['tableData']??[],_0x3e1536=_0x5ca5cc[_0x4b1df4(0xe8)]?.[_0x4b1df4(0xf8)]??_0x1626fb['length'];let _0x5d627a;return _0x26f24d?_0x5d627a=_0x1626fb:_0x5d627a=await Promise[_0x4b1df4(0x104)](_0x1626fb[_0x4b1df4(0xf6)](async _0x32ed03=>{const _0x517083=_0x4b1df4;let _0x408970;try{_0x408970=_0x32ed03[_0x517083(0xf9)]?await getDbName(_0x306808[_0x517083(0x10b)],_0x32ed03['dbId']):undefined;}catch{}return{'sqlCode':_0x32ed03[_0x517083(0x100)],'sqlName':_0x32ed03[_0x517083(0xe7)],'description':_0x32ed03['description']??'','db':_0x408970?_0x408970+'\x20('+_0x32ed03[_0x517083(0xf9)]+')':_0x32ed03[_0x517083(0xf9)]??''};})),{'ok':!![],'data':_0x5d627a,'message':_0x1626fb[_0x4b1df4(0x103)]===0x0?_0x4b1df4(0x10c):_0x4b1df4(0xf7)+_0x1626fb[_0x4b1df4(0x103)]+_0x4b1df4(0xfc)+_0x3e1536+').'};}};
@@ -1 +1 @@
1
- const a136_0x5d1988=a136_0x3b1a;(function(_0x3d9300,_0x1460e4){const _0x399001=a136_0x3b1a,_0x3962ed=_0x3d9300();while(!![]){try{const _0x115aa5=-parseInt(_0x399001(0x1e6))/0x1+-parseInt(_0x399001(0x1f4))/0x2*(parseInt(_0x399001(0x1ff))/0x3)+parseInt(_0x399001(0x1db))/0x4+-parseInt(_0x399001(0x1e0))/0x5+parseInt(_0x399001(0x201))/0x6*(-parseInt(_0x399001(0x202))/0x7)+parseInt(_0x399001(0x1de))/0x8*(parseInt(_0x399001(0x1d6))/0x9)+-parseInt(_0x399001(0x1df))/0xa*(-parseInt(_0x399001(0x1fb))/0xb);if(_0x115aa5===_0x1460e4)break;else _0x3962ed['push'](_0x3962ed['shift']());}catch(_0x148d28){_0x3962ed['push'](_0x3962ed['shift']());}}}(a136_0x2079,0x3503f));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';function a136_0x2079(){const _0x87e51=['171KLEWbc','sqlcode','\x20SQL\x20file(s)\x20into\x20','sqlCode','sql','382732WHEKmf','POST','\x20failed','75128LvDydQ','10XNcSbJ','1818930yZgkco','Filter\x20by\x20SQL\x20display\x20name','sqls','write','Force\x20pull\x20cancelled.','force','250535uNfpqM','appCode','Force\x20overwrite\x20local\x20unsynced\x20changes','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','str','sqlRoot','skipped','length','cancelled','bool','\x20written,\x20','message','join','push','54bOhOFx','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','filter','paging','pull','apps','description','7635881Urvsrd','totalCount','mybatisXml','catch','13251VEfzlv','string','6TIZvkt','122864dBoHBr','Would\x20pull\x20','No\x20remote\x20SQL\x20queries\x20matched.','sqlRootDir','toISOString','dbId','sqlContent','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','test','unchanged','lockFilePath','trimStart','utf8','sqlName','conflict','name'];a136_0x2079=function(){return _0x87e51;};return a136_0x2079();}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 a136_0x3b1a(_0x5a8ce4,_0x1f2793){_0x5a8ce4=_0x5a8ce4-0x1d3;const _0x2079be=a136_0x2079();let _0x3b1a63=_0x2079be[_0x5a8ce4];return _0x3b1a63;}const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x2834f7,_0x32bd00){const _0x2630f9=a136_0x3b1a,_0x23ce9c=[];let _0x1fbe6f=0x1;while(!![]){const _0x90c549=await listSqlQueries(_0x2834f7,{'currentPage':_0x1fbe6f,'pageSize':PAGE_SIZE,'sqlCode':_0x32bd00['sqlCode'],'sqlName':_0x32bd00[_0x2630f9(0x1d3)]}),_0x28bc7b=_0x90c549['tableData']??[];_0x23ce9c[_0x2630f9(0x1f3)](..._0x28bc7b);if(_0x28bc7b['length']===0x0)break;const _0x5053d1=_0x90c549[_0x2630f9(0x1f7)]?.[_0x2630f9(0x1fc)];if(_0x5053d1!=null?_0x23ce9c[_0x2630f9(0x1ed)]>=_0x5053d1:_0x28bc7b[_0x2630f9(0x1ed)]<PAGE_SIZE)break;_0x1fbe6f++;}return _0x23ce9c;}async function ensureSqlContent(_0x16fcf9){const _0x4977c6=a136_0x3b1a;if(_0x16fcf9[_0x4977c6(0x208)]!=null&&String(_0x16fcf9[_0x4977c6(0x208)])['length']>0x0)return _0x16fcf9;return getSqlQueryDetail(_0x16fcf9['sqlCode']);}export const sqlPull={'service':'sql','command':a136_0x5d1988(0x1f8),'description':a136_0x5d1988(0x1f5),'risk':a136_0x5d1988(0x1e3),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a136_0x5d1988(0x1d5),'type':a136_0x5d1988(0x200),'description':a136_0x5d1988(0x1e1)},{'name':a136_0x5d1988(0x1e5),'type':'boolean','description':a136_0x5d1988(0x1e8)}],async 'dryRun'(_0x236426){const _0x5c43e8=a136_0x5d1988,_0x167f6e=loadSqlProjectConfig(_0x236426[_0x5c43e8(0x1e7)]),_0x2215d6=await readSqlLockFile(_0x167f6e['lockFilePath']),{appLock:_0x5516bb}=ensureSqlLockScope(_0x2215d6??createEmptySqlLock(),_0x167f6e[_0x5c43e8(0x1e7)],_0x167f6e[_0x5c43e8(0x1eb)],_0x5c43e8(0x1f8)),_0x1eb484=await fetchAllSqlQueries(_0x236426['appCode'],{'sqlCode':_0x236426[_0x5c43e8(0x1ea)](_0x5c43e8(0x1d7))||undefined,'sqlName':_0x236426[_0x5c43e8(0x1ea)](_0x5c43e8(0x1d5))||undefined}),_0x3c6af3=[];for(const _0x549077 of _0x1eb484){const _0xbb9d27=await ensureSqlContent(_0x549077),_0x262839=ensureRemoteSqlContent(_0xbb9d27),_0x423b31=detectModeFromSql(_0xbb9d27),_0x575396=_0xbb9d27[_0x5c43e8(0x207)]?await getDbName(_0x236426['appCode'],Number(_0xbb9d27[_0x5c43e8(0x207)]))[_0x5c43e8(0x1fe)](()=>undefined):undefined,_0x4f1e3b=buildLocalSqlFileContent({'sqlCode':_0xbb9d27[_0x5c43e8(0x1d9)],'sqlName':_0xbb9d27[_0x5c43e8(0x1d3)],'dbId':_0xbb9d27[_0x5c43e8(0x207)]},_0x262839,{'dbName':_0x575396,'mode':_0x423b31,'syncedAt':new Date()[_0x5c43e8(0x206)](),'description':_0xbb9d27[_0x5c43e8(0x1fa)]}),_0x10842c=buildSqlLockEntry(_0xbb9d27,_0x262839,'',{'dbName':_0x575396}),_0x50e3cf=resolveLocalSqlFilePath(_0x167f6e,_0xbb9d27['sqlCode'],_0x10842c);let _0x4f4884='would_pull',_0x4dfa28;if(await fileExists(_0x50e3cf)){const _0x29e864=await readFile(_0x50e3cf,_0x5c43e8(0x20e));isEquivalentPulledSqlFile(_0x29e864,_0x4f1e3b,_0x423b31)?(_0x4f4884=_0x5c43e8(0x1ec),_0x4dfa28=_0x5c43e8(0x20b)):(_0x4f4884=_0x5c43e8(0x1d4),_0x4dfa28=_0x5c43e8(0x209));}_0x3c6af3[_0x5c43e8(0x1f3)]({'sqlCode':_0xbb9d27[_0x5c43e8(0x1d9)],'sqlName':_0xbb9d27['sqlName'],'filePath':_0x50e3cf,'status':_0x4f4884,'reason':_0x4dfa28});}return{'method':_0x5c43e8(0x1dc),'url':_0x5c43e8(0x1e9),'body':{'appCode':_0x236426[_0x5c43e8(0x1e7)],'sqlCode':_0x236426['str'](_0x5c43e8(0x1d7))||null,'sqlName':_0x236426[_0x5c43e8(0x1ea)](_0x5c43e8(0x1d5))||null,'files':_0x3c6af3},'description':_0x5c43e8(0x203)+_0x3c6af3[_0x5c43e8(0x1ed)]+_0x5c43e8(0x1d8)+_0x167f6e[_0x5c43e8(0x205)]};},async 'execute'(_0x1df416){const _0x237ca5=a136_0x5d1988,_0x520176=loadSqlProjectConfig(_0x1df416['appCode']),_0xe1433f=await readSqlLockFile(_0x520176[_0x237ca5(0x20c)]),{lockData:_0x31d62d,appLock:_0x1de536}=ensureSqlLockScope(_0xe1433f??createEmptySqlLock(),_0x520176['appCode'],_0x520176[_0x237ca5(0x1eb)],_0x237ca5(0x1f8)),_0x34070d=_0x1df416[_0x237ca5(0x1ef)]('force'),_0x5c6cfc=await fetchAllSqlQueries(_0x1df416[_0x237ca5(0x1e7)],{'sqlCode':_0x1df416['str'](_0x237ca5(0x1d7))||undefined,'sqlName':_0x1df416[_0x237ca5(0x1ea)](_0x237ca5(0x1d5))||undefined});if(_0x5c6cfc[_0x237ca5(0x1ed)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x237ca5(0x204)};const _0x36965d=[],_0x390e10=[];for(const _0x40a68a of _0x5c6cfc){try{_0x36965d[_0x237ca5(0x1f3)](await ensureSqlContent(_0x40a68a));}catch(_0x13a4ed){_0x390e10[_0x237ca5(0x1f3)]({'sqlCode':_0x40a68a[_0x237ca5(0x1d9)],'error':_0x13a4ed instanceof Error?_0x13a4ed[_0x237ca5(0x1f1)]:String(_0x13a4ed)});}}if(_0x34070d&&!_0x1df416['nonInteractive']){let _0x1189f6=![];for(const _0x4ddbb0 of _0x36965d){const _0x50844b=detectModeFromSql(_0x4ddbb0),_0x5df2f0=_0x4ddbb0[_0x237ca5(0x207)]?await getDbName(_0x1df416[_0x237ca5(0x1e7)],Number(_0x4ddbb0[_0x237ca5(0x207)]))['catch'](()=>undefined):undefined,_0x5bd6c8=buildLocalSqlFileContent({'sqlCode':_0x4ddbb0[_0x237ca5(0x1d9)],'sqlName':_0x4ddbb0[_0x237ca5(0x1d3)],'dbId':_0x4ddbb0['dbId']},ensureRemoteSqlContent(_0x4ddbb0),{'dbName':_0x5df2f0,'mode':_0x50844b,'syncedAt':new Date()[_0x237ca5(0x206)](),'description':_0x4ddbb0[_0x237ca5(0x1fa)]}),_0x1fbe9d=resolveLocalSqlFilePath(_0x520176,_0x4ddbb0[_0x237ca5(0x1d9)],buildSqlLockEntry(_0x4ddbb0,ensureRemoteSqlContent(_0x4ddbb0),'',{'dbName':_0x5df2f0}));if(await fileExists(_0x1fbe9d)){const _0x1f7158=await readFile(_0x1fbe9d,'utf8');if(!isEquivalentPulledSqlFile(_0x1f7158,_0x5bd6c8,_0x50844b)){_0x1189f6=!![];break;}}}if(_0x1189f6){const _0x2eb0ae=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x2eb0ae)throw CliErrors[_0x237ca5(0x1ee)](_0x237ca5(0x1e4));}}const _0x5964cc=cloneSqlLockData(_0x31d62d),_0x58bb0c=_0x5964cc[_0x237ca5(0x1f9)][_0x520176[_0x237ca5(0x1e7)]],_0x1f0c5a=[],_0x1ab6e5=[];for(const _0x1b92a9 of _0x36965d){const _0x5eb431=_0x58bb0c[_0x237ca5(0x1e2)][_0x1b92a9[_0x237ca5(0x1d9)]],_0x4ad6b1=ensureRemoteSqlContent(_0x1b92a9),_0x39fc46=detectModeFromSql(_0x1b92a9),_0x329ecf=_0x1b92a9[_0x237ca5(0x207)]?await getDbName(_0x1df416['appCode'],Number(_0x1b92a9[_0x237ca5(0x207)]))[_0x237ca5(0x1fe)](()=>undefined):undefined,_0x67fb2e=buildLocalSqlFileContent({'sqlCode':_0x1b92a9['sqlCode'],'sqlName':_0x1b92a9[_0x237ca5(0x1d3)],'dbId':_0x1b92a9['dbId']},_0x4ad6b1,{'dbName':_0x329ecf,'mode':_0x39fc46,'syncedAt':new Date()[_0x237ca5(0x206)](),'description':_0x1b92a9['description']}),_0x96ac62=buildSqlLockEntry(_0x1b92a9,_0x4ad6b1,computeSqlContentHash(_0x67fb2e),{'dbName':_0x329ecf}),_0x5e3768=_0x96ac62['path'],_0x5f86db=join(_0x520176[_0x237ca5(0x205)],_0x5e3768);try{if(await fileExists(_0x5f86db)){const _0x44967b=await readFile(_0x5f86db,_0x237ca5(0x20e));if(isEquivalentPulledSqlFile(_0x44967b,_0x67fb2e,_0x39fc46)){_0x1ab6e5[_0x237ca5(0x1f3)]({'sqlCode':_0x1b92a9['sqlCode'],'reason':'unchanged'}),_0x58bb0c[_0x237ca5(0x1e2)][_0x1b92a9[_0x237ca5(0x1d9)]]={..._0x96ac62,'hash':computeSqlContentHash(_0x44967b),'path':_0x5e3768};continue;}if(!_0x34070d){_0x1ab6e5[_0x237ca5(0x1f3)]({'sqlCode':_0x1b92a9[_0x237ca5(0x1d9)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x56a34b=_0x5eb431?.['path']?join(_0x520176[_0x237ca5(0x205)],_0x5eb431['path']):undefined;_0x56a34b&&_0x56a34b!==_0x5f86db&&await fileExists(_0x56a34b)&&await rm(_0x56a34b,{'force':!![]}),await ensureParentDirectory(_0x5f86db),await writeFile(_0x5f86db,_0x67fb2e,'utf8'),_0x58bb0c[_0x237ca5(0x1e2)][_0x1b92a9[_0x237ca5(0x1d9)]]={..._0x96ac62,'path':_0x5e3768},_0x1f0c5a[_0x237ca5(0x1f3)]({'sqlCode':_0x1b92a9[_0x237ca5(0x1d9)],'filePath':_0x5f86db});}catch(_0x1b0cba){_0x390e10[_0x237ca5(0x1f3)]({'sqlCode':_0x1b92a9['sqlCode'],'error':_0x1b0cba instanceof Error?_0x1b0cba[_0x237ca5(0x1f1)]:String(_0x1b0cba)});}}return _0x58bb0c['lastSync']=new Date()[_0x237ca5(0x206)](),await writeSqlLockFile(_0x520176[_0x237ca5(0x20c)],_0x5964cc),{'ok':_0x390e10[_0x237ca5(0x1ed)]===0x0,'data':{'pulled':_0x1f0c5a,'skipped':_0x1ab6e5,'failed':_0x390e10},'message':'Pull\x20complete:\x20'+_0x1f0c5a[_0x237ca5(0x1ed)]+_0x237ca5(0x1f0)+_0x1ab6e5[_0x237ca5(0x1ed)]+'\x20skipped,\x20'+_0x390e10[_0x237ca5(0x1ed)]+_0x237ca5(0x1dd)};}};function detectModeFromSql(_0x17cb49){const _0x20a7be=a136_0x5d1988,_0x44f16e=ensureRemoteSqlContent(_0x17cb49),_0x3b2320=stripLocalSqlMetadata(_0x44f16e,_0x20a7be(0x1fd))[_0x20a7be(0x20d)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x3b2320))return _0x20a7be(0x1fd);return _0x20a7be(0x1da);}function isEquivalentPulledSqlFile(_0x59870c,_0x264b66,_0x33d78f){return normalizePullComparableContent(_0x59870c,_0x33d78f)===normalizePullComparableContent(_0x264b66,_0x33d78f);}function normalizePullComparableContent(_0x5c9be2,_0x448d23){const _0x53619b=a136_0x5d1988,_0x41c641=_0x5c9be2['replace'](/\r\n/g,'\x0a')['split']('\x0a'),_0x4d216b=_0x41c641[_0x53619b(0x1f6)](_0x1091ec=>!isSyncedAtMetadataLine(_0x1091ec,_0x448d23));return _0x4d216b[_0x53619b(0x1f2)]('\x0a');}function isSyncedAtMetadataLine(_0x1fa0ed,_0x5b234d){const _0xdb7eb1=a136_0x5d1988;if(_0x5b234d==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x1fa0ed);return/^\s*--\s*@lovrabet\.syncedAt:/[_0xdb7eb1(0x20a)](_0x1fa0ed);}
1
+ const a136_0x5549d3=a136_0x24b6;(function(_0x14ead0,_0x28d9fa){const _0x4e2093=a136_0x24b6,_0x444f2b=_0x14ead0();while(!![]){try{const _0x540678=-parseInt(_0x4e2093(0x11d))/0x1+parseInt(_0x4e2093(0x12f))/0x2*(-parseInt(_0x4e2093(0x103))/0x3)+parseInt(_0x4e2093(0x112))/0x4*(parseInt(_0x4e2093(0x12e))/0x5)+-parseInt(_0x4e2093(0x127))/0x6+parseInt(_0x4e2093(0x13b))/0x7+-parseInt(_0x4e2093(0x111))/0x8+parseInt(_0x4e2093(0x131))/0x9;if(_0x540678===_0x28d9fa)break;else _0x444f2b['push'](_0x444f2b['shift']());}catch(_0x2b4844){_0x444f2b['push'](_0x444f2b['shift']());}}}(a136_0x4085,0x7e4f2));function a136_0x24b6(_0x472b5a,_0x2ee63a){_0x472b5a=_0x472b5a-0x101;const _0x408526=a136_0x4085();let _0x24b66c=_0x408526[_0x472b5a];return _0x24b66c;}import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';function a136_0x4085(){const _0x11b4ef=['mybatisXml','Would\x20pull\x20','POST','Force\x20overwrite\x20local\x20unsynced\x20changes','skipped','catch','833165Krepiq','58WzFaEp','totalCount','3878118iaOSWA','pull','lockFilePath','Filter\x20by\x20SQL\x20display\x20name','sqlContent','filter','bool','description','local\x20differs\x20from\x20remote','sqlRoot','3735543IvtVJI','split','sqlcode','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','boolean','60633YPBvbP','\x20SQL\x20file(s)\x20into\x20','sql','dbId','test','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','force','No\x20remote\x20SQL\x20queries\x20matched.','would_pull','Force\x20pull\x20cancelled.','utf8','\x20written,\x20','Pull\x20complete:\x20','sqlRootDir','1841064IDKUTL','20OhwFEd','write','lastSync','unchanged','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','name','push','tableData','string','str','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','92345DAsWOa','paging','sqlName','length','cancelled','toISOString','sqlCode','path','\x20skipped,\x20','appCode','2230542eutmIx'];a136_0x4085=function(){return _0x11b4ef;};return a136_0x4085();}import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x45c9c7,_0x4ba87f){const _0x1212df=a136_0x24b6,_0x5e728d=[];let _0xbc7fe0=0x1;while(!![]){const _0x5ead64=await listSqlQueries(_0x45c9c7,{'currentPage':_0xbc7fe0,'pageSize':PAGE_SIZE,'sqlCode':_0x4ba87f[_0x1212df(0x123)],'sqlName':_0x4ba87f[_0x1212df(0x11f)]}),_0x4d0529=_0x5ead64[_0x1212df(0x119)]??[];_0x5e728d['push'](..._0x4d0529);if(_0x4d0529[_0x1212df(0x120)]===0x0)break;const _0x281c98=_0x5ead64[_0x1212df(0x11e)]?.[_0x1212df(0x130)];if(_0x281c98!=null?_0x5e728d[_0x1212df(0x120)]>=_0x281c98:_0x4d0529['length']<PAGE_SIZE)break;_0xbc7fe0++;}return _0x5e728d;}async function ensureSqlContent(_0x445242){const _0x2e328d=a136_0x24b6;if(_0x445242[_0x2e328d(0x135)]!=null&&String(_0x445242[_0x2e328d(0x135)])['length']>0x0)return _0x445242;return getSqlQueryDetail(_0x445242[_0x2e328d(0x123)]);}export const sqlPull={'service':a136_0x5549d3(0x105),'command':a136_0x5549d3(0x132),'description':a136_0x5549d3(0x116),'risk':a136_0x5549d3(0x113),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a136_0x5549d3(0x117),'type':a136_0x5549d3(0x11a),'description':a136_0x5549d3(0x134)},{'name':'force','type':a136_0x5549d3(0x102),'description':a136_0x5549d3(0x12b)}],async 'dryRun'(_0x4a9e25){const _0x210da6=a136_0x5549d3,_0xc38489=loadSqlProjectConfig(_0x4a9e25['appCode']),_0x76bc58=await readSqlLockFile(_0xc38489[_0x210da6(0x133)]),{appLock:_0x5462a8}=ensureSqlLockScope(_0x76bc58??createEmptySqlLock(),_0xc38489[_0x210da6(0x126)],_0xc38489['sqlRoot'],'pull'),_0x377dc0=await fetchAllSqlQueries(_0x4a9e25[_0x210da6(0x126)],{'sqlCode':_0x4a9e25['str'](_0x210da6(0x13d))||undefined,'sqlName':_0x4a9e25[_0x210da6(0x11b)]('name')||undefined}),_0x394521=[];for(const _0x47661e of _0x377dc0){const _0x16349a=await ensureSqlContent(_0x47661e),_0x5e8395=ensureRemoteSqlContent(_0x16349a),_0x2db08a=detectModeFromSql(_0x16349a),_0x29b55d=_0x16349a[_0x210da6(0x106)]?await getDbName(_0x4a9e25['appCode'],Number(_0x16349a[_0x210da6(0x106)]))['catch'](()=>undefined):undefined,_0x2da5f6=buildLocalSqlFileContent({'sqlCode':_0x16349a[_0x210da6(0x123)],'sqlName':_0x16349a['sqlName'],'dbId':_0x16349a['dbId']},_0x5e8395,{'dbName':_0x29b55d,'mode':_0x2db08a,'syncedAt':new Date()[_0x210da6(0x122)](),'description':_0x16349a[_0x210da6(0x138)]}),_0x321309=buildSqlLockEntry(_0x16349a,_0x5e8395,'',{'dbName':_0x29b55d}),_0x57e96a=resolveLocalSqlFilePath(_0xc38489,_0x16349a[_0x210da6(0x123)],_0x321309);let _0xcd85e2=_0x210da6(0x10b),_0x46c4eb;if(await fileExists(_0x57e96a)){const _0x1f0a59=await readFile(_0x57e96a,_0x210da6(0x10d));isEquivalentPulledSqlFile(_0x1f0a59,_0x2da5f6,_0x2db08a)?(_0xcd85e2=_0x210da6(0x12c),_0x46c4eb=_0x210da6(0x115)):(_0xcd85e2='conflict',_0x46c4eb=_0x210da6(0x101));}_0x394521['push']({'sqlCode':_0x16349a['sqlCode'],'sqlName':_0x16349a[_0x210da6(0x11f)],'filePath':_0x57e96a,'status':_0xcd85e2,'reason':_0x46c4eb});}return{'method':_0x210da6(0x12a),'url':_0x210da6(0x11c),'body':{'appCode':_0x4a9e25[_0x210da6(0x126)],'sqlCode':_0x4a9e25['str']('sqlcode')||null,'sqlName':_0x4a9e25[_0x210da6(0x11b)](_0x210da6(0x117))||null,'files':_0x394521},'description':_0x210da6(0x129)+_0x394521[_0x210da6(0x120)]+_0x210da6(0x104)+_0xc38489['sqlRootDir']};},async 'execute'(_0x44eee6){const _0x49adab=a136_0x5549d3,_0x54e6b8=loadSqlProjectConfig(_0x44eee6[_0x49adab(0x126)]),_0x1a6d30=await readSqlLockFile(_0x54e6b8['lockFilePath']),{lockData:_0x4f366b,appLock:_0x5561cb}=ensureSqlLockScope(_0x1a6d30??createEmptySqlLock(),_0x54e6b8[_0x49adab(0x126)],_0x54e6b8[_0x49adab(0x13a)],'pull'),_0x908636=_0x44eee6[_0x49adab(0x137)](_0x49adab(0x109)),_0x455ec4=await fetchAllSqlQueries(_0x44eee6[_0x49adab(0x126)],{'sqlCode':_0x44eee6[_0x49adab(0x11b)](_0x49adab(0x13d))||undefined,'sqlName':_0x44eee6['str'](_0x49adab(0x117))||undefined});if(_0x455ec4[_0x49adab(0x120)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x49adab(0x10a)};const _0x477aeb=[],_0x59963d=[];for(const _0x340ab4 of _0x455ec4){try{_0x477aeb[_0x49adab(0x118)](await ensureSqlContent(_0x340ab4));}catch(_0x42b0cd){_0x59963d['push']({'sqlCode':_0x340ab4[_0x49adab(0x123)],'error':_0x42b0cd instanceof Error?_0x42b0cd['message']:String(_0x42b0cd)});}}if(_0x908636&&!_0x44eee6['nonInteractive']){let _0x381ebb=![];for(const _0x503270 of _0x477aeb){const _0x598dfc=detectModeFromSql(_0x503270),_0x1b1ad9=_0x503270[_0x49adab(0x106)]?await getDbName(_0x44eee6[_0x49adab(0x126)],Number(_0x503270[_0x49adab(0x106)]))['catch'](()=>undefined):undefined,_0x3b6e25=buildLocalSqlFileContent({'sqlCode':_0x503270[_0x49adab(0x123)],'sqlName':_0x503270['sqlName'],'dbId':_0x503270['dbId']},ensureRemoteSqlContent(_0x503270),{'dbName':_0x1b1ad9,'mode':_0x598dfc,'syncedAt':new Date()[_0x49adab(0x122)](),'description':_0x503270[_0x49adab(0x138)]}),_0x27e0ff=resolveLocalSqlFilePath(_0x54e6b8,_0x503270[_0x49adab(0x123)],buildSqlLockEntry(_0x503270,ensureRemoteSqlContent(_0x503270),'',{'dbName':_0x1b1ad9}));if(await fileExists(_0x27e0ff)){const _0x346cc0=await readFile(_0x27e0ff,_0x49adab(0x10d));if(!isEquivalentPulledSqlFile(_0x346cc0,_0x3b6e25,_0x598dfc)){_0x381ebb=!![];break;}}}if(_0x381ebb){const _0x3b4097=await confirmForceOverwrite(_0x49adab(0x108));if(!_0x3b4097)throw CliErrors[_0x49adab(0x121)](_0x49adab(0x10c));}}const _0x56752d=cloneSqlLockData(_0x4f366b),_0x27ea4c=_0x56752d['apps'][_0x54e6b8[_0x49adab(0x126)]],_0x301933=[],_0x484f1a=[];for(const _0x148e39 of _0x477aeb){const _0x3af83a=_0x27ea4c['sqls'][_0x148e39[_0x49adab(0x123)]],_0xb3f5a=ensureRemoteSqlContent(_0x148e39),_0x4ad4dc=detectModeFromSql(_0x148e39),_0x1fd6c7=_0x148e39[_0x49adab(0x106)]?await getDbName(_0x44eee6[_0x49adab(0x126)],Number(_0x148e39[_0x49adab(0x106)]))[_0x49adab(0x12d)](()=>undefined):undefined,_0x169fd9=buildLocalSqlFileContent({'sqlCode':_0x148e39['sqlCode'],'sqlName':_0x148e39[_0x49adab(0x11f)],'dbId':_0x148e39[_0x49adab(0x106)]},_0xb3f5a,{'dbName':_0x1fd6c7,'mode':_0x4ad4dc,'syncedAt':new Date()[_0x49adab(0x122)](),'description':_0x148e39[_0x49adab(0x138)]}),_0x1ac33e=buildSqlLockEntry(_0x148e39,_0xb3f5a,computeSqlContentHash(_0x169fd9),{'dbName':_0x1fd6c7}),_0xe216a7=_0x1ac33e[_0x49adab(0x124)],_0x45f202=join(_0x54e6b8[_0x49adab(0x110)],_0xe216a7);try{if(await fileExists(_0x45f202)){const _0x33efe9=await readFile(_0x45f202,_0x49adab(0x10d));if(isEquivalentPulledSqlFile(_0x33efe9,_0x169fd9,_0x4ad4dc)){_0x484f1a[_0x49adab(0x118)]({'sqlCode':_0x148e39[_0x49adab(0x123)],'reason':_0x49adab(0x115)}),_0x27ea4c['sqls'][_0x148e39[_0x49adab(0x123)]]={..._0x1ac33e,'hash':computeSqlContentHash(_0x33efe9),'path':_0xe216a7};continue;}if(!_0x908636){_0x484f1a['push']({'sqlCode':_0x148e39[_0x49adab(0x123)],'reason':_0x49adab(0x139)});continue;}}const _0x3e82e0=_0x3af83a?.[_0x49adab(0x124)]?join(_0x54e6b8[_0x49adab(0x110)],_0x3af83a[_0x49adab(0x124)]):undefined;_0x3e82e0&&_0x3e82e0!==_0x45f202&&await fileExists(_0x3e82e0)&&await rm(_0x3e82e0,{'force':!![]}),await ensureParentDirectory(_0x45f202),await writeFile(_0x45f202,_0x169fd9,_0x49adab(0x10d)),_0x27ea4c['sqls'][_0x148e39[_0x49adab(0x123)]]={..._0x1ac33e,'path':_0xe216a7},_0x301933[_0x49adab(0x118)]({'sqlCode':_0x148e39[_0x49adab(0x123)],'filePath':_0x45f202});}catch(_0x2b8786){_0x59963d[_0x49adab(0x118)]({'sqlCode':_0x148e39[_0x49adab(0x123)],'error':_0x2b8786 instanceof Error?_0x2b8786['message']:String(_0x2b8786)});}}return _0x27ea4c[_0x49adab(0x114)]=new Date()[_0x49adab(0x122)](),await writeSqlLockFile(_0x54e6b8[_0x49adab(0x133)],_0x56752d),{'ok':_0x59963d[_0x49adab(0x120)]===0x0,'data':{'pulled':_0x301933,'skipped':_0x484f1a,'failed':_0x59963d},'message':_0x49adab(0x10f)+_0x301933[_0x49adab(0x120)]+_0x49adab(0x10e)+_0x484f1a['length']+_0x49adab(0x125)+_0x59963d[_0x49adab(0x120)]+'\x20failed'};}};function detectModeFromSql(_0x4f1fee){const _0x2542f5=a136_0x5549d3,_0x46823c=ensureRemoteSqlContent(_0x4f1fee),_0x45c8b8=stripLocalSqlMetadata(_0x46823c,'mybatisXml')['trimStart']();if(/^<(select|insert|update|delete)\b/i['test'](_0x45c8b8))return'mybatisXml';return _0x2542f5(0x105);}function isEquivalentPulledSqlFile(_0x35fe42,_0x39d971,_0x5394a5){return normalizePullComparableContent(_0x35fe42,_0x5394a5)===normalizePullComparableContent(_0x39d971,_0x5394a5);}function normalizePullComparableContent(_0x704cab,_0x5eaa55){const _0x58b9d2=a136_0x5549d3,_0x13f9c3=_0x704cab['replace'](/\r\n/g,'\x0a')[_0x58b9d2(0x13c)]('\x0a'),_0x3f8f51=_0x13f9c3[_0x58b9d2(0x136)](_0x3beece=>!isSyncedAtMetadataLine(_0x3beece,_0x5eaa55));return _0x3f8f51['join']('\x0a');}function isSyncedAtMetadataLine(_0xae767c,_0x2ac8cb){const _0x507ad5=a136_0x5549d3;if(_0x2ac8cb===_0x507ad5(0x128))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0xae767c);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x507ad5(0x107)](_0xae767c);}
@@ -1 +1 @@
1
- const a137_0x1e275d=a137_0x18f6;(function(_0x446b28,_0x346a35){const _0x146790=a137_0x18f6,_0x502d40=_0x446b28();while(!![]){try{const _0x11c982=parseInt(_0x146790(0x145))/0x1*(parseInt(_0x146790(0x11f))/0x2)+parseInt(_0x146790(0x12c))/0x3+parseInt(_0x146790(0x12f))/0x4+-parseInt(_0x146790(0x130))/0x5*(parseInt(_0x146790(0x151))/0x6)+parseInt(_0x146790(0x154))/0x7*(-parseInt(_0x146790(0x125))/0x8)+parseInt(_0x146790(0x11c))/0x9*(-parseInt(_0x146790(0x15a))/0xa)+parseInt(_0x146790(0x136))/0xb;if(_0x11c982===_0x346a35)break;else _0x502d40['push'](_0x502d40['shift']());}catch(_0x4b94c1){_0x502d40['push'](_0x502d40['shift']());}}}(a137_0x1afd,0xdc675));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';function a137_0x18f6(_0xc9869a,_0x4508da){_0xc9869a=_0xc9869a-0x11a;const _0x1afd4b=a137_0x1afd();let _0x18f6a3=_0x1afd4b[_0xc9869a];return _0x18f6a3;}import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x311a28,_0x581f12,_0x36c0a3){const _0x3c897b=a137_0x18f6,_0x19dc63=await scanLocalSqlQueries(_0x311a28),_0x351910=new Map();for(const _0x185b94 of _0x19dc63){if(_0x36c0a3&&_0x185b94[_0x3c897b(0x146)]!==_0x36c0a3)continue;const _0x308c15=_0x351910[_0x3c897b(0x12e)](_0x185b94[_0x3c897b(0x146)])??[];_0x308c15[_0x3c897b(0x123)](_0x185b94),_0x351910[_0x3c897b(0x140)](_0x185b94[_0x3c897b(0x146)],_0x308c15);}if(_0x36c0a3&&!_0x351910[_0x3c897b(0x13d)](_0x36c0a3))throw CliErrors[_0x3c897b(0x12d)](_0x3c897b(0x11a)+_0x36c0a3);const _0x35b6ac=[];for(const [_0x4c6eb6,_0x5f5c6f]of _0x351910['entries']()){if(_0x5f5c6f[_0x3c897b(0x12a)]===0x1){_0x35b6ac[_0x3c897b(0x123)](_0x5f5c6f[0x0]);continue;}const _0x2dbbe8=_0x581f12['sqls'][_0x4c6eb6],_0x2087e9=_0x2dbbe8?.[_0x3c897b(0x135)],_0xda9667=_0x2087e9?_0x5f5c6f[_0x3c897b(0x132)](_0x3f5fa3=>_0x3f5fa3[_0x3c897b(0x155)]!==_0x2087e9):_0x5f5c6f;if(_0x2dbbe8&&_0xda9667[_0x3c897b(0x12a)]===0x1){_0x35b6ac[_0x3c897b(0x123)](_0xda9667[0x0]);continue;}throw CliErrors[_0x3c897b(0x12d)](_0x3c897b(0x137)+_0x4c6eb6+_0x3c897b(0x14c));}return _0x35b6ac;}export const sqlPush={'service':'sql','command':'push','description':a137_0x1e275d(0x14a),'risk':a137_0x1e275d(0x11e),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a137_0x1e275d(0x152),'type':a137_0x1e275d(0x11b),'description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0x131abf){const _0x4e986b=a137_0x1e275d,_0x4c6bc3=loadSqlProjectConfig(_0x131abf['appCode']),_0x13be78=await readSqlLockFile(_0x4c6bc3[_0x4e986b(0x120)]),{appLock:_0x51a054}=ensureSqlLockScope(_0x13be78??createEmptySqlLock(),_0x131abf[_0x4e986b(0x126)],_0x4c6bc3['sqlRoot'],_0x4e986b(0x123)),_0x55c13c=await getTargetSqlQueries(_0x4c6bc3,_0x51a054,_0x131abf[_0x4e986b(0x13a)](_0x4e986b(0x134))||undefined),_0x4d4b86=[];for(const _0x37b992 of _0x55c13c){const _0x3a3874=await computeSqlFileHash(_0x37b992['filePath']),_0x3e4c5f=_0x51a054[_0x4e986b(0x14b)][_0x37b992[_0x4e986b(0x146)]],_0x55c944=!!_0x3e4c5f&&(_0x3e4c5f['path']!==_0x37b992['relativePath']||!!_0x37b992[_0x4e986b(0x129)]&&_0x3e4c5f[_0x4e986b(0x129)]!==_0x37b992['sqlName']);if(!_0x131abf[_0x4e986b(0x131)]('force')&&_0x3e4c5f&&_0x3e4c5f[_0x4e986b(0x15b)]===_0x3a3874&&!_0x55c944)continue;_0x4d4b86[_0x4e986b(0x123)](_0x37b992[_0x4e986b(0x146)]);}return{'method':_0x4e986b(0x138),'url':_0x4e986b(0x150),'body':{'sqlCodes':_0x4d4b86,'appCode':_0x131abf[_0x4e986b(0x126)]},'description':'Would\x20push\x20'+_0x4d4b86[_0x4e986b(0x12a)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x377cf4){const _0x289db9=a137_0x1e275d,_0x17f0ac=loadSqlProjectConfig(_0x377cf4[_0x289db9(0x126)]),_0x386f04=await readSqlLockFile(_0x17f0ac['lockFilePath']),{lockData:_0x5b8be4,appLock:_0x508e68}=ensureSqlLockScope(_0x386f04??createEmptySqlLock(),_0x377cf4[_0x289db9(0x126)],_0x17f0ac[_0x289db9(0x13c)],_0x289db9(0x123)),_0x56426c=await getTargetSqlQueries(_0x17f0ac,_0x508e68,_0x377cf4[_0x289db9(0x13a)](_0x289db9(0x134))||undefined);if(_0x56426c[_0x289db9(0x12a)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x289db9(0x159)};const _0x55ca82=[],_0x4c9e5a=[],_0x5a14ae=[];for(const _0x487952 of _0x56426c){const _0x250c1d=_0x508e68[_0x289db9(0x14b)][_0x487952[_0x289db9(0x146)]];if(!_0x250c1d){_0x5a14ae['push']({'sqlCode':_0x487952[_0x289db9(0x146)],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x2fb946=await computeSqlFileHash(_0x487952['filePath']),_0x158705=_0x250c1d['path']!==_0x487952[_0x289db9(0x155)]||!!_0x487952['sqlName']&&_0x250c1d['sqlName']!==_0x487952[_0x289db9(0x129)];if(!_0x377cf4[_0x289db9(0x131)](_0x289db9(0x152))&&_0x250c1d[_0x289db9(0x15b)]===_0x2fb946&&!_0x158705){_0x4c9e5a[_0x289db9(0x123)]({'sqlCode':_0x487952['sqlCode'],'reason':_0x289db9(0x121)});continue;}if(_0x250c1d['version']==null){_0x5a14ae[_0x289db9(0x123)]({'sqlCode':_0x487952[_0x289db9(0x146)],'error':_0x289db9(0x156)});continue;}const _0x514e26=await readFile(_0x487952[_0x289db9(0x139)],'utf8'),_0x5abeb7=stripLocalSqlMetadata(_0x514e26,_0x487952[_0x289db9(0x148)]),_0x3284d0=_0x487952[_0x289db9(0x129)]||_0x250c1d['sqlName'],_0x109363=await resolveTargetDbBinding(_0x377cf4[_0x289db9(0x126)],_0x487952,_0x250c1d),_0x401c5d=await updateSqlQuery({'id':_0x250c1d[_0x289db9(0x13e)],'appCode':_0x377cf4[_0x289db9(0x126)],'sqlCode':_0x487952['sqlCode'],'sqlName':_0x3284d0,'dbId':_0x109363[_0x289db9(0x127)],'version':_0x250c1d[_0x289db9(0x124)],'sqlContent':_0x5abeb7,'sqlConfig':_0x250c1d[_0x289db9(0x11d)]??undefined}),_0xea510b=_0x401c5d[_0x289db9(0x127)]?await getDbName(_0x377cf4[_0x289db9(0x126)],Number(_0x401c5d['dbId']))['catch'](()=>_0x109363['dbName']):_0x109363[_0x289db9(0x14e)];_0x508e68['sqls'][_0x487952[_0x289db9(0x146)]]={...buildSqlLockEntry(_0x401c5d,_0x5abeb7,_0x2fb946,{'dbName':_0xea510b}),'path':_0x487952[_0x289db9(0x155)],'mode':_0x250c1d[_0x289db9(0x148)]},await archivePreviousSqlFileIfNeeded(_0x17f0ac,_0x250c1d['path'],_0x487952['relativePath']),_0x55ca82[_0x289db9(0x123)]({'sqlCode':_0x487952[_0x289db9(0x146)],'remoteId':_0x250c1d['remoteId']});}catch(_0x3f6e18){_0x5a14ae[_0x289db9(0x123)]({'sqlCode':_0x487952[_0x289db9(0x146)],'error':_0x3f6e18 instanceof Error?_0x3f6e18[_0x289db9(0x142)]:String(_0x3f6e18)});}}return _0x508e68[_0x289db9(0x143)]=new Date()[_0x289db9(0x12b)](),await writeSqlLockFile(_0x17f0ac[_0x289db9(0x120)],_0x5b8be4),{'ok':_0x5a14ae['length']===0x0,'data':{'pushed':_0x55ca82,'skipped':_0x4c9e5a,'failed':_0x5a14ae},'message':_0x289db9(0x144)+_0x55ca82[_0x289db9(0x12a)]+_0x289db9(0x14d)+_0x4c9e5a[_0x289db9(0x12a)]+_0x289db9(0x14f)+_0x5a14ae['length']+_0x289db9(0x133)};}};async function archivePreviousSqlFileIfNeeded(_0x165cb5,_0x28bc5e,_0x1a881a){const _0x564450=a137_0x1e275d;if(!_0x28bc5e||_0x28bc5e===_0x1a881a)return;const _0x42bd81=join(_0x165cb5['sqlRootDir'],_0x28bc5e);if(!await fileExists(_0x42bd81))return;const _0x1704c3=await moveToTrash(_0x165cb5[_0x564450(0x158)],_0x165cb5[_0x564450(0x122)],_0x42bd81);await cleanupEmptyDirectories(dirname(_0x42bd81),_0x165cb5[_0x564450(0x147)]),void _0x1704c3;}async function moveToTrash(_0x2184ea,_0xae2a0e,_0x3fd33d){const _0x3b5ae2=a137_0x1e275d,_0x5b9197=new Date()[_0x3b5ae2(0x12b)]()['replace'](/[:.]/g,'-'),_0x4128e3=relative(_0x2184ea,_0x3fd33d),_0x2418ea=join(_0xae2a0e,_0x5b9197,_0x4128e3);return await mkdir(dirname(_0x2418ea),{'recursive':!![]}),await rename(_0x3fd33d,_0x2418ea),_0x2418ea;}async function cleanupEmptyDirectories(_0x34c4ed,_0x9072d3){const _0x386e76=a137_0x1e275d;let _0xbd766f=resolve(_0x34c4ed);const _0x4a7d12=resolve(_0x9072d3);while(_0xbd766f['startsWith'](''+_0x4a7d12+sep)||_0xbd766f===_0x4a7d12){if(_0xbd766f===_0x4a7d12)return;try{const _0x45e45e=await readdir(_0xbd766f);if(_0x45e45e[_0x386e76(0x12a)]>0x0)return;await rmdir(_0xbd766f);}catch{return;}_0xbd766f=dirname(_0xbd766f);}}async function resolveTargetDbBinding(_0x10418c,_0x2a7aa0,_0x21a9a9){const _0x381697=a137_0x1e275d,_0xab7d26=_0x2a7aa0[_0x381697(0x149)];if(!_0xab7d26)return{'dbId':_0x21a9a9[_0x381697(0x127)],'dbName':_0x21a9a9['dbName']};const _0xb89573=buildDbDirectoryName(_0x21a9a9[_0x381697(0x14e)],_0x21a9a9[_0x381697(0x127)]);if(_0xab7d26===_0xb89573)return{'dbId':_0x21a9a9[_0x381697(0x127)],'dbName':_0x21a9a9[_0x381697(0x14e)]};const _0x4c7aee=parseExplicitDbDirectory(_0xab7d26);if(_0x4c7aee!=null)return{'dbId':_0x4c7aee,'dbName':await getDbName(_0x10418c,_0x4c7aee)['catch'](()=>undefined)};const _0x3da0e8=await listDatabases(_0x10418c),_0x3de22f=_0x3da0e8['filter'](_0x36e049=>buildDbDirectoryName(_0x36e049[_0x381697(0x14e)],_0x36e049[_0x381697(0x127)])===_0xab7d26);if(_0x3de22f[_0x381697(0x12a)]===0x1)return{'dbId':_0x3de22f[0x0][_0x381697(0x127)],'dbName':_0x3de22f[0x0][_0x381697(0x14e)]};if(_0x3de22f[_0x381697(0x12a)]===0x0)throw CliErrors[_0x381697(0x12d)](_0x381697(0x13b)+_0xab7d26+_0x381697(0x141)+_0x2a7aa0[_0x381697(0x146)]+'.');const _0x53d06a=_0x3de22f[_0x381697(0x128)](_0x89e2bc=>_0x89e2bc[_0x381697(0x14e)]+'\x20('+_0x89e2bc['dbId']+')')[_0x381697(0x157)](',\x20');throw CliErrors[_0x381697(0x12d)]('Local\x20directory\x20\x22'+_0xab7d26+_0x381697(0x13f)+_0x2a7aa0[_0x381697(0x146)]+':\x20'+_0x53d06a);}function parseExplicitDbDirectory(_0x579613){const _0x451650=a137_0x1e275d,_0x375bd1=/^db-(\d+)$/[_0x451650(0x153)](_0x579613);if(!_0x375bd1)return null;const _0x4331d7=Number(_0x375bd1[0x1]);return Number['isFinite'](_0x4331d7)&&_0x4331d7>0x0?_0x4331d7:null;}function a137_0x1afd(){const _0x57ff4f=['Local\x20SQL\x20not\x20found:\x20','boolean','91431DJrTUs','sqlConfig','high-risk-write','12156YujucD','lockFilePath','unchanged','trashDir','push','version','56ZKHQic','appCode','dbId','map','sqlName','length','toISOString','267051mKNeNK','validation','get','3131324yLdlUK','406040IqbfHD','bool','filter','\x20failed','sqlcode','path','29736806OOYYEK','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','POST','filePath','str','No\x20database\x20matches\x20local\x20directory\x20\x22','sqlRoot','has','remoteId','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','set','\x22\x20for\x20sqlCode\x20','message','lastSync','Push\x20complete:\x20','23kTPjsZ','sqlCode','sqlRootDir','mode','dbDirectory','Push\x20local\x20SQL\x20files\x20to\x20remote','sqls','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','\x20pushed,\x20','dbName','\x20skipped,\x20','/smartapi/custom/updateUserCustomSql','6KbFvOW','force','exec','1562722mMOTZY','relativePath','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','join','projectRoot','No\x20local\x20SQL\x20files\x20found.','1150JNoXmL','hash'];a137_0x1afd=function(){return _0x57ff4f;};return a137_0x1afd();}
1
+ const a137_0x212dcb=a137_0x4618;function a137_0x4618(_0x3eee4a,_0x5e46f5){_0x3eee4a=_0x3eee4a-0xb6;const _0x1adf53=a137_0x1adf();let _0x4618b6=_0x1adf53[_0x3eee4a];return _0x4618b6;}(function(_0x156658,_0x14fe7c){const _0x1593a9=a137_0x4618,_0x39525c=_0x156658();while(!![]){try{const _0x1c9fc5=-parseInt(_0x1593a9(0xb9))/0x1*(-parseInt(_0x1593a9(0xdd))/0x2)+parseInt(_0x1593a9(0xee))/0x3*(parseInt(_0x1593a9(0xbd))/0x4)+-parseInt(_0x1593a9(0xc7))/0x5*(-parseInt(_0x1593a9(0xf1))/0x6)+-parseInt(_0x1593a9(0xc1))/0x7+-parseInt(_0x1593a9(0xde))/0x8+parseInt(_0x1593a9(0xbe))/0x9*(parseInt(_0x1593a9(0xc3))/0xa)+-parseInt(_0x1593a9(0xf6))/0xb;if(_0x1c9fc5===_0x14fe7c)break;else _0x39525c['push'](_0x39525c['shift']());}catch(_0x47c3aa){_0x39525c['push'](_0x39525c['shift']());}}}(a137_0x1adf,0x7b8a3));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 a137_0x1adf(){const _0x33b419=['path','join','Push\x20local\x20SQL\x20files\x20to\x20remote','utf8','sqls','isFinite','Local\x20SQL\x20not\x20found:\x20','Push\x20complete:\x20','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','\x20failed','unchanged','dbDirectory','sqlRoot','No\x20database\x20matches\x20local\x20directory\x20\x22','sqlCode','293466NmEyzF','boolean','entries','618sgujuY','exec','lockFilePath','relativePath','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','7602639zHSYjt','hash','str','catch','mode','\x20skipped,\x20','185cJqSOz','push','dbName','\x20SQL\x20file(s)','12rIrSIf','228141YoTYMx','force','/smartapi/custom/updateUserCustomSql','1271669oZSVIj','filePath','210BmlyFp','get','startsWith','lastSync','15445mXvCKe','appCode','version','remoteId','sqlName','\x22\x20for\x20sqlCode\x20','bool','trashDir','POST','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','replace','sqlcode','\x20pushed,\x20','filter','sqlRootDir','length','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','dbId','sql','map','validation','No\x20local\x20SQL\x20files\x20found.','6710ExqgJd','3086416BBJMij'];a137_0x1adf=function(){return _0x33b419;};return a137_0x1adf();}async function getTargetSqlQueries(_0x3d6f71,_0x17706e,_0x5c0225){const _0x310b55=a137_0x4618,_0x30ef00=await scanLocalSqlQueries(_0x3d6f71),_0x51a686=new Map();for(const _0x48dc26 of _0x30ef00){if(_0x5c0225&&_0x48dc26[_0x310b55(0xed)]!==_0x5c0225)continue;const _0x222c32=_0x51a686[_0x310b55(0xc4)](_0x48dc26[_0x310b55(0xed)])??[];_0x222c32['push'](_0x48dc26),_0x51a686['set'](_0x48dc26[_0x310b55(0xed)],_0x222c32);}if(_0x5c0225&&!_0x51a686['has'](_0x5c0225))throw CliErrors['validation'](_0x310b55(0xe5)+_0x5c0225);const _0x288f8c=[];for(const [_0x131ead,_0x1c2a6e]of _0x51a686[_0x310b55(0xf0)]()){if(_0x1c2a6e[_0x310b55(0xd6)]===0x1){_0x288f8c[_0x310b55(0xba)](_0x1c2a6e[0x0]);continue;}const _0x5b246=_0x17706e[_0x310b55(0xe3)][_0x131ead],_0x2907f8=_0x5b246?.[_0x310b55(0xdf)],_0xfefbeb=_0x2907f8?_0x1c2a6e[_0x310b55(0xd4)](_0x570cb6=>_0x570cb6['relativePath']!==_0x2907f8):_0x1c2a6e;if(_0x5b246&&_0xfefbeb[_0x310b55(0xd6)]===0x1){_0x288f8c['push'](_0xfefbeb[0x0]);continue;}throw CliErrors['validation'](_0x310b55(0xd7)+_0x131ead+_0x310b55(0xe7));}return _0x288f8c;}export const sqlPush={'service':a137_0x212dcb(0xd9),'command':a137_0x212dcb(0xba),'description':a137_0x212dcb(0xe1),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a137_0x212dcb(0xbf),'type':a137_0x212dcb(0xef),'description':a137_0x212dcb(0xf5)}],async 'dryRun'(_0x6c0d17){const _0xcebc04=a137_0x212dcb,_0x10014d=loadSqlProjectConfig(_0x6c0d17[_0xcebc04(0xc8)]),_0x2d32cf=await readSqlLockFile(_0x10014d['lockFilePath']),{appLock:_0x3f5e9e}=ensureSqlLockScope(_0x2d32cf??createEmptySqlLock(),_0x6c0d17['appCode'],_0x10014d[_0xcebc04(0xeb)],_0xcebc04(0xba)),_0x2202d6=await getTargetSqlQueries(_0x10014d,_0x3f5e9e,_0x6c0d17[_0xcebc04(0xf8)](_0xcebc04(0xd2))||undefined),_0xd79cb0=[];for(const _0x166754 of _0x2202d6){const _0x53f108=await computeSqlFileHash(_0x166754[_0xcebc04(0xc2)]),_0x443663=_0x3f5e9e[_0xcebc04(0xe3)][_0x166754[_0xcebc04(0xed)]],_0x6ffb0c=!!_0x443663&&(_0x443663[_0xcebc04(0xdf)]!==_0x166754[_0xcebc04(0xf4)]||!!_0x166754[_0xcebc04(0xcb)]&&_0x443663['sqlName']!==_0x166754['sqlName']);if(!_0x6c0d17[_0xcebc04(0xcd)](_0xcebc04(0xbf))&&_0x443663&&_0x443663[_0xcebc04(0xf7)]===_0x53f108&&!_0x6ffb0c)continue;_0xd79cb0[_0xcebc04(0xba)](_0x166754[_0xcebc04(0xed)]);}return{'method':_0xcebc04(0xcf),'url':_0xcebc04(0xc0),'body':{'sqlCodes':_0xd79cb0,'appCode':_0x6c0d17[_0xcebc04(0xc8)]},'description':'Would\x20push\x20'+_0xd79cb0['length']+_0xcebc04(0xbc)};},async 'execute'(_0x284fb9){const _0x3817e6=a137_0x212dcb,_0x51999e=loadSqlProjectConfig(_0x284fb9[_0x3817e6(0xc8)]),_0x1e734e=await readSqlLockFile(_0x51999e[_0x3817e6(0xf3)]),{lockData:_0x201191,appLock:_0x2fde1d}=ensureSqlLockScope(_0x1e734e??createEmptySqlLock(),_0x284fb9[_0x3817e6(0xc8)],_0x51999e[_0x3817e6(0xeb)],_0x3817e6(0xba)),_0x42cced=await getTargetSqlQueries(_0x51999e,_0x2fde1d,_0x284fb9['str'](_0x3817e6(0xd2))||undefined);if(_0x42cced['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x3817e6(0xdc)};const _0x32f83d=[],_0x2d333a=[],_0x3ff874=[];for(const _0x32d2a9 of _0x42cced){const _0x53982b=_0x2fde1d[_0x3817e6(0xe3)][_0x32d2a9['sqlCode']];if(!_0x53982b){_0x3ff874[_0x3817e6(0xba)]({'sqlCode':_0x32d2a9[_0x3817e6(0xed)],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x444ee7=await computeSqlFileHash(_0x32d2a9[_0x3817e6(0xc2)]),_0x48540f=_0x53982b[_0x3817e6(0xdf)]!==_0x32d2a9[_0x3817e6(0xf4)]||!!_0x32d2a9[_0x3817e6(0xcb)]&&_0x53982b[_0x3817e6(0xcb)]!==_0x32d2a9[_0x3817e6(0xcb)];if(!_0x284fb9['bool'](_0x3817e6(0xbf))&&_0x53982b[_0x3817e6(0xf7)]===_0x444ee7&&!_0x48540f){_0x2d333a[_0x3817e6(0xba)]({'sqlCode':_0x32d2a9['sqlCode'],'reason':_0x3817e6(0xe9)});continue;}if(_0x53982b[_0x3817e6(0xc9)]==null){_0x3ff874['push']({'sqlCode':_0x32d2a9[_0x3817e6(0xed)],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x22d7f4=await readFile(_0x32d2a9[_0x3817e6(0xc2)],_0x3817e6(0xe2)),_0x406b88=stripLocalSqlMetadata(_0x22d7f4,_0x32d2a9[_0x3817e6(0xb7)]),_0x3bd1ce=_0x32d2a9['sqlName']||_0x53982b[_0x3817e6(0xcb)],_0x161d22=await resolveTargetDbBinding(_0x284fb9[_0x3817e6(0xc8)],_0x32d2a9,_0x53982b),_0x28115e=await updateSqlQuery({'id':_0x53982b[_0x3817e6(0xca)],'appCode':_0x284fb9[_0x3817e6(0xc8)],'sqlCode':_0x32d2a9['sqlCode'],'sqlName':_0x3bd1ce,'dbId':_0x161d22[_0x3817e6(0xd8)],'version':_0x53982b[_0x3817e6(0xc9)],'sqlContent':_0x406b88,'sqlConfig':_0x53982b['sqlConfig']??undefined}),_0x175b9a=_0x28115e[_0x3817e6(0xd8)]?await getDbName(_0x284fb9['appCode'],Number(_0x28115e['dbId']))[_0x3817e6(0xb6)](()=>_0x161d22['dbName']):_0x161d22[_0x3817e6(0xbb)];_0x2fde1d[_0x3817e6(0xe3)][_0x32d2a9[_0x3817e6(0xed)]]={...buildSqlLockEntry(_0x28115e,_0x406b88,_0x444ee7,{'dbName':_0x175b9a}),'path':_0x32d2a9[_0x3817e6(0xf4)],'mode':_0x53982b[_0x3817e6(0xb7)]},await archivePreviousSqlFileIfNeeded(_0x51999e,_0x53982b[_0x3817e6(0xdf)],_0x32d2a9['relativePath']),_0x32f83d[_0x3817e6(0xba)]({'sqlCode':_0x32d2a9[_0x3817e6(0xed)],'remoteId':_0x53982b[_0x3817e6(0xca)]});}catch(_0x15f4d9){_0x3ff874[_0x3817e6(0xba)]({'sqlCode':_0x32d2a9[_0x3817e6(0xed)],'error':_0x15f4d9 instanceof Error?_0x15f4d9['message']:String(_0x15f4d9)});}}return _0x2fde1d[_0x3817e6(0xc6)]=new Date()['toISOString'](),await writeSqlLockFile(_0x51999e['lockFilePath'],_0x201191),{'ok':_0x3ff874[_0x3817e6(0xd6)]===0x0,'data':{'pushed':_0x32f83d,'skipped':_0x2d333a,'failed':_0x3ff874},'message':_0x3817e6(0xe6)+_0x32f83d[_0x3817e6(0xd6)]+_0x3817e6(0xd3)+_0x2d333a[_0x3817e6(0xd6)]+_0x3817e6(0xb8)+_0x3ff874[_0x3817e6(0xd6)]+_0x3817e6(0xe8)};}};async function archivePreviousSqlFileIfNeeded(_0x4eed95,_0x247404,_0x3b061f){const _0x3a3754=a137_0x212dcb;if(!_0x247404||_0x247404===_0x3b061f)return;const _0x1a1bea=join(_0x4eed95[_0x3a3754(0xd5)],_0x247404);if(!await fileExists(_0x1a1bea))return;const _0x2366c0=await moveToTrash(_0x4eed95['projectRoot'],_0x4eed95[_0x3a3754(0xce)],_0x1a1bea);await cleanupEmptyDirectories(dirname(_0x1a1bea),_0x4eed95[_0x3a3754(0xd5)]),void _0x2366c0;}async function moveToTrash(_0x555ed7,_0x5a69c8,_0x308925){const _0x31bcde=a137_0x212dcb,_0x7e1148=new Date()['toISOString']()[_0x31bcde(0xd1)](/[:.]/g,'-'),_0x1bdd22=relative(_0x555ed7,_0x308925),_0x595993=join(_0x5a69c8,_0x7e1148,_0x1bdd22);return await mkdir(dirname(_0x595993),{'recursive':!![]}),await rename(_0x308925,_0x595993),_0x595993;}async function cleanupEmptyDirectories(_0x256662,_0x19f85c){const _0x1421bc=a137_0x212dcb;let _0x6a6fea=resolve(_0x256662);const _0x51869c=resolve(_0x19f85c);while(_0x6a6fea[_0x1421bc(0xc5)](''+_0x51869c+sep)||_0x6a6fea===_0x51869c){if(_0x6a6fea===_0x51869c)return;try{const _0x266411=await readdir(_0x6a6fea);if(_0x266411[_0x1421bc(0xd6)]>0x0)return;await rmdir(_0x6a6fea);}catch{return;}_0x6a6fea=dirname(_0x6a6fea);}}async function resolveTargetDbBinding(_0x1027e3,_0x4f9140,_0x17f9a8){const _0x55b21c=a137_0x212dcb,_0x2c9176=_0x4f9140[_0x55b21c(0xea)];if(!_0x2c9176)return{'dbId':_0x17f9a8[_0x55b21c(0xd8)],'dbName':_0x17f9a8[_0x55b21c(0xbb)]};const _0x56a05a=buildDbDirectoryName(_0x17f9a8[_0x55b21c(0xbb)],_0x17f9a8[_0x55b21c(0xd8)]);if(_0x2c9176===_0x56a05a)return{'dbId':_0x17f9a8[_0x55b21c(0xd8)],'dbName':_0x17f9a8[_0x55b21c(0xbb)]};const _0x41a82c=parseExplicitDbDirectory(_0x2c9176);if(_0x41a82c!=null)return{'dbId':_0x41a82c,'dbName':await getDbName(_0x1027e3,_0x41a82c)['catch'](()=>undefined)};const _0x262413=await listDatabases(_0x1027e3),_0x74bef5=_0x262413[_0x55b21c(0xd4)](_0x37e111=>buildDbDirectoryName(_0x37e111['dbName'],_0x37e111[_0x55b21c(0xd8)])===_0x2c9176);if(_0x74bef5['length']===0x1)return{'dbId':_0x74bef5[0x0][_0x55b21c(0xd8)],'dbName':_0x74bef5[0x0]['dbName']};if(_0x74bef5[_0x55b21c(0xd6)]===0x0)throw CliErrors[_0x55b21c(0xdb)](_0x55b21c(0xec)+_0x2c9176+_0x55b21c(0xcc)+_0x4f9140[_0x55b21c(0xed)]+'.');const _0x5d2200=_0x74bef5[_0x55b21c(0xda)](_0x13e6dd=>_0x13e6dd[_0x55b21c(0xbb)]+'\x20('+_0x13e6dd[_0x55b21c(0xd8)]+')')[_0x55b21c(0xe0)](',\x20');throw CliErrors['validation']('Local\x20directory\x20\x22'+_0x2c9176+_0x55b21c(0xd0)+_0x4f9140[_0x55b21c(0xed)]+':\x20'+_0x5d2200);}function parseExplicitDbDirectory(_0x491f2a){const _0x4f8556=a137_0x212dcb,_0x3c5e38=/^db-(\d+)$/[_0x4f8556(0xf2)](_0x491f2a);if(!_0x3c5e38)return null;const _0x416609=Number(_0x3c5e38[0x1]);return Number[_0x4f8556(0xe4)](_0x416609)&&_0x416609>0x0?_0x416609:null;}
@@ -1 +1 @@
1
- function a138_0x4ebb(_0x29e9ff,_0x2a141f){_0x29e9ff=_0x29e9ff-0xc3;const _0x27ad29=a138_0x27ad();let _0x4ebbb4=_0x27ad29[_0x29e9ff];return _0x4ebbb4;}function a138_0x27ad(){const _0x155022=['1691862hdAFLp','10mzQNsh','save','validation','18187763knwJLd','65070sVfPps','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','804YwAckk','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','86927lnOtDp','write','26ZwqkZH','909448oTRxou','join','8785944wtDmyd','Path\x20to\x20the\x20SQL\x20file','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','18780HAhAHY','sql','file','Query\x20description','string','7poTVib','SQL\x20query\x20display\x20name','sqlname'];a138_0x27ad=function(){return _0x155022;};return a138_0x27ad();}const a138_0x24e003=a138_0x4ebb;(function(_0x1c8a7b,_0x3bcb5a){const _0x2ac3b0=a138_0x4ebb,_0x2e233d=_0x1c8a7b();while(!![]){try{const _0x2a9356=-parseInt(_0x2ac3b0(0xca))/0x1*(-parseInt(_0x2ac3b0(0xcc))/0x2)+-parseInt(_0x2ac3b0(0xda))/0x3+-parseInt(_0x2ac3b0(0xc8))/0x4*(parseInt(_0x2ac3b0(0xd2))/0x5)+parseInt(_0x2ac3b0(0xc6))/0x6+-parseInt(_0x2ac3b0(0xd7))/0x7*(-parseInt(_0x2ac3b0(0xcd))/0x8)+-parseInt(_0x2ac3b0(0xcf))/0x9+parseInt(_0x2ac3b0(0xdb))/0xa*(parseInt(_0x2ac3b0(0xc5))/0xb);if(_0x2a9356===_0x3bcb5a)break;else _0x2e233d['push'](_0x2e233d['shift']());}catch(_0x471d78){_0x2e233d['push'](_0x2e233d['shift']());}}}(a138_0x27ad,0x95a14));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a138_0x24e003(0xd1),'Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','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`.'][a138_0x24e003(0xce)]('\x0a');export const sqlSave={'service':a138_0x24e003(0xd3),'command':a138_0x24e003(0xc3),'description':a138_0x24e003(0xc9),'risk':a138_0x24e003(0xcb),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a138_0x24e003(0xd4),'type':'string','required':!![],'description':a138_0x24e003(0xd0)},SQLCODE_FLAG_OPTIONAL,{'name':a138_0x24e003(0xd9),'type':a138_0x24e003(0xd6),'description':a138_0x24e003(0xd8)},{'name':'db','type':a138_0x24e003(0xd6),'description':a138_0x24e003(0xc7)},{'name':'description','type':a138_0x24e003(0xd6),'description':a138_0x24e003(0xd5)}],async 'validate'(){const _0x1d9608=a138_0x24e003;throw CliErrors[_0x1d9608(0xc4)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x150847=a138_0x24e003;throw CliErrors[_0x150847(0xc4)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a138_0x4d36eb=a138_0x289a;(function(_0x30c9b8,_0x381440){const _0x37e339=a138_0x289a,_0x2457fa=_0x30c9b8();while(!![]){try{const _0x3d5091=-parseInt(_0x37e339(0xc6))/0x1+-parseInt(_0x37e339(0xc8))/0x2+-parseInt(_0x37e339(0xce))/0x3+-parseInt(_0x37e339(0xd8))/0x4*(-parseInt(_0x37e339(0xd5))/0x5)+-parseInt(_0x37e339(0xcc))/0x6*(parseInt(_0x37e339(0xd9))/0x7)+-parseInt(_0x37e339(0xc2))/0x8+parseInt(_0x37e339(0xc4))/0x9*(parseInt(_0x37e339(0xc7))/0xa);if(_0x3d5091===_0x381440)break;else _0x2457fa['push'](_0x2457fa['shift']());}catch(_0x28fc08){_0x2457fa['push'](_0x2457fa['shift']());}}}(a138_0x46eb,0xdde60));import{CliErrors}from'../../errors.js';function a138_0x46eb(){const _0x283c37=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','SQL\x20query\x20display\x20name','sqlname','Query\x20description','string','130eWmWBd','save','Path\x20to\x20the\x20SQL\x20file','77176rddhax','2320661dEdmZn','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','790832HdfhKz','write','38690559OIBRZX','file','927952qMsCQA','10DLWlEG','3248270JWYjeb','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','validation','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','6vQONMb','sql','2727705fBobNb','description'];a138_0x46eb=function(){return _0x283c37;};return a138_0x46eb();}function a138_0x289a(_0x774d5f,_0x8e0b5e){_0x774d5f=_0x774d5f-0xc2;const _0x46eb30=a138_0x46eb();let _0x289a56=_0x46eb30[_0x774d5f];return _0x289a56;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a138_0x4d36eb(0xd0),a138_0x4d36eb(0xc9),'Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.']['join']('\x0a');export const sqlSave={'service':a138_0x4d36eb(0xcd),'command':a138_0x4d36eb(0xd6),'description':a138_0x4d36eb(0xda),'risk':a138_0x4d36eb(0xc3),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a138_0x4d36eb(0xc5),'type':a138_0x4d36eb(0xd4),'required':!![],'description':a138_0x4d36eb(0xd7)},SQLCODE_FLAG_OPTIONAL,{'name':a138_0x4d36eb(0xd2),'type':a138_0x4d36eb(0xd4),'description':a138_0x4d36eb(0xd1)},{'name':'db','type':a138_0x4d36eb(0xd4),'description':a138_0x4d36eb(0xcb)},{'name':a138_0x4d36eb(0xcf),'type':a138_0x4d36eb(0xd4),'description':a138_0x4d36eb(0xd3)}],async 'validate'(){const _0x530fc6=a138_0x4d36eb;throw CliErrors[_0x530fc6(0xca)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x9daf32=a138_0x4d36eb;throw CliErrors[_0x9daf32(0xca)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- const a139_0x7762f=a139_0x1fcb;(function(_0x4a41ee,_0x5307d6){const _0x567134=a139_0x1fcb,_0x2fdd9b=_0x4a41ee();while(!![]){try{const _0x587d6a=-parseInt(_0x567134(0xce))/0x1+parseInt(_0x567134(0xdc))/0x2+-parseInt(_0x567134(0xe5))/0x3+parseInt(_0x567134(0xd7))/0x4+parseInt(_0x567134(0xc6))/0x5+-parseInt(_0x567134(0xd4))/0x6*(parseInt(_0x567134(0xd8))/0x7)+parseInt(_0x567134(0xda))/0x8;if(_0x587d6a===_0x5307d6)break;else _0x2fdd9b['push'](_0x2fdd9b['shift']());}catch(_0x2db4f6){_0x2fdd9b['push'](_0x2fdd9b['shift']());}}}(a139_0x1d88,0x8d54a));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=a139_0x7762f(0xe7);export function buildSqlLockEntry(_0x2398fe,_0x5a1ac9,_0x22e2f7,_0x1a0956){const _0x2e9964=a139_0x7762f,_0x5bf685=detectSqlMode(_0x5a1ac9);return{'path':buildSqlRelativePath(_0x2398fe[_0x2e9964(0xdb)],_0x2398fe[_0x2e9964(0xc8)],_0x1a0956?.[_0x2e9964(0xe1)],_0x5bf685,_0x2398fe['dbId']),'hash':_0x22e2f7,'remoteId':_0x2398fe['id'],'version':_0x2398fe[_0x2e9964(0xe0)],'dbId':Number(_0x2398fe['dbId']),'dbName':_0x1a0956?.[_0x2e9964(0xe1)],'sqlName':_0x2398fe[_0x2e9964(0xc8)],'sqlConfig':_0x2398fe[_0x2e9964(0xe4)]??undefined,'mode':_0x5bf685};}export function cloneSqlLockData(_0x45d6ea){const _0x4e9f5b=a139_0x7762f;return{'apps':Object['fromEntries'](Object['entries'](_0x45d6ea['apps'])[_0x4e9f5b(0xe3)](([_0x302247,_0x5f1166])=>[_0x302247,{'sqlRoot':_0x5f1166[_0x4e9f5b(0xea)],'lastSync':_0x5f1166[_0x4e9f5b(0xed)],'sqls':{..._0x5f1166[_0x4e9f5b(0xec)]}}]))};}export function ensureRemoteSqlContent(_0x5b5c30){const _0x28f896=a139_0x7762f;return _0x5b5c30[_0x28f896(0xd3)]??'';}export function buildLocalSqlFileContent(_0x486a70,_0x5b1644,_0x161c51){const _0x2637ae=a139_0x7762f,_0x44a5ac=_0x161c51?.[_0x2637ae(0xd0)]??detectSqlMode(_0x5b1644),_0xf86499=stripLocalSqlMetadata(_0x5b1644,_0x44a5ac)[_0x2637ae(0xd1)](),_0x416865=[...buildMetadataHeaderLines({'sqlCode':_0x486a70[_0x2637ae(0xdb)],'sqlName':_0x486a70[_0x2637ae(0xc8)],'dbId':_0x486a70[_0x2637ae(0xdd)],'dbName':_0x161c51?.[_0x2637ae(0xe1)],'mode':_0x44a5ac,'syncedAt':_0x161c51?.['syncedAt'],'description':_0x161c51?.[_0x2637ae(0xcb)]},_0x44a5ac),'',_0xf86499],_0x47c217=_0x416865[_0x2637ae(0xc9)]('\x0a');return _0x47c217[_0x2637ae(0xd6)]('\x0a')?_0x47c217:_0x47c217+'\x0a';}export function stripLocalSqlMetadata(_0x50332a,_0x251ce1){const _0x34d747=a139_0x7762f,_0xe7e123=_0x50332a[_0x34d747(0xc7)](/\r\n/g,'\x0a')['split']('\x0a'),_0x27e4a7=[];let _0x27443d=0x0;if(_0x251ce1===_0x34d747(0xe9))while(_0x27443d<_0xe7e123[_0x34d747(0xca)]){const _0x484825=_0xe7e123[_0x27443d]??'';if(/^\s*<!--\s*@lovrabet\./[_0x34d747(0xe8)](_0x484825)){_0x27443d++;continue;}if(_0x484825['trim']()===''&&_0x27443d>0x0){_0x27443d++;continue;}break;}else while(_0x27443d<_0xe7e123[_0x34d747(0xca)]){const _0x330767=_0xe7e123[_0x27443d]??'';if(/^\s*--\s*@lovrabet\./['test'](_0x330767)){_0x27443d++;continue;}if(_0x330767[_0x34d747(0xd1)]()===''&&_0x27443d>0x0){_0x27443d++;continue;}break;}for(;_0x27443d<_0xe7e123[_0x34d747(0xca)];_0x27443d++){_0x27e4a7[_0x34d747(0xd2)](_0xe7e123[_0x27443d]);}return _0x27e4a7[_0x34d747(0xc9)]('\x0a')[_0x34d747(0xdf)]();}export function resolveSqlMode(_0x374ff,_0xddd471){const _0x4fad28=a139_0x7762f;if(_0xddd471?.['mode'])return _0xddd471[_0x4fad28(0xd0)];return detectSqlMode(_0x374ff);}export function resolveSqlFileName(_0x1ca3f4,_0x4b4152,_0xfc56fa){const _0x5be2e1=a139_0x7762f;if(_0xfc56fa?.['path'])return _0xfc56fa[_0x5be2e1(0xe6)];if(_0xfc56fa?.[_0x5be2e1(0xc8)]||_0xfc56fa?.[_0x5be2e1(0xe1)])return buildSqlRelativePath(_0x1ca3f4,_0xfc56fa?.[_0x5be2e1(0xc8)],_0xfc56fa?.[_0x5be2e1(0xe1)],resolveSqlMode(_0x4b4152,_0xfc56fa),_0xfc56fa?.[_0x5be2e1(0xdd)]);return buildDefaultSqlFileName(_0x1ca3f4,resolveSqlMode(_0x4b4152,_0xfc56fa));}export function resolveSqlLocalDir(_0x7043ce,_0x2036f3){return join(_0x7043ce,SQL_LOCAL_REL_DIR,_0x2036f3);}export async function confirmForceOverwrite(_0x447e0a){const _0x52a985=a139_0x7762f,_0x55ce6b=createInterface({'input':process[_0x52a985(0xee)],'output':process['stderr']}),_0x21497a=await new Promise(_0x2115f7=>{const _0x4d3c21=_0x52a985;_0x55ce6b['question'](_0x447e0a+_0x4d3c21(0xeb),_0x2115f7);});return _0x55ce6b['close'](),['y',_0x52a985(0xcc)][_0x52a985(0xcf)](_0x21497a[_0x52a985(0xd1)]()['toLowerCase']());}export function findSqlLockScope(_0xe54859,_0x33d245){const _0x51c808=a139_0x7762f;return _0xe54859[_0x51c808(0xcd)][_0x33d245];}function a139_0x1d88(){const _0x4201b8=['filter','endsWith','2866140Fpvqrp','329PWfycc','syncedAt','5230072izORmR','sqlCode','521796wdHdld','dbId','--\x20@lovrabet.','trimStart','version','dbName','<!--\x20@lovrabet.','map','sqlConfig','620361LWjbxC','path','.rabetbase/sql','test','mybatisXml','sqlRoot','\x20[y/N]\x20','sqls','lastSync','stdin','1271215JiRmam','replace','sqlName','join','length','description','yes','apps','251643RtfKVh','includes','mode','trim','push','sqlContent','108270eXpopa'];a139_0x1d88=function(){return _0x4201b8;};return a139_0x1d88();}function a139_0x1fcb(_0xb2ebf0,_0x7fdb4b){_0xb2ebf0=_0xb2ebf0-0xc6;const _0x1d887d=a139_0x1d88();let _0x1fcb96=_0x1d887d[_0xb2ebf0];return _0x1fcb96;}function buildMetadataHeaderLines(_0x1cf35b,_0x1302a8){const _0x153cf3=a139_0x7762f,_0x539256=[['sqlCode',_0x1cf35b[_0x153cf3(0xdb)]],[_0x153cf3(0xc8),_0x1cf35b['sqlName']],[_0x153cf3(0xdd),_0x1cf35b['dbId']],[_0x153cf3(0xe1),_0x1cf35b[_0x153cf3(0xe1)]],[_0x153cf3(0xd0),_0x1cf35b['mode']],[_0x153cf3(0xd9),_0x1cf35b[_0x153cf3(0xd9)]],[_0x153cf3(0xcb),_0x1cf35b[_0x153cf3(0xcb)]]];if(_0x1302a8===_0x153cf3(0xe9))return _0x539256[_0x153cf3(0xd5)](([,_0x4326e8])=>_0x4326e8!==undefined&&_0x4326e8!==null&&String(_0x4326e8)[_0x153cf3(0xd1)]()!=='')[_0x153cf3(0xe3)](([_0x4634ba,_0x2b8788])=>_0x153cf3(0xe2)+_0x4634ba+':\x20'+String(_0x2b8788)+'\x20-->');return _0x539256[_0x153cf3(0xd5)](([,_0x3d0309])=>_0x3d0309!==undefined&&_0x3d0309!==null&&String(_0x3d0309)[_0x153cf3(0xd1)]()!=='')[_0x153cf3(0xe3)](([_0x42864e,_0x549683])=>_0x153cf3(0xde)+_0x42864e+':\x20'+String(_0x549683));}
1
+ (function(_0x139db4,_0x41c2a8){const _0x40038b=a139_0x33b7,_0x4e4734=_0x139db4();while(!![]){try{const _0x20074a=parseInt(_0x40038b(0x10c))/0x1+-parseInt(_0x40038b(0x123))/0x2*(-parseInt(_0x40038b(0x114))/0x3)+-parseInt(_0x40038b(0x10e))/0x4*(parseInt(_0x40038b(0x116))/0x5)+parseInt(_0x40038b(0x113))/0x6+parseInt(_0x40038b(0x10b))/0x7+parseInt(_0x40038b(0x105))/0x8+-parseInt(_0x40038b(0x10a))/0x9*(parseInt(_0x40038b(0x11d))/0xa);if(_0x20074a===_0x41c2a8)break;else _0x4e4734['push'](_0x4e4734['shift']());}catch(_0x3cc9e6){_0x4e4734['push'](_0x4e4734['shift']());}}}(a139_0x55e5,0x61dcf));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x2e910d,_0x431ca8,_0x607993,_0x53f90a){const _0x957146=a139_0x33b7,_0xe45536=detectSqlMode(_0x431ca8);return{'path':buildSqlRelativePath(_0x2e910d[_0x957146(0x106)],_0x2e910d[_0x957146(0x110)],_0x53f90a?.[_0x957146(0x122)],_0xe45536,_0x2e910d['dbId']),'hash':_0x607993,'remoteId':_0x2e910d['id'],'version':_0x2e910d[_0x957146(0x11a)],'dbId':Number(_0x2e910d[_0x957146(0x117)]),'dbName':_0x53f90a?.['dbName'],'sqlName':_0x2e910d[_0x957146(0x110)],'sqlConfig':_0x2e910d[_0x957146(0x125)]??undefined,'mode':_0xe45536};}export function cloneSqlLockData(_0x1f2937){const _0x586208=a139_0x33b7;return{'apps':Object[_0x586208(0x118)](Object[_0x586208(0x11e)](_0x1f2937[_0x586208(0x119)])['map'](([_0xb11dea,_0x4fefa2])=>[_0xb11dea,{'sqlRoot':_0x4fefa2['sqlRoot'],'lastSync':_0x4fefa2['lastSync'],'sqls':{..._0x4fefa2['sqls']}}]))};}export function ensureRemoteSqlContent(_0x3167e5){const _0x1fadee=a139_0x33b7;return _0x3167e5[_0x1fadee(0x109)]??'';}export function buildLocalSqlFileContent(_0x1fca36,_0x2c3c6d,_0x588e73){const _0x91fa9e=a139_0x33b7,_0x53de58=_0x588e73?.[_0x91fa9e(0x128)]??detectSqlMode(_0x2c3c6d),_0x28c7a0=stripLocalSqlMetadata(_0x2c3c6d,_0x53de58)[_0x91fa9e(0x104)](),_0x1c14ce=[...buildMetadataHeaderLines({'sqlCode':_0x1fca36[_0x91fa9e(0x106)],'sqlName':_0x1fca36[_0x91fa9e(0x110)],'dbId':_0x1fca36['dbId'],'dbName':_0x588e73?.[_0x91fa9e(0x122)],'mode':_0x53de58,'syncedAt':_0x588e73?.[_0x91fa9e(0x10f)],'description':_0x588e73?.[_0x91fa9e(0x112)]},_0x53de58),'',_0x28c7a0],_0x5d1293=_0x1c14ce[_0x91fa9e(0x11f)]('\x0a');return _0x5d1293[_0x91fa9e(0x102)]('\x0a')?_0x5d1293:_0x5d1293+'\x0a';}export function stripLocalSqlMetadata(_0x442f7f,_0x521ee8){const _0x27123b=a139_0x33b7,_0x5bb8ef=_0x442f7f['replace'](/\r\n/g,'\x0a')[_0x27123b(0x108)]('\x0a'),_0x349523=[];let _0x2813c4=0x0;if(_0x521ee8==='mybatisXml')while(_0x2813c4<_0x5bb8ef[_0x27123b(0x111)]){const _0x58c882=_0x5bb8ef[_0x2813c4]??'';if(/^\s*<!--\s*@lovrabet\./[_0x27123b(0x100)](_0x58c882)){_0x2813c4++;continue;}if(_0x58c882[_0x27123b(0x104)]()===''&&_0x2813c4>0x0){_0x2813c4++;continue;}break;}else while(_0x2813c4<_0x5bb8ef[_0x27123b(0x111)]){const _0x505378=_0x5bb8ef[_0x2813c4]??'';if(/^\s*--\s*@lovrabet\./[_0x27123b(0x100)](_0x505378)){_0x2813c4++;continue;}if(_0x505378[_0x27123b(0x104)]()===''&&_0x2813c4>0x0){_0x2813c4++;continue;}break;}for(;_0x2813c4<_0x5bb8ef[_0x27123b(0x111)];_0x2813c4++){_0x349523[_0x27123b(0x107)](_0x5bb8ef[_0x2813c4]);}return _0x349523[_0x27123b(0x11f)]('\x0a')[_0x27123b(0x115)]();}export function resolveSqlMode(_0x23ce60,_0xfd0980){const _0x3fe85a=a139_0x33b7;if(_0xfd0980?.[_0x3fe85a(0x128)])return _0xfd0980[_0x3fe85a(0x128)];return detectSqlMode(_0x23ce60);}function a139_0x33b7(_0x9c73f0,_0x28566f){_0x9c73f0=_0x9c73f0-0x100;const _0x55e526=a139_0x55e5();let _0x33b7f2=_0x55e526[_0x9c73f0];return _0x33b7f2;}export function resolveSqlFileName(_0x48039e,_0x119390,_0x527a52){const _0x1d921a=a139_0x33b7;if(_0x527a52?.['path'])return _0x527a52['path'];if(_0x527a52?.[_0x1d921a(0x110)]||_0x527a52?.[_0x1d921a(0x122)])return buildSqlRelativePath(_0x48039e,_0x527a52?.['sqlName'],_0x527a52?.['dbName'],resolveSqlMode(_0x119390,_0x527a52),_0x527a52?.[_0x1d921a(0x117)]);return buildDefaultSqlFileName(_0x48039e,resolveSqlMode(_0x119390,_0x527a52));}export function resolveSqlLocalDir(_0x525bef,_0x1a1500){return join(_0x525bef,SQL_LOCAL_REL_DIR,_0x1a1500);}export async function confirmForceOverwrite(_0xb62cc5){const _0x55b81f=a139_0x33b7,_0x5ca9c9=createInterface({'input':process[_0x55b81f(0x11c)],'output':process[_0x55b81f(0x120)]}),_0x14302b=await new Promise(_0x54f843=>{const _0x4bf138=_0x55b81f;_0x5ca9c9[_0x4bf138(0x124)](_0xb62cc5+_0x4bf138(0x101),_0x54f843);});return _0x5ca9c9['close'](),['y','yes'][_0x55b81f(0x10d)](_0x14302b[_0x55b81f(0x104)]()[_0x55b81f(0x129)]());}function a139_0x55e5(){const _0x462590=['2631cQPtAG','trimStart','5FwzlJv','dbId','fromEntries','apps','version','mybatisXml','stdin','10yFzyml','entries','join','stderr','<!--\x20@lovrabet.','dbName','334CLwzmY','question','sqlConfig','filter','\x20-->','mode','toLowerCase','test','\x20[y/N]\x20','endsWith','map','trim','580136MpRsyt','sqlCode','push','split','sqlContent','10983753LuErHy','4672948wTSAuI','486648HdtBtc','includes','72916kbVJBA','syncedAt','sqlName','length','description','1597830vQxZcy'];a139_0x55e5=function(){return _0x462590;};return a139_0x55e5();}export function findSqlLockScope(_0x5bbe21,_0x87526b){return _0x5bbe21['apps'][_0x87526b];}function buildMetadataHeaderLines(_0x3b5f15,_0x374f6d){const _0x415576=a139_0x33b7,_0x5d85bb=[['sqlCode',_0x3b5f15[_0x415576(0x106)]],[_0x415576(0x110),_0x3b5f15[_0x415576(0x110)]],['dbId',_0x3b5f15[_0x415576(0x117)]],[_0x415576(0x122),_0x3b5f15[_0x415576(0x122)]],[_0x415576(0x128),_0x3b5f15[_0x415576(0x128)]],[_0x415576(0x10f),_0x3b5f15[_0x415576(0x10f)]],['description',_0x3b5f15[_0x415576(0x112)]]];if(_0x374f6d===_0x415576(0x11b))return _0x5d85bb[_0x415576(0x126)](([,_0x538c53])=>_0x538c53!==undefined&&_0x538c53!==null&&String(_0x538c53)[_0x415576(0x104)]()!=='')['map'](([_0x255b81,_0xdab581])=>_0x415576(0x121)+_0x255b81+':\x20'+String(_0xdab581)+_0x415576(0x127));return _0x5d85bb[_0x415576(0x126)](([,_0x1f6037])=>_0x1f6037!==undefined&&_0x1f6037!==null&&String(_0x1f6037)[_0x415576(0x104)]()!=='')[_0x415576(0x103)](([_0x3c5cbd,_0x1adef2])=>'--\x20@lovrabet.'+_0x3c5cbd+':\x20'+String(_0x1adef2));}
@@ -1 +1 @@
1
- const a140_0x559aef=a140_0x378b;(function(_0x197116,_0x22409a){const _0x195584=a140_0x378b,_0x58c299=_0x197116();while(!![]){try{const _0x57cdd4=-parseInt(_0x195584(0x148))/0x1+-parseInt(_0x195584(0x135))/0x2*(-parseInt(_0x195584(0x145))/0x3)+parseInt(_0x195584(0x139))/0x4+parseInt(_0x195584(0x133))/0x5+-parseInt(_0x195584(0x138))/0x6+-parseInt(_0x195584(0x13b))/0x7+parseInt(_0x195584(0x132))/0x8;if(_0x57cdd4===_0x22409a)break;else _0x58c299['push'](_0x58c299['shift']());}catch(_0x542f76){_0x58c299['push'](_0x58c299['shift']());}}}(a140_0x50af,0x3698d));import{listSqlQueries}from'../../core/api-client.js';function a140_0x378b(_0x4de4a0,_0x4f4512){_0x4de4a0=_0x4de4a0-0x127;const _0x50af45=a140_0x50af();let _0x378bc8=_0x50af45[_0x4de4a0];return _0x378bc8;}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;function a140_0x50af(){const _0x3ad850=['length','\x20remote-only','sqlCode','lockKey','bool','push','totalCount','\x20modified,\x20','relativePath','372942hcznmu','remote','paging','207357BOcHGE','keys','hash','filePath','appCode','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','read','status','\x20added,\x20','has','sqls','path','tableData','4061360pbJogU','286435lHRFkO','\x20unchanged','4HKQeFS','map','All\x20SQL\x20queries\x20are\x20in\x20sync.','805104IKDBNB','655340itWMLO','sqlName','2885750BAWNVD'];a140_0x50af=function(){return _0x3ad850;};return a140_0x50af();}async function fetchAllSqlCodes(_0x34e136){const _0x2dd561=a140_0x378b,_0x34e6f0=[];let _0x33b6c6=0x1;while(!![]){const _0x298cf1=await listSqlQueries(_0x34e136,{'currentPage':_0x33b6c6,'pageSize':PAGE_SIZE}),_0x16318f=_0x298cf1[_0x2dd561(0x131)]??[];_0x34e6f0[_0x2dd561(0x141)](..._0x16318f['map'](_0x2222d4=>_0x2222d4[_0x2dd561(0x13e)]));if(_0x16318f['length']===0x0)break;const _0x289a8f=_0x298cf1[_0x2dd561(0x147)]?.[_0x2dd561(0x142)];if(_0x289a8f!=null?_0x34e6f0[_0x2dd561(0x13c)]>=_0x289a8f:_0x16318f[_0x2dd561(0x13c)]<PAGE_SIZE)break;_0x33b6c6++;}return _0x34e6f0;}export const sqlStatus={'service':'sql','command':a140_0x559aef(0x12c),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':a140_0x559aef(0x12b),'flags':[{'name':a140_0x559aef(0x146),'type':'boolean','description':a140_0x559aef(0x12a)}],async 'execute'(_0x1eee68){const _0x766ac1=a140_0x559aef,_0x26fdf5=loadSqlProjectConfig(_0x1eee68[_0x766ac1(0x129)]),_0x5adb30=await readSqlLockFile(_0x26fdf5['lockFilePath']),{appLock:_0xcd6b32}=ensureSqlLockScope(_0x5adb30??createEmptySqlLock(),_0x26fdf5[_0x766ac1(0x129)],_0x26fdf5['sqlRoot'],_0x766ac1(0x12c)),_0x26893d=await scanLocalSqlQueries(_0x26fdf5),_0x8aa4ba=[],_0x4f1572=[],_0x3321e4=[],_0x525cfc=[],_0x3b9292=new Set(_0x26893d[_0x766ac1(0x136)](_0x3d5907=>_0x3d5907[_0x766ac1(0x13f)]));for(const _0x4370ea of _0x26893d){const _0x37f437=await computeSqlFileHash(_0x4370ea[_0x766ac1(0x128)]),_0x16238a=_0xcd6b32[_0x766ac1(0x12f)][_0x4370ea[_0x766ac1(0x13f)]],_0x4cf02d=!!_0x16238a&&_0x16238a[_0x766ac1(0x130)]!==_0x4370ea[_0x766ac1(0x144)],_0x8ba31d=!!_0x16238a&&!!_0x4370ea[_0x766ac1(0x13a)]&&_0x16238a['sqlName']!==_0x4370ea['sqlName'];if(!_0x16238a)_0x8aa4ba[_0x766ac1(0x141)](_0x4370ea['lockKey']);else _0x16238a[_0x766ac1(0x127)]!==_0x37f437||_0x4cf02d||_0x8ba31d?_0x4f1572['push'](_0x4370ea[_0x766ac1(0x13f)]):_0x3321e4[_0x766ac1(0x141)](_0x4370ea[_0x766ac1(0x13f)]);}for(const _0x407193 of Object[_0x766ac1(0x149)](_0xcd6b32[_0x766ac1(0x12f)])){!_0x3b9292[_0x766ac1(0x12e)](_0x407193)&&_0x525cfc[_0x766ac1(0x141)](_0x407193);}const _0x5d25a5=[];if(_0x1eee68[_0x766ac1(0x140)]('remote')){const _0x3ba5c4=await fetchAllSqlCodes(_0x1eee68['appCode']);for(const _0x28596f of _0x3ba5c4){!_0x3b9292['has'](_0x28596f)&&!_0xcd6b32[_0x766ac1(0x12f)][_0x28596f]&&_0x5d25a5[_0x766ac1(0x141)](_0x28596f);}}const _0x5012fa=_0x8aa4ba['length']===0x0&&_0x4f1572[_0x766ac1(0x13c)]===0x0&&_0x525cfc[_0x766ac1(0x13c)]===0x0&&_0x5d25a5['length']===0x0;return{'ok':!![],'data':{'added':_0x8aa4ba,'modified':_0x4f1572,'missing':_0x525cfc,'unchanged':_0x3321e4,'remoteOnly':_0x5d25a5},'message':_0x5012fa?_0x766ac1(0x137):_0x8aa4ba[_0x766ac1(0x13c)]+_0x766ac1(0x12d)+_0x4f1572['length']+_0x766ac1(0x143)+_0x525cfc[_0x766ac1(0x13c)]+'\x20missing,\x20'+_0x3321e4[_0x766ac1(0x13c)]+_0x766ac1(0x134)+(_0x5d25a5[_0x766ac1(0x13c)]>0x0?',\x20'+_0x5d25a5[_0x766ac1(0x13c)]+_0x766ac1(0x13d):'')};}};
1
+ const a140_0x2e0062=a140_0x51cc;(function(_0xb9db54,_0x5853ce){const _0x27c8a2=a140_0x51cc,_0x213ec3=_0xb9db54();while(!![]){try{const _0x1322b5=-parseInt(_0x27c8a2(0x1a6))/0x1*(parseInt(_0x27c8a2(0x19c))/0x2)+-parseInt(_0x27c8a2(0x1a4))/0x3*(parseInt(_0x27c8a2(0x198))/0x4)+parseInt(_0x27c8a2(0x197))/0x5+-parseInt(_0x27c8a2(0x199))/0x6+-parseInt(_0x27c8a2(0x196))/0x7*(parseInt(_0x27c8a2(0x1a0))/0x8)+-parseInt(_0x27c8a2(0x18a))/0x9*(parseInt(_0x27c8a2(0x194))/0xa)+parseInt(_0x27c8a2(0x1a3))/0xb*(parseInt(_0x27c8a2(0x18f))/0xc);if(_0x1322b5===_0x5853ce)break;else _0x213ec3['push'](_0x213ec3['shift']());}catch(_0xd91e7d){_0x213ec3['push'](_0x213ec3['shift']());}}}(a140_0x40a6,0xedde6));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';function a140_0x40a6(){const _0x47ca2b=['\x20added,\x20','hash','30BVKsGW','relativePath','164227KTunLb','5126835rcsGLD','52MyCXVQ','2568636eodqhg','map','tableData','2482214oHLGuv','filePath','read','sqlName','144JhPYih','All\x20SQL\x20queries\x20are\x20in\x20sync.','sqls','85547UiHzlI','422649etilda','remote','1EgUFSm','has','lockFilePath','bool','\x20missing,\x20','\x20modified,\x20','status','sqlCode','length','path','keys','appCode','4575915jKIRfn','paging','lockKey','\x20unchanged','sqlRoot','8328WFNWsP','push','sql'];a140_0x40a6=function(){return _0x47ca2b;};return a140_0x40a6();}function a140_0x51cc(_0x439112,_0x53c6f6){_0x439112=_0x439112-0x188;const _0x40a6bf=a140_0x40a6();let _0x51ccb8=_0x40a6bf[_0x439112];return _0x51ccb8;}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x5f35f7){const _0x1227ec=a140_0x51cc,_0x141e1c=[];let _0x46fa11=0x1;while(!![]){const _0x20e473=await listSqlQueries(_0x5f35f7,{'currentPage':_0x46fa11,'pageSize':PAGE_SIZE}),_0x33900f=_0x20e473[_0x1227ec(0x19b)]??[];_0x141e1c['push'](..._0x33900f[_0x1227ec(0x19a)](_0x28101a=>_0x28101a[_0x1227ec(0x1ad)]));if(_0x33900f[_0x1227ec(0x1ae)]===0x0)break;const _0x339db5=_0x20e473[_0x1227ec(0x18b)]?.['totalCount'];if(_0x339db5!=null?_0x141e1c[_0x1227ec(0x1ae)]>=_0x339db5:_0x33900f[_0x1227ec(0x1ae)]<PAGE_SIZE)break;_0x46fa11++;}return _0x141e1c;}export const sqlStatus={'service':a140_0x2e0062(0x191),'command':a140_0x2e0062(0x1ac),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':a140_0x2e0062(0x19e),'flags':[{'name':'remote','type':'boolean','description':'Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally'}],async 'execute'(_0x5af525){const _0x301523=a140_0x2e0062,_0x5942ed=loadSqlProjectConfig(_0x5af525[_0x301523(0x189)]),_0x36536f=await readSqlLockFile(_0x5942ed[_0x301523(0x1a8)]),{appLock:_0x349d12}=ensureSqlLockScope(_0x36536f??createEmptySqlLock(),_0x5942ed['appCode'],_0x5942ed[_0x301523(0x18e)],_0x301523(0x1ac)),_0x211a99=await scanLocalSqlQueries(_0x5942ed),_0x352d85=[],_0x28fd49=[],_0x2fe25d=[],_0x5058f9=[],_0x18dc79=new Set(_0x211a99['map'](_0x5be55e=>_0x5be55e[_0x301523(0x18c)]));for(const _0x351cb6 of _0x211a99){const _0x282204=await computeSqlFileHash(_0x351cb6[_0x301523(0x19d)]),_0x5ceaa4=_0x349d12[_0x301523(0x1a2)][_0x351cb6['lockKey']],_0x527d2f=!!_0x5ceaa4&&_0x5ceaa4[_0x301523(0x1af)]!==_0x351cb6[_0x301523(0x195)],_0x4013f5=!!_0x5ceaa4&&!!_0x351cb6['sqlName']&&_0x5ceaa4[_0x301523(0x19f)]!==_0x351cb6[_0x301523(0x19f)];if(!_0x5ceaa4)_0x352d85[_0x301523(0x190)](_0x351cb6[_0x301523(0x18c)]);else _0x5ceaa4[_0x301523(0x193)]!==_0x282204||_0x527d2f||_0x4013f5?_0x28fd49['push'](_0x351cb6[_0x301523(0x18c)]):_0x2fe25d[_0x301523(0x190)](_0x351cb6['lockKey']);}for(const _0x7227ac of Object[_0x301523(0x188)](_0x349d12[_0x301523(0x1a2)])){!_0x18dc79['has'](_0x7227ac)&&_0x5058f9[_0x301523(0x190)](_0x7227ac);}const _0x30a3d2=[];if(_0x5af525[_0x301523(0x1a9)](_0x301523(0x1a5))){const _0x4c1db5=await fetchAllSqlCodes(_0x5af525[_0x301523(0x189)]);for(const _0x17382b of _0x4c1db5){!_0x18dc79[_0x301523(0x1a7)](_0x17382b)&&!_0x349d12[_0x301523(0x1a2)][_0x17382b]&&_0x30a3d2[_0x301523(0x190)](_0x17382b);}}const _0x26988b=_0x352d85[_0x301523(0x1ae)]===0x0&&_0x28fd49[_0x301523(0x1ae)]===0x0&&_0x5058f9[_0x301523(0x1ae)]===0x0&&_0x30a3d2[_0x301523(0x1ae)]===0x0;return{'ok':!![],'data':{'added':_0x352d85,'modified':_0x28fd49,'missing':_0x5058f9,'unchanged':_0x2fe25d,'remoteOnly':_0x30a3d2},'message':_0x26988b?_0x301523(0x1a1):_0x352d85[_0x301523(0x1ae)]+_0x301523(0x192)+_0x28fd49[_0x301523(0x1ae)]+_0x301523(0x1ab)+_0x5058f9[_0x301523(0x1ae)]+_0x301523(0x1aa)+_0x2fe25d[_0x301523(0x1ae)]+_0x301523(0x18d)+(_0x30a3d2[_0x301523(0x1ae)]>0x0?',\x20'+_0x30a3d2[_0x301523(0x1ae)]+'\x20remote-only':'')};}};
@@ -1 +1 @@
1
- const a141_0x15c071=a141_0x13da;(function(_0x34f2da,_0x59efb2){const _0x57200b=a141_0x13da,_0xc4415d=_0x34f2da();while(!![]){try{const _0x23fa4d=-parseInt(_0x57200b(0x1aa))/0x1+parseInt(_0x57200b(0x1ca))/0x2+parseInt(_0x57200b(0x1ba))/0x3*(-parseInt(_0x57200b(0x1a5))/0x4)+-parseInt(_0x57200b(0x1cb))/0x5*(parseInt(_0x57200b(0x1bd))/0x6)+parseInt(_0x57200b(0x1ce))/0x7+parseInt(_0x57200b(0x1b3))/0x8*(-parseInt(_0x57200b(0x1b1))/0x9)+parseInt(_0x57200b(0x1b5))/0xa;if(_0x23fa4d===_0x59efb2)break;else _0xc4415d['push'](_0xc4415d['shift']());}catch(_0x5d4575){_0xc4415d['push'](_0xc4415d['shift']());}}}(a141_0x58f2,0x3ebb7));import{readFileSync,existsSync}from'node:fs';function a141_0x58f2(){const _0xc9f0f1=['name','tables','file','map','appCode','Provide\x20--file\x20or\x20--sql','parameters','reason','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','604992rzQMEE','15qiAJYe','get','validate','2713557AGdgsy','Dataset\x20\x22','schemas','\x22\x20not\x20found\x20in\x20any\x20dataset','filter','trim','fields','tableName','sqlType','toLowerCase','164cvjiaF','push','from','dbtableConfig','flagMissing','4413yLxyAB','length','string','SQL\x20schema\x20validation','validation','type','utf-8','2007FLximh','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','12440Ruztzk','sql','4109710hfeNdt','isSelectOnly','str','isDangerous','read','28209XwVKGL','size','cwd','214932wMSzmH','valid','message','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'];a141_0x58f2=function(){return _0xc9f0f1;};return a141_0x58f2();}import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';function a141_0x13da(_0x4897cd,_0x5042d0){_0x4897cd=_0x4897cd-0x1a3;const _0x58f23e=a141_0x58f2();let _0x13da9b=_0x58f23e[_0x4897cd];return _0x13da9b;}import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':'sql','command':a141_0x15c071(0x1cd),'description':a141_0x15c071(0x1b2),'risk':a141_0x15c071(0x1b9),'flags':[{'name':a141_0x15c071(0x1c3),'type':a141_0x15c071(0x1ac),'description':'Path\x20to\x20the\x20SQL\x20file\x20to\x20validate'},{'name':'sql','type':'string','description':a141_0x15c071(0x1c0)},{'name':a141_0x15c071(0x1d0),'type':'string','description':a141_0x15c071(0x1c9)}],async 'execute'(_0x5bf8c1){const _0x16359f=a141_0x15c071,_0x3bfeef=_0x5bf8c1[_0x16359f(0x1b7)](_0x16359f(0x1c3)),_0x333bb4=_0x5bf8c1[_0x16359f(0x1b7)](_0x16359f(0x1b4));if(!_0x3bfeef&&!_0x333bb4)throw CliErrors[_0x16359f(0x1a9)](_0x16359f(0x1c3),_0x16359f(0x1c6));let _0x18872a;if(_0x3bfeef){const _0x5aee38=resolve(process[_0x16359f(0x1bc)](),_0x3bfeef);if(!existsSync(_0x5aee38))throw CliErrors[_0x16359f(0x1ae)]('File\x20not\x20found:\x20'+_0x5aee38);_0x18872a=readFileSync(_0x5aee38,_0x16359f(0x1b0));}else _0x18872a=_0x333bb4;const _0x20c214=validateSql(_0x18872a),_0xec992b={'valid':_0x20c214[_0x16359f(0x1be)],'sqlType':_0x20c214[_0x16359f(0x1a3)][_0x16359f(0x1af)],'isSelectOnly':_0x20c214[_0x16359f(0x1a3)][_0x16359f(0x1b6)],'isDangerous':_0x20c214[_0x16359f(0x1a3)][_0x16359f(0x1b8)],'tables':_0x20c214[_0x16359f(0x1c2)],'parameters':_0x20c214[_0x16359f(0x1c7)],'message':_0x20c214[_0x16359f(0x1bf)]};_0x20c214[_0x16359f(0x1a3)][_0x16359f(0x1c8)]&&(_0xec992b[_0x16359f(0x1c8)]=_0x20c214[_0x16359f(0x1a3)]['reason']);const _0x1c5fba=_0x5bf8c1[_0x16359f(0x1b7)]('schemas');if(_0x1c5fba&&_0x20c214[_0x16359f(0x1be)]){const _0xb31585=_0x1c5fba['split'](',')[_0x16359f(0x1c4)](_0x1fdf2a=>_0x1fdf2a[_0x16359f(0x1d3)]())[_0x16359f(0x1d2)](Boolean),_0x5930d7=[],_0x4b01c1=filterDbTableBackedDatasets(await listDatasets(_0x5bf8c1[_0x16359f(0x1c5)])),_0x4b1191=new Map(_0x4b01c1[_0x16359f(0x1c4)](_0x58a9c5=>[_0x58a9c5[_0x16359f(0x1a8)]?.[_0x16359f(0x1d5)]?.[_0x16359f(0x1a4)](),_0x58a9c5]));for(const _0x340cda of _0x20c214['tables']){const _0x253d48=_0x4b1191[_0x16359f(0x1cc)](_0x340cda[_0x16359f(0x1a4)]());!_0x253d48&&_0x5930d7[_0x16359f(0x1a6)]('Table\x20\x22'+_0x340cda+_0x16359f(0x1d1));}for(const _0x3e63ca of _0xb31585){let _0x6bbae1;try{_0x6bbae1=await getDatasetDetail(_0x3e63ca);}catch{_0x5930d7[_0x16359f(0x1a6)](_0x16359f(0x1cf)+_0x3e63ca+'\x22\x20not\x20found\x20or\x20not\x20accessible');continue;}assertDatasetIsDbTableBacked(_0x6bbae1,_0x16359f(0x1ad));const _0x278e48=Array['isArray'](_0x6bbae1[_0x16359f(0x1d4)])?_0x6bbae1['fields']:[],_0x3843a2=new Set(_0x278e48[_0x16359f(0x1c4)](_0x1918b7=>_0x1918b7[_0x16359f(0x1c1)]?.[_0x16359f(0x1a4)]())),_0x2b38af=_0x6bbae1[_0x16359f(0x1a8)]?.['tableName']||_0x6bbae1['tableName']||_0x3e63ca;_0xec992b['schema:'+_0x2b38af]={'code':_0x3e63ca,'tableName':_0x2b38af,'fieldCount':_0x3843a2[_0x16359f(0x1bb)],'fields':Array[_0x16359f(0x1a7)](_0x3843a2)};}_0x5930d7[_0x16359f(0x1ab)]>0x0&&(_0xec992b['schemaWarnings']=_0x5930d7);}return{'ok':_0x20c214[_0x16359f(0x1be)],'data':_0xec992b,'message':_0x20c214[_0x16359f(0x1bf)]};}};
1
+ function a141_0x7f84(_0x11f6b9,_0x5ed3b1){_0x11f6b9=_0x11f6b9-0xa6;const _0xda196a=a141_0xda19();let _0x7f84ae=_0xda196a[_0x11f6b9];return _0x7f84ae;}const a141_0x163d9b=a141_0x7f84;(function(_0x321fee,_0x51ac4a){const _0x4c42e9=a141_0x7f84,_0x2ee3a1=_0x321fee();while(!![]){try{const _0x3d854c=parseInt(_0x4c42e9(0xb1))/0x1+-parseInt(_0x4c42e9(0xce))/0x2+parseInt(_0x4c42e9(0xb3))/0x3*(-parseInt(_0x4c42e9(0xab))/0x4)+-parseInt(_0x4c42e9(0xc4))/0x5+-parseInt(_0x4c42e9(0xd3))/0x6+parseInt(_0x4c42e9(0xaf))/0x7*(-parseInt(_0x4c42e9(0xbe))/0x8)+-parseInt(_0x4c42e9(0xb4))/0x9*(-parseInt(_0x4c42e9(0xc3))/0xa);if(_0x3d854c===_0x51ac4a)break;else _0x2ee3a1['push'](_0x2ee3a1['shift']());}catch(_0xf9903f){_0x2ee3a1['push'](_0x2ee3a1['shift']());}}}(a141_0xda19,0x79198));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';function a141_0xda19(){const _0x26f58a=['140950mVYRkl','2213345AGoZMx','\x22\x20not\x20found\x20or\x20not\x20accessible','type','filter','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','validate','sql','split','utf-8','file','576090xHGVPz','fields','get','tables','map','1752996IgSldF','toLowerCase','isArray','string','trim','schemas','isSelectOnly','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','isDangerous','989828DcsZok','sqlType','flagMissing','schema:','749cnNgnZ','appCode','512492PmNLmM','parameters','12sNIkhC','1413ViMtSY','valid','length','message','Provide\x20--file\x20or\x20--sql','str','from','tableName','reason','\x22\x20not\x20found\x20in\x20any\x20dataset','16200uVSjrt','dbtableConfig','size','validation','schemaWarnings'];a141_0xda19=function(){return _0x26f58a;};return a141_0xda19();}import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':a141_0x163d9b(0xca),'command':a141_0x163d9b(0xc9),'description':a141_0x163d9b(0xc8),'risk':'read','flags':[{'name':a141_0x163d9b(0xcd),'type':a141_0x163d9b(0xd6),'description':a141_0x163d9b(0xa8)},{'name':a141_0x163d9b(0xca),'type':a141_0x163d9b(0xd6),'description':'Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'},{'name':a141_0x163d9b(0xa6),'type':a141_0x163d9b(0xd6),'description':a141_0x163d9b(0xa9)}],async 'execute'(_0x4b3e4f){const _0x5da9e1=a141_0x163d9b,_0x567b2e=_0x4b3e4f[_0x5da9e1(0xb9)](_0x5da9e1(0xcd)),_0x14069e=_0x4b3e4f[_0x5da9e1(0xb9)](_0x5da9e1(0xca));if(!_0x567b2e&&!_0x14069e)throw CliErrors[_0x5da9e1(0xad)](_0x5da9e1(0xcd),_0x5da9e1(0xb8));let _0xd6cae;if(_0x567b2e){const _0x30fdfd=resolve(process['cwd'](),_0x567b2e);if(!existsSync(_0x30fdfd))throw CliErrors[_0x5da9e1(0xc1)]('File\x20not\x20found:\x20'+_0x30fdfd);_0xd6cae=readFileSync(_0x30fdfd,_0x5da9e1(0xcc));}else _0xd6cae=_0x14069e;const _0x3e4070=validateSql(_0xd6cae),_0x363b9d={'valid':_0x3e4070[_0x5da9e1(0xb5)],'sqlType':_0x3e4070['sqlType'][_0x5da9e1(0xc6)],'isSelectOnly':_0x3e4070['sqlType'][_0x5da9e1(0xa7)],'isDangerous':_0x3e4070[_0x5da9e1(0xac)][_0x5da9e1(0xaa)],'tables':_0x3e4070[_0x5da9e1(0xd1)],'parameters':_0x3e4070[_0x5da9e1(0xb2)],'message':_0x3e4070[_0x5da9e1(0xb7)]};_0x3e4070[_0x5da9e1(0xac)]['reason']&&(_0x363b9d['reason']=_0x3e4070['sqlType'][_0x5da9e1(0xbc)]);const _0x336c20=_0x4b3e4f[_0x5da9e1(0xb9)]('schemas');if(_0x336c20&&_0x3e4070['valid']){const _0x59a40a=_0x336c20[_0x5da9e1(0xcb)](',')[_0x5da9e1(0xd2)](_0x4ff7dd=>_0x4ff7dd[_0x5da9e1(0xd7)]())[_0x5da9e1(0xc7)](Boolean),_0x1c7944=[],_0x95fb4e=filterDbTableBackedDatasets(await listDatasets(_0x4b3e4f[_0x5da9e1(0xb0)])),_0x3f266f=new Map(_0x95fb4e[_0x5da9e1(0xd2)](_0x5c261b=>[_0x5c261b[_0x5da9e1(0xbf)]?.[_0x5da9e1(0xbb)]?.['toLowerCase'](),_0x5c261b]));for(const _0xe8511a of _0x3e4070['tables']){const _0x20c10a=_0x3f266f[_0x5da9e1(0xd0)](_0xe8511a[_0x5da9e1(0xd4)]());!_0x20c10a&&_0x1c7944['push']('Table\x20\x22'+_0xe8511a+_0x5da9e1(0xbd));}for(const _0x4cf0c9 of _0x59a40a){let _0x1e320e;try{_0x1e320e=await getDatasetDetail(_0x4cf0c9);}catch{_0x1c7944['push']('Dataset\x20\x22'+_0x4cf0c9+_0x5da9e1(0xc5));continue;}assertDatasetIsDbTableBacked(_0x1e320e,'SQL\x20schema\x20validation');const _0x566bd0=Array[_0x5da9e1(0xd5)](_0x1e320e[_0x5da9e1(0xcf)])?_0x1e320e[_0x5da9e1(0xcf)]:[],_0x13a9ae=new Set(_0x566bd0['map'](_0x1e8689=>_0x1e8689['name']?.[_0x5da9e1(0xd4)]())),_0x588abd=_0x1e320e[_0x5da9e1(0xbf)]?.[_0x5da9e1(0xbb)]||_0x1e320e['tableName']||_0x4cf0c9;_0x363b9d[_0x5da9e1(0xae)+_0x588abd]={'code':_0x4cf0c9,'tableName':_0x588abd,'fieldCount':_0x13a9ae[_0x5da9e1(0xc0)],'fields':Array[_0x5da9e1(0xba)](_0x13a9ae)};}_0x1c7944[_0x5da9e1(0xb6)]>0x0&&(_0x363b9d[_0x5da9e1(0xc2)]=_0x1c7944);}return{'ok':_0x3e4070['valid'],'data':_0x363b9d,'message':_0x3e4070['message']};}};