@lovrabet/rabetbase-cli 2.2.4-beta.4 → 2.2.4-beta.5

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 (208) 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/auth/index.js +1 -1
  27. package/lib/commands/bff/create.js +1 -1
  28. package/lib/commands/bff/delete.js +1 -1
  29. package/lib/commands/bff/detail.js +1 -1
  30. package/lib/commands/bff/index.js +1 -1
  31. package/lib/commands/bff/list.js +1 -1
  32. package/lib/commands/bff/pull.js +1 -1
  33. package/lib/commands/bff/push.js +1 -1
  34. package/lib/commands/bff/status.js +1 -1
  35. package/lib/commands/cli-update.js +1 -1
  36. package/lib/commands/codegen/index.js +1 -1
  37. package/lib/commands/codegen/sdk.js +1 -1
  38. package/lib/commands/codegen/sql.js +1 -1
  39. package/lib/commands/common/app-selector.js +1 -1
  40. package/lib/commands/common/flags.js +1 -1
  41. package/lib/commands/common/validate.js +1 -1
  42. package/lib/commands/config/get.js +1 -1
  43. package/lib/commands/config/index.js +1 -1
  44. package/lib/commands/config/list.js +1 -1
  45. package/lib/commands/config/set.js +1 -1
  46. package/lib/commands/config/shared.js +1 -1
  47. package/lib/commands/data/filter.js +1 -1
  48. package/lib/commands/data/getOne.js +1 -1
  49. package/lib/commands/data/index.js +1 -1
  50. package/lib/commands/data/shared.js +1 -1
  51. package/lib/commands/dataset/capability.js +1 -1
  52. package/lib/commands/dataset/delete.js +1 -1
  53. package/lib/commands/dataset/detail.js +1 -1
  54. package/lib/commands/dataset/extend-update.js +1 -1
  55. package/lib/commands/dataset/field-update.js +1 -1
  56. package/lib/commands/dataset/index.js +1 -1
  57. package/lib/commands/dataset/list.js +1 -1
  58. package/lib/commands/dataset/operations.js +1 -1
  59. package/lib/commands/dataset/relation-create.js +1 -1
  60. package/lib/commands/dataset/relation-delete.js +1 -1
  61. package/lib/commands/dataset/relation-shared.js +1 -1
  62. package/lib/commands/dataset/relation-update.js +1 -1
  63. package/lib/commands/dataset/relations.js +1 -1
  64. package/lib/commands/dataset/rename.js +1 -1
  65. package/lib/commands/db/analyze-cancel.js +1 -1
  66. package/lib/commands/db/analyze-start.js +1 -1
  67. package/lib/commands/db/analyze-status.js +1 -1
  68. package/lib/commands/db/create.js +1 -1
  69. package/lib/commands/db/delete.js +1 -1
  70. package/lib/commands/db/detail.js +1 -1
  71. package/lib/commands/db/diff.js +1 -1
  72. package/lib/commands/db/index.js +1 -1
  73. package/lib/commands/db/list.js +1 -1
  74. package/lib/commands/db/shared.js +1 -1
  75. package/lib/commands/db/tables.js +1 -1
  76. package/lib/commands/db/test.js +1 -1
  77. package/lib/commands/db/update.js +1 -1
  78. package/lib/commands/doctor.js +1 -1
  79. package/lib/commands/init/index.js +1 -1
  80. package/lib/commands/issue/index.js +1 -1
  81. package/lib/commands/issue/nudge.js +1 -1
  82. package/lib/commands/issue/report.js +1 -1
  83. package/lib/commands/issue/shared.js +1 -1
  84. package/lib/commands/logs/index.js +1 -1
  85. package/lib/commands/menu/index.js +1 -1
  86. package/lib/commands/menu/list.js +1 -1
  87. package/lib/commands/menu/shared/compare-table.js +1 -1
  88. package/lib/commands/menu/shared/index.js +1 -1
  89. package/lib/commands/menu/shared/inquirer.js +1 -1
  90. package/lib/commands/menu/shared/local-pages.js +1 -1
  91. package/lib/commands/menu/shared/logic.js +1 -1
  92. package/lib/commands/menu/shared/service.js +1 -1
  93. package/lib/commands/menu/shared/sync-core.js +1 -1
  94. package/lib/commands/menu/shared/update-core.js +1 -1
  95. package/lib/commands/menu/shared/valid-url.js +1 -1
  96. package/lib/commands/menu/sync.js +1 -1
  97. package/lib/commands/menu/update.js +1 -1
  98. package/lib/commands/page/generate-start.js +1 -1
  99. package/lib/commands/page/generate-status.js +1 -1
  100. package/lib/commands/page/index.js +1 -1
  101. package/lib/commands/page/pull.js +1 -1
  102. package/lib/commands/page/push.js +1 -1
  103. package/lib/commands/page/relation-audit.js +1 -1
  104. package/lib/commands/page/shared.js +1 -1
  105. package/lib/commands/page/standard-page-status.js +1 -1
  106. package/lib/commands/page/sync.js +1 -1
  107. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  108. package/lib/commands/project/create/format-elapsed.js +1 -1
  109. package/lib/commands/project/create/main.js +1 -1
  110. package/lib/commands/project/create/non-interactive.js +1 -1
  111. package/lib/commands/project/create/project-template-path.js +1 -1
  112. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  113. package/lib/commands/project/create/use-format-code.js +1 -1
  114. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  115. package/lib/commands/project/index.js +1 -1
  116. package/lib/commands/project/init.js +1 -1
  117. package/lib/commands/project/upgrade.js +1 -1
  118. package/lib/commands/registry.js +1 -1
  119. package/lib/commands/run/index.js +1 -1
  120. package/lib/commands/schema.js +1 -1
  121. package/lib/commands/skill/index.js +1 -1
  122. package/lib/commands/sql/create.js +1 -1
  123. package/lib/commands/sql/delete.js +1 -1
  124. package/lib/commands/sql/detail.js +1 -1
  125. package/lib/commands/sql/exec.js +1 -1
  126. package/lib/commands/sql/index.js +1 -1
  127. package/lib/commands/sql/list.js +1 -1
  128. package/lib/commands/sql/pull.js +1 -1
  129. package/lib/commands/sql/push.js +1 -1
  130. package/lib/commands/sql/save.js +1 -1
  131. package/lib/commands/sql/shared.js +1 -1
  132. package/lib/commands/sql/status.js +1 -1
  133. package/lib/commands/sql/validate.js +1 -1
  134. package/lib/config/schema.js +1 -1
  135. package/lib/constant/cdn.js +1 -1
  136. package/lib/constant/cli.js +1 -1
  137. package/lib/constant/defaults.js +1 -1
  138. package/lib/constant/domain.js +1 -1
  139. package/lib/constant/env.js +1 -1
  140. package/lib/constant/output.js +1 -1
  141. package/lib/constant/paths.js +1 -1
  142. package/lib/constant/risk.js +1 -1
  143. package/lib/context/app-resolver.js +1 -0
  144. package/lib/context/auth-resolver.js +1 -0
  145. package/lib/context/config-loader.js +1 -0
  146. package/lib/context.js +1 -1
  147. package/lib/core/alias-resolver.js +1 -1
  148. package/lib/core/api-client.js +1 -1
  149. package/lib/core/bff/config.js +1 -1
  150. package/lib/core/bff/file-system.js +1 -1
  151. package/lib/core/bff/hash.js +1 -1
  152. package/lib/core/bff/lock.js +1 -1
  153. package/lib/core/bff/utils.js +1 -1
  154. package/lib/core/db-resolver.js +1 -1
  155. package/lib/core/page/file-system.js +1 -1
  156. package/lib/core/page/hash.js +1 -1
  157. package/lib/core/page/lock.js +1 -1
  158. package/lib/core/sql-sync/config.js +1 -1
  159. package/lib/core/sql-sync/file-system.js +1 -1
  160. package/lib/core/sql-sync/hash.js +1 -1
  161. package/lib/core/sql-sync/lock.js +1 -1
  162. package/lib/core/sql-sync/utils.js +1 -1
  163. package/lib/core/sql-validator.js +1 -1
  164. package/lib/errors.js +1 -1
  165. package/lib/framework/build-all-flags.js +1 -1
  166. package/lib/framework/flags.js +1 -1
  167. package/lib/framework/help.js +1 -1
  168. package/lib/framework/index.js +1 -1
  169. package/lib/framework/output.js +1 -1
  170. package/lib/framework/response.js +1 -1
  171. package/lib/framework/runner-alias.js +1 -1
  172. package/lib/framework/runner.js +1 -1
  173. package/lib/framework/schema-export.js +1 -1
  174. package/lib/framework/types.js +1 -1
  175. package/lib/generated/build-info.js +1 -1
  176. package/lib/help.js +1 -1
  177. package/lib/skills/main.js +1 -1
  178. package/lib/skills/npx-skills-add.js +1 -1
  179. package/lib/telemetry/cli-command-trace.js +1 -1
  180. package/lib/telemetry/cli-help-trace.js +1 -1
  181. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  182. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  183. package/lib/telemetry/send-cli-trace-log.js +1 -1
  184. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  185. package/lib/utils/ai_config.js +1 -1
  186. package/lib/utils/apply-jq-filter.js +1 -1
  187. package/lib/utils/cdn-config.js +1 -1
  188. package/lib/utils/check-sdk-version.js +1 -1
  189. package/lib/utils/cli-version-check.js +1 -1
  190. package/lib/utils/cli-version-policy.js +1 -1
  191. package/lib/utils/config.js +1 -1
  192. package/lib/utils/copy-directory.js +1 -1
  193. package/lib/utils/entity-with-id.js +1 -1
  194. package/lib/utils/file-utils.js +1 -1
  195. package/lib/utils/guides-cdn.js +1 -1
  196. package/lib/utils/http-client.js +1 -1
  197. package/lib/utils/is-non-interactive.js +1 -1
  198. package/lib/utils/logger.js +1 -1
  199. package/lib/utils/params.js +1 -1
  200. package/lib/utils/platform.js +1 -1
  201. package/lib/utils/rules-cdn.js +1 -1
  202. package/lib/utils/sleep.js +1 -1
  203. package/lib/utils/template-replacer.js +1 -1
  204. package/lib/utils/update-notice.js +1 -1
  205. package/lib/utils/version.js +1 -1
  206. package/lib/utils/with-active-cookie.js +1 -1
  207. package/lib/utils/write-cli-side-channel.js +1 -1
  208. package/package.json +2 -2
@@ -1 +1 @@
1
- function a122_0x1ae0(){const _0x26964b=['Invalid\x20database\x20selection\x20payload:\x20','isFinite','name','number','8765325zaHfdi','new','MyBatis\x20XML(mybatisXml)','SQL\x20名称不能为空','File\x20already\x20exists:\x20','请输入目标数据库\x20dbId:','适合带动态标签的\x20MyBatis\x20XML\x20SQL','2330461lwvqdk','nonInteractive','普通\x20SQL(sql)','sql','utf8','description','1jEqQBl','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','lockFilePath','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','create','stringify','mode','2257292zRVOsD','__manual__','str','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','sqlCode','toISOString','请输入\x20SQL\x20名称:','Local\x20SQL\x20file\x20mode','join','string','appCode','catch','/smartapi/custom/saveUserCustomSql','POST','sqlName','32otDoiT','db-id','4105515brgbMY','sqls','trim','请选择本地\x20SQL\x20模式:','parse','dbId','validation','6049045YhclQA','✎\x20手动输入\x20dbId','<server-generated-sqlCode>','请选择目标数据库:','3953178RfBaRv','length','mybatisXml','dbId\x20必须为正整数','\x20\x20SELECT\x201\x20AS\x20id','Created\x20SQL\x20query\x20','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','lastSync','dbName','sqlRootDir','814576glRPCv','flagMissing','flag','SQL\x20query\x20display\x20name'];a122_0x1ae0=function(){return _0x26964b;};return a122_0x1ae0();}const a122_0x3284b6=a122_0x1a2c;(function(_0x1cc30a,_0x1fdbfc){const _0x2a2204=a122_0x1a2c,_0x59390a=_0x1cc30a();while(!![]){try{const _0x3f7e23=parseInt(_0x2a2204(0x11f))/0x1*(parseInt(_0x2a2204(0x10a))/0x2)+-parseInt(_0x2a2204(0x138))/0x3+-parseInt(_0x2a2204(0x127))/0x4+parseInt(_0x2a2204(0x13f))/0x5+parseInt(_0x2a2204(0x143))/0x6+parseInt(_0x2a2204(0x119))/0x7*(parseInt(_0x2a2204(0x136))/0x8)+-parseInt(_0x2a2204(0x112))/0x9;if(_0x3f7e23===_0x1fdbfc)break;else _0x59390a['push'](_0x59390a['shift']());}catch(_0x1c196e){_0x59390a['push'](_0x59390a['shift']());}}}(a122_0x1ae0,0xab1e3));function a122_0x1a2c(_0x5b088b,_0x2b6743){_0x5b088b=_0x5b088b-0x109;const _0x1ae0d3=a122_0x1ae0();let _0x1a2c20=_0x1ae0d3[_0x5b088b];return _0x1a2c20;}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(_0x1cf1e9){const _0x3d4837=a122_0x1a2c;if(_0x1cf1e9==='mybatisXml')return[_0x3d4837(0x123),_0x3d4837(0x147),'</select>',''][_0x3d4837(0x12f)]('\x0a');return['SELECT\x201\x20AS\x20id;',''][_0x3d4837(0x12f)]('\x0a');}export const sqlCreate={'service':a122_0x3284b6(0x11c),'command':a122_0x3284b6(0x124),'description':a122_0x3284b6(0x12a),'risk':'high-risk-write','flags':[{'name':a122_0x3284b6(0x110),'type':a122_0x3284b6(0x130),'description':a122_0x3284b6(0x10d)},{'name':'db-id','type':a122_0x3284b6(0x111),'description':'Target\x20database\x20ID'},{'name':a122_0x3284b6(0x126),'type':a122_0x3284b6(0x130),'enum':[a122_0x3284b6(0x11c),a122_0x3284b6(0x145)],'description':a122_0x3284b6(0x12e)}],async 'validate'(_0x3036b4){const _0xe91c69=a122_0x3284b6;if(!_0x3036b4['nonInteractive'])return;if(!_0x3036b4[_0xe91c69(0x129)](_0xe91c69(0x110))['trim']())throw CliErrors[_0xe91c69(0x10b)](_0xe91c69(0x110),_0xe91c69(0x121));const _0x3a5760=resolveProvidedDbId(_0x3036b4);if(typeof _0x3a5760!==_0xe91c69(0x111)||!Number[_0xe91c69(0x10f)](_0x3a5760)||_0x3a5760<=0x0)throw CliErrors[_0xe91c69(0x10b)](_0xe91c69(0x137),_0xe91c69(0x120));if(!_0x3036b4[_0xe91c69(0x129)](_0xe91c69(0x126))['trim']())throw CliErrors[_0xe91c69(0x10b)](_0xe91c69(0x126),_0xe91c69(0x149));},async 'dryRun'(_0x53b117){const _0x54e284=a122_0x3284b6,_0x5745bc=loadSqlProjectConfig(_0x53b117['appCode']),{sqlName:_0x34256e,dbId:_0x50f882,dbName:_0x26d502,mode:_0x72d576}=await resolveSqlNewInputs(_0x53b117),_0x3fb92e=buildSqlRelativePath(_0x54e284(0x141),_0x34256e,_0x26d502,_0x72d576,_0x50f882),_0x34519b=_0x5745bc['sqlRootDir']+'/'+_0x3fb92e;return{'method':_0x54e284(0x134),'url':_0x54e284(0x133),'body':{'appCode':_0x53b117[_0x54e284(0x131)],'sqlName':_0x34256e,'dbId':_0x50f882,'mode':_0x72d576,'localPath':_0x34519b},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x5745bc[_0x54e284(0x109)]};},async 'execute'(_0x26fc57){const _0x480271=a122_0x3284b6,_0x28399c=loadSqlProjectConfig(_0x26fc57['appCode']),{sqlName:_0x74b930,dbId:_0x26eb86,dbName:_0xf80ccd,mode:_0x1fc43a}=await resolveSqlNewInputs(_0x26fc57),_0x4842cd=generateSqlTemplate(_0x1fc43a),_0x4fdd05=await createSqlQuery({'appCode':_0x26fc57[_0x480271(0x131)],'sqlName':_0x74b930,'dbId':_0x26eb86,'sqlContent':_0x4842cd}),_0x26b29a=ensureRemoteSqlContent(_0x4fdd05),_0x32c797=_0xf80ccd||await getDbName(_0x26fc57['appCode'],_0x26eb86)[_0x480271(0x132)](()=>undefined),_0x55e167=buildSqlRelativePath(_0x4fdd05['sqlCode'],_0x4fdd05[_0x480271(0x135)],_0x32c797,_0x1fc43a,_0x26eb86),_0x25451d=_0x28399c[_0x480271(0x109)]+'/'+_0x55e167,_0x1b5e51=buildLocalSqlFileContent({'sqlCode':_0x4fdd05[_0x480271(0x12b)],'sqlName':_0x4fdd05[_0x480271(0x135)],'dbId':_0x4fdd05[_0x480271(0x13d)]},_0x26b29a,{'dbName':_0x32c797,'mode':_0x1fc43a,'syncedAt':new Date()[_0x480271(0x12c)](),'description':_0x4fdd05[_0x480271(0x11e)]});if(await fileExists(_0x25451d))throw CliErrors[_0x480271(0x13e)](_0x480271(0x116)+_0x25451d);await ensureParentDirectory(_0x25451d),await writeFile(_0x25451d,_0x1b5e51,_0x480271(0x11d));const _0xbd1031=await readSqlLockFile(_0x28399c[_0x480271(0x122)]),{lockData:_0x57a6ce,appLock:_0x49bffe}=ensureSqlLockScope(_0xbd1031??createEmptySqlLock(),_0x28399c[_0x480271(0x131)],_0x28399c['sqlRoot'],_0x480271(0x113));return _0x49bffe[_0x480271(0x139)][_0x4fdd05[_0x480271(0x12b)]]={...buildSqlLockEntry(_0x4fdd05,_0x26b29a,computeSqlContentHash(_0x1b5e51),{'dbName':_0x32c797}),'path':_0x55e167,'mode':_0x1fc43a},_0x49bffe[_0x480271(0x14a)]=new Date()[_0x480271(0x12c)](),await writeSqlLockFile(_0x28399c[_0x480271(0x122)],_0x57a6ce),{'ok':!![],'data':{'id':_0x4fdd05['id'],'sqlCode':_0x4fdd05[_0x480271(0x12b)],'sqlName':_0x4fdd05[_0x480271(0x135)],'dbId':_0x4fdd05[_0x480271(0x13d)],'path':_0x25451d,'mode':_0x1fc43a},'message':_0x480271(0x148)+_0x4fdd05[_0x480271(0x12b)]};}};async function resolveSqlNewInputs(_0x34341b){const _0x217933=await resolveSqlNameInput(_0x34341b),{dbId:_0x56a4c9,dbName:_0x3ae6b2}=await resolveDbSelection(_0x34341b),_0x4a9665=await resolveSqlModeInput(_0x34341b);return{'sqlName':_0x217933,'dbId':_0x56a4c9,'dbName':_0x3ae6b2,'mode':_0x4a9665};}async function resolveSqlNameInput(_0x2d8c50){const _0x49632a=a122_0x3284b6,_0x55fe9c=_0x2d8c50[_0x49632a(0x129)](_0x49632a(0x110))[_0x49632a(0x13a)]();if(_0x55fe9c)return _0x55fe9c;if(_0x2d8c50[_0x49632a(0x11a)])throw CliErrors[_0x49632a(0x10b)](_0x49632a(0x110),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x49632a(0x12d),'validate':_0x5cb21d=>_0x5cb21d[_0x49632a(0x13a)]()?!![]:_0x49632a(0x115)}))[_0x49632a(0x13a)]();}async function resolveDbSelection(_0x17c4cd){const _0x4b832d=a122_0x3284b6,_0x504bb5=resolveProvidedDbId(_0x17c4cd);if(typeof _0x504bb5===_0x4b832d(0x111)&&Number['isFinite'](_0x504bb5)&&_0x504bb5>0x0)return{'dbId':_0x504bb5,'dbName':await getDbName(_0x17c4cd['appCode'],_0x504bb5)[_0x4b832d(0x132)](()=>undefined)};if(_0x17c4cd[_0x4b832d(0x11a)])throw CliErrors[_0x4b832d(0x10b)](_0x4b832d(0x137),_0x4b832d(0x120));const _0xc457af=await listDatabases(_0x17c4cd[_0x4b832d(0x131)])[_0x4b832d(0x132)](()=>[]);if(_0xc457af[_0x4b832d(0x144)]===0x1)return{'dbId':_0xc457af[0x0][_0x4b832d(0x13d)],'dbName':_0xc457af[0x0][_0x4b832d(0x14b)]};if(_0xc457af[_0x4b832d(0x144)]>0x1){const _0x29b172=await select({'message':_0x4b832d(0x142),'choices':[..._0xc457af['map'](_0x48208d=>({'name':_0x48208d[_0x4b832d(0x14b)]+'\x20('+_0x48208d[_0x4b832d(0x13d)]+')','value':serializeDbSelection(_0x48208d)})),{'name':_0x4b832d(0x140),'value':'__manual__'}]});if(_0x29b172!==_0x4b832d(0x128))return deserializeDbSelection(_0x29b172);}const _0x2a8caa=await input({'message':_0x4b832d(0x117),'validate':_0x59a21b=>{const _0x509b0d=_0x4b832d,_0x199eee=_0x59a21b['trim']();if(!_0x199eee)return'dbId\x20不能为空';const _0x561277=Number(_0x199eee);if(!Number['isInteger'](_0x561277)||_0x561277<=0x0)return _0x509b0d(0x146);return!![];}});return{'dbId':Number(_0x2a8caa[_0x4b832d(0x13a)]())};}async function resolveSqlModeInput(_0x4a814f){const _0xceee3b=a122_0x3284b6,_0xb67cb7=_0x4a814f[_0xceee3b(0x129)](_0xceee3b(0x126))[_0xceee3b(0x13a)]();if(_0xb67cb7===_0xceee3b(0x11c)||_0xb67cb7===_0xceee3b(0x145))return _0xb67cb7;if(_0x4a814f['nonInteractive'])throw CliErrors[_0xceee3b(0x10b)]('mode',_0xceee3b(0x149));return await select({'message':_0xceee3b(0x13b),'choices':[{'name':_0xceee3b(0x11b),'value':_0xceee3b(0x11c),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0xceee3b(0x114),'value':_0xceee3b(0x145),'description':_0xceee3b(0x118)}]});}function serializeDbSelection(_0x36eac3){const _0x17b846=a122_0x3284b6;return JSON[_0x17b846(0x125)]({'dbId':_0x36eac3[_0x17b846(0x13d)],'dbName':_0x36eac3[_0x17b846(0x14b)]});}function deserializeDbSelection(_0x1ca68b){const _0x42a25a=a122_0x3284b6;try{const _0x253d57=JSON[_0x42a25a(0x13c)](_0x1ca68b);if(typeof _0x253d57[_0x42a25a(0x13d)]===_0x42a25a(0x111)&&Number[_0x42a25a(0x10f)](_0x253d57['dbId']))return{'dbId':_0x253d57[_0x42a25a(0x13d)],'dbName':_0x253d57['dbName']};}catch{}throw CliErrors[_0x42a25a(0x13e)](_0x42a25a(0x10e)+_0x1ca68b);}function resolveProvidedDbId(_0x386595){const _0x4f6653=a122_0x3284b6,_0x540ed7=_0x386595[_0x4f6653(0x10c)](_0x4f6653(0x137));if(typeof _0x540ed7===_0x4f6653(0x111)&&Number[_0x4f6653(0x10f)](_0x540ed7))return _0x540ed7;return undefined;}
1
+ const a122_0x2e795b=a122_0xead1;(function(_0x3e6ce4,_0x2e0311){const _0x236179=a122_0xead1,_0x497f97=_0x3e6ce4();while(!![]){try{const _0x28a596=-parseInt(_0x236179(0x17b))/0x1*(parseInt(_0x236179(0x165))/0x2)+parseInt(_0x236179(0x18f))/0x3*(parseInt(_0x236179(0x19f))/0x4)+parseInt(_0x236179(0x192))/0x5+-parseInt(_0x236179(0x19c))/0x6*(-parseInt(_0x236179(0x171))/0x7)+-parseInt(_0x236179(0x17c))/0x8+parseInt(_0x236179(0x188))/0x9+parseInt(_0x236179(0x16b))/0xa*(-parseInt(_0x236179(0x196))/0xb);if(_0x28a596===_0x2e0311)break;else _0x497f97['push'](_0x497f97['shift']());}catch(_0x3d9576){_0x497f97['push'](_0x497f97['shift']());}}}(a122_0x1db5,0xd502f));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';function a122_0xead1(_0x3a7bb2,_0x50c06b){_0x3a7bb2=_0x3a7bb2-0x165;const _0x1db5ba=a122_0x1db5();let _0xead158=_0x1db5ba[_0x3a7bb2];return _0xead158;}import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0xb98098){const _0x1d9e33=a122_0xead1;if(_0xb98098===_0x1d9e33(0x1a1))return[_0x1d9e33(0x16a),'\x20\x20SELECT\x201\x20AS\x20id',_0x1d9e33(0x190),''][_0x1d9e33(0x166)]('\x0a');return[_0x1d9e33(0x167),''][_0x1d9e33(0x166)]('\x0a');}export const sqlCreate={'service':a122_0x2e795b(0x181),'command':'create','description':a122_0x2e795b(0x185),'risk':a122_0x2e795b(0x199),'flags':[{'name':'name','type':a122_0x2e795b(0x173),'description':a122_0x2e795b(0x16e)},{'name':a122_0x2e795b(0x19a),'type':'number','description':a122_0x2e795b(0x16f)},{'name':a122_0x2e795b(0x18a),'type':a122_0x2e795b(0x173),'enum':['sql',a122_0x2e795b(0x1a1)],'description':a122_0x2e795b(0x178)}],async 'validate'(_0x42247a){const _0x53d4a8=a122_0x2e795b;if(!_0x42247a[_0x53d4a8(0x18e)])return;if(!_0x42247a[_0x53d4a8(0x194)](_0x53d4a8(0x1a8))[_0x53d4a8(0x169)]())throw CliErrors[_0x53d4a8(0x187)](_0x53d4a8(0x1a8),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x39f85a=resolveProvidedDbId(_0x42247a);if(typeof _0x39f85a!==_0x53d4a8(0x182)||!Number[_0x53d4a8(0x177)](_0x39f85a)||_0x39f85a<=0x0)throw CliErrors[_0x53d4a8(0x187)]('db-id',_0x53d4a8(0x175));if(!_0x42247a[_0x53d4a8(0x194)]('mode')[_0x53d4a8(0x169)]())throw CliErrors[_0x53d4a8(0x187)]('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x218abd){const _0xa3611b=a122_0x2e795b,_0x59ba0f=loadSqlProjectConfig(_0x218abd[_0xa3611b(0x179)]),{sqlName:_0x23d2f3,dbId:_0x31c8c1,dbName:_0x57afd5,mode:_0x4ef9bf}=await resolveSqlNewInputs(_0x218abd),_0x77e5b3=buildSqlRelativePath(_0xa3611b(0x18c),_0x23d2f3,_0x57afd5,_0x4ef9bf,_0x31c8c1),_0x38adbd=_0x59ba0f[_0xa3611b(0x170)]+'/'+_0x77e5b3;return{'method':_0xa3611b(0x1a6),'url':_0xa3611b(0x193),'body':{'appCode':_0x218abd['appCode'],'sqlName':_0x23d2f3,'dbId':_0x31c8c1,'mode':_0x4ef9bf,'localPath':_0x38adbd},'description':_0xa3611b(0x184)+_0x59ba0f[_0xa3611b(0x170)]};},async 'execute'(_0x16bd2c){const _0x2caec9=a122_0x2e795b,_0x11bb82=loadSqlProjectConfig(_0x16bd2c[_0x2caec9(0x179)]),{sqlName:_0x46b991,dbId:_0x18b644,dbName:_0x19ad44,mode:_0x623f6a}=await resolveSqlNewInputs(_0x16bd2c),_0x9aad3=generateSqlTemplate(_0x623f6a),_0x122113=await createSqlQuery({'appCode':_0x16bd2c[_0x2caec9(0x179)],'sqlName':_0x46b991,'dbId':_0x18b644,'sqlContent':_0x9aad3}),_0x78664f=ensureRemoteSqlContent(_0x122113),_0x201a59=_0x19ad44||await getDbName(_0x16bd2c['appCode'],_0x18b644)['catch'](()=>undefined),_0x30ac23=buildSqlRelativePath(_0x122113['sqlCode'],_0x122113[_0x2caec9(0x1a3)],_0x201a59,_0x623f6a,_0x18b644),_0x426f1a=_0x11bb82[_0x2caec9(0x170)]+'/'+_0x30ac23,_0x5d9a8f=buildLocalSqlFileContent({'sqlCode':_0x122113[_0x2caec9(0x1a4)],'sqlName':_0x122113[_0x2caec9(0x1a3)],'dbId':_0x122113[_0x2caec9(0x19d)]},_0x78664f,{'dbName':_0x201a59,'mode':_0x623f6a,'syncedAt':new Date()['toISOString'](),'description':_0x122113[_0x2caec9(0x17d)]});if(await fileExists(_0x426f1a))throw CliErrors[_0x2caec9(0x183)](_0x2caec9(0x180)+_0x426f1a);await ensureParentDirectory(_0x426f1a),await writeFile(_0x426f1a,_0x5d9a8f,_0x2caec9(0x168));const _0x58c7ea=await readSqlLockFile(_0x11bb82['lockFilePath']),{lockData:_0x3ad50c,appLock:_0x7d458c}=ensureSqlLockScope(_0x58c7ea??createEmptySqlLock(),_0x11bb82['appCode'],_0x11bb82[_0x2caec9(0x176)],'new');return _0x7d458c[_0x2caec9(0x17f)][_0x122113['sqlCode']]={...buildSqlLockEntry(_0x122113,_0x78664f,computeSqlContentHash(_0x5d9a8f),{'dbName':_0x201a59}),'path':_0x30ac23,'mode':_0x623f6a},_0x7d458c[_0x2caec9(0x174)]=new Date()[_0x2caec9(0x197)](),await writeSqlLockFile(_0x11bb82['lockFilePath'],_0x3ad50c),{'ok':!![],'data':{'id':_0x122113['id'],'sqlCode':_0x122113['sqlCode'],'sqlName':_0x122113[_0x2caec9(0x1a3)],'dbId':_0x122113[_0x2caec9(0x19d)],'path':_0x426f1a,'mode':_0x623f6a},'message':_0x2caec9(0x1a5)+_0x122113['sqlCode']};}};async function resolveSqlNewInputs(_0x2d66a3){const _0x3b0c45=await resolveSqlNameInput(_0x2d66a3),{dbId:_0x4dfe73,dbName:_0x4bfd07}=await resolveDbSelection(_0x2d66a3),_0x21863a=await resolveSqlModeInput(_0x2d66a3);return{'sqlName':_0x3b0c45,'dbId':_0x4dfe73,'dbName':_0x4bfd07,'mode':_0x21863a};}async function resolveSqlNameInput(_0xbb46ca){const _0xee731d=a122_0x2e795b,_0x3f7424=_0xbb46ca['str'](_0xee731d(0x1a8))[_0xee731d(0x169)]();if(_0x3f7424)return _0x3f7424;if(_0xbb46ca[_0xee731d(0x18e)])throw CliErrors['flagMissing'](_0xee731d(0x1a8),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0xee731d(0x186),'validate':_0x5235ec=>_0x5235ec[_0xee731d(0x169)]()?!![]:_0xee731d(0x1a0)}))[_0xee731d(0x169)]();}function a122_0x1db5(){const _0x94a4b6=['catch','1096DnwKfw','SQL\x20名称不能为空','mybatisXml','✎\x20手动输入\x20dbId','sqlName','sqlCode','Created\x20SQL\x20query\x20','POST','请输入目标数据库\x20dbId:','name','flag','2BVEhnX','join','SELECT\x201\x20AS\x20id;','utf8','trim','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','10OKISTt','dbId\x20不能为空','dbName','SQL\x20query\x20display\x20name','Target\x20database\x20ID','sqlRootDir','4965863WyFcXY','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','string','lastSync','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','sqlRoot','isFinite','Local\x20SQL\x20file\x20mode','appCode','Invalid\x20database\x20selection\x20payload:\x20','707561rhkmDW','5287552jcjJOt','description','length','sqls','File\x20already\x20exists:\x20','sql','number','validation','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','请输入\x20SQL\x20名称:','flagMissing','2033793axdbYU','stringify','mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','<server-generated-sqlCode>','请选择本地\x20SQL\x20模式:','nonInteractive','17301cJakZP','</select>','parse','836940nFbDVW','/smartapi/custom/saveUserCustomSql','str','__manual__','12664751aJgZGI','toISOString','map','high-risk-write','db-id','MyBatis\x20XML(mybatisXml)','12ONteFx','dbId'];a122_0x1db5=function(){return _0x94a4b6;};return a122_0x1db5();}async function resolveDbSelection(_0x320b9f){const _0x3c60d6=a122_0x2e795b,_0x2e068d=resolveProvidedDbId(_0x320b9f);if(typeof _0x2e068d===_0x3c60d6(0x182)&&Number[_0x3c60d6(0x177)](_0x2e068d)&&_0x2e068d>0x0)return{'dbId':_0x2e068d,'dbName':await getDbName(_0x320b9f[_0x3c60d6(0x179)],_0x2e068d)[_0x3c60d6(0x19e)](()=>undefined)};if(_0x320b9f['nonInteractive'])throw CliErrors['flagMissing'](_0x3c60d6(0x19a),_0x3c60d6(0x175));const _0x4bb159=await listDatabases(_0x320b9f[_0x3c60d6(0x179)])[_0x3c60d6(0x19e)](()=>[]);if(_0x4bb159[_0x3c60d6(0x17e)]===0x1)return{'dbId':_0x4bb159[0x0]['dbId'],'dbName':_0x4bb159[0x0][_0x3c60d6(0x16d)]};if(_0x4bb159['length']>0x1){const _0x5e70ed=await select({'message':'请选择目标数据库:','choices':[..._0x4bb159[_0x3c60d6(0x198)](_0x53b69a=>({'name':_0x53b69a[_0x3c60d6(0x16d)]+'\x20('+_0x53b69a[_0x3c60d6(0x19d)]+')','value':serializeDbSelection(_0x53b69a)})),{'name':_0x3c60d6(0x1a2),'value':'__manual__'}]});if(_0x5e70ed!==_0x3c60d6(0x195))return deserializeDbSelection(_0x5e70ed);}const _0x48375f=await input({'message':_0x3c60d6(0x1a7),'validate':_0x234c63=>{const _0x2b20f6=_0x3c60d6,_0x272bad=_0x234c63[_0x2b20f6(0x169)]();if(!_0x272bad)return _0x2b20f6(0x16c);const _0x3076cb=Number(_0x272bad);if(!Number['isInteger'](_0x3076cb)||_0x3076cb<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0x48375f[_0x3c60d6(0x169)]())};}async function resolveSqlModeInput(_0x3323d6){const _0x5a859f=a122_0x2e795b,_0x347dfc=_0x3323d6[_0x5a859f(0x194)](_0x5a859f(0x18a))[_0x5a859f(0x169)]();if(_0x347dfc==='sql'||_0x347dfc==='mybatisXml')return _0x347dfc;if(_0x3323d6['nonInteractive'])throw CliErrors[_0x5a859f(0x187)]('mode',_0x5a859f(0x18b));return await select({'message':_0x5a859f(0x18d),'choices':[{'name':'普通\x20SQL(sql)','value':_0x5a859f(0x181),'description':_0x5a859f(0x172)},{'name':_0x5a859f(0x19b),'value':'mybatisXml','description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x1c4ae2){const _0x1bfc72=a122_0x2e795b;return JSON[_0x1bfc72(0x189)]({'dbId':_0x1c4ae2[_0x1bfc72(0x19d)],'dbName':_0x1c4ae2[_0x1bfc72(0x16d)]});}function deserializeDbSelection(_0x28a60a){const _0x5acb9a=a122_0x2e795b;try{const _0x326606=JSON[_0x5acb9a(0x191)](_0x28a60a);if(typeof _0x326606[_0x5acb9a(0x19d)]==='number'&&Number[_0x5acb9a(0x177)](_0x326606['dbId']))return{'dbId':_0x326606['dbId'],'dbName':_0x326606['dbName']};}catch{}throw CliErrors['validation'](_0x5acb9a(0x17a)+_0x28a60a);}function resolveProvidedDbId(_0x1e2182){const _0x57e014=a122_0x2e795b,_0x17d77d=_0x1e2182[_0x57e014(0x1a9)]('db-id');if(typeof _0x17d77d===_0x57e014(0x182)&&Number[_0x57e014(0x177)](_0x17d77d))return _0x17d77d;return undefined;}
@@ -1 +1 @@
1
- const a123_0x30cfc4=a123_0x4d2a;(function(_0x8aac6f,_0x327dab){const _0x5a4bc8=a123_0x4d2a,_0xf7dca0=_0x8aac6f();while(!![]){try{const _0x4c9ef7=parseInt(_0x5a4bc8(0x1f2))/0x1*(parseInt(_0x5a4bc8(0x1f4))/0x2)+parseInt(_0x5a4bc8(0x1dc))/0x3*(parseInt(_0x5a4bc8(0x1ee))/0x4)+-parseInt(_0x5a4bc8(0x1d8))/0x5*(parseInt(_0x5a4bc8(0x1f9))/0x6)+parseInt(_0x5a4bc8(0x1de))/0x7*(parseInt(_0x5a4bc8(0x1ec))/0x8)+parseInt(_0x5a4bc8(0x1f3))/0x9*(-parseInt(_0x5a4bc8(0x1e6))/0xa)+parseInt(_0x5a4bc8(0x1da))/0xb+parseInt(_0x5a4bc8(0x1e3))/0xc*(-parseInt(_0x5a4bc8(0x1ef))/0xd);if(_0x4c9ef7===_0x327dab)break;else _0xf7dca0['push'](_0xf7dca0['shift']());}catch(_0x520f7a){_0xf7dca0['push'](_0xf7dca0['shift']());}}}(a123_0x58e2,0x53543));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';function a123_0x4d2a(_0x2bac49,_0x322260){_0x2bac49=_0x2bac49-0x1d2;const _0x58e2a7=a123_0x58e2();let _0x4d2ad7=_0x58e2a7[_0x2bac49];return _0x4d2ad7;}import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':'sql','command':'delete','description':a123_0x30cfc4(0x1ea),'risk':a123_0x30cfc4(0x1d7),'flags':[SQLCODE_FLAG],async 'validate'(_0x11ebd5){const _0x2f80fb=a123_0x30cfc4,_0x3ec7b0=loadSqlProjectConfig(_0x11ebd5[_0x2f80fb(0x1e8)]),_0x5bdf3e=await readSqlLockFile(_0x3ec7b0[_0x2f80fb(0x1db)]);if(!_0x5bdf3e)throw CliErrors['validation'](_0x2f80fb(0x1d3));},async 'dryRun'(_0x373da7){const _0x52cf2e=a123_0x30cfc4,_0x3ceee3=loadSqlProjectConfig(_0x373da7[_0x52cf2e(0x1e8)]),_0x4604fa=await readSqlLockFile(_0x3ceee3[_0x52cf2e(0x1db)]);if(!_0x4604fa)throw CliErrors[_0x52cf2e(0x1d6)](_0x52cf2e(0x1d3));const {appLock:_0x3d985a}=ensureSqlLockScope(_0x4604fa,_0x373da7[_0x52cf2e(0x1e8)],_0x3ceee3[_0x52cf2e(0x1dd)],_0x52cf2e(0x1f0)),_0x58d962=_0x373da7[_0x52cf2e(0x1eb)](_0x52cf2e(0x1f6)),_0x3f3825=_0x3d985a[_0x52cf2e(0x1d4)][_0x58d962];if(!_0x3f3825)throw CliErrors[_0x52cf2e(0x1d6)](_0x52cf2e(0x1e7)+_0x58d962+'\x22.');return{'method':'POST','url':_0x52cf2e(0x1fa),'body':{'sqlCode':_0x58d962,'id':_0x3f3825[_0x52cf2e(0x1ed)],'localPath':resolveLocalSqlFilePath(_0x3ceee3,_0x58d962,_0x3f3825)},'description':_0x52cf2e(0x1f5)+_0x58d962+_0x52cf2e(0x1df)+_0x3ceee3[_0x52cf2e(0x1d9)]};},async 'execute'(_0x4909f7){const _0x13408e=a123_0x30cfc4,_0x416555=loadSqlProjectConfig(_0x4909f7[_0x13408e(0x1e8)]),_0x10bc3d=await readSqlLockFile(_0x416555[_0x13408e(0x1db)]);if(!_0x10bc3d)throw CliErrors[_0x13408e(0x1d6)](_0x13408e(0x1d2));const {lockData:_0x392e07,appLock:_0xc60b1e}=ensureSqlLockScope(_0x10bc3d,_0x4909f7['appCode'],_0x416555['sqlRoot'],_0x13408e(0x1f0)),_0x14d02e=_0x4909f7[_0x13408e(0x1eb)]('sqlcode'),_0x5d3028=_0xc60b1e[_0x13408e(0x1d4)][_0x14d02e];if(!_0x5d3028)throw CliErrors[_0x13408e(0x1d6)](_0x13408e(0x1e7)+_0x14d02e+'\x22.');await deleteSqlQuery({'id':_0x5d3028[_0x13408e(0x1ed)],'sqlCode':_0x14d02e}),_0xc60b1e[_0x13408e(0x1d4)]=Object[_0x13408e(0x1e4)](Object[_0x13408e(0x1f7)](_0xc60b1e[_0x13408e(0x1d4)])[_0x13408e(0x1e0)](([_0x4afffc])=>_0x4afffc!==_0x14d02e)),_0xc60b1e[_0x13408e(0x1e9)]=new Date()[_0x13408e(0x1e5)](),await writeSqlLockFile(_0x416555[_0x13408e(0x1db)],_0x392e07);const _0x200483=resolveLocalSqlFilePath(_0x416555,_0x14d02e,_0x5d3028);let _0x45b355;await fileExists(_0x200483)&&(_0x45b355=await moveToTrash(_0x416555['projectRoot'],_0x416555[_0x13408e(0x1d9)],_0x200483),await cleanupEmptyDirectories(dirname(_0x200483),_0x416555[_0x13408e(0x1e2)]));const _0x1e58c6={'deleted':_0x14d02e,'remoteId':_0x5d3028[_0x13408e(0x1ed)]};if(_0x45b355)_0x1e58c6[_0x13408e(0x1e1)]=_0x45b355;return{'ok':!![],'data':_0x1e58c6,'message':_0x13408e(0x1f8)+_0x14d02e+(_0x45b355?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};function a123_0x58e2(){const _0x8487f6=['No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','appCode','lastSync','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','str','2604584VxlOoQ','remoteId','10156vAAkat','13cvsSPs','delete','startsWith','107EZlUlH','36iMNJoj','2186CudEgU','Would\x20delete\x20SQL\x20','sqlcode','entries','Deleted\x20','138PRFVew','/smartapi/custom/deleteUserCustomSql','SQL\x20lock\x20file\x20not\x20found.','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','sqls','replace','validation','high-risk-write','137195JrgGHf','trashDir','5832805BrBeVQ','lockFilePath','507fDchjZ','sqlRoot','14grGWko','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','filter','trashedTo','sqlRootDir','5340516wCseqf','fromEntries','toISOString','774970LzwQLA'];a123_0x58e2=function(){return _0x8487f6;};return a123_0x58e2();}async function moveToTrash(_0xf93f1d,_0x4723a2,_0x2b35c0){const _0x523506=a123_0x30cfc4,_0x25cf81=new Date()['toISOString']()[_0x523506(0x1d5)](/[:.]/g,'-'),_0x48a34a=relative(_0xf93f1d,_0x2b35c0),_0x663401=join(_0x4723a2,_0x25cf81,_0x48a34a);return await mkdir(dirname(_0x663401),{'recursive':!![]}),await rename(_0x2b35c0,_0x663401),_0x663401;}async function cleanupEmptyDirectories(_0x42d9e5,_0x4d76f1){const _0x2308e1=a123_0x30cfc4;let _0x25f2a2=resolve(_0x42d9e5);const _0x387325=resolve(_0x4d76f1);while(_0x25f2a2[_0x2308e1(0x1f1)](''+_0x387325+sep)||_0x25f2a2===_0x387325){if(_0x25f2a2===_0x387325)return;try{const _0x1bce33=await readdir(_0x25f2a2);if(_0x1bce33['length']>0x0)return;await rmdir(_0x25f2a2);}catch{return;}_0x25f2a2=dirname(_0x25f2a2);}}
1
+ const a123_0x117a8c=a123_0x1b74;(function(_0x519b41,_0x445372){const _0x3d33eb=a123_0x1b74,_0x103cc6=_0x519b41();while(!![]){try{const _0x1aa19c=parseInt(_0x3d33eb(0x168))/0x1+parseInt(_0x3d33eb(0x17a))/0x2*(-parseInt(_0x3d33eb(0x188))/0x3)+-parseInt(_0x3d33eb(0x16a))/0x4*(-parseInt(_0x3d33eb(0x179))/0x5)+parseInt(_0x3d33eb(0x165))/0x6+-parseInt(_0x3d33eb(0x167))/0x7*(-parseInt(_0x3d33eb(0x187))/0x8)+-parseInt(_0x3d33eb(0x181))/0x9*(parseInt(_0x3d33eb(0x172))/0xa)+-parseInt(_0x3d33eb(0x186))/0xb;if(_0x1aa19c===_0x445372)break;else _0x103cc6['push'](_0x103cc6['shift']());}catch(_0x5d582c){_0x103cc6['push'](_0x103cc6['shift']());}}}(a123_0x2551,0x48831));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';function a123_0x2551(){const _0x2fb287=['532sFaFBX','418574FZkBvE','high-risk-write','44IGelzT','length','filter','toISOString','lockFilePath','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','sqlcode','sql','311670WUykoO','sqlRootDir','trashDir','trashedTo','Would\x20delete\x20SQL\x20','startsWith','sqls','68415cqFAoS','11342ctHVmW','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','str','delete','SQL\x20lock\x20file\x20not\x20found.','entries','\x20(local\x20file\x20moved\x20to\x20trash)','18bujZgL','remoteId','sqlRoot','lastSync','validation','4849812MBouyY','8376sLdHvP','117tLCfCM','POST','replace','2236470xoHIdD','appCode'];a123_0x2551=function(){return _0x2fb287;};return a123_0x2551();}import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a123_0x117a8c(0x171),'command':a123_0x117a8c(0x17d),'description':a123_0x117a8c(0x17b),'risk':a123_0x117a8c(0x169),'flags':[SQLCODE_FLAG],async 'validate'(_0x5c442b){const _0x459fe9=a123_0x117a8c,_0x502376=loadSqlProjectConfig(_0x5c442b[_0x459fe9(0x166)]),_0xa057a1=await readSqlLockFile(_0x502376[_0x459fe9(0x16e)]);if(!_0xa057a1)throw CliErrors[_0x459fe9(0x185)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x2f8f57){const _0x4a1354=a123_0x117a8c,_0x29fa80=loadSqlProjectConfig(_0x2f8f57[_0x4a1354(0x166)]),_0x19c482=await readSqlLockFile(_0x29fa80['lockFilePath']);if(!_0x19c482)throw CliErrors['validation']('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x1e479d}=ensureSqlLockScope(_0x19c482,_0x2f8f57[_0x4a1354(0x166)],_0x29fa80[_0x4a1354(0x183)],_0x4a1354(0x17d)),_0x19786f=_0x2f8f57[_0x4a1354(0x17c)](_0x4a1354(0x170)),_0x525a00=_0x1e479d['sqls'][_0x19786f];if(!_0x525a00)throw CliErrors[_0x4a1354(0x185)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x19786f+'\x22.');return{'method':_0x4a1354(0x189),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x19786f,'id':_0x525a00[_0x4a1354(0x182)],'localPath':resolveLocalSqlFilePath(_0x29fa80,_0x19786f,_0x525a00)},'description':_0x4a1354(0x176)+_0x19786f+_0x4a1354(0x16f)+_0x29fa80[_0x4a1354(0x174)]};},async 'execute'(_0x45877d){const _0xefec2f=a123_0x117a8c,_0x168ceb=loadSqlProjectConfig(_0x45877d[_0xefec2f(0x166)]),_0x20ca7d=await readSqlLockFile(_0x168ceb['lockFilePath']);if(!_0x20ca7d)throw CliErrors[_0xefec2f(0x185)](_0xefec2f(0x17e));const {lockData:_0x4d115a,appLock:_0x144378}=ensureSqlLockScope(_0x20ca7d,_0x45877d[_0xefec2f(0x166)],_0x168ceb['sqlRoot'],_0xefec2f(0x17d)),_0x164566=_0x45877d[_0xefec2f(0x17c)](_0xefec2f(0x170)),_0xad4c2b=_0x144378[_0xefec2f(0x178)][_0x164566];if(!_0xad4c2b)throw CliErrors[_0xefec2f(0x185)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x164566+'\x22.');await deleteSqlQuery({'id':_0xad4c2b['remoteId'],'sqlCode':_0x164566}),_0x144378[_0xefec2f(0x178)]=Object['fromEntries'](Object[_0xefec2f(0x17f)](_0x144378[_0xefec2f(0x178)])[_0xefec2f(0x16c)](([_0x495af2])=>_0x495af2!==_0x164566)),_0x144378[_0xefec2f(0x184)]=new Date()[_0xefec2f(0x16d)](),await writeSqlLockFile(_0x168ceb[_0xefec2f(0x16e)],_0x4d115a);const _0x4cb311=resolveLocalSqlFilePath(_0x168ceb,_0x164566,_0xad4c2b);let _0x446307;await fileExists(_0x4cb311)&&(_0x446307=await moveToTrash(_0x168ceb['projectRoot'],_0x168ceb[_0xefec2f(0x174)],_0x4cb311),await cleanupEmptyDirectories(dirname(_0x4cb311),_0x168ceb[_0xefec2f(0x173)]));const _0x3cb668={'deleted':_0x164566,'remoteId':_0xad4c2b['remoteId']};if(_0x446307)_0x3cb668[_0xefec2f(0x175)]=_0x446307;return{'ok':!![],'data':_0x3cb668,'message':'Deleted\x20'+_0x164566+(_0x446307?_0xefec2f(0x180):'')};}};async function moveToTrash(_0x9cf456,_0x4f9fbf,_0x57b700){const _0x5dd831=a123_0x117a8c,_0x4b350b=new Date()['toISOString']()[_0x5dd831(0x18a)](/[:.]/g,'-'),_0x23dd8a=relative(_0x9cf456,_0x57b700),_0x3dd3c1=join(_0x4f9fbf,_0x4b350b,_0x23dd8a);return await mkdir(dirname(_0x3dd3c1),{'recursive':!![]}),await rename(_0x57b700,_0x3dd3c1),_0x3dd3c1;}function a123_0x1b74(_0x2bdbb8,_0x432e81){_0x2bdbb8=_0x2bdbb8-0x165;const _0x2551d0=a123_0x2551();let _0x1b746e=_0x2551d0[_0x2bdbb8];return _0x1b746e;}async function cleanupEmptyDirectories(_0x3f25d9,_0x2ed108){const _0x2d6734=a123_0x117a8c;let _0x5b3996=resolve(_0x3f25d9);const _0x24fe77=resolve(_0x2ed108);while(_0x5b3996[_0x2d6734(0x177)](''+_0x24fe77+sep)||_0x5b3996===_0x24fe77){if(_0x5b3996===_0x24fe77)return;try{const _0x3dd3d4=await readdir(_0x5b3996);if(_0x3dd3d4[_0x2d6734(0x16b)]>0x0)return;await rmdir(_0x5b3996);}catch{return;}_0x5b3996=dirname(_0x5b3996);}}
@@ -1 +1 @@
1
- const a124_0x4dc0fc=a124_0xf435;function a124_0x499e(){const _0x354a67=['read','87zlvIHr','appCode','sqlcode','3481175LHHfvy','7825188UwKjmH','35132jYgJPT','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','637188XOItoZ','sqlCode','verbose','str','dbId','boolean','422716JtRJDj','45CeDwYX','32CVfHMl','sqlName','sqlContent','197332AXiLiZ','bool','1118570WFShtN','Return\x20full\x20raw\x20SQL\x20query\x20object'];a124_0x499e=function(){return _0x354a67;};return a124_0x499e();}(function(_0x4ebf47,_0x410759){const _0x4db086=a124_0xf435,_0x5d522e=_0x4ebf47();while(!![]){try{const _0x3a0a1c=-parseInt(_0x4db086(0x1e3))/0x1+parseInt(_0x4db086(0x1ef))/0x2+-parseInt(_0x4db086(0x1e8))/0x3*(-parseInt(_0x4db086(0x1ed))/0x4)+-parseInt(_0x4db086(0x1eb))/0x5+parseInt(_0x4db086(0x1ec))/0x6+-parseInt(_0x4db086(0x1f5))/0x7*(-parseInt(_0x4db086(0x1f7))/0x8)+-parseInt(_0x4db086(0x1f6))/0x9*(parseInt(_0x4db086(0x1e5))/0xa);if(_0x3a0a1c===_0x410759)break;else _0x5d522e['push'](_0x5d522e['shift']());}catch(_0x25c810){_0x5d522e['push'](_0x5d522e['shift']());}}}(a124_0x499e,0xa2a57));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a124_0xf435(_0x4b4ef8,_0x1d3c88){_0x4b4ef8=_0x4b4ef8-0x1e1;const _0x499e89=a124_0x499e();let _0xf43581=_0x499e89[_0x4b4ef8];return _0xf43581;}export const sqlDetail={'service':'sql','command':'detail','description':a124_0x4dc0fc(0x1ee),'risk':a124_0x4dc0fc(0x1e7),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a124_0x4dc0fc(0x1f4),'description':a124_0x4dc0fc(0x1e6)}],async 'execute'(_0x316a77){const _0x5b4bac=a124_0x4dc0fc,_0x2c02fa=await getSqlQueryInfo(_0x316a77[_0x5b4bac(0x1e9)],_0x316a77[_0x5b4bac(0x1f2)](_0x5b4bac(0x1ea))),_0x2b318e=_0x316a77[_0x5b4bac(0x1e4)](_0x5b4bac(0x1f1));if(_0x2b318e)return{'ok':!![],'data':_0x2c02fa};const _0x5bcf62=_0x2c02fa[_0x5b4bac(0x1f3)]?await getDbName(_0x316a77['appCode'],_0x2c02fa[_0x5b4bac(0x1f3)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x2c02fa[_0x5b4bac(0x1f0)],'sqlName':_0x2c02fa[_0x5b4bac(0x1e1)],'db':_0x5bcf62?_0x5bcf62+'\x20('+_0x2c02fa[_0x5b4bac(0x1f3)]+')':_0x2c02fa['dbId']??'','description':_0x2c02fa['description']??'','sqlContent':_0x2c02fa[_0x5b4bac(0x1e2)]??''}};}};
1
+ const a124_0x44054d=a124_0x113f;function a124_0x113f(_0x36893a,_0x59ba2e){_0x36893a=_0x36893a-0xf5;const _0x19bd02=a124_0x19bd();let _0x113fa1=_0x19bd02[_0x36893a];return _0x113fa1;}(function(_0x5b32c7,_0x6d5cac){const _0x40637d=a124_0x113f,_0x1a2fd9=_0x5b32c7();while(!![]){try{const _0x25c317=parseInt(_0x40637d(0x107))/0x1+parseInt(_0x40637d(0xf9))/0x2*(-parseInt(_0x40637d(0xfc))/0x3)+parseInt(_0x40637d(0x10b))/0x4*(-parseInt(_0x40637d(0xfe))/0x5)+parseInt(_0x40637d(0xfb))/0x6+-parseInt(_0x40637d(0x10a))/0x7*(-parseInt(_0x40637d(0x106))/0x8)+-parseInt(_0x40637d(0x109))/0x9*(-parseInt(_0x40637d(0xff))/0xa)+-parseInt(_0x40637d(0xfd))/0xb;if(_0x25c317===_0x6d5cac)break;else _0x1a2fd9['push'](_0x1a2fd9['shift']());}catch(_0x10a5c3){_0x1a2fd9['push'](_0x1a2fd9['shift']());}}}(a124_0x19bd,0x2eefb));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a124_0x44054d(0x100),'command':a124_0x44054d(0xf5),'description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':a124_0x44054d(0x103),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a124_0x44054d(0x102),'description':a124_0x44054d(0x104)}],async 'execute'(_0x50de3d){const _0x488cb1=a124_0x44054d,_0x394479=await getSqlQueryInfo(_0x50de3d[_0x488cb1(0xf7)],_0x50de3d[_0x488cb1(0x10c)](_0x488cb1(0x108))),_0x1cb670=_0x50de3d[_0x488cb1(0xfa)](_0x488cb1(0xf8));if(_0x1cb670)return{'ok':!![],'data':_0x394479};const _0x2056ac=_0x394479[_0x488cb1(0xf6)]?await getDbName(_0x50de3d[_0x488cb1(0xf7)],_0x394479[_0x488cb1(0xf6)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x394479['sqlCode'],'sqlName':_0x394479[_0x488cb1(0x10d)],'db':_0x2056ac?_0x2056ac+'\x20('+_0x394479[_0x488cb1(0xf6)]+')':_0x394479[_0x488cb1(0xf6)]??'','description':_0x394479[_0x488cb1(0x105)]??'','sqlContent':_0x394479[_0x488cb1(0x101)]??''}};}};function a124_0x19bd(){const _0x2eec39=['verbose','22gucFcZ','bool','1540788QtRVux','31911ATVZnz','961686opxpwe','850880srYQWx','458270orZIhL','sql','sqlContent','boolean','read','Return\x20full\x20raw\x20SQL\x20query\x20object','description','13656VQaJzG','240599CYyEgs','sqlcode','36VrODOk','231MBbYBx','8OUxbYY','str','sqlName','detail','dbId','appCode'];a124_0x19bd=function(){return _0x2eec39;};return a124_0x19bd();}
@@ -1 +1 @@
1
- const a125_0xbb75ec=a125_0x2dc0;(function(_0x225fbe,_0x3fb117){const _0x515534=a125_0x2dc0,_0x14941f=_0x225fbe();while(!![]){try{const _0x5bd769=-parseInt(_0x515534(0x1d1))/0x1*(-parseInt(_0x515534(0x1d7))/0x2)+parseInt(_0x515534(0x1d5))/0x3+-parseInt(_0x515534(0x1dd))/0x4*(-parseInt(_0x515534(0x1df))/0x5)+-parseInt(_0x515534(0x1ce))/0x6*(parseInt(_0x515534(0x1db))/0x7)+parseInt(_0x515534(0x1e0))/0x8+-parseInt(_0x515534(0x1d4))/0x9*(parseInt(_0x515534(0x1e3))/0xa)+-parseInt(_0x515534(0x1e4))/0xb*(parseInt(_0x515534(0x1de))/0xc);if(_0x5bd769===_0x3fb117)break;else _0x14941f['push'](_0x14941f['shift']());}catch(_0x38ee4e){_0x14941f['push'](_0x14941f['shift']());}}}(a125_0x443a,0xc1bf6));import{executeSql}from'../../core/api-client.js';function a125_0x443a(){const _0x2230da=['params','isArray','7443aVORUC','2059974iyVxHj','str','708602oaUCVC','now','length','SQL\x20execution\x20failed','10353XeiJng','sql','4deBBlU','24xtDdpI','4407665GHCfTy','7396616LNHynU','execResult','sqlcode','930EEzEhf','11981926kRIJfd','\x20row(s)\x20in\x20','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','appCode','read','exec','618SobXUR','execError','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','2tcQjwl'];a125_0x443a=function(){return _0x2230da;};return a125_0x443a();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a125_0x2dc0(_0x1783df,_0x3e0aa3){_0x1783df=_0x1783df-0x1ca;const _0x443a56=a125_0x443a();let _0x2dc0c1=_0x443a56[_0x1783df];return _0x2dc0c1;}export const sqlExec={'service':a125_0xbb75ec(0x1dc),'command':a125_0xbb75ec(0x1cd),'description':a125_0xbb75ec(0x1d0),'risk':a125_0xbb75ec(0x1cc),'flags':[SQLCODE_FLAG,{'name':a125_0xbb75ec(0x1d2),'type':'string','description':a125_0xbb75ec(0x1ca)}],async 'execute'(_0x5234cd){const _0x400c6c=a125_0xbb75ec,_0xf70d6d=parseJsonParams(_0x5234cd[_0x400c6c(0x1d6)](_0x400c6c(0x1d2))),_0x52794d=Date[_0x400c6c(0x1d8)](),_0x1b9edf=await executeSql(_0x5234cd[_0x400c6c(0x1cb)],_0x5234cd[_0x400c6c(0x1d6)](_0x400c6c(0x1e2)),_0xf70d6d),_0x5344ba=Date[_0x400c6c(0x1d8)]()-_0x52794d,_0x2279d3=_0x1b9edf?.[_0x400c6c(0x1e1)]??_0x1b9edf,_0x1ad09e=_0x1b9edf?.['execSuccess']??!![];if(!_0x1ad09e)return{'ok':![],'data':{'error':_0x1b9edf?.[_0x400c6c(0x1cf)]||_0x400c6c(0x1da),'elapsed':_0x5344ba},'message':_0x400c6c(0x1da)};const _0x2f9ce6=Array[_0x400c6c(0x1d3)](_0x2279d3)?_0x2279d3:[];return{'ok':!![],'data':{'rows':_0x2f9ce6,'rowCount':_0x2f9ce6[_0x400c6c(0x1d9)],'elapsed':_0x5344ba},'message':'Returned\x20'+_0x2f9ce6['length']+_0x400c6c(0x1e5)+_0x5344ba+'ms'};}};
1
+ const a125_0x548a5d=a125_0x2d9a;function a125_0x2633(){const _0x49e900=['length','params','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','str','string','8PENmAv','Returned\x20','1887765JsQAyY','execError','2570640IEjPKO','905246hbcjQk','sql','read','1062111pxYxcD','now','4156593ZkQSOc','execResult','332176nlvWFw','sqlcode','isArray','appCode','execSuccess','SQL\x20execution\x20failed','645480PEBGZN'];a125_0x2633=function(){return _0x49e900;};return a125_0x2633();}(function(_0x46dc8a,_0x2aecf5){const _0x54656e=a125_0x2d9a,_0x16c5e5=_0x46dc8a();while(!![]){try{const _0x25c37d=-parseInt(_0x54656e(0xe8))/0x1+-parseInt(_0x54656e(0xf9))/0x2+parseInt(_0x54656e(0xe4))/0x3*(parseInt(_0x54656e(0xf4))/0x4)+-parseInt(_0x54656e(0xf6))/0x5+parseInt(_0x54656e(0xf8))/0x6+parseInt(_0x54656e(0xe6))/0x7+parseInt(_0x54656e(0xee))/0x8;if(_0x25c37d===_0x2aecf5)break;else _0x16c5e5['push'](_0x16c5e5['shift']());}catch(_0xa8fc19){_0x16c5e5['push'](_0x16c5e5['shift']());}}}(a125_0x2633,0x9e5c6));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a125_0x2d9a(_0x56585f,_0x40e063){_0x56585f=_0x56585f-0xe3;const _0x2633db=a125_0x2633();let _0x2d9ae0=_0x2633db[_0x56585f];return _0x2d9ae0;}export const sqlExec={'service':a125_0x548a5d(0xfa),'command':'exec','description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':a125_0x548a5d(0xe3),'flags':[SQLCODE_FLAG,{'name':a125_0x548a5d(0xf0),'type':a125_0x548a5d(0xf3),'description':a125_0x548a5d(0xf1)}],async 'execute'(_0x26aa58){const _0x4ee104=a125_0x548a5d,_0x3a14bf=parseJsonParams(_0x26aa58['str'](_0x4ee104(0xf0))),_0x240fe1=Date[_0x4ee104(0xe5)](),_0x38ff9e=await executeSql(_0x26aa58[_0x4ee104(0xeb)],_0x26aa58[_0x4ee104(0xf2)](_0x4ee104(0xe9)),_0x3a14bf),_0x408822=Date[_0x4ee104(0xe5)]()-_0x240fe1,_0xc6179a=_0x38ff9e?.[_0x4ee104(0xe7)]??_0x38ff9e,_0x325158=_0x38ff9e?.[_0x4ee104(0xec)]??!![];if(!_0x325158)return{'ok':![],'data':{'error':_0x38ff9e?.[_0x4ee104(0xf7)]||_0x4ee104(0xed),'elapsed':_0x408822},'message':'SQL\x20execution\x20failed'};const _0x576051=Array[_0x4ee104(0xea)](_0xc6179a)?_0xc6179a:[];return{'ok':!![],'data':{'rows':_0x576051,'rowCount':_0x576051[_0x4ee104(0xef)],'elapsed':_0x408822},'message':_0x4ee104(0xf5)+_0x576051['length']+'\x20row(s)\x20in\x20'+_0x408822+'ms'};}};
@@ -1 +1 @@
1
- function a126_0x2993(_0x1a8a06,_0x301530){_0x1a8a06=_0x1a8a06-0xa7;const _0x50d160=a126_0x50d1();let _0x299344=_0x50d160[_0x1a8a06];return _0x299344;}(function(_0x4a9c95,_0x4847d7){const _0x2db427=a126_0x2993,_0x592729=_0x4a9c95();while(!![]){try{const _0x3b8adf=-parseInt(_0x2db427(0xab))/0x1+parseInt(_0x2db427(0xaf))/0x2+-parseInt(_0x2db427(0xaa))/0x3+parseInt(_0x2db427(0xad))/0x4+-parseInt(_0x2db427(0xa9))/0x5*(parseInt(_0x2db427(0xa7))/0x6)+parseInt(_0x2db427(0xa8))/0x7+parseInt(_0x2db427(0xac))/0x8*(parseInt(_0x2db427(0xae))/0x9);if(_0x3b8adf===_0x4847d7)break;else _0x592729['push'](_0x592729['shift']());}catch(_0x285534){_0x592729['push'](_0x592729['shift']());}}}(a126_0x50d1,0x5cf39));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';function a126_0x50d1(){const _0x426d2c=['710760xIaECD','6KkkieG','1665335GifSjc','1683775AcOPtu','660756LtDPQC','744594tlnyjK','344ditDHs','690688qNCiud','191799LGpiHg'];a126_0x50d1=function(){return _0x426d2c;};return a126_0x50d1();}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(_0x185afd,_0x59aec0){const _0x4d8f53=a126_0x23c9,_0xf8a1cf=_0x185afd();while(!![]){try{const _0x5627ba=-parseInt(_0x4d8f53(0xd1))/0x1*(-parseInt(_0x4d8f53(0xd5))/0x2)+parseInt(_0x4d8f53(0xcb))/0x3+-parseInt(_0x4d8f53(0xcc))/0x4*(parseInt(_0x4d8f53(0xd4))/0x5)+parseInt(_0x4d8f53(0xd6))/0x6*(-parseInt(_0x4d8f53(0xd3))/0x7)+-parseInt(_0x4d8f53(0xd0))/0x8*(-parseInt(_0x4d8f53(0xcf))/0x9)+-parseInt(_0x4d8f53(0xce))/0xa*(-parseInt(_0x4d8f53(0xd2))/0xb)+parseInt(_0x4d8f53(0xcd))/0xc;if(_0x5627ba===_0x59aec0)break;else _0xf8a1cf['push'](_0xf8a1cf['shift']());}catch(_0x26a990){_0xf8a1cf['push'](_0xf8a1cf['shift']());}}}(a126_0x283c,0x20585));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';function a126_0x23c9(_0x18cf02,_0x534e6b){_0x18cf02=_0x18cf02-0xcb;const _0x283c04=a126_0x283c();let _0x23c9ed=_0x283c04[_0x18cf02];return _0x23c9ed;}import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';function a126_0x283c(){const _0x4e3606=['1542132gntGYa','8aXJsbM','27737yMUTDu','33kFVYRx','91329GLNMgZ','5rUgRoh','6cofIVG','114iykpGH','568281IIYtji','789920bZumMD','653976qRmRNi','264580CIKpAh'];a126_0x283c=function(){return _0x4e3606;};return a126_0x283c();}import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- function a127_0x2eb4(_0x244322,_0x1e13a0){_0x244322=_0x244322-0x13c;const _0x11a1c6=a127_0x11a1();let _0x2eb4d3=_0x11a1c6[_0x244322];return _0x2eb4d3;}const a127_0x316fdc=a127_0x2eb4;(function(_0x439f95,_0x4c6f82){const _0x321a06=a127_0x2eb4,_0xce37fb=_0x439f95();while(!![]){try{const _0x108023=parseInt(_0x321a06(0x15b))/0x1*(-parseInt(_0x321a06(0x15d))/0x2)+-parseInt(_0x321a06(0x149))/0x3+parseInt(_0x321a06(0x13e))/0x4*(-parseInt(_0x321a06(0x151))/0x5)+parseInt(_0x321a06(0x159))/0x6*(-parseInt(_0x321a06(0x13f))/0x7)+-parseInt(_0x321a06(0x157))/0x8+-parseInt(_0x321a06(0x148))/0x9*(parseInt(_0x321a06(0x143))/0xa)+parseInt(_0x321a06(0x144))/0xb;if(_0x108023===_0x4c6f82)break;else _0xce37fb['push'](_0xce37fb['shift']());}catch(_0x52cc66){_0xce37fb['push'](_0xce37fb['shift']());}}}(a127_0x11a1,0x463c3));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a127_0x11a1(){const _0x38be9d=['26723257AlOGQc','list','string','all','21321BqilcS','1679454xTxwaE','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','str','sqlCode','sqlName','read','appCode','map','345jIpoBh','boolean','pagesize','name','Page\x20size','tableData','3317168CYxxil','verbose','6oxsQyR','description','147983UrKglv','Page\x20number','6YCQahu','length','dbId','num','Filter\x20by\x20SQL\x20name','Found\x20','24436HrHCyh','1598317IpCYwM','number','page','paging','310UnSnWm'];a127_0x11a1=function(){return _0x38be9d;};return a127_0x11a1();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a127_0x316fdc(0x145),'description':'List\x20custom\x20SQL\x20queries','risk':a127_0x316fdc(0x14e),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a127_0x316fdc(0x154),'type':a127_0x316fdc(0x146),'description':a127_0x316fdc(0x13c)},{'name':a127_0x316fdc(0x141),'type':a127_0x316fdc(0x140),'description':a127_0x316fdc(0x15c),'default':0x1},{'name':a127_0x316fdc(0x153),'type':a127_0x316fdc(0x140),'description':a127_0x316fdc(0x155)},{'name':'verbose','type':a127_0x316fdc(0x152),'description':a127_0x316fdc(0x14a)}],async 'execute'(_0x3b00ad){const _0xfc10c=a127_0x316fdc,_0xfab049=await listSqlQueries(_0x3b00ad[_0xfc10c(0x14f)],{'sqlCode':_0x3b00ad[_0xfc10c(0x14b)]('sqlcode')||undefined,'sqlName':_0x3b00ad[_0xfc10c(0x14b)](_0xfc10c(0x154))||undefined,'currentPage':_0x3b00ad[_0xfc10c(0x160)]('page'),'pageSize':_0x3b00ad[_0xfc10c(0x160)](_0xfc10c(0x153),0x32)}),_0x301dc2=_0x3b00ad['bool'](_0xfc10c(0x158)),_0x4749ae=_0xfab049[_0xfc10c(0x156)]??[],_0x4001ee=_0xfab049[_0xfc10c(0x142)]?.['totalCount']??_0x4749ae[_0xfc10c(0x15e)];let _0x27b31e;return _0x301dc2?_0x27b31e=_0x4749ae:_0x27b31e=await Promise[_0xfc10c(0x147)](_0x4749ae[_0xfc10c(0x150)](async _0x2b488a=>{const _0x2626a5=_0xfc10c;let _0x6e619e;try{_0x6e619e=_0x2b488a['dbId']?await getDbName(_0x3b00ad['appCode'],_0x2b488a[_0x2626a5(0x15f)]):undefined;}catch{}return{'sqlCode':_0x2b488a[_0x2626a5(0x14c)],'sqlName':_0x2b488a[_0x2626a5(0x14d)],'description':_0x2b488a[_0x2626a5(0x15a)]??'','db':_0x6e619e?_0x6e619e+'\x20('+_0x2b488a[_0x2626a5(0x15f)]+')':_0x2b488a[_0x2626a5(0x15f)]??''};})),{'ok':!![],'data':_0x27b31e,'message':_0x4749ae[_0xfc10c(0x15e)]===0x0?'No\x20custom\x20SQL\x20queries\x20found.':_0xfc10c(0x13d)+_0x4749ae['length']+'\x20SQL\x20queries\x20(total:\x20'+_0x4001ee+').'};}};
1
+ const a127_0x239692=a127_0x4561;(function(_0x5a3795,_0x1a5e56){const _0x312133=a127_0x4561,_0x3bfe2c=_0x5a3795();while(!![]){try{const _0x43ea1d=-parseInt(_0x312133(0xa5))/0x1*(parseInt(_0x312133(0x89))/0x2)+-parseInt(_0x312133(0xa9))/0x3*(parseInt(_0x312133(0x98))/0x4)+-parseInt(_0x312133(0x9f))/0x5*(-parseInt(_0x312133(0x8b))/0x6)+-parseInt(_0x312133(0xa7))/0x7+parseInt(_0x312133(0xac))/0x8+-parseInt(_0x312133(0xab))/0x9*(-parseInt(_0x312133(0xa1))/0xa)+-parseInt(_0x312133(0x8c))/0xb*(-parseInt(_0x312133(0x90))/0xc);if(_0x43ea1d===_0x1a5e56)break;else _0x3bfe2c['push'](_0x3bfe2c['shift']());}catch(_0x34b181){_0x3bfe2c['push'](_0x3bfe2c['shift']());}}}(a127_0x56d1,0x5f7d6));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a127_0x56d1(){const _0x4d2b0b=['3685qjfkMJ','No\x20custom\x20SQL\x20queries\x20found.','10cWphia','str','description','appCode','8vshKyw','Page\x20number','3539032CoxatG','sql','141GYIiAR','Page\x20size','609597tGcENj','6251520VQQTcq','List\x20custom\x20SQL\x20queries','read','7014qhxnSk','\x20SQL\x20queries\x20(total:\x20','918bNPFFX','1925wKGFoy','pagesize','sqlCode','number','48156ehuyGG','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','sqlcode','num','verbose','dbId','length','map','62932xBMIyu','page','string','name','sqlName','boolean','paging'];a127_0x56d1=function(){return _0x4d2b0b;};return a127_0x56d1();}function a127_0x4561(_0x1fbfd4,_0x4318e7){_0x1fbfd4=_0x1fbfd4-0x87;const _0x56d1df=a127_0x56d1();let _0x45616b=_0x56d1df[_0x1fbfd4];return _0x45616b;}export const sqlList={'service':a127_0x239692(0xa8),'command':'list','description':a127_0x239692(0x87),'risk':a127_0x239692(0x88),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a127_0x239692(0x9b),'type':a127_0x239692(0x9a),'description':'Filter\x20by\x20SQL\x20name'},{'name':a127_0x239692(0x99),'type':'number','description':a127_0x239692(0xa6),'default':0x1},{'name':a127_0x239692(0x8d),'type':a127_0x239692(0x8f),'description':a127_0x239692(0xaa)},{'name':a127_0x239692(0x94),'type':a127_0x239692(0x9d),'description':a127_0x239692(0x91)}],async 'execute'(_0x3f6c7d){const _0x2964c1=a127_0x239692,_0x294227=await listSqlQueries(_0x3f6c7d[_0x2964c1(0xa4)],{'sqlCode':_0x3f6c7d[_0x2964c1(0xa2)](_0x2964c1(0x92))||undefined,'sqlName':_0x3f6c7d[_0x2964c1(0xa2)](_0x2964c1(0x9b))||undefined,'currentPage':_0x3f6c7d[_0x2964c1(0x93)](_0x2964c1(0x99)),'pageSize':_0x3f6c7d[_0x2964c1(0x93)](_0x2964c1(0x8d),0x32)}),_0x4f704d=_0x3f6c7d['bool']('verbose'),_0x2a37da=_0x294227['tableData']??[],_0x13fb5d=_0x294227[_0x2964c1(0x9e)]?.['totalCount']??_0x2a37da[_0x2964c1(0x96)];let _0x86060;return _0x4f704d?_0x86060=_0x2a37da:_0x86060=await Promise['all'](_0x2a37da[_0x2964c1(0x97)](async _0x201583=>{const _0x27b017=_0x2964c1;let _0x5d0798;try{_0x5d0798=_0x201583[_0x27b017(0x95)]?await getDbName(_0x3f6c7d[_0x27b017(0xa4)],_0x201583[_0x27b017(0x95)]):undefined;}catch{}return{'sqlCode':_0x201583[_0x27b017(0x8e)],'sqlName':_0x201583[_0x27b017(0x9c)],'description':_0x201583[_0x27b017(0xa3)]??'','db':_0x5d0798?_0x5d0798+'\x20('+_0x201583[_0x27b017(0x95)]+')':_0x201583['dbId']??''};})),{'ok':!![],'data':_0x86060,'message':_0x2a37da['length']===0x0?_0x2964c1(0xa0):'Found\x20'+_0x2a37da[_0x2964c1(0x96)]+_0x2964c1(0x8a)+_0x13fb5d+').'};}};
@@ -1 +1 @@
1
- function a128_0x4279(_0x3b4079,_0xab6774){_0x3b4079=_0x3b4079-0x80;const _0xef5f1f=a128_0xef5f();let _0x42790a=_0xef5f1f[_0x3b4079];return _0x42790a;}const a128_0x441d12=a128_0x4279;function a128_0xef5f(){const _0x3b8591=['catch','nonInteractive','\x20written,\x20','message','\x20SQL\x20file(s)\x20into\x20','push','split','conflict','name','4046610IzmHtY','sqlName','2170050dgofhB','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','dbId','695616qyWdRj','unchanged','342531dgKqmF','length','toISOString','1489785VtphwD','pull','apps','\x20failed','mybatisXml','boolean','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','force','Force\x20overwrite\x20local\x20unsynced\x20changes','sqlRoot','test','replace','4366852OFENGq','skipped','Force\x20pull\x20cancelled.','Filter\x20by\x20SQL\x20display\x20name','path','join','sql','4UpMJnU','sqls','appCode','5AJgQTB','8OhgToK','string','str','POST','write','description','lockFilePath','utf8','373497VdFvKw','27lXmgWy','sqlRootDir','lastSync','local\x20differs\x20from\x20remote','No\x20remote\x20SQL\x20queries\x20matched.','sqlCode','would_pull','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','sqlcode','filter'];a128_0xef5f=function(){return _0x3b8591;};return a128_0xef5f();}(function(_0x542164,_0x3ca987){const _0x5a19dc=a128_0x4279,_0x7dcb50=_0x542164();while(!![]){try{const _0x20e76b=-parseInt(_0x5a19dc(0xae))/0x1*(-parseInt(_0x5a19dc(0x87))/0x2)+parseInt(_0x5a19dc(0x93))/0x3*(-parseInt(_0x5a19dc(0x8b))/0x4)+-parseInt(_0x5a19dc(0x8a))/0x5*(-parseInt(_0x5a19dc(0xa7))/0x6)+-parseInt(_0x5a19dc(0x80))/0x7+-parseInt(_0x5a19dc(0xac))/0x8*(-parseInt(_0x5a19dc(0x94))/0x9)+-parseInt(_0x5a19dc(0xa9))/0xa+-parseInt(_0x5a19dc(0xb1))/0xb;if(_0x20e76b===_0x3ca987)break;else _0x7dcb50['push'](_0x7dcb50['shift']());}catch(_0x18720b){_0x7dcb50['push'](_0x7dcb50['shift']());}}}(a128_0xef5f,0x60747));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x2cbee8,_0xa05a23){const _0x3851a9=a128_0x4279,_0x2fd8ec=[];let _0x2a5c3b=0x1;while(!![]){const _0x57ae9c=await listSqlQueries(_0x2cbee8,{'currentPage':_0x2a5c3b,'pageSize':PAGE_SIZE,'sqlCode':_0xa05a23[_0x3851a9(0x99)],'sqlName':_0xa05a23['sqlName']}),_0x57376c=_0x57ae9c['tableData']??[];_0x2fd8ec[_0x3851a9(0xa3)](..._0x57376c);if(_0x57376c[_0x3851a9(0xaf)]===0x0)break;const _0x4d7797=_0x57ae9c['paging']?.['totalCount'];if(_0x4d7797!=null?_0x2fd8ec['length']>=_0x4d7797:_0x57376c[_0x3851a9(0xaf)]<PAGE_SIZE)break;_0x2a5c3b++;}return _0x2fd8ec;}async function ensureSqlContent(_0x46ae41){const _0x4abdae=a128_0x4279;if(_0x46ae41['sqlContent']!=null&&String(_0x46ae41['sqlContent'])[_0x4abdae(0xaf)]>0x0)return _0x46ae41;return getSqlQueryDetail(_0x46ae41['sqlCode']);}export const sqlPull={'service':'sql','command':a128_0x441d12(0xb2),'description':a128_0x441d12(0x9b),'risk':a128_0x441d12(0x8f),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a128_0x441d12(0xa6),'type':a128_0x441d12(0x8c),'description':a128_0x441d12(0x83)},{'name':a128_0x441d12(0xb8),'type':a128_0x441d12(0xb6),'description':a128_0x441d12(0xb9)}],async 'dryRun'(_0x4f20b5){const _0x4ce122=a128_0x441d12,_0x15e227=loadSqlProjectConfig(_0x4f20b5['appCode']),_0xf9f114=await readSqlLockFile(_0x15e227['lockFilePath']),{appLock:_0x375d59}=ensureSqlLockScope(_0xf9f114??createEmptySqlLock(),_0x15e227[_0x4ce122(0x89)],_0x15e227[_0x4ce122(0xba)],_0x4ce122(0xb2)),_0x21f461=await fetchAllSqlQueries(_0x4f20b5[_0x4ce122(0x89)],{'sqlCode':_0x4f20b5['str'](_0x4ce122(0x9c))||undefined,'sqlName':_0x4f20b5[_0x4ce122(0x8d)](_0x4ce122(0xa6))||undefined}),_0x2e4568=[];for(const _0x1fe39a of _0x21f461){const _0x33c4a1=await ensureSqlContent(_0x1fe39a),_0x1a8543=ensureRemoteSqlContent(_0x33c4a1),_0x6325d2=detectModeFromSql(_0x33c4a1),_0xf6a89f=_0x33c4a1[_0x4ce122(0xab)]?await getDbName(_0x4f20b5[_0x4ce122(0x89)],Number(_0x33c4a1['dbId']))[_0x4ce122(0x9e)](()=>undefined):undefined,_0x219b75=buildLocalSqlFileContent({'sqlCode':_0x33c4a1[_0x4ce122(0x99)],'sqlName':_0x33c4a1[_0x4ce122(0xa8)],'dbId':_0x33c4a1[_0x4ce122(0xab)]},_0x1a8543,{'dbName':_0xf6a89f,'mode':_0x6325d2,'syncedAt':new Date()[_0x4ce122(0xb0)](),'description':_0x33c4a1[_0x4ce122(0x90)]}),_0x1734ef=buildSqlLockEntry(_0x33c4a1,_0x1a8543,'',{'dbName':_0xf6a89f}),_0xf5fd14=resolveLocalSqlFilePath(_0x15e227,_0x33c4a1[_0x4ce122(0x99)],_0x1734ef);let _0x1b6946=_0x4ce122(0x9a),_0x1fe5bd;if(await fileExists(_0xf5fd14)){const _0x5014eb=await readFile(_0xf5fd14,_0x4ce122(0x92));isEquivalentPulledSqlFile(_0x5014eb,_0x219b75,_0x6325d2)?(_0x1b6946=_0x4ce122(0x81),_0x1fe5bd=_0x4ce122(0xad)):(_0x1b6946=_0x4ce122(0xa5),_0x1fe5bd=_0x4ce122(0xaa));}_0x2e4568['push']({'sqlCode':_0x33c4a1[_0x4ce122(0x99)],'sqlName':_0x33c4a1[_0x4ce122(0xa8)],'filePath':_0xf5fd14,'status':_0x1b6946,'reason':_0x1fe5bd});}return{'method':_0x4ce122(0x8e),'url':_0x4ce122(0xb7),'body':{'appCode':_0x4f20b5[_0x4ce122(0x89)],'sqlCode':_0x4f20b5[_0x4ce122(0x8d)](_0x4ce122(0x9c))||null,'sqlName':_0x4f20b5['str']('name')||null,'files':_0x2e4568},'description':'Would\x20pull\x20'+_0x2e4568['length']+_0x4ce122(0xa2)+_0x15e227[_0x4ce122(0x95)]};},async 'execute'(_0x5d2fd1){const _0x53522f=a128_0x441d12,_0x702dd0=loadSqlProjectConfig(_0x5d2fd1[_0x53522f(0x89)]),_0x491bfa=await readSqlLockFile(_0x702dd0[_0x53522f(0x91)]),{lockData:_0x313632,appLock:_0x9e7b9a}=ensureSqlLockScope(_0x491bfa??createEmptySqlLock(),_0x702dd0[_0x53522f(0x89)],_0x702dd0[_0x53522f(0xba)],_0x53522f(0xb2)),_0x35ffc3=_0x5d2fd1['bool'](_0x53522f(0xb8)),_0x54115c=await fetchAllSqlQueries(_0x5d2fd1[_0x53522f(0x89)],{'sqlCode':_0x5d2fd1[_0x53522f(0x8d)](_0x53522f(0x9c))||undefined,'sqlName':_0x5d2fd1[_0x53522f(0x8d)](_0x53522f(0xa6))||undefined});if(_0x54115c[_0x53522f(0xaf)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x53522f(0x98)};const _0x41da6c=[],_0xfc339f=[];for(const _0x1c5217 of _0x54115c){try{_0x41da6c[_0x53522f(0xa3)](await ensureSqlContent(_0x1c5217));}catch(_0x355bdd){_0xfc339f[_0x53522f(0xa3)]({'sqlCode':_0x1c5217[_0x53522f(0x99)],'error':_0x355bdd instanceof Error?_0x355bdd[_0x53522f(0xa1)]:String(_0x355bdd)});}}if(_0x35ffc3&&!_0x5d2fd1[_0x53522f(0x9f)]){let _0x1daa23=![];for(const _0x1dd56d of _0x41da6c){const _0x522eb8=detectModeFromSql(_0x1dd56d),_0x3b83fb=_0x1dd56d['dbId']?await getDbName(_0x5d2fd1['appCode'],Number(_0x1dd56d[_0x53522f(0xab)]))[_0x53522f(0x9e)](()=>undefined):undefined,_0xb2c263=buildLocalSqlFileContent({'sqlCode':_0x1dd56d[_0x53522f(0x99)],'sqlName':_0x1dd56d[_0x53522f(0xa8)],'dbId':_0x1dd56d['dbId']},ensureRemoteSqlContent(_0x1dd56d),{'dbName':_0x3b83fb,'mode':_0x522eb8,'syncedAt':new Date()['toISOString'](),'description':_0x1dd56d['description']}),_0xb29569=resolveLocalSqlFilePath(_0x702dd0,_0x1dd56d[_0x53522f(0x99)],buildSqlLockEntry(_0x1dd56d,ensureRemoteSqlContent(_0x1dd56d),'',{'dbName':_0x3b83fb}));if(await fileExists(_0xb29569)){const _0x243b42=await readFile(_0xb29569,_0x53522f(0x92));if(!isEquivalentPulledSqlFile(_0x243b42,_0xb2c263,_0x522eb8)){_0x1daa23=!![];break;}}}if(_0x1daa23){const _0x4fdb74=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x4fdb74)throw CliErrors['cancelled'](_0x53522f(0x82));}}const _0xdd64ce=cloneSqlLockData(_0x313632),_0x3aecf4=_0xdd64ce[_0x53522f(0xb3)][_0x702dd0[_0x53522f(0x89)]],_0x67eed7=[],_0x29ef4e=[];for(const _0x5e1f5b of _0x41da6c){const _0x47b743=_0x3aecf4['sqls'][_0x5e1f5b[_0x53522f(0x99)]],_0x323de9=ensureRemoteSqlContent(_0x5e1f5b),_0x4b1eb6=detectModeFromSql(_0x5e1f5b),_0x22a984=_0x5e1f5b[_0x53522f(0xab)]?await getDbName(_0x5d2fd1[_0x53522f(0x89)],Number(_0x5e1f5b[_0x53522f(0xab)]))[_0x53522f(0x9e)](()=>undefined):undefined,_0x108eca=buildLocalSqlFileContent({'sqlCode':_0x5e1f5b[_0x53522f(0x99)],'sqlName':_0x5e1f5b['sqlName'],'dbId':_0x5e1f5b[_0x53522f(0xab)]},_0x323de9,{'dbName':_0x22a984,'mode':_0x4b1eb6,'syncedAt':new Date()[_0x53522f(0xb0)](),'description':_0x5e1f5b[_0x53522f(0x90)]}),_0x43e550=buildSqlLockEntry(_0x5e1f5b,_0x323de9,computeSqlContentHash(_0x108eca),{'dbName':_0x22a984}),_0x133071=_0x43e550['path'],_0x45b4a9=join(_0x702dd0['sqlRootDir'],_0x133071);try{if(await fileExists(_0x45b4a9)){const _0x513bc7=await readFile(_0x45b4a9,_0x53522f(0x92));if(isEquivalentPulledSqlFile(_0x513bc7,_0x108eca,_0x4b1eb6)){_0x29ef4e[_0x53522f(0xa3)]({'sqlCode':_0x5e1f5b['sqlCode'],'reason':'unchanged'}),_0x3aecf4[_0x53522f(0x88)][_0x5e1f5b[_0x53522f(0x99)]]={..._0x43e550,'hash':computeSqlContentHash(_0x513bc7),'path':_0x133071};continue;}if(!_0x35ffc3){_0x29ef4e[_0x53522f(0xa3)]({'sqlCode':_0x5e1f5b['sqlCode'],'reason':_0x53522f(0x97)});continue;}}const _0x2cc351=_0x47b743?.[_0x53522f(0x84)]?join(_0x702dd0[_0x53522f(0x95)],_0x47b743[_0x53522f(0x84)]):undefined;_0x2cc351&&_0x2cc351!==_0x45b4a9&&await fileExists(_0x2cc351)&&await rm(_0x2cc351,{'force':!![]}),await ensureParentDirectory(_0x45b4a9),await writeFile(_0x45b4a9,_0x108eca,_0x53522f(0x92)),_0x3aecf4[_0x53522f(0x88)][_0x5e1f5b['sqlCode']]={..._0x43e550,'path':_0x133071},_0x67eed7[_0x53522f(0xa3)]({'sqlCode':_0x5e1f5b['sqlCode'],'filePath':_0x45b4a9});}catch(_0x23c7f5){_0xfc339f[_0x53522f(0xa3)]({'sqlCode':_0x5e1f5b[_0x53522f(0x99)],'error':_0x23c7f5 instanceof Error?_0x23c7f5[_0x53522f(0xa1)]:String(_0x23c7f5)});}}return _0x3aecf4[_0x53522f(0x96)]=new Date()[_0x53522f(0xb0)](),await writeSqlLockFile(_0x702dd0['lockFilePath'],_0xdd64ce),{'ok':_0xfc339f['length']===0x0,'data':{'pulled':_0x67eed7,'skipped':_0x29ef4e,'failed':_0xfc339f},'message':'Pull\x20complete:\x20'+_0x67eed7[_0x53522f(0xaf)]+_0x53522f(0xa0)+_0x29ef4e['length']+'\x20skipped,\x20'+_0xfc339f[_0x53522f(0xaf)]+_0x53522f(0xb4)};}};function detectModeFromSql(_0x369098){const _0x4a1a2d=a128_0x441d12,_0x1fb84b=ensureRemoteSqlContent(_0x369098),_0x1275be=stripLocalSqlMetadata(_0x1fb84b,'mybatisXml')['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0x4a1a2d(0xbb)](_0x1275be))return _0x4a1a2d(0xb5);return _0x4a1a2d(0x86);}function isEquivalentPulledSqlFile(_0x3769ab,_0x9a2677,_0x5abc9c){return normalizePullComparableContent(_0x3769ab,_0x5abc9c)===normalizePullComparableContent(_0x9a2677,_0x5abc9c);}function normalizePullComparableContent(_0x5e5b9a,_0x17a93d){const _0x3e7794=a128_0x441d12,_0xb0d3f1=_0x5e5b9a[_0x3e7794(0xbc)](/\r\n/g,'\x0a')[_0x3e7794(0xa4)]('\x0a'),_0x488f03=_0xb0d3f1[_0x3e7794(0x9d)](_0x35eb81=>!isSyncedAtMetadataLine(_0x35eb81,_0x17a93d));return _0x488f03[_0x3e7794(0x85)]('\x0a');}function isSyncedAtMetadataLine(_0x24d38b,_0x1f194b){const _0x595d4f=a128_0x441d12;if(_0x1f194b===_0x595d4f(0xb5))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x595d4f(0xbb)](_0x24d38b);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x24d38b);}
1
+ const a128_0x2590c4=a128_0x5a2b;(function(_0x4bc362,_0x4cdfd8){const _0x441a16=a128_0x5a2b,_0x5942ac=_0x4bc362();while(!![]){try{const _0x4b1848=parseInt(_0x441a16(0xdf))/0x1+parseInt(_0x441a16(0xf8))/0x2*(-parseInt(_0x441a16(0x100))/0x3)+parseInt(_0x441a16(0x101))/0x4*(parseInt(_0x441a16(0x110))/0x5)+parseInt(_0x441a16(0xee))/0x6+-parseInt(_0x441a16(0xf5))/0x7+parseInt(_0x441a16(0xf3))/0x8+-parseInt(_0x441a16(0xd9))/0x9*(parseInt(_0x441a16(0xd3))/0xa);if(_0x4b1848===_0x4cdfd8)break;else _0x5942ac['push'](_0x5942ac['shift']());}catch(_0x5f3828){_0x5942ac['push'](_0x5942ac['shift']());}}}(a128_0x1425,0x42ee5));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;function a128_0x5a2b(_0x49e1f5,_0x4bb810){_0x49e1f5=_0x49e1f5-0xd3;const _0x142584=a128_0x1425();let _0x5a2b69=_0x142584[_0x49e1f5];return _0x5a2b69;}async function fetchAllSqlQueries(_0x36f633,_0x45b3c6){const _0x27d95d=a128_0x5a2b,_0x4c10b0=[];let _0x573af0=0x1;while(!![]){const _0x33d091=await listSqlQueries(_0x36f633,{'currentPage':_0x573af0,'pageSize':PAGE_SIZE,'sqlCode':_0x45b3c6['sqlCode'],'sqlName':_0x45b3c6[_0x27d95d(0xe5)]}),_0x509404=_0x33d091[_0x27d95d(0x10a)]??[];_0x4c10b0[_0x27d95d(0xe3)](..._0x509404);if(_0x509404[_0x27d95d(0x108)]===0x0)break;const _0x4e7642=_0x33d091['paging']?.[_0x27d95d(0xe7)];if(_0x4e7642!=null?_0x4c10b0[_0x27d95d(0x108)]>=_0x4e7642:_0x509404[_0x27d95d(0x108)]<PAGE_SIZE)break;_0x573af0++;}return _0x4c10b0;}async function ensureSqlContent(_0x4385a8){const _0x370cd6=a128_0x5a2b;if(_0x4385a8[_0x370cd6(0xd6)]!=null&&String(_0x4385a8[_0x370cd6(0xd6)])['length']>0x0)return _0x4385a8;return getSqlQueryDetail(_0x4385a8[_0x370cd6(0xf6)]);}function a128_0x1425(){const _0x9d98d3=['Pull\x20complete:\x20','totalCount','test','nonInteractive','sql','filter','sqlcode','path','1645992nmgtmp','trimStart','\x20written,\x20','\x20SQL\x20file(s)\x20into\x20','Filter\x20by\x20SQL\x20display\x20name','2000688skuXXj','message','1297863XXrGEB','sqlCode','name','2Tlhpwq','No\x20remote\x20SQL\x20queries\x20matched.','Force\x20overwrite\x20local\x20unsynced\x20changes','skipped','POST','conflict','str','unchanged','1033761nZYKTt','14244UarwPi','description','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','utf8','bool','boolean','catch','length','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','tableData','toISOString','join','lastSync','\x20failed','dbId','335MkVnzN','lockFilePath','60JbyQpe','string','sqls','sqlContent','appCode','replace','718587rzwalh','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','pull','sqlRoot','sqlRootDir','mybatisXml','520198deEKri','force','split','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','push','would_pull','sqlName'];a128_0x1425=function(){return _0x9d98d3;};return a128_0x1425();}export const sqlPull={'service':a128_0x2590c4(0xea),'command':'pull','description':a128_0x2590c4(0x109),'risk':'write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a128_0x2590c4(0xf7),'type':a128_0x2590c4(0xd4),'description':a128_0x2590c4(0xf2)},{'name':a128_0x2590c4(0xe0),'type':a128_0x2590c4(0x106),'description':a128_0x2590c4(0xfa)}],async 'dryRun'(_0x27245a){const _0x18b4bd=a128_0x2590c4,_0x2a896c=loadSqlProjectConfig(_0x27245a[_0x18b4bd(0xd7)]),_0xf74422=await readSqlLockFile(_0x2a896c[_0x18b4bd(0x111)]),{appLock:_0x3f003f}=ensureSqlLockScope(_0xf74422??createEmptySqlLock(),_0x2a896c[_0x18b4bd(0xd7)],_0x2a896c[_0x18b4bd(0xdc)],'pull'),_0x481de5=await fetchAllSqlQueries(_0x27245a[_0x18b4bd(0xd7)],{'sqlCode':_0x27245a[_0x18b4bd(0xfe)]('sqlcode')||undefined,'sqlName':_0x27245a[_0x18b4bd(0xfe)](_0x18b4bd(0xf7))||undefined}),_0x3eab6a=[];for(const _0x20767b of _0x481de5){const _0x492fd1=await ensureSqlContent(_0x20767b),_0x3f7363=ensureRemoteSqlContent(_0x492fd1),_0x465e5e=detectModeFromSql(_0x492fd1),_0x1f9baf=_0x492fd1['dbId']?await getDbName(_0x27245a['appCode'],Number(_0x492fd1[_0x18b4bd(0x10f)]))['catch'](()=>undefined):undefined,_0x5951d6=buildLocalSqlFileContent({'sqlCode':_0x492fd1[_0x18b4bd(0xf6)],'sqlName':_0x492fd1['sqlName'],'dbId':_0x492fd1[_0x18b4bd(0x10f)]},_0x3f7363,{'dbName':_0x1f9baf,'mode':_0x465e5e,'syncedAt':new Date()[_0x18b4bd(0x10b)](),'description':_0x492fd1[_0x18b4bd(0x102)]}),_0x314c90=buildSqlLockEntry(_0x492fd1,_0x3f7363,'',{'dbName':_0x1f9baf}),_0x239459=resolveLocalSqlFilePath(_0x2a896c,_0x492fd1[_0x18b4bd(0xf6)],_0x314c90);let _0x471c48=_0x18b4bd(0xe4),_0x245efc;if(await fileExists(_0x239459)){const _0x564bef=await readFile(_0x239459,_0x18b4bd(0x104));isEquivalentPulledSqlFile(_0x564bef,_0x5951d6,_0x465e5e)?(_0x471c48=_0x18b4bd(0xfb),_0x245efc=_0x18b4bd(0xff)):(_0x471c48=_0x18b4bd(0xfd),_0x245efc=_0x18b4bd(0xda));}_0x3eab6a[_0x18b4bd(0xe3)]({'sqlCode':_0x492fd1['sqlCode'],'sqlName':_0x492fd1[_0x18b4bd(0xe5)],'filePath':_0x239459,'status':_0x471c48,'reason':_0x245efc});}return{'method':_0x18b4bd(0xfc),'url':_0x18b4bd(0x103),'body':{'appCode':_0x27245a[_0x18b4bd(0xd7)],'sqlCode':_0x27245a[_0x18b4bd(0xfe)](_0x18b4bd(0xec))||null,'sqlName':_0x27245a[_0x18b4bd(0xfe)](_0x18b4bd(0xf7))||null,'files':_0x3eab6a},'description':'Would\x20pull\x20'+_0x3eab6a[_0x18b4bd(0x108)]+_0x18b4bd(0xf1)+_0x2a896c[_0x18b4bd(0xdd)]};},async 'execute'(_0x86186f){const _0x56904b=a128_0x2590c4,_0x13b48b=loadSqlProjectConfig(_0x86186f['appCode']),_0x51791f=await readSqlLockFile(_0x13b48b[_0x56904b(0x111)]),{lockData:_0x598012,appLock:_0x3a4e9e}=ensureSqlLockScope(_0x51791f??createEmptySqlLock(),_0x13b48b[_0x56904b(0xd7)],_0x13b48b[_0x56904b(0xdc)],_0x56904b(0xdb)),_0x5068fb=_0x86186f[_0x56904b(0x105)](_0x56904b(0xe0)),_0x607433=await fetchAllSqlQueries(_0x86186f[_0x56904b(0xd7)],{'sqlCode':_0x86186f['str'](_0x56904b(0xec))||undefined,'sqlName':_0x86186f[_0x56904b(0xfe)]('name')||undefined});if(_0x607433[_0x56904b(0x108)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x56904b(0xf9)};const _0x40bea5=[],_0x39dff5=[];for(const _0x2142fe of _0x607433){try{_0x40bea5[_0x56904b(0xe3)](await ensureSqlContent(_0x2142fe));}catch(_0x2dec84){_0x39dff5[_0x56904b(0xe3)]({'sqlCode':_0x2142fe[_0x56904b(0xf6)],'error':_0x2dec84 instanceof Error?_0x2dec84[_0x56904b(0xf4)]:String(_0x2dec84)});}}if(_0x5068fb&&!_0x86186f[_0x56904b(0xe9)]){let _0xc6936e=![];for(const _0x5abade of _0x40bea5){const _0x395c3f=detectModeFromSql(_0x5abade),_0x11fecd=_0x5abade['dbId']?await getDbName(_0x86186f[_0x56904b(0xd7)],Number(_0x5abade[_0x56904b(0x10f)]))[_0x56904b(0x107)](()=>undefined):undefined,_0x5b2394=buildLocalSqlFileContent({'sqlCode':_0x5abade[_0x56904b(0xf6)],'sqlName':_0x5abade[_0x56904b(0xe5)],'dbId':_0x5abade[_0x56904b(0x10f)]},ensureRemoteSqlContent(_0x5abade),{'dbName':_0x11fecd,'mode':_0x395c3f,'syncedAt':new Date()[_0x56904b(0x10b)](),'description':_0x5abade[_0x56904b(0x102)]}),_0x331850=resolveLocalSqlFilePath(_0x13b48b,_0x5abade[_0x56904b(0xf6)],buildSqlLockEntry(_0x5abade,ensureRemoteSqlContent(_0x5abade),'',{'dbName':_0x11fecd}));if(await fileExists(_0x331850)){const _0x767167=await readFile(_0x331850,_0x56904b(0x104));if(!isEquivalentPulledSqlFile(_0x767167,_0x5b2394,_0x395c3f)){_0xc6936e=!![];break;}}}if(_0xc6936e){const _0x859a6b=await confirmForceOverwrite(_0x56904b(0xe2));if(!_0x859a6b)throw CliErrors['cancelled']('Force\x20pull\x20cancelled.');}}const _0x3cbd07=cloneSqlLockData(_0x598012),_0x831a0e=_0x3cbd07['apps'][_0x13b48b[_0x56904b(0xd7)]],_0x4c2ab5=[],_0x5ce76a=[];for(const _0x52e301 of _0x40bea5){const _0xdd82a3=_0x831a0e['sqls'][_0x52e301[_0x56904b(0xf6)]],_0x11e25d=ensureRemoteSqlContent(_0x52e301),_0x43f0c6=detectModeFromSql(_0x52e301),_0x161352=_0x52e301['dbId']?await getDbName(_0x86186f[_0x56904b(0xd7)],Number(_0x52e301[_0x56904b(0x10f)]))[_0x56904b(0x107)](()=>undefined):undefined,_0x5699db=buildLocalSqlFileContent({'sqlCode':_0x52e301[_0x56904b(0xf6)],'sqlName':_0x52e301[_0x56904b(0xe5)],'dbId':_0x52e301['dbId']},_0x11e25d,{'dbName':_0x161352,'mode':_0x43f0c6,'syncedAt':new Date()[_0x56904b(0x10b)](),'description':_0x52e301[_0x56904b(0x102)]}),_0x47fe97=buildSqlLockEntry(_0x52e301,_0x11e25d,computeSqlContentHash(_0x5699db),{'dbName':_0x161352}),_0x1bd02d=_0x47fe97['path'],_0x42e26d=join(_0x13b48b[_0x56904b(0xdd)],_0x1bd02d);try{if(await fileExists(_0x42e26d)){const _0x5c85be=await readFile(_0x42e26d,_0x56904b(0x104));if(isEquivalentPulledSqlFile(_0x5c85be,_0x5699db,_0x43f0c6)){_0x5ce76a[_0x56904b(0xe3)]({'sqlCode':_0x52e301[_0x56904b(0xf6)],'reason':_0x56904b(0xff)}),_0x831a0e['sqls'][_0x52e301['sqlCode']]={..._0x47fe97,'hash':computeSqlContentHash(_0x5c85be),'path':_0x1bd02d};continue;}if(!_0x5068fb){_0x5ce76a[_0x56904b(0xe3)]({'sqlCode':_0x52e301[_0x56904b(0xf6)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x1ab393=_0xdd82a3?.[_0x56904b(0xed)]?join(_0x13b48b[_0x56904b(0xdd)],_0xdd82a3[_0x56904b(0xed)]):undefined;_0x1ab393&&_0x1ab393!==_0x42e26d&&await fileExists(_0x1ab393)&&await rm(_0x1ab393,{'force':!![]}),await ensureParentDirectory(_0x42e26d),await writeFile(_0x42e26d,_0x5699db,'utf8'),_0x831a0e[_0x56904b(0xd5)][_0x52e301[_0x56904b(0xf6)]]={..._0x47fe97,'path':_0x1bd02d},_0x4c2ab5[_0x56904b(0xe3)]({'sqlCode':_0x52e301[_0x56904b(0xf6)],'filePath':_0x42e26d});}catch(_0x432eab){_0x39dff5['push']({'sqlCode':_0x52e301[_0x56904b(0xf6)],'error':_0x432eab instanceof Error?_0x432eab['message']:String(_0x432eab)});}}return _0x831a0e[_0x56904b(0x10d)]=new Date()['toISOString'](),await writeSqlLockFile(_0x13b48b[_0x56904b(0x111)],_0x3cbd07),{'ok':_0x39dff5[_0x56904b(0x108)]===0x0,'data':{'pulled':_0x4c2ab5,'skipped':_0x5ce76a,'failed':_0x39dff5},'message':_0x56904b(0xe6)+_0x4c2ab5[_0x56904b(0x108)]+_0x56904b(0xf0)+_0x5ce76a[_0x56904b(0x108)]+'\x20skipped,\x20'+_0x39dff5[_0x56904b(0x108)]+_0x56904b(0x10e)};}};function detectModeFromSql(_0xe3aeef){const _0xf11613=a128_0x2590c4,_0x9f905d=ensureRemoteSqlContent(_0xe3aeef),_0x4f4c7e=stripLocalSqlMetadata(_0x9f905d,_0xf11613(0xde))[_0xf11613(0xef)]();if(/^<(select|insert|update|delete)\b/i[_0xf11613(0xe8)](_0x4f4c7e))return'mybatisXml';return'sql';}function isEquivalentPulledSqlFile(_0x4fd151,_0x3acd5c,_0x385487){return normalizePullComparableContent(_0x4fd151,_0x385487)===normalizePullComparableContent(_0x3acd5c,_0x385487);}function normalizePullComparableContent(_0x2e0d18,_0xab60dd){const _0x1a7a82=a128_0x2590c4,_0x21b526=_0x2e0d18[_0x1a7a82(0xd8)](/\r\n/g,'\x0a')[_0x1a7a82(0xe1)]('\x0a'),_0x245586=_0x21b526[_0x1a7a82(0xeb)](_0x2b2c93=>!isSyncedAtMetadataLine(_0x2b2c93,_0xab60dd));return _0x245586[_0x1a7a82(0x10c)]('\x0a');}function isSyncedAtMetadataLine(_0x54acf5,_0x45901d){const _0x33d75c=a128_0x2590c4;if(_0x45901d===_0x33d75c(0xde))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x33d75c(0xe8)](_0x54acf5);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x33d75c(0xe8)](_0x54acf5);}
@@ -1 +1 @@
1
- const a129_0x5c1252=a129_0x12e4;(function(_0x1bac51,_0x2f73da){const _0x3ddd33=a129_0x12e4,_0x53ed96=_0x1bac51();while(!![]){try{const _0xeb6d2=parseInt(_0x3ddd33(0x1a4))/0x1*(-parseInt(_0x3ddd33(0x1b7))/0x2)+-parseInt(_0x3ddd33(0x197))/0x3+-parseInt(_0x3ddd33(0x1ad))/0x4+-parseInt(_0x3ddd33(0x1d0))/0x5*(parseInt(_0x3ddd33(0x196))/0x6)+parseInt(_0x3ddd33(0x1c8))/0x7*(-parseInt(_0x3ddd33(0x1c2))/0x8)+-parseInt(_0x3ddd33(0x1c6))/0x9+parseInt(_0x3ddd33(0x1ce))/0xa;if(_0xeb6d2===_0x2f73da)break;else _0x53ed96['push'](_0x53ed96['shift']());}catch(_0x4b5f0b){_0x53ed96['push'](_0x53ed96['shift']());}}}(a129_0x2e77,0x26783));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0xdd8533,_0x975d80,_0x499635){const _0x457623=a129_0x12e4,_0x55b5cd=await scanLocalSqlQueries(_0xdd8533),_0x160f47=new Map();for(const _0x26b840 of _0x55b5cd){if(_0x499635&&_0x26b840['sqlCode']!==_0x499635)continue;const _0x57b39a=_0x160f47[_0x457623(0x1a0)](_0x26b840['sqlCode'])??[];_0x57b39a[_0x457623(0x1ae)](_0x26b840),_0x160f47[_0x457623(0x190)](_0x26b840[_0x457623(0x1ab)],_0x57b39a);}if(_0x499635&&!_0x160f47[_0x457623(0x18e)](_0x499635))throw CliErrors[_0x457623(0x1b0)](_0x457623(0x1a3)+_0x499635);const _0x4daff0=[];for(const [_0x134c6c,_0x1fbe87]of _0x160f47[_0x457623(0x1aa)]()){if(_0x1fbe87[_0x457623(0x1cf)]===0x1){_0x4daff0[_0x457623(0x1ae)](_0x1fbe87[0x0]);continue;}const _0x2d6a40=_0x975d80[_0x457623(0x18c)][_0x134c6c],_0x521d3a=_0x2d6a40?.[_0x457623(0x19f)],_0x15530a=_0x521d3a?_0x1fbe87[_0x457623(0x1a1)](_0x591c95=>_0x591c95[_0x457623(0x1ca)]!==_0x521d3a):_0x1fbe87;if(_0x2d6a40&&_0x15530a[_0x457623(0x1cf)]===0x1){_0x4daff0['push'](_0x15530a[0x0]);continue;}throw CliErrors[_0x457623(0x1b0)](_0x457623(0x1b2)+_0x134c6c+'.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.');}return _0x4daff0;}export const sqlPush={'service':a129_0x5c1252(0x1c9),'command':a129_0x5c1252(0x1ae),'description':a129_0x5c1252(0x1d1),'risk':a129_0x5c1252(0x1af),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a129_0x5c1252(0x1bb),'type':a129_0x5c1252(0x19c),'description':a129_0x5c1252(0x1b6)}],async 'dryRun'(_0x1741c8){const _0x588da6=a129_0x5c1252,_0x455862=loadSqlProjectConfig(_0x1741c8['appCode']),_0x232eab=await readSqlLockFile(_0x455862[_0x588da6(0x1cc)]),{appLock:_0x21bad8}=ensureSqlLockScope(_0x232eab??createEmptySqlLock(),_0x1741c8[_0x588da6(0x18a)],_0x455862[_0x588da6(0x1c7)],_0x588da6(0x1ae)),_0x36137f=await getTargetSqlQueries(_0x455862,_0x21bad8,_0x1741c8[_0x588da6(0x189)](_0x588da6(0x1b1))||undefined),_0x51d82e=[];for(const _0x454ee6 of _0x36137f){const _0x3d86cc=await computeSqlFileHash(_0x454ee6[_0x588da6(0x198)]),_0x1694a0=_0x21bad8[_0x588da6(0x18c)][_0x454ee6[_0x588da6(0x1ab)]],_0x424e1f=!!_0x1694a0&&(_0x1694a0[_0x588da6(0x19f)]!==_0x454ee6[_0x588da6(0x1ca)]||!!_0x454ee6[_0x588da6(0x1b9)]&&_0x1694a0[_0x588da6(0x1b9)]!==_0x454ee6[_0x588da6(0x1b9)]);if(!_0x1741c8[_0x588da6(0x1b4)](_0x588da6(0x1bb))&&_0x1694a0&&_0x1694a0[_0x588da6(0x194)]===_0x3d86cc&&!_0x424e1f)continue;_0x51d82e[_0x588da6(0x1ae)](_0x454ee6['sqlCode']);}return{'method':_0x588da6(0x1bc),'url':_0x588da6(0x1a9),'body':{'sqlCodes':_0x51d82e,'appCode':_0x1741c8['appCode']},'description':_0x588da6(0x1bf)+_0x51d82e[_0x588da6(0x1cf)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x4ab478){const _0xb5e8cc=a129_0x5c1252,_0x2fec91=loadSqlProjectConfig(_0x4ab478[_0xb5e8cc(0x18a)]),_0x21f3b7=await readSqlLockFile(_0x2fec91[_0xb5e8cc(0x1cc)]),{lockData:_0x1781c9,appLock:_0xbe3ad4}=ensureSqlLockScope(_0x21f3b7??createEmptySqlLock(),_0x4ab478[_0xb5e8cc(0x18a)],_0x2fec91[_0xb5e8cc(0x1c7)],_0xb5e8cc(0x1ae)),_0x4cd6c3=await getTargetSqlQueries(_0x2fec91,_0xbe3ad4,_0x4ab478[_0xb5e8cc(0x189)](_0xb5e8cc(0x1b1))||undefined);if(_0x4cd6c3[_0xb5e8cc(0x1cf)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0xb5e8cc(0x1c0)};const _0x57e800=[],_0x2e4265=[],_0x5115ca=[];for(const _0x2b432f of _0x4cd6c3){const _0xab24bd=_0xbe3ad4['sqls'][_0x2b432f['sqlCode']];if(!_0xab24bd){_0x5115ca[_0xb5e8cc(0x1ae)]({'sqlCode':_0x2b432f[_0xb5e8cc(0x1ab)],'error':_0xb5e8cc(0x1be)});continue;}try{const _0x181ae1=await computeSqlFileHash(_0x2b432f[_0xb5e8cc(0x198)]),_0x2395fd=_0xab24bd[_0xb5e8cc(0x19f)]!==_0x2b432f[_0xb5e8cc(0x1ca)]||!!_0x2b432f[_0xb5e8cc(0x1b9)]&&_0xab24bd[_0xb5e8cc(0x1b9)]!==_0x2b432f[_0xb5e8cc(0x1b9)];if(!_0x4ab478[_0xb5e8cc(0x1b4)](_0xb5e8cc(0x1bb))&&_0xab24bd[_0xb5e8cc(0x194)]===_0x181ae1&&!_0x2395fd){_0x2e4265[_0xb5e8cc(0x1ae)]({'sqlCode':_0x2b432f[_0xb5e8cc(0x1ab)],'reason':_0xb5e8cc(0x1b3)});continue;}if(_0xab24bd[_0xb5e8cc(0x19e)]==null){_0x5115ca[_0xb5e8cc(0x1ae)]({'sqlCode':_0x2b432f[_0xb5e8cc(0x1ab)],'error':_0xb5e8cc(0x193)});continue;}const _0x1f781a=await readFile(_0x2b432f[_0xb5e8cc(0x198)],_0xb5e8cc(0x1a5)),_0x59b621=stripLocalSqlMetadata(_0x1f781a,_0x2b432f[_0xb5e8cc(0x1b8)]),_0x24ea21=_0x2b432f[_0xb5e8cc(0x1b9)]||_0xab24bd['sqlName'],_0xe6e18b=await resolveTargetDbBinding(_0x4ab478['appCode'],_0x2b432f,_0xab24bd),_0x332261=await updateSqlQuery({'id':_0xab24bd[_0xb5e8cc(0x18b)],'appCode':_0x4ab478[_0xb5e8cc(0x18a)],'sqlCode':_0x2b432f['sqlCode'],'sqlName':_0x24ea21,'dbId':_0xe6e18b[_0xb5e8cc(0x1ba)],'version':_0xab24bd[_0xb5e8cc(0x19e)],'sqlContent':_0x59b621,'sqlConfig':_0xab24bd[_0xb5e8cc(0x1c1)]??undefined}),_0x499c40=_0x332261['dbId']?await getDbName(_0x4ab478[_0xb5e8cc(0x18a)],Number(_0x332261['dbId']))[_0xb5e8cc(0x1ac)](()=>_0xe6e18b[_0xb5e8cc(0x191)]):_0xe6e18b[_0xb5e8cc(0x191)];_0xbe3ad4[_0xb5e8cc(0x18c)][_0x2b432f[_0xb5e8cc(0x1ab)]]={...buildSqlLockEntry(_0x332261,_0x59b621,_0x181ae1,{'dbName':_0x499c40}),'path':_0x2b432f[_0xb5e8cc(0x1ca)],'mode':_0xab24bd['mode']},await archivePreviousSqlFileIfNeeded(_0x2fec91,_0xab24bd['path'],_0x2b432f[_0xb5e8cc(0x1ca)]),_0x57e800[_0xb5e8cc(0x1ae)]({'sqlCode':_0x2b432f[_0xb5e8cc(0x1ab)],'remoteId':_0xab24bd['remoteId']});}catch(_0x221a17){_0x5115ca[_0xb5e8cc(0x1ae)]({'sqlCode':_0x2b432f[_0xb5e8cc(0x1ab)],'error':_0x221a17 instanceof Error?_0x221a17[_0xb5e8cc(0x1a7)]:String(_0x221a17)});}}return _0xbe3ad4[_0xb5e8cc(0x199)]=new Date()[_0xb5e8cc(0x1cd)](),await writeSqlLockFile(_0x2fec91['lockFilePath'],_0x1781c9),{'ok':_0x5115ca[_0xb5e8cc(0x1cf)]===0x0,'data':{'pushed':_0x57e800,'skipped':_0x2e4265,'failed':_0x5115ca},'message':_0xb5e8cc(0x1a6)+_0x57e800['length']+'\x20pushed,\x20'+_0x2e4265[_0xb5e8cc(0x1cf)]+'\x20skipped,\x20'+_0x5115ca['length']+_0xb5e8cc(0x19b)};}};async function archivePreviousSqlFileIfNeeded(_0x5d2de2,_0x4ea180,_0x558a80){const _0x30f551=a129_0x5c1252;if(!_0x4ea180||_0x4ea180===_0x558a80)return;const _0x281f5e=join(_0x5d2de2[_0x30f551(0x18d)],_0x4ea180);if(!await fileExists(_0x281f5e))return;const _0x1cdf25=await moveToTrash(_0x5d2de2[_0x30f551(0x1a2)],_0x5d2de2[_0x30f551(0x1b5)],_0x281f5e);await cleanupEmptyDirectories(dirname(_0x281f5e),_0x5d2de2['sqlRootDir']),void _0x1cdf25;}async function moveToTrash(_0x47a974,_0x15d16c,_0x506062){const _0x2a82e3=a129_0x5c1252,_0x393785=new Date()['toISOString']()[_0x2a82e3(0x1cb)](/[:.]/g,'-'),_0x58beee=relative(_0x47a974,_0x506062),_0x51dc86=join(_0x15d16c,_0x393785,_0x58beee);return await mkdir(dirname(_0x51dc86),{'recursive':!![]}),await rename(_0x506062,_0x51dc86),_0x51dc86;}async function cleanupEmptyDirectories(_0x214ed4,_0x2a0f8e){const _0x12a9f3=a129_0x5c1252;let _0x48566a=resolve(_0x214ed4);const _0x56435f=resolve(_0x2a0f8e);while(_0x48566a[_0x12a9f3(0x1bd)](''+_0x56435f+sep)||_0x48566a===_0x56435f){if(_0x48566a===_0x56435f)return;try{const _0x1b8c26=await readdir(_0x48566a);if(_0x1b8c26[_0x12a9f3(0x1cf)]>0x0)return;await rmdir(_0x48566a);}catch{return;}_0x48566a=dirname(_0x48566a);}}async function resolveTargetDbBinding(_0x1d4d9b,_0x8ac4ad,_0x4d181a){const _0x1b3840=a129_0x5c1252,_0x596387=_0x8ac4ad[_0x1b3840(0x1c5)];if(!_0x596387)return{'dbId':_0x4d181a['dbId'],'dbName':_0x4d181a[_0x1b3840(0x191)]};const _0xda734=buildDbDirectoryName(_0x4d181a[_0x1b3840(0x191)],_0x4d181a[_0x1b3840(0x1ba)]);if(_0x596387===_0xda734)return{'dbId':_0x4d181a[_0x1b3840(0x1ba)],'dbName':_0x4d181a[_0x1b3840(0x191)]};const _0x596eec=parseExplicitDbDirectory(_0x596387);if(_0x596eec!=null)return{'dbId':_0x596eec,'dbName':await getDbName(_0x1d4d9b,_0x596eec)[_0x1b3840(0x1ac)](()=>undefined)};const _0x5dea56=await listDatabases(_0x1d4d9b),_0x23e84c=_0x5dea56[_0x1b3840(0x1a1)](_0x2b1a9f=>buildDbDirectoryName(_0x2b1a9f[_0x1b3840(0x191)],_0x2b1a9f[_0x1b3840(0x1ba)])===_0x596387);if(_0x23e84c[_0x1b3840(0x1cf)]===0x1)return{'dbId':_0x23e84c[0x0][_0x1b3840(0x1ba)],'dbName':_0x23e84c[0x0]['dbName']};if(_0x23e84c[_0x1b3840(0x1cf)]===0x0)throw CliErrors[_0x1b3840(0x1b0)](_0x1b3840(0x1c4)+_0x596387+_0x1b3840(0x1c3)+_0x8ac4ad[_0x1b3840(0x1ab)]+'.');const _0x4064bf=_0x23e84c[_0x1b3840(0x19d)](_0x5a58db=>_0x5a58db[_0x1b3840(0x191)]+'\x20('+_0x5a58db[_0x1b3840(0x1ba)]+')')[_0x1b3840(0x19a)](',\x20');throw CliErrors[_0x1b3840(0x1b0)](_0x1b3840(0x18f)+_0x596387+_0x1b3840(0x192)+_0x8ac4ad[_0x1b3840(0x1ab)]+':\x20'+_0x4064bf);}function a129_0x2e77(){const _0x58a808=['unchanged','bool','trashDir','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','101526povHHS','mode','sqlName','dbId','force','POST','startsWith','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','Would\x20push\x20','No\x20local\x20SQL\x20files\x20found.','sqlConfig','8QBRMmq','\x22\x20for\x20sqlCode\x20','No\x20database\x20matches\x20local\x20directory\x20\x22','dbDirectory','1036359pYXuUe','sqlRoot','164017lgTROI','sql','relativePath','replace','lockFilePath','toISOString','6028290zBcEsO','length','51215PtiXLS','Push\x20local\x20SQL\x20files\x20to\x20remote','str','appCode','remoteId','sqls','sqlRootDir','has','Local\x20directory\x20\x22','set','dbName','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','hash','isFinite','12zlaeUt','141549RZUUFj','filePath','lastSync','join','\x20failed','boolean','map','version','path','get','filter','projectRoot','Local\x20SQL\x20not\x20found:\x20','3jPFPfU','utf8','Push\x20complete:\x20','message','exec','/smartapi/custom/updateUserCustomSql','entries','sqlCode','catch','346872ZOthxJ','push','high-risk-write','validation','sqlcode','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20'];a129_0x2e77=function(){return _0x58a808;};return a129_0x2e77();}function a129_0x12e4(_0x2947cd,_0x5d99e4){_0x2947cd=_0x2947cd-0x189;const _0x2e77ed=a129_0x2e77();let _0x12e48a=_0x2e77ed[_0x2947cd];return _0x12e48a;}function parseExplicitDbDirectory(_0x597bda){const _0x321d7e=a129_0x5c1252,_0x3c1eb0=/^db-(\d+)$/[_0x321d7e(0x1a8)](_0x597bda);if(!_0x3c1eb0)return null;const _0xfb6bb0=Number(_0x3c1eb0[0x1]);return Number[_0x321d7e(0x195)](_0xfb6bb0)&&_0xfb6bb0>0x0?_0xfb6bb0:null;}
1
+ const a129_0x2cdf91=a129_0x5b83;(function(_0x1feacb,_0x559003){const _0x24598e=a129_0x5b83,_0x1c4d53=_0x1feacb();while(!![]){try{const _0x411a1e=parseInt(_0x24598e(0x182))/0x1+parseInt(_0x24598e(0x19d))/0x2*(parseInt(_0x24598e(0x193))/0x3)+parseInt(_0x24598e(0x181))/0x4+-parseInt(_0x24598e(0x1a2))/0x5*(-parseInt(_0x24598e(0x17b))/0x6)+-parseInt(_0x24598e(0x17a))/0x7*(parseInt(_0x24598e(0x175))/0x8)+-parseInt(_0x24598e(0x194))/0x9*(parseInt(_0x24598e(0x1a9))/0xa)+-parseInt(_0x24598e(0x17c))/0xb*(parseInt(_0x24598e(0x199))/0xc);if(_0x411a1e===_0x559003)break;else _0x1c4d53['push'](_0x1c4d53['shift']());}catch(_0x49d21a){_0x1c4d53['push'](_0x1c4d53['shift']());}}}(a129_0x50aa,0x52582));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 a129_0x5b83(_0x580bc5,_0x4f9edb){_0x580bc5=_0x580bc5-0x175;const _0x50aa54=a129_0x50aa();let _0x5b8378=_0x50aa54[_0x580bc5];return _0x5b8378;}async function getTargetSqlQueries(_0x41b7ef,_0x1eff87,_0x250095){const _0x1a067a=a129_0x5b83,_0xb83e71=await scanLocalSqlQueries(_0x41b7ef),_0x5e56b2=new Map();for(const _0x49103c of _0xb83e71){if(_0x250095&&_0x49103c[_0x1a067a(0x1a1)]!==_0x250095)continue;const _0x43c2ea=_0x5e56b2[_0x1a067a(0x179)](_0x49103c[_0x1a067a(0x1a1)])??[];_0x43c2ea[_0x1a067a(0x1af)](_0x49103c),_0x5e56b2['set'](_0x49103c[_0x1a067a(0x1a1)],_0x43c2ea);}if(_0x250095&&!_0x5e56b2[_0x1a067a(0x178)](_0x250095))throw CliErrors[_0x1a067a(0x1ba)](_0x1a067a(0x1ab)+_0x250095);const _0x62f44d=[];for(const [_0x6f5e92,_0x1e64a7]of _0x5e56b2[_0x1a067a(0x18a)]()){if(_0x1e64a7['length']===0x1){_0x62f44d[_0x1a067a(0x1af)](_0x1e64a7[0x0]);continue;}const _0x5f339d=_0x1eff87['sqls'][_0x6f5e92],_0x13edeb=_0x5f339d?.[_0x1a067a(0x190)],_0x5756f1=_0x13edeb?_0x1e64a7[_0x1a067a(0x1ac)](_0x1c089a=>_0x1c089a['relativePath']!==_0x13edeb):_0x1e64a7;if(_0x5f339d&&_0x5756f1[_0x1a067a(0x18c)]===0x1){_0x62f44d['push'](_0x5756f1[0x0]);continue;}throw CliErrors[_0x1a067a(0x1ba)](_0x1a067a(0x192)+_0x6f5e92+_0x1a067a(0x19c));}return _0x62f44d;}export const sqlPush={'service':'sql','command':a129_0x2cdf91(0x1af),'description':a129_0x2cdf91(0x188),'risk':a129_0x2cdf91(0x177),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a129_0x2cdf91(0x18b),'type':a129_0x2cdf91(0x1ae),'description':a129_0x2cdf91(0x1a0)}],async 'dryRun'(_0x186181){const _0x16bfab=a129_0x2cdf91,_0x2b9abf=loadSqlProjectConfig(_0x186181[_0x16bfab(0x1b4)]),_0x520849=await readSqlLockFile(_0x2b9abf[_0x16bfab(0x1b6)]),{appLock:_0x4ca04d}=ensureSqlLockScope(_0x520849??createEmptySqlLock(),_0x186181[_0x16bfab(0x1b4)],_0x2b9abf[_0x16bfab(0x18f)],_0x16bfab(0x1af)),_0xe9dcbc=await getTargetSqlQueries(_0x2b9abf,_0x4ca04d,_0x186181[_0x16bfab(0x1b3)](_0x16bfab(0x18d))||undefined),_0x930814=[];for(const _0x2522fa of _0xe9dcbc){const _0x431ff6=await computeSqlFileHash(_0x2522fa[_0x16bfab(0x17d)]),_0x255810=_0x4ca04d[_0x16bfab(0x1ad)][_0x2522fa[_0x16bfab(0x1a1)]],_0x1ed86b=!!_0x255810&&(_0x255810['path']!==_0x2522fa[_0x16bfab(0x197)]||!!_0x2522fa[_0x16bfab(0x17f)]&&_0x255810['sqlName']!==_0x2522fa[_0x16bfab(0x17f)]);if(!_0x186181[_0x16bfab(0x180)](_0x16bfab(0x18b))&&_0x255810&&_0x255810[_0x16bfab(0x1b5)]===_0x431ff6&&!_0x1ed86b)continue;_0x930814[_0x16bfab(0x1af)](_0x2522fa[_0x16bfab(0x1a1)]);}return{'method':_0x16bfab(0x176),'url':_0x16bfab(0x19a),'body':{'sqlCodes':_0x930814,'appCode':_0x186181[_0x16bfab(0x1b4)]},'description':_0x16bfab(0x19e)+_0x930814[_0x16bfab(0x18c)]+_0x16bfab(0x18e)};},async 'execute'(_0x99d084){const _0x9631d5=a129_0x2cdf91,_0x3f481a=loadSqlProjectConfig(_0x99d084[_0x9631d5(0x1b4)]),_0xef8719=await readSqlLockFile(_0x3f481a[_0x9631d5(0x1b6)]),{lockData:_0x3c394d,appLock:_0x38132b}=ensureSqlLockScope(_0xef8719??createEmptySqlLock(),_0x99d084[_0x9631d5(0x1b4)],_0x3f481a['sqlRoot'],_0x9631d5(0x1af)),_0x4fa5f0=await getTargetSqlQueries(_0x3f481a,_0x38132b,_0x99d084['str'](_0x9631d5(0x18d))||undefined);if(_0x4fa5f0[_0x9631d5(0x18c)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x552bad=[],_0x30bb43=[],_0x4ed446=[];for(const _0x26755c of _0x4fa5f0){const _0x53c967=_0x38132b[_0x9631d5(0x1ad)][_0x26755c[_0x9631d5(0x1a1)]];if(!_0x53c967){_0x4ed446['push']({'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'error':_0x9631d5(0x1b7)});continue;}try{const _0x9f3946=await computeSqlFileHash(_0x26755c[_0x9631d5(0x17d)]),_0xae1c7=_0x53c967['path']!==_0x26755c[_0x9631d5(0x197)]||!!_0x26755c[_0x9631d5(0x17f)]&&_0x53c967['sqlName']!==_0x26755c['sqlName'];if(!_0x99d084['bool'](_0x9631d5(0x18b))&&_0x53c967['hash']===_0x9f3946&&!_0xae1c7){_0x30bb43['push']({'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'reason':_0x9631d5(0x17e)});continue;}if(_0x53c967[_0x9631d5(0x195)]==null){_0x4ed446[_0x9631d5(0x1af)]({'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x375f03=await readFile(_0x26755c[_0x9631d5(0x17d)],_0x9631d5(0x1a5)),_0x444d59=stripLocalSqlMetadata(_0x375f03,_0x26755c[_0x9631d5(0x1b9)]),_0x5af140=_0x26755c['sqlName']||_0x53c967['sqlName'],_0x5624c3=await resolveTargetDbBinding(_0x99d084['appCode'],_0x26755c,_0x53c967),_0x514444=await updateSqlQuery({'id':_0x53c967['remoteId'],'appCode':_0x99d084['appCode'],'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'sqlName':_0x5af140,'dbId':_0x5624c3['dbId'],'version':_0x53c967['version'],'sqlContent':_0x444d59,'sqlConfig':_0x53c967[_0x9631d5(0x1aa)]??undefined}),_0x1a5094=_0x514444[_0x9631d5(0x186)]?await getDbName(_0x99d084['appCode'],Number(_0x514444[_0x9631d5(0x186)]))[_0x9631d5(0x196)](()=>_0x5624c3[_0x9631d5(0x1b0)]):_0x5624c3[_0x9631d5(0x1b0)];_0x38132b['sqls'][_0x26755c[_0x9631d5(0x1a1)]]={...buildSqlLockEntry(_0x514444,_0x444d59,_0x9f3946,{'dbName':_0x1a5094}),'path':_0x26755c['relativePath'],'mode':_0x53c967[_0x9631d5(0x1b9)]},await archivePreviousSqlFileIfNeeded(_0x3f481a,_0x53c967[_0x9631d5(0x190)],_0x26755c['relativePath']),_0x552bad[_0x9631d5(0x1af)]({'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'remoteId':_0x53c967[_0x9631d5(0x1a4)]});}catch(_0x4b23df){_0x4ed446['push']({'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'error':_0x4b23df instanceof Error?_0x4b23df['message']:String(_0x4b23df)});}}return _0x38132b[_0x9631d5(0x19f)]=new Date()['toISOString'](),await writeSqlLockFile(_0x3f481a[_0x9631d5(0x1b6)],_0x3c394d),{'ok':_0x4ed446[_0x9631d5(0x18c)]===0x0,'data':{'pushed':_0x552bad,'skipped':_0x30bb43,'failed':_0x4ed446},'message':_0x9631d5(0x1a6)+_0x552bad[_0x9631d5(0x18c)]+_0x9631d5(0x1b1)+_0x30bb43[_0x9631d5(0x18c)]+_0x9631d5(0x198)+_0x4ed446['length']+_0x9631d5(0x1b2)};}};async function archivePreviousSqlFileIfNeeded(_0x28998b,_0x1f46db,_0x1991da){const _0x4e7dd8=a129_0x2cdf91;if(!_0x1f46db||_0x1f46db===_0x1991da)return;const _0x1c6538=join(_0x28998b[_0x4e7dd8(0x1a7)],_0x1f46db);if(!await fileExists(_0x1c6538))return;const _0x5a77aa=await moveToTrash(_0x28998b[_0x4e7dd8(0x183)],_0x28998b[_0x4e7dd8(0x19b)],_0x1c6538);await cleanupEmptyDirectories(dirname(_0x1c6538),_0x28998b[_0x4e7dd8(0x1a7)]),void _0x5a77aa;}async function moveToTrash(_0x35701c,_0x429111,_0x561c73){const _0x371afe=new Date()['toISOString']()['replace'](/[:.]/g,'-'),_0x2db237=relative(_0x35701c,_0x561c73),_0x1d4bfe=join(_0x429111,_0x371afe,_0x2db237);return await mkdir(dirname(_0x1d4bfe),{'recursive':!![]}),await rename(_0x561c73,_0x1d4bfe),_0x1d4bfe;}function a129_0x50aa(){const _0xcdbcd=['startsWith','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','33SISzJU','873oKCmeW','version','catch','relativePath','\x20skipped,\x20','300fFiWGI','/smartapi/custom/updateUserCustomSql','trashDir','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','92604lErDDo','Would\x20push\x20','lastSync','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','sqlCode','5opndUK','map','remoteId','utf8','Push\x20complete:\x20','sqlRootDir','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','10370iLcgRU','sqlConfig','Local\x20SQL\x20not\x20found:\x20','filter','sqls','boolean','push','dbName','\x20pushed,\x20','\x20failed','str','appCode','hash','lockFilePath','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','exec','mode','validation','3286600manzfu','POST','high-risk-write','has','get','7yaXgwD','2202324SLllBJ','385957biSBzf','filePath','unchanged','sqlName','bool','2182232tJOEFo','303937ekMsew','projectRoot','No\x20database\x20matches\x20local\x20directory\x20\x22','Local\x20directory\x20\x22','dbId','\x22\x20for\x20sqlCode\x20','Push\x20local\x20SQL\x20files\x20to\x20remote','isFinite','entries','force','length','sqlcode','\x20SQL\x20file(s)','sqlRoot','path'];a129_0x50aa=function(){return _0xcdbcd;};return a129_0x50aa();}async function cleanupEmptyDirectories(_0x10da0c,_0x12fb97){const _0x499f19=a129_0x2cdf91;let _0x52f890=resolve(_0x10da0c);const _0x1174cf=resolve(_0x12fb97);while(_0x52f890[_0x499f19(0x191)](''+_0x1174cf+sep)||_0x52f890===_0x1174cf){if(_0x52f890===_0x1174cf)return;try{const _0x48a1fb=await readdir(_0x52f890);if(_0x48a1fb[_0x499f19(0x18c)]>0x0)return;await rmdir(_0x52f890);}catch{return;}_0x52f890=dirname(_0x52f890);}}async function resolveTargetDbBinding(_0xda2a58,_0x395795,_0x47a87c){const _0x33a3c6=a129_0x2cdf91,_0x4c270e=_0x395795['dbDirectory'];if(!_0x4c270e)return{'dbId':_0x47a87c['dbId'],'dbName':_0x47a87c[_0x33a3c6(0x1b0)]};const _0x126bc7=buildDbDirectoryName(_0x47a87c[_0x33a3c6(0x1b0)],_0x47a87c[_0x33a3c6(0x186)]);if(_0x4c270e===_0x126bc7)return{'dbId':_0x47a87c[_0x33a3c6(0x186)],'dbName':_0x47a87c[_0x33a3c6(0x1b0)]};const _0x539754=parseExplicitDbDirectory(_0x4c270e);if(_0x539754!=null)return{'dbId':_0x539754,'dbName':await getDbName(_0xda2a58,_0x539754)['catch'](()=>undefined)};const _0x2b86cf=await listDatabases(_0xda2a58),_0x9eba44=_0x2b86cf[_0x33a3c6(0x1ac)](_0x48dbff=>buildDbDirectoryName(_0x48dbff[_0x33a3c6(0x1b0)],_0x48dbff[_0x33a3c6(0x186)])===_0x4c270e);if(_0x9eba44[_0x33a3c6(0x18c)]===0x1)return{'dbId':_0x9eba44[0x0][_0x33a3c6(0x186)],'dbName':_0x9eba44[0x0][_0x33a3c6(0x1b0)]};if(_0x9eba44['length']===0x0)throw CliErrors[_0x33a3c6(0x1ba)](_0x33a3c6(0x184)+_0x4c270e+_0x33a3c6(0x187)+_0x395795['sqlCode']+'.');const _0x206dd1=_0x9eba44[_0x33a3c6(0x1a3)](_0x2cf331=>_0x2cf331['dbName']+'\x20('+_0x2cf331[_0x33a3c6(0x186)]+')')['join'](',\x20');throw CliErrors[_0x33a3c6(0x1ba)](_0x33a3c6(0x185)+_0x4c270e+_0x33a3c6(0x1a8)+_0x395795[_0x33a3c6(0x1a1)]+':\x20'+_0x206dd1);}function parseExplicitDbDirectory(_0xf18756){const _0x569ea0=a129_0x2cdf91,_0x959229=/^db-(\d+)$/[_0x569ea0(0x1b8)](_0xf18756);if(!_0x959229)return null;const _0x43051e=Number(_0x959229[0x1]);return Number[_0x569ea0(0x189)](_0x43051e)&&_0x43051e>0x0?_0x43051e:null;}
@@ -1 +1 @@
1
- const a130_0x470860=a130_0x3dfd;(function(_0x3144b4,_0xe18012){const _0x18d559=a130_0x3dfd,_0x27feb9=_0x3144b4();while(!![]){try{const _0x47d267=-parseInt(_0x18d559(0x18a))/0x1+parseInt(_0x18d559(0x185))/0x2+-parseInt(_0x18d559(0x182))/0x3*(parseInt(_0x18d559(0x184))/0x4)+-parseInt(_0x18d559(0x18d))/0x5*(-parseInt(_0x18d559(0x186))/0x6)+-parseInt(_0x18d559(0x18e))/0x7+parseInt(_0x18d559(0x195))/0x8+parseInt(_0x18d559(0x183))/0x9;if(_0x47d267===_0xe18012)break;else _0x27feb9['push'](_0x27feb9['shift']());}catch(_0x2c7447){_0x27feb9['push'](_0x27feb9['shift']());}}}(a130_0xbd63,0xe1fa4));import{CliErrors}from'../../errors.js';function a130_0xbd63(){const _0xebb1fa=['sql','10jlBiWc','10750257SRciEq','string','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','join','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','Query\x20description','validation','120968SVqWLP','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','2199NFcjuw','38276424EMgLLe','6196KMZGbD','1202048OmEkGC','1527624VKKtMF','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','Path\x20to\x20the\x20SQL\x20file','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.','1781517zPkcTu','description'];a130_0xbd63=function(){return _0xebb1fa;};return a130_0xbd63();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a130_0x3dfd(_0x4da1b2,_0x3e0580){_0x4da1b2=_0x4da1b2-0x182;const _0xbd6398=a130_0xbd63();let _0x3dfde8=_0xbd6398[_0x4da1b2];return _0x3dfde8;}const SQL_SAVE_DEPRECATED_HINT=[a130_0x470860(0x190),a130_0x470860(0x196),a130_0x470860(0x189)][a130_0x470860(0x191)]('\x0a');export const sqlSave={'service':a130_0x470860(0x18c),'command':'save','description':a130_0x470860(0x192),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[{'name':'file','type':a130_0x470860(0x18f),'required':!![],'description':a130_0x470860(0x188)},SQLCODE_FLAG_OPTIONAL,{'name':'sqlname','type':'string','description':'SQL\x20query\x20display\x20name'},{'name':'db','type':'string','description':a130_0x470860(0x187)},{'name':a130_0x470860(0x18b),'type':'string','description':a130_0x470860(0x193)}],async 'validate'(){const _0x58038d=a130_0x470860;throw CliErrors[_0x58038d(0x194)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a130_0x410c60=a130_0x45f5;function a130_0x45f5(_0x3feb04,_0x22eeb6){_0x3feb04=_0x3feb04-0x126;const _0x54888=a130_0x5488();let _0x45f558=_0x54888[_0x3feb04];return _0x45f558;}function a130_0x5488(){const _0xf88057=['869136eRqGuj','save','5OSzYto','348984BWKHtN','776260curhlq','285573ISKvMA','validation','write','description','3120dMTZfU','sqlname','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','Query\x20description','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','sql','191795wkqTho','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','406XtWVsS','file','318340aGjuwy','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','string','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)'];a130_0x5488=function(){return _0xf88057;};return a130_0x5488();}(function(_0x241a94,_0x509e07){const _0x5ed2ba=a130_0x45f5,_0x3ad031=_0x241a94();while(!![]){try{const _0x46312b=parseInt(_0x5ed2ba(0x12c))/0x1+-parseInt(_0x5ed2ba(0x130))/0x2+parseInt(_0x5ed2ba(0x13a))/0x3+parseInt(_0x5ed2ba(0x139))/0x4*(parseInt(_0x5ed2ba(0x137))/0x5)+-parseInt(_0x5ed2ba(0x135))/0x6+parseInt(_0x5ed2ba(0x12e))/0x7*(-parseInt(_0x5ed2ba(0x126))/0x8)+-parseInt(_0x5ed2ba(0x138))/0x9;if(_0x46312b===_0x509e07)break;else _0x3ad031['push'](_0x3ad031['shift']());}catch(_0x386f54){_0x3ad031['push'](_0x3ad031['shift']());}}}(a130_0x5488,0x1c3ad));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a130_0x410c60(0x12d),a130_0x410c60(0x128),a130_0x410c60(0x131)][a130_0x410c60(0x132)]('\x0a');export const sqlSave={'service':a130_0x410c60(0x12b),'command':a130_0x410c60(0x136),'description':a130_0x410c60(0x12a),'risk':a130_0x410c60(0x13c),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a130_0x410c60(0x12f),'type':a130_0x410c60(0x133),'required':!![],'description':'Path\x20to\x20the\x20SQL\x20file'},SQLCODE_FLAG_OPTIONAL,{'name':a130_0x410c60(0x127),'type':a130_0x410c60(0x133),'description':'SQL\x20query\x20display\x20name'},{'name':'db','type':a130_0x410c60(0x133),'description':a130_0x410c60(0x134)},{'name':a130_0x410c60(0x13d),'type':'string','description':a130_0x410c60(0x129)}],async 'validate'(){const _0x51fe4e=a130_0x410c60;throw CliErrors[_0x51fe4e(0x13b)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- function a131_0x7d01(){const _0x3178b8=['21JNKQaR','syncedAt','<!--\x20@lovrabet.','apps','.rabetbase/sql','dbId','yes','115hLlvsp','sqlContent','test','32911kMJSBZ','push','29106636mBPcry','1686vKVZQv','toLowerCase','stdin','filter','stderr','sqlRoot','mybatisXml','path','mode','--\x20@lovrabet.','13UvYurR','map','version','lastSync','\x20-->','trimStart','sqlConfig','3703077HPxedH','join','125082blVZlk','includes','length','sqlCode','description','sqlName','dbName','3124iwOebC','3156530NRttSC','33EoYZhi','replace','split','close','36YLASzu','2114936vAwYqJ','trim','endsWith'];a131_0x7d01=function(){return _0x3178b8;};return a131_0x7d01();}const a131_0x56d521=a131_0x22ab;(function(_0xe6379f,_0x4e55bf){const _0x3d95cb=a131_0x22ab,_0x4e16d4=_0xe6379f();while(!![]){try{const _0x355bc7=-parseInt(_0x3d95cb(0x177))/0x1*(parseInt(_0x3d95cb(0x169))/0x2)+-parseInt(_0x3d95cb(0x17a))/0x3*(-parseInt(_0x3d95cb(0x163))/0x4)+-parseInt(_0x3d95cb(0x174))/0x5*(-parseInt(_0x3d95cb(0x15c))/0x6)+-parseInt(_0x3d95cb(0x16d))/0x7*(parseInt(_0x3d95cb(0x16a))/0x8)+-parseInt(_0x3d95cb(0x15a))/0x9+-parseInt(_0x3d95cb(0x164))/0xa*(parseInt(_0x3d95cb(0x165))/0xb)+parseInt(_0x3d95cb(0x179))/0xc*(parseInt(_0x3d95cb(0x153))/0xd);if(_0x355bc7===_0x4e55bf)break;else _0x4e16d4['push'](_0x4e16d4['shift']());}catch(_0x17228b){_0x4e16d4['push'](_0x4e16d4['shift']());}}}(a131_0x7d01,0x927ed));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=a131_0x56d521(0x171);export function buildSqlLockEntry(_0x375998,_0x2b1b9c,_0x16ef85,_0x567332){const _0x2cfbdf=a131_0x56d521,_0x20d78e=detectSqlMode(_0x2b1b9c);return{'path':buildSqlRelativePath(_0x375998[_0x2cfbdf(0x15f)],_0x375998[_0x2cfbdf(0x161)],_0x567332?.[_0x2cfbdf(0x162)],_0x20d78e,_0x375998[_0x2cfbdf(0x172)]),'hash':_0x16ef85,'remoteId':_0x375998['id'],'version':_0x375998[_0x2cfbdf(0x155)],'dbId':Number(_0x375998[_0x2cfbdf(0x172)]),'dbName':_0x567332?.[_0x2cfbdf(0x162)],'sqlName':_0x375998['sqlName'],'sqlConfig':_0x375998[_0x2cfbdf(0x159)]??undefined,'mode':_0x20d78e};}export function cloneSqlLockData(_0xbf7ebf){const _0x3b85e0=a131_0x56d521;return{'apps':Object['fromEntries'](Object['entries'](_0xbf7ebf[_0x3b85e0(0x170)])[_0x3b85e0(0x154)](([_0x597e1d,_0x3d75bb])=>[_0x597e1d,{'sqlRoot':_0x3d75bb[_0x3b85e0(0x17f)],'lastSync':_0x3d75bb[_0x3b85e0(0x156)],'sqls':{..._0x3d75bb['sqls']}}]))};}export function ensureRemoteSqlContent(_0x3c5a42){const _0x5b681b=a131_0x56d521;return _0x3c5a42[_0x5b681b(0x175)]??'';}export function buildLocalSqlFileContent(_0x2bfc1a,_0x552ff3,_0x33948c){const _0x7cbc26=a131_0x56d521,_0x1228f4=_0x33948c?.[_0x7cbc26(0x151)]??detectSqlMode(_0x552ff3),_0x4a3176=stripLocalSqlMetadata(_0x552ff3,_0x1228f4)[_0x7cbc26(0x16b)](),_0x2d26fb=[...buildMetadataHeaderLines({'sqlCode':_0x2bfc1a['sqlCode'],'sqlName':_0x2bfc1a[_0x7cbc26(0x161)],'dbId':_0x2bfc1a[_0x7cbc26(0x172)],'dbName':_0x33948c?.[_0x7cbc26(0x162)],'mode':_0x1228f4,'syncedAt':_0x33948c?.[_0x7cbc26(0x16e)],'description':_0x33948c?.[_0x7cbc26(0x160)]},_0x1228f4),'',_0x4a3176],_0x4e0c57=_0x2d26fb[_0x7cbc26(0x15b)]('\x0a');return _0x4e0c57[_0x7cbc26(0x16c)]('\x0a')?_0x4e0c57:_0x4e0c57+'\x0a';}export function stripLocalSqlMetadata(_0x1da4b4,_0x194752){const _0x4f49a2=a131_0x56d521,_0x4b0fab=_0x1da4b4[_0x4f49a2(0x166)](/\r\n/g,'\x0a')[_0x4f49a2(0x167)]('\x0a'),_0x82a832=[];let _0x54bed8=0x0;if(_0x194752===_0x4f49a2(0x180))while(_0x54bed8<_0x4b0fab[_0x4f49a2(0x15e)]){const _0x1f97d7=_0x4b0fab[_0x54bed8]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x1f97d7)){_0x54bed8++;continue;}if(_0x1f97d7[_0x4f49a2(0x16b)]()===''&&_0x54bed8>0x0){_0x54bed8++;continue;}break;}else while(_0x54bed8<_0x4b0fab[_0x4f49a2(0x15e)]){const _0x137b37=_0x4b0fab[_0x54bed8]??'';if(/^\s*--\s*@lovrabet\./[_0x4f49a2(0x176)](_0x137b37)){_0x54bed8++;continue;}if(_0x137b37[_0x4f49a2(0x16b)]()===''&&_0x54bed8>0x0){_0x54bed8++;continue;}break;}for(;_0x54bed8<_0x4b0fab[_0x4f49a2(0x15e)];_0x54bed8++){_0x82a832[_0x4f49a2(0x178)](_0x4b0fab[_0x54bed8]);}return _0x82a832[_0x4f49a2(0x15b)]('\x0a')[_0x4f49a2(0x158)]();}export function resolveSqlMode(_0x410887,_0x74c804){const _0x1201b0=a131_0x56d521;if(_0x74c804?.['mode'])return _0x74c804[_0x1201b0(0x151)];return detectSqlMode(_0x410887);}export function resolveSqlFileName(_0x56051d,_0xfcf3cb,_0x22220b){const _0x572543=a131_0x56d521;if(_0x22220b?.[_0x572543(0x150)])return _0x22220b[_0x572543(0x150)];if(_0x22220b?.[_0x572543(0x161)]||_0x22220b?.['dbName'])return buildSqlRelativePath(_0x56051d,_0x22220b?.[_0x572543(0x161)],_0x22220b?.['dbName'],resolveSqlMode(_0xfcf3cb,_0x22220b),_0x22220b?.[_0x572543(0x172)]);return buildDefaultSqlFileName(_0x56051d,resolveSqlMode(_0xfcf3cb,_0x22220b));}export function resolveSqlLocalDir(_0x5c5d32,_0x3da1c7){return join(_0x5c5d32,SQL_LOCAL_REL_DIR,_0x3da1c7);}function a131_0x22ab(_0x3bb8ee,_0x16f462){_0x3bb8ee=_0x3bb8ee-0x150;const _0x7d01f2=a131_0x7d01();let _0x22abc1=_0x7d01f2[_0x3bb8ee];return _0x22abc1;}export async function confirmForceOverwrite(_0x34aae5){const _0x4da06f=a131_0x56d521,_0x3f9ac3=createInterface({'input':process[_0x4da06f(0x17c)],'output':process[_0x4da06f(0x17e)]}),_0x30d950=await new Promise(_0x385202=>{_0x3f9ac3['question'](_0x34aae5+'\x20[y/N]\x20',_0x385202);});return _0x3f9ac3[_0x4da06f(0x168)](),['y',_0x4da06f(0x173)][_0x4da06f(0x15d)](_0x30d950['trim']()[_0x4da06f(0x17b)]());}export function findSqlLockScope(_0x20573c,_0x5456d6){const _0x59590a=a131_0x56d521;return _0x20573c[_0x59590a(0x170)][_0x5456d6];}function buildMetadataHeaderLines(_0x460d2c,_0xce4e2f){const _0x586a17=a131_0x56d521,_0x248126=[[_0x586a17(0x15f),_0x460d2c[_0x586a17(0x15f)]],[_0x586a17(0x161),_0x460d2c[_0x586a17(0x161)]],[_0x586a17(0x172),_0x460d2c['dbId']],[_0x586a17(0x162),_0x460d2c[_0x586a17(0x162)]],[_0x586a17(0x151),_0x460d2c['mode']],[_0x586a17(0x16e),_0x460d2c['syncedAt']],[_0x586a17(0x160),_0x460d2c[_0x586a17(0x160)]]];if(_0xce4e2f===_0x586a17(0x180))return _0x248126[_0x586a17(0x17d)](([,_0xeb80fc])=>_0xeb80fc!==undefined&&_0xeb80fc!==null&&String(_0xeb80fc)[_0x586a17(0x16b)]()!=='')[_0x586a17(0x154)](([_0x35fb9d,_0x30aedb])=>_0x586a17(0x16f)+_0x35fb9d+':\x20'+String(_0x30aedb)+_0x586a17(0x157));return _0x248126['filter'](([,_0xa9698d])=>_0xa9698d!==undefined&&_0xa9698d!==null&&String(_0xa9698d)['trim']()!=='')[_0x586a17(0x154)](([_0x259af4,_0x360f9f])=>_0x586a17(0x152)+_0x259af4+':\x20'+String(_0x360f9f));}
1
+ function a131_0x3a44(){const _0x9719d0=['3232755nrpcDo','stderr','endsWith','join','6336IrtCLd','8704377hOkqln','8397xIYFLz','sqlConfig','map','10JSANjr','572284HJgflU','push','--\x20@lovrabet.','stdin','entries','7662MOaXHr','trimStart','description','341002qbdfIN','dbId','trim','mode','sqlCode','6JpIljj','.rabetbase/sql','apps','question','syncedAt','\x20[y/N]\x20','test','mybatisXml','includes','path','length','dbName','version','2039700BLAphj','sqlName','5313pUfyNV','filter'];a131_0x3a44=function(){return _0x9719d0;};return a131_0x3a44();}const a131_0x91b36d=a131_0x415b;function a131_0x415b(_0x340713,_0x183b7b){_0x340713=_0x340713-0xba;const _0x3a44eb=a131_0x3a44();let _0x415b1a=_0x3a44eb[_0x340713];return _0x415b1a;}(function(_0x245d20,_0x19db63){const _0x124588=a131_0x415b,_0x398ae5=_0x245d20();while(!![]){try{const _0x231c2f=-parseInt(_0x124588(0xbb))/0x1+parseInt(_0x124588(0xcd))/0x2+-parseInt(_0x124588(0xc0))/0x3*(parseInt(_0x124588(0xdb))/0x4)+-parseInt(_0x124588(0xd1))/0x5+-parseInt(_0x124588(0xe0))/0x6*(-parseInt(_0x124588(0xcf))/0x7)+-parseInt(_0x124588(0xd5))/0x8*(-parseInt(_0x124588(0xd7))/0x9)+-parseInt(_0x124588(0xda))/0xa*(parseInt(_0x124588(0xd6))/0xb);if(_0x231c2f===_0x19db63)break;else _0x398ae5['push'](_0x398ae5['shift']());}catch(_0x2538bd){_0x398ae5['push'](_0x398ae5['shift']());}}}(a131_0x3a44,0xa1df3));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=a131_0x91b36d(0xc1);export function buildSqlLockEntry(_0x40db47,_0x211558,_0x531ba2,_0x14ded){const _0x4fb825=a131_0x91b36d,_0x48a3e7=detectSqlMode(_0x211558);return{'path':buildSqlRelativePath(_0x40db47[_0x4fb825(0xbf)],_0x40db47[_0x4fb825(0xce)],_0x14ded?.[_0x4fb825(0xcb)],_0x48a3e7,_0x40db47['dbId']),'hash':_0x531ba2,'remoteId':_0x40db47['id'],'version':_0x40db47[_0x4fb825(0xcc)],'dbId':Number(_0x40db47['dbId']),'dbName':_0x14ded?.[_0x4fb825(0xcb)],'sqlName':_0x40db47['sqlName'],'sqlConfig':_0x40db47[_0x4fb825(0xd8)]??undefined,'mode':_0x48a3e7};}export function cloneSqlLockData(_0xd036bd){const _0x38aa73=a131_0x91b36d;return{'apps':Object['fromEntries'](Object[_0x38aa73(0xdf)](_0xd036bd[_0x38aa73(0xc2)])['map'](([_0x3117db,_0x152928])=>[_0x3117db,{'sqlRoot':_0x152928['sqlRoot'],'lastSync':_0x152928['lastSync'],'sqls':{..._0x152928['sqls']}}]))};}export function ensureRemoteSqlContent(_0x1da5f2){return _0x1da5f2['sqlContent']??'';}export function buildLocalSqlFileContent(_0x27a509,_0xe7178b,_0x366138){const _0x5b0e46=a131_0x91b36d,_0x39d66c=_0x366138?.[_0x5b0e46(0xbe)]??detectSqlMode(_0xe7178b),_0x425107=stripLocalSqlMetadata(_0xe7178b,_0x39d66c)[_0x5b0e46(0xbd)](),_0x288827=[...buildMetadataHeaderLines({'sqlCode':_0x27a509[_0x5b0e46(0xbf)],'sqlName':_0x27a509[_0x5b0e46(0xce)],'dbId':_0x27a509[_0x5b0e46(0xbc)],'dbName':_0x366138?.['dbName'],'mode':_0x39d66c,'syncedAt':_0x366138?.[_0x5b0e46(0xc4)],'description':_0x366138?.[_0x5b0e46(0xba)]},_0x39d66c),'',_0x425107],_0x9f1519=_0x288827[_0x5b0e46(0xd4)]('\x0a');return _0x9f1519[_0x5b0e46(0xd3)]('\x0a')?_0x9f1519:_0x9f1519+'\x0a';}export function stripLocalSqlMetadata(_0x473833,_0x5a8bc4){const _0x55f289=a131_0x91b36d,_0x405cc8=_0x473833['replace'](/\r\n/g,'\x0a')['split']('\x0a'),_0x4b24f3=[];let _0x2e2a42=0x0;if(_0x5a8bc4===_0x55f289(0xc7))while(_0x2e2a42<_0x405cc8[_0x55f289(0xca)]){const _0x3595ce=_0x405cc8[_0x2e2a42]??'';if(/^\s*<!--\s*@lovrabet\./[_0x55f289(0xc6)](_0x3595ce)){_0x2e2a42++;continue;}if(_0x3595ce[_0x55f289(0xbd)]()===''&&_0x2e2a42>0x0){_0x2e2a42++;continue;}break;}else while(_0x2e2a42<_0x405cc8['length']){const _0x1d24d5=_0x405cc8[_0x2e2a42]??'';if(/^\s*--\s*@lovrabet\./[_0x55f289(0xc6)](_0x1d24d5)){_0x2e2a42++;continue;}if(_0x1d24d5['trim']()===''&&_0x2e2a42>0x0){_0x2e2a42++;continue;}break;}for(;_0x2e2a42<_0x405cc8[_0x55f289(0xca)];_0x2e2a42++){_0x4b24f3[_0x55f289(0xdc)](_0x405cc8[_0x2e2a42]);}return _0x4b24f3[_0x55f289(0xd4)]('\x0a')[_0x55f289(0xe1)]();}export function resolveSqlMode(_0x2dccf3,_0x2c12f7){const _0xcaf27c=a131_0x91b36d;if(_0x2c12f7?.[_0xcaf27c(0xbe)])return _0x2c12f7['mode'];return detectSqlMode(_0x2dccf3);}export function resolveSqlFileName(_0x1a70ea,_0x24c9b4,_0x8d0f9a){const _0x2345b4=a131_0x91b36d;if(_0x8d0f9a?.[_0x2345b4(0xc9)])return _0x8d0f9a[_0x2345b4(0xc9)];if(_0x8d0f9a?.[_0x2345b4(0xce)]||_0x8d0f9a?.[_0x2345b4(0xcb)])return buildSqlRelativePath(_0x1a70ea,_0x8d0f9a?.[_0x2345b4(0xce)],_0x8d0f9a?.[_0x2345b4(0xcb)],resolveSqlMode(_0x24c9b4,_0x8d0f9a),_0x8d0f9a?.['dbId']);return buildDefaultSqlFileName(_0x1a70ea,resolveSqlMode(_0x24c9b4,_0x8d0f9a));}export function resolveSqlLocalDir(_0x384802,_0xdb0c78){return join(_0x384802,SQL_LOCAL_REL_DIR,_0xdb0c78);}export async function confirmForceOverwrite(_0x294352){const _0x19cdf0=a131_0x91b36d,_0x4a3177=createInterface({'input':process[_0x19cdf0(0xde)],'output':process[_0x19cdf0(0xd2)]}),_0xb36d59=await new Promise(_0x232287=>{const _0x50dc69=_0x19cdf0;_0x4a3177[_0x50dc69(0xc3)](_0x294352+_0x50dc69(0xc5),_0x232287);});return _0x4a3177['close'](),['y','yes'][_0x19cdf0(0xc8)](_0xb36d59[_0x19cdf0(0xbd)]()['toLowerCase']());}export function findSqlLockScope(_0x6d43a6,_0x3ec5e5){const _0x21e383=a131_0x91b36d;return _0x6d43a6[_0x21e383(0xc2)][_0x3ec5e5];}function buildMetadataHeaderLines(_0x3a1dd2,_0x30c0f6){const _0x56c6d7=a131_0x91b36d,_0x2d180d=[['sqlCode',_0x3a1dd2['sqlCode']],[_0x56c6d7(0xce),_0x3a1dd2[_0x56c6d7(0xce)]],[_0x56c6d7(0xbc),_0x3a1dd2[_0x56c6d7(0xbc)]],[_0x56c6d7(0xcb),_0x3a1dd2['dbName']],[_0x56c6d7(0xbe),_0x3a1dd2[_0x56c6d7(0xbe)]],['syncedAt',_0x3a1dd2[_0x56c6d7(0xc4)]],[_0x56c6d7(0xba),_0x3a1dd2[_0x56c6d7(0xba)]]];if(_0x30c0f6===_0x56c6d7(0xc7))return _0x2d180d[_0x56c6d7(0xd0)](([,_0x121666])=>_0x121666!==undefined&&_0x121666!==null&&String(_0x121666)['trim']()!=='')[_0x56c6d7(0xd9)](([_0xb7d4f7,_0x1d9250])=>'<!--\x20@lovrabet.'+_0xb7d4f7+':\x20'+String(_0x1d9250)+'\x20-->');return _0x2d180d[_0x56c6d7(0xd0)](([,_0x2d0945])=>_0x2d0945!==undefined&&_0x2d0945!==null&&String(_0x2d0945)['trim']()!=='')['map'](([_0x1a8c85,_0x2e35d9])=>_0x56c6d7(0xdd)+_0x1a8c85+':\x20'+String(_0x2e35d9));}
@@ -1 +1 @@
1
- const a132_0x5864c9=a132_0x4d63;(function(_0x47d3a4,_0xc69c7e){const _0xb4988=a132_0x4d63,_0x44bd0d=_0x47d3a4();while(!![]){try{const _0x573a95=-parseInt(_0xb4988(0x1de))/0x1*(parseInt(_0xb4988(0x1e7))/0x2)+-parseInt(_0xb4988(0x1e9))/0x3+parseInt(_0xb4988(0x1d3))/0x4*(-parseInt(_0xb4988(0x1ea))/0x5)+-parseInt(_0xb4988(0x1e2))/0x6+-parseInt(_0xb4988(0x1f2))/0x7+-parseInt(_0xb4988(0x1d8))/0x8+parseInt(_0xb4988(0x1d9))/0x9;if(_0x573a95===_0xc69c7e)break;else _0x44bd0d['push'](_0x44bd0d['shift']());}catch(_0x531325){_0x44bd0d['push'](_0x44bd0d['shift']());}}}(a132_0x1cd9,0x2916d));function a132_0x4d63(_0x11ebee,_0x4238c1){_0x11ebee=_0x11ebee-0x1cf;const _0x1cd9ce=a132_0x1cd9();let _0x4d63de=_0x1cd9ce[_0x11ebee];return _0x4d63de;}import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;function a132_0x1cd9(){const _0x12495d=['\x20missing,\x20','1849120KfHXwD','7129836iRqxMN','All\x20SQL\x20queries\x20are\x20in\x20sync.','read','filePath','has','2082eSZVQB','sqls','push','keys','683364AKzTka','bool','lockFilePath','lockKey','\x20unchanged','4qvzsKs','remote','185199IJbzlK','274095idxYFp','sqlName','\x20added,\x20','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','sqlCode','relativePath','length','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','1107071GBoQpM','totalCount','sql','appCode','sqlRoot','4SrZpNP','paging','hash','tableData'];a132_0x1cd9=function(){return _0x12495d;};return a132_0x1cd9();}async function fetchAllSqlCodes(_0x24c581){const _0x5dc622=a132_0x4d63,_0x38804b=[];let _0x2cd9cc=0x1;while(!![]){const _0x5bb82a=await listSqlQueries(_0x24c581,{'currentPage':_0x2cd9cc,'pageSize':PAGE_SIZE}),_0x21e8be=_0x5bb82a[_0x5dc622(0x1d6)]??[];_0x38804b['push'](..._0x21e8be['map'](_0x797f97=>_0x797f97[_0x5dc622(0x1ee)]));if(_0x21e8be[_0x5dc622(0x1f0)]===0x0)break;const _0x336096=_0x5bb82a[_0x5dc622(0x1d4)]?.[_0x5dc622(0x1cf)];if(_0x336096!=null?_0x38804b['length']>=_0x336096:_0x21e8be[_0x5dc622(0x1f0)]<PAGE_SIZE)break;_0x2cd9cc++;}return _0x38804b;}export const sqlStatus={'service':a132_0x5864c9(0x1d0),'command':'status','description':a132_0x5864c9(0x1ed),'risk':a132_0x5864c9(0x1db),'flags':[{'name':a132_0x5864c9(0x1e8),'type':'boolean','description':a132_0x5864c9(0x1f1)}],async 'execute'(_0x17a351){const _0x1c893e=a132_0x5864c9,_0x462465=loadSqlProjectConfig(_0x17a351[_0x1c893e(0x1d1)]),_0x38a864=await readSqlLockFile(_0x462465[_0x1c893e(0x1e4)]),{appLock:_0x5c794a}=ensureSqlLockScope(_0x38a864??createEmptySqlLock(),_0x462465[_0x1c893e(0x1d1)],_0x462465[_0x1c893e(0x1d2)],'status'),_0x2d285a=await scanLocalSqlQueries(_0x462465),_0x20982d=[],_0x5e1cc3=[],_0x35ea37=[],_0xd3ff71=[],_0x5237ac=new Set(_0x2d285a['map'](_0x42befd=>_0x42befd[_0x1c893e(0x1e5)]));for(const _0x3d2fe5 of _0x2d285a){const _0x3e8f6d=await computeSqlFileHash(_0x3d2fe5[_0x1c893e(0x1dc)]),_0x378bde=_0x5c794a[_0x1c893e(0x1df)][_0x3d2fe5[_0x1c893e(0x1e5)]],_0x3f562d=!!_0x378bde&&_0x378bde['path']!==_0x3d2fe5[_0x1c893e(0x1ef)],_0x580c62=!!_0x378bde&&!!_0x3d2fe5['sqlName']&&_0x378bde['sqlName']!==_0x3d2fe5[_0x1c893e(0x1eb)];if(!_0x378bde)_0x20982d[_0x1c893e(0x1e0)](_0x3d2fe5[_0x1c893e(0x1e5)]);else _0x378bde[_0x1c893e(0x1d5)]!==_0x3e8f6d||_0x3f562d||_0x580c62?_0x5e1cc3[_0x1c893e(0x1e0)](_0x3d2fe5[_0x1c893e(0x1e5)]):_0x35ea37[_0x1c893e(0x1e0)](_0x3d2fe5[_0x1c893e(0x1e5)]);}for(const _0x56557c of Object[_0x1c893e(0x1e1)](_0x5c794a['sqls'])){!_0x5237ac[_0x1c893e(0x1dd)](_0x56557c)&&_0xd3ff71[_0x1c893e(0x1e0)](_0x56557c);}const _0xdb530e=[];if(_0x17a351[_0x1c893e(0x1e3)](_0x1c893e(0x1e8))){const _0x122021=await fetchAllSqlCodes(_0x17a351[_0x1c893e(0x1d1)]);for(const _0x5280a1 of _0x122021){!_0x5237ac[_0x1c893e(0x1dd)](_0x5280a1)&&!_0x5c794a[_0x1c893e(0x1df)][_0x5280a1]&&_0xdb530e[_0x1c893e(0x1e0)](_0x5280a1);}}const _0x5082a3=_0x20982d[_0x1c893e(0x1f0)]===0x0&&_0x5e1cc3[_0x1c893e(0x1f0)]===0x0&&_0xd3ff71[_0x1c893e(0x1f0)]===0x0&&_0xdb530e[_0x1c893e(0x1f0)]===0x0;return{'ok':!![],'data':{'added':_0x20982d,'modified':_0x5e1cc3,'missing':_0xd3ff71,'unchanged':_0x35ea37,'remoteOnly':_0xdb530e},'message':_0x5082a3?_0x1c893e(0x1da):_0x20982d[_0x1c893e(0x1f0)]+_0x1c893e(0x1ec)+_0x5e1cc3[_0x1c893e(0x1f0)]+'\x20modified,\x20'+_0xd3ff71[_0x1c893e(0x1f0)]+_0x1c893e(0x1d7)+_0x35ea37[_0x1c893e(0x1f0)]+_0x1c893e(0x1e6)+(_0xdb530e[_0x1c893e(0x1f0)]>0x0?',\x20'+_0xdb530e[_0x1c893e(0x1f0)]+'\x20remote-only':'')};}};
1
+ const a132_0x76ad84=a132_0x1ddf;function a132_0x5078(){const _0x3151ac=['3031640ZiWYdM','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','\x20added,\x20','relativePath','paging','sql','lockFilePath','27153YoBKYk','filePath','1102548PwveIK','bool','\x20modified,\x20','remote','lockKey','3OEGHBj','sqlCode','totalCount','length','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','797ZeGPuq','531dFJTed','sqls','517605OzeLSh','22MTSgwW','\x20unchanged','546prhlQr','36336HFcCQP','tableData','appCode','sqlName','map','hash','status','\x20missing,\x20','push','237596EvxrDf','680obnNVU','sqlRoot','keys'];a132_0x5078=function(){return _0x3151ac;};return a132_0x5078();}(function(_0x271fb6,_0x7800ef){const _0x5b4ddc=a132_0x1ddf,_0x1a7890=_0x271fb6();while(!![]){try{const _0x4cddb0=-parseInt(_0x5b4ddc(0x1bd))/0x1*(-parseInt(_0x5b4ddc(0x1ce))/0x2)+-parseInt(_0x5b4ddc(0x1b8))/0x3*(-parseInt(_0x5b4ddc(0x1cd))/0x4)+parseInt(_0x5b4ddc(0x1c0))/0x5+-parseInt(_0x5b4ddc(0x1c3))/0x6*(parseInt(_0x5b4ddc(0x1d8))/0x7)+-parseInt(_0x5b4ddc(0x1c4))/0x8*(-parseInt(_0x5b4ddc(0x1be))/0x9)+-parseInt(_0x5b4ddc(0x1d1))/0xa+-parseInt(_0x5b4ddc(0x1c1))/0xb*(-parseInt(_0x5b4ddc(0x1da))/0xc);if(_0x4cddb0===_0x7800ef)break;else _0x1a7890['push'](_0x1a7890['shift']());}catch(_0x48dca1){_0x1a7890['push'](_0x1a7890['shift']());}}}(a132_0x5078,0x3806b));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 a132_0x1ddf(_0x3ea74f,_0x5c2975){_0x3ea74f=_0x3ea74f-0x1b8;const _0x507884=a132_0x5078();let _0x1ddf7d=_0x507884[_0x3ea74f];return _0x1ddf7d;}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x48f36e){const _0x5665e3=a132_0x1ddf,_0xecee0f=[];let _0x46b5ab=0x1;while(!![]){const _0x35fbb5=await listSqlQueries(_0x48f36e,{'currentPage':_0x46b5ab,'pageSize':PAGE_SIZE}),_0x25e0cc=_0x35fbb5[_0x5665e3(0x1c5)]??[];_0xecee0f['push'](..._0x25e0cc[_0x5665e3(0x1c8)](_0xeb73eb=>_0xeb73eb[_0x5665e3(0x1b9)]));if(_0x25e0cc[_0x5665e3(0x1bb)]===0x0)break;const _0x2a671b=_0x35fbb5[_0x5665e3(0x1d5)]?.[_0x5665e3(0x1ba)];if(_0x2a671b!=null?_0xecee0f[_0x5665e3(0x1bb)]>=_0x2a671b:_0x25e0cc['length']<PAGE_SIZE)break;_0x46b5ab++;}return _0xecee0f;}export const sqlStatus={'service':a132_0x76ad84(0x1d6),'command':a132_0x76ad84(0x1ca),'description':a132_0x76ad84(0x1bc),'risk':'read','flags':[{'name':a132_0x76ad84(0x1dd),'type':'boolean','description':a132_0x76ad84(0x1d2)}],async 'execute'(_0x557094){const _0x34b345=a132_0x76ad84,_0x230f01=loadSqlProjectConfig(_0x557094[_0x34b345(0x1c6)]),_0x4880ae=await readSqlLockFile(_0x230f01[_0x34b345(0x1d7)]),{appLock:_0x9a992c}=ensureSqlLockScope(_0x4880ae??createEmptySqlLock(),_0x230f01['appCode'],_0x230f01[_0x34b345(0x1cf)],_0x34b345(0x1ca)),_0x5b4435=await scanLocalSqlQueries(_0x230f01),_0x541dda=[],_0xa83b4c=[],_0x5e7781=[],_0x39a2ac=[],_0x31a68e=new Set(_0x5b4435[_0x34b345(0x1c8)](_0xba1775=>_0xba1775[_0x34b345(0x1de)]));for(const _0x3a02e4 of _0x5b4435){const _0x1f3ec6=await computeSqlFileHash(_0x3a02e4[_0x34b345(0x1d9)]),_0x590cb8=_0x9a992c[_0x34b345(0x1bf)][_0x3a02e4[_0x34b345(0x1de)]],_0x11c9de=!!_0x590cb8&&_0x590cb8['path']!==_0x3a02e4[_0x34b345(0x1d4)],_0x4cea75=!!_0x590cb8&&!!_0x3a02e4[_0x34b345(0x1c7)]&&_0x590cb8['sqlName']!==_0x3a02e4[_0x34b345(0x1c7)];if(!_0x590cb8)_0x541dda['push'](_0x3a02e4[_0x34b345(0x1de)]);else _0x590cb8[_0x34b345(0x1c9)]!==_0x1f3ec6||_0x11c9de||_0x4cea75?_0xa83b4c[_0x34b345(0x1cc)](_0x3a02e4['lockKey']):_0x5e7781[_0x34b345(0x1cc)](_0x3a02e4[_0x34b345(0x1de)]);}for(const _0x22de37 of Object[_0x34b345(0x1d0)](_0x9a992c[_0x34b345(0x1bf)])){!_0x31a68e['has'](_0x22de37)&&_0x39a2ac[_0x34b345(0x1cc)](_0x22de37);}const _0x2dd6ed=[];if(_0x557094[_0x34b345(0x1db)](_0x34b345(0x1dd))){const _0x2e56d4=await fetchAllSqlCodes(_0x557094['appCode']);for(const _0x2911ed of _0x2e56d4){!_0x31a68e['has'](_0x2911ed)&&!_0x9a992c['sqls'][_0x2911ed]&&_0x2dd6ed[_0x34b345(0x1cc)](_0x2911ed);}}const _0x1dd5cb=_0x541dda[_0x34b345(0x1bb)]===0x0&&_0xa83b4c[_0x34b345(0x1bb)]===0x0&&_0x39a2ac[_0x34b345(0x1bb)]===0x0&&_0x2dd6ed[_0x34b345(0x1bb)]===0x0;return{'ok':!![],'data':{'added':_0x541dda,'modified':_0xa83b4c,'missing':_0x39a2ac,'unchanged':_0x5e7781,'remoteOnly':_0x2dd6ed},'message':_0x1dd5cb?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x541dda['length']+_0x34b345(0x1d3)+_0xa83b4c[_0x34b345(0x1bb)]+_0x34b345(0x1dc)+_0x39a2ac[_0x34b345(0x1bb)]+_0x34b345(0x1cb)+_0x5e7781[_0x34b345(0x1bb)]+_0x34b345(0x1c2)+(_0x2dd6ed[_0x34b345(0x1bb)]>0x0?',\x20'+_0x2dd6ed['length']+'\x20remote-only':'')};}};
@@ -1 +1 @@
1
- const a133_0x55c566=a133_0x1c9d;(function(_0x4e5251,_0x38e347){const _0x695ffc=a133_0x1c9d,_0x3150e0=_0x4e5251();while(!![]){try{const _0x408d0f=parseInt(_0x695ffc(0x174))/0x1*(parseInt(_0x695ffc(0x178))/0x2)+parseInt(_0x695ffc(0x172))/0x3*(-parseInt(_0x695ffc(0x185))/0x4)+parseInt(_0x695ffc(0x17e))/0x5*(-parseInt(_0x695ffc(0x19a))/0x6)+-parseInt(_0x695ffc(0x182))/0x7*(-parseInt(_0x695ffc(0x179))/0x8)+-parseInt(_0x695ffc(0x18e))/0x9*(-parseInt(_0x695ffc(0x193))/0xa)+-parseInt(_0x695ffc(0x18d))/0xb*(parseInt(_0x695ffc(0x19b))/0xc)+-parseInt(_0x695ffc(0x18f))/0xd*(-parseInt(_0x695ffc(0x1a5))/0xe);if(_0x408d0f===_0x38e347)break;else _0x3150e0['push'](_0x3150e0['shift']());}catch(_0xdbbef1){_0x3150e0['push'](_0x3150e0['shift']());}}}(a133_0x5ac4,0x36462));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';function a133_0x5ac4(){const _0x33fc99=['isDangerous','\x22\x20not\x20found\x20or\x20not\x20accessible','490DFpLuz','map','string','validation','Dataset\x20\x22','dbtableConfig','isSelectOnly','98436OrchvN','480duMBSM','sql','tables','size','tableName','schemas','Table\x20\x22','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','validate','trim','490hTnFLA','get','Provide\x20--file\x20or\x20--sql','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','appCode','schemaWarnings','fields','5361PKuVsf','str','9364TeytMP','flagMissing','filter','valid','94DmKdoj','779696pMXbJl','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','sqlType','SQL\x20schema\x20validation','5WapziF','schema:','push','utf-8','7gjQzmZ','read','parameters','740uYDGcp','split','\x22\x20not\x20found\x20in\x20any\x20dataset','cwd','toLowerCase','isArray','file','reason','109450UJqzvU','11997mhPpQY','135356ttynBN','type'];a133_0x5ac4=function(){return _0x33fc99;};return a133_0x5ac4();}function a133_0x1c9d(_0x3decb1,_0x5d911a){_0x3decb1=_0x3decb1-0x16c;const _0x5ac43b=a133_0x5ac4();let _0x1c9d94=_0x5ac43b[_0x3decb1];return _0x1c9d94;}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':a133_0x55c566(0x19c),'command':a133_0x55c566(0x1a3),'description':a133_0x55c566(0x1a2),'risk':a133_0x55c566(0x183),'flags':[{'name':'file','type':a133_0x55c566(0x195),'description':a133_0x55c566(0x17a)},{'name':'sql','type':'string','description':a133_0x55c566(0x16e)},{'name':a133_0x55c566(0x1a0),'type':'string','description':a133_0x55c566(0x17b)}],async 'execute'(_0x57a65a){const _0x398379=a133_0x55c566,_0x19dd1f=_0x57a65a[_0x398379(0x173)](_0x398379(0x18b)),_0x2a28a1=_0x57a65a[_0x398379(0x173)](_0x398379(0x19c));if(!_0x19dd1f&&!_0x2a28a1)throw CliErrors[_0x398379(0x175)](_0x398379(0x18b),_0x398379(0x16d));let _0x15a5cc;if(_0x19dd1f){const _0x536c8d=resolve(process[_0x398379(0x188)](),_0x19dd1f);if(!existsSync(_0x536c8d))throw CliErrors[_0x398379(0x196)]('File\x20not\x20found:\x20'+_0x536c8d);_0x15a5cc=readFileSync(_0x536c8d,_0x398379(0x181));}else _0x15a5cc=_0x2a28a1;const _0x4dd14f=validateSql(_0x15a5cc),_0x3fe611={'valid':_0x4dd14f[_0x398379(0x177)],'sqlType':_0x4dd14f[_0x398379(0x17c)][_0x398379(0x190)],'isSelectOnly':_0x4dd14f['sqlType'][_0x398379(0x199)],'isDangerous':_0x4dd14f[_0x398379(0x17c)][_0x398379(0x191)],'tables':_0x4dd14f[_0x398379(0x19d)],'parameters':_0x4dd14f[_0x398379(0x184)],'message':_0x4dd14f['message']};_0x4dd14f['sqlType']['reason']&&(_0x3fe611[_0x398379(0x18c)]=_0x4dd14f['sqlType']['reason']);const _0x2250b9=_0x57a65a[_0x398379(0x173)](_0x398379(0x1a0));if(_0x2250b9&&_0x4dd14f[_0x398379(0x177)]){const _0x52fdd1=_0x2250b9[_0x398379(0x186)](',')[_0x398379(0x194)](_0x4e92af=>_0x4e92af[_0x398379(0x1a4)]())[_0x398379(0x176)](Boolean),_0x5a5a7f=[],_0x44d130=filterDbTableBackedDatasets(await listDatasets(_0x57a65a[_0x398379(0x16f)])),_0x57dfd3=new Map(_0x44d130[_0x398379(0x194)](_0x58e7ed=>[_0x58e7ed['dbtableConfig']?.[_0x398379(0x19f)]?.[_0x398379(0x189)](),_0x58e7ed]));for(const _0x2313c9 of _0x4dd14f[_0x398379(0x19d)]){const _0x4cb073=_0x57dfd3[_0x398379(0x16c)](_0x2313c9['toLowerCase']());!_0x4cb073&&_0x5a5a7f[_0x398379(0x180)](_0x398379(0x1a1)+_0x2313c9+_0x398379(0x187));}for(const _0x241846 of _0x52fdd1){let _0x28aeef;try{_0x28aeef=await getDatasetDetail(_0x241846);}catch{_0x5a5a7f[_0x398379(0x180)](_0x398379(0x197)+_0x241846+_0x398379(0x192));continue;}assertDatasetIsDbTableBacked(_0x28aeef,_0x398379(0x17d));const _0x125392=Array[_0x398379(0x18a)](_0x28aeef['fields'])?_0x28aeef[_0x398379(0x171)]:[],_0x2cd226=new Set(_0x125392[_0x398379(0x194)](_0x4b1f95=>_0x4b1f95['name']?.[_0x398379(0x189)]())),_0x239329=_0x28aeef[_0x398379(0x198)]?.[_0x398379(0x19f)]||_0x28aeef[_0x398379(0x19f)]||_0x241846;_0x3fe611[_0x398379(0x17f)+_0x239329]={'code':_0x241846,'tableName':_0x239329,'fieldCount':_0x2cd226[_0x398379(0x19e)],'fields':Array['from'](_0x2cd226)};}_0x5a5a7f['length']>0x0&&(_0x3fe611[_0x398379(0x170)]=_0x5a5a7f);}return{'ok':_0x4dd14f[_0x398379(0x177)],'data':_0x3fe611,'message':_0x4dd14f['message']};}};
1
+ const a133_0x11d929=a133_0xd071;(function(_0x1a0079,_0x181bd1){const _0x347dc2=a133_0xd071,_0x440f26=_0x1a0079();while(!![]){try{const _0x3732bb=-parseInt(_0x347dc2(0x1d9))/0x1+parseInt(_0x347dc2(0x203))/0x2+-parseInt(_0x347dc2(0x202))/0x3+-parseInt(_0x347dc2(0x1d8))/0x4*(parseInt(_0x347dc2(0x1ff))/0x5)+-parseInt(_0x347dc2(0x200))/0x6+parseInt(_0x347dc2(0x1fa))/0x7*(-parseInt(_0x347dc2(0x1de))/0x8)+-parseInt(_0x347dc2(0x1d3))/0x9*(-parseInt(_0x347dc2(0x1dd))/0xa);if(_0x3732bb===_0x181bd1)break;else _0x440f26['push'](_0x440f26['shift']());}catch(_0x3b2326){_0x440f26['push'](_0x440f26['shift']());}}}(a133_0x44ec,0x4e893));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';function a133_0x44ec(){const _0x462612=['schemaWarnings','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','message','2155qlSWhU','1969056uccRCi','flagMissing','1571601jLlcfA','1025514hEFwWB','file','name','2043xzZgqH','filter','from','toLowerCase','isArray','5672LzIdXv','147627kVzgQI','dbtableConfig','map','SQL\x20schema\x20validation','78220XLCdcu','320WIwJvz','valid','validate','length','push','isDangerous','trim','Table\x20\x22','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','isSelectOnly','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','sql','fields','str','string','\x22\x20not\x20found\x20or\x20not\x20accessible','tables','Provide\x20--file\x20or\x20--sql','type','Dataset\x20\x22','reason','File\x20not\x20found:\x20','sqlType','schemas','tableName','cwd','\x22\x20not\x20found\x20in\x20any\x20dataset','parameters','62272fmqLyu','validation'];a133_0x44ec=function(){return _0x462612;};return a133_0x44ec();}function a133_0xd071(_0x5ac3da,_0x181f72){_0x5ac3da=_0x5ac3da-0x1d3;const _0x44ece8=a133_0x44ec();let _0xd07162=_0x44ece8[_0x5ac3da];return _0xd07162;}export const sqlValidate={'service':a133_0x11d929(0x1e9),'command':a133_0x11d929(0x1e0),'description':a133_0x11d929(0x1fd),'risk':'read','flags':[{'name':a133_0x11d929(0x204),'type':a133_0x11d929(0x1ec),'description':a133_0x11d929(0x1e6)},{'name':a133_0x11d929(0x1e9),'type':a133_0x11d929(0x1ec),'description':a133_0x11d929(0x1e8)},{'name':'schemas','type':'string','description':'Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against'}],async 'execute'(_0x5b4808){const _0x334957=a133_0x11d929,_0x138333=_0x5b4808[_0x334957(0x1eb)](_0x334957(0x204)),_0xe70a1d=_0x5b4808[_0x334957(0x1eb)](_0x334957(0x1e9));if(!_0x138333&&!_0xe70a1d)throw CliErrors[_0x334957(0x201)](_0x334957(0x204),_0x334957(0x1ef));let _0x102197;if(_0x138333){const _0x3b3c4c=resolve(process[_0x334957(0x1f7)](),_0x138333);if(!existsSync(_0x3b3c4c))throw CliErrors[_0x334957(0x1fb)](_0x334957(0x1f3)+_0x3b3c4c);_0x102197=readFileSync(_0x3b3c4c,'utf-8');}else _0x102197=_0xe70a1d;const _0x522ad7=validateSql(_0x102197),_0x2b8d34={'valid':_0x522ad7[_0x334957(0x1df)],'sqlType':_0x522ad7['sqlType'][_0x334957(0x1f0)],'isSelectOnly':_0x522ad7['sqlType'][_0x334957(0x1e7)],'isDangerous':_0x522ad7[_0x334957(0x1f4)][_0x334957(0x1e3)],'tables':_0x522ad7[_0x334957(0x1ee)],'parameters':_0x522ad7[_0x334957(0x1f9)],'message':_0x522ad7[_0x334957(0x1fe)]};_0x522ad7[_0x334957(0x1f4)][_0x334957(0x1f2)]&&(_0x2b8d34[_0x334957(0x1f2)]=_0x522ad7[_0x334957(0x1f4)][_0x334957(0x1f2)]);const _0x3d5b4a=_0x5b4808[_0x334957(0x1eb)](_0x334957(0x1f5));if(_0x3d5b4a&&_0x522ad7['valid']){const _0x34a686=_0x3d5b4a['split'](',')[_0x334957(0x1db)](_0x4662a8=>_0x4662a8[_0x334957(0x1e4)]())[_0x334957(0x1d4)](Boolean),_0x6cd47d=[],_0x4fd4e7=filterDbTableBackedDatasets(await listDatasets(_0x5b4808['appCode'])),_0x1f7d8f=new Map(_0x4fd4e7[_0x334957(0x1db)](_0x313fe8=>[_0x313fe8[_0x334957(0x1da)]?.[_0x334957(0x1f6)]?.[_0x334957(0x1d6)](),_0x313fe8]));for(const _0x4dbc37 of _0x522ad7[_0x334957(0x1ee)]){const _0x1ce944=_0x1f7d8f['get'](_0x4dbc37[_0x334957(0x1d6)]());!_0x1ce944&&_0x6cd47d[_0x334957(0x1e2)](_0x334957(0x1e5)+_0x4dbc37+_0x334957(0x1f8));}for(const _0x3322d4 of _0x34a686){let _0x21daf0;try{_0x21daf0=await getDatasetDetail(_0x3322d4);}catch{_0x6cd47d[_0x334957(0x1e2)](_0x334957(0x1f1)+_0x3322d4+_0x334957(0x1ed));continue;}assertDatasetIsDbTableBacked(_0x21daf0,_0x334957(0x1dc));const _0x503381=Array[_0x334957(0x1d7)](_0x21daf0[_0x334957(0x1ea)])?_0x21daf0[_0x334957(0x1ea)]:[],_0x286d3e=new Set(_0x503381[_0x334957(0x1db)](_0x38ba9d=>_0x38ba9d[_0x334957(0x205)]?.[_0x334957(0x1d6)]())),_0x49a7e6=_0x21daf0[_0x334957(0x1da)]?.[_0x334957(0x1f6)]||_0x21daf0[_0x334957(0x1f6)]||_0x3322d4;_0x2b8d34['schema:'+_0x49a7e6]={'code':_0x3322d4,'tableName':_0x49a7e6,'fieldCount':_0x286d3e['size'],'fields':Array[_0x334957(0x1d5)](_0x286d3e)};}_0x6cd47d[_0x334957(0x1e1)]>0x0&&(_0x2b8d34[_0x334957(0x1fc)]=_0x6cd47d);}return{'ok':_0x522ad7[_0x334957(0x1df)],'data':_0x2b8d34,'message':_0x522ad7['message']};}};
@@ -1 +1 @@
1
- function a134_0x28a1(){const _0x2e0564=['12290930zFkomG','en-US','string','Locale','zh-CN','cookie','1510598CSMHfZ','accessKey','3606JvStGg','Risk\x20level','env','defaultApp','toLowerCase','format','pageSize','entries','app','Default\x20page\x20size','length','12xqJgMi','Access\x20key','appcode','116466dGOcNO','Target\x20environment','8912zUUkjR','363015TGLGUu','2502vYyoGJ','inherit','7NUrCfM','trim','keys','map','apiDir','1419445kQWywt','locale','apps','Auth\x20cookie','has','riskLevel'];a134_0x28a1=function(){return _0x2e0564;};return a134_0x28a1();}function a134_0x3259(_0x28dce7,_0x36d1bf){_0x28dce7=_0x28dce7-0x1da;const _0x28a166=a134_0x28a1();let _0x32594b=_0x28a166[_0x28dce7];return _0x32594b;}const a134_0x4d3cf9=a134_0x3259;(function(_0x14fb67,_0x5aeaa0){const _0x160cfb=a134_0x3259,_0x514df7=_0x14fb67();while(!![]){try{const _0x2c837d=-parseInt(_0x160cfb(0x1e0))/0x1+parseInt(_0x160cfb(0x1f7))/0x2+-parseInt(_0x160cfb(0x1e3))/0x3+-parseInt(_0x160cfb(0x1dd))/0x4*(-parseInt(_0x160cfb(0x1eb))/0x5)+parseInt(_0x160cfb(0x1f9))/0x6*(parseInt(_0x160cfb(0x1e6))/0x7)+-parseInt(_0x160cfb(0x1e2))/0x8*(-parseInt(_0x160cfb(0x1e4))/0x9)+-parseInt(_0x160cfb(0x1f1))/0xa;if(_0x2c837d===_0x5aeaa0)break;else _0x514df7['push'](_0x514df7['shift']());}catch(_0x56aff4){_0x514df7['push'](_0x514df7['shift']());}}}(a134_0x28a1,0x6e087));import{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';import{RABETBASE_ENV_VALUES}from'../constant/env.js';import{RABETBASE_OUTPUT_FORMAT_VALUES}from'../constant/output.js';import{RISK_LEVEL_VALUES}from'../constant/risk.js';export{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';export const PROJECT_CREATE_INHERITABLE_KEYS=[a134_0x4d3cf9(0x1f6),'accessKey',a134_0x4d3cf9(0x1ec),a134_0x4d3cf9(0x1fe),a134_0x4d3cf9(0x1f0)];export const TOP_LEVEL_CONFIG_KEYS=new Set([a134_0x4d3cf9(0x1df),'env','locale','format',a134_0x4d3cf9(0x1f6),a134_0x4d3cf9(0x1f8),a134_0x4d3cf9(0x1ea)]);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x1595f9){return[..._0x1595f9]['join'](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}export function isTopLevelConfigKey(_0x149324){const _0x44a9d8=a134_0x4d3cf9;return TOP_LEVEL_CONFIG_KEYS[_0x44a9d8(0x1ef)](_0x149324);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}export function getConfigCommandKeyDescription(){return'Config\x20key\x20('+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':a134_0x4d3cf9(0x1fb),'apiDir':a134_0x4d3cf9(0x1ea),'cookie':'cookie','accessKey':a134_0x4d3cf9(0x1f8),'defaultFormat':a134_0x4d3cf9(0x1fe),'pageSize':a134_0x4d3cf9(0x1ff),'riskLevel':'riskLevel','locale':a134_0x4d3cf9(0x1ec)};export function getAppProfileFlagDefs(){const _0x212d85=a134_0x4d3cf9;return[{'name':_0x212d85(0x1fb),'type':_0x212d85(0x1f3),'description':_0x212d85(0x1e1),'enum':[...RABETBASE_ENV_VALUES]},{'name':_0x212d85(0x1ea),'type':_0x212d85(0x1f3),'description':'API\x20directory\x20path'},{'name':_0x212d85(0x1f6),'type':'string','description':_0x212d85(0x1ee),'hidden':!![]},{'name':_0x212d85(0x1f8),'type':_0x212d85(0x1f3),'description':_0x212d85(0x1de),'hidden':!![]},{'name':'defaultFormat','type':_0x212d85(0x1f3),'description':'Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':'pageSize','type':'number','description':_0x212d85(0x1db)},{'name':_0x212d85(0x1f0),'type':'string','description':_0x212d85(0x1fa),'enum':[...RISK_LEVEL_VALUES]},{'name':_0x212d85(0x1ec),'type':_0x212d85(0x1f3),'description':_0x212d85(0x1f4)}];}export function collectAppProfileOverrides(_0x409b15){const _0x22b9c9=a134_0x4d3cf9,_0x2fe706={};for(const [_0x480bb3,_0x430771]of Object[_0x22b9c9(0x200)](APP_PROFILE_FLAG_KEY_MAP)){const _0xcbe191=_0x409b15(_0x480bb3);if(!_0xcbe191)continue;_0x2fe706[_0x430771]=_0x430771===_0x22b9c9(0x1ff)?Number(_0xcbe191):_0xcbe191;}return _0x2fe706;}export function buildAppProfileListFields(_0x1514fe){const _0x1f0973=a134_0x4d3cf9;return{'env':_0x1514fe[_0x1f0973(0x1fb)]??null,'apiDir':_0x1514fe[_0x1f0973(0x1ea)]??null,'hasCookie':!!_0x1514fe['cookie'],'hasAccessKey':!!_0x1514fe[_0x1f0973(0x1f8)],'format':_0x1514fe[_0x1f0973(0x1fe)]??null,'pageSize':_0x1514fe[_0x1f0973(0x1ff)]??null,'riskLevel':_0x1514fe[_0x1f0973(0x1f0)]??null,'locale':_0x1514fe[_0x1f0973(0x1ec)]??null};}export function buildAppDoctorFields(_0x39c609,_0x41e96c){const _0x514b3b=a134_0x4d3cf9;return{'env':{'value':_0x39c609[_0x514b3b(0x1fb)]||_0x41e96c[_0x514b3b(0x1fb)],'source':_0x39c609['env']?_0x514b3b(0x1da):_0x514b3b(0x1e5)},'apiDir':{'value':_0x39c609['apiDir']||_0x41e96c[_0x514b3b(0x1ea)],'source':_0x39c609[_0x514b3b(0x1ea)]?_0x514b3b(0x1da):'inherit'},'cookie':{'value':_0x39c609['cookie']||_0x41e96c[_0x514b3b(0x1f6)],'source':_0x39c609[_0x514b3b(0x1f6)]?'app':'inherit'},'accessKey':{'value':_0x39c609[_0x514b3b(0x1f8)]||_0x41e96c['accessKey'],'source':_0x39c609['accessKey']?_0x514b3b(0x1da):_0x514b3b(0x1e5)}};}export function buildCanonicalAppConfig(_0x22c7e8,_0x1350d0){const _0x28e056=a134_0x4d3cf9,_0x57e57e=_0x22c7e8[_0x28e056(0x1e9)](_0x4cac9e=>String(_0x4cac9e||'')[_0x28e056(0x1e7)]())['filter'](Boolean);if(_0x57e57e[_0x28e056(0x1dc)]===0x0)return{};const _0x1e7737={};for(const _0x48f76a of _0x57e57e){_0x1e7737[_0x48f76a]=_0x1350d0?{'appcode':_0x48f76a,'env':_0x1350d0}:{'appcode':_0x48f76a};}return{'apps':_0x1e7737,'defaultApp':_0x57e57e[0x0]};}export function buildCanonicalProjectConfig(_0x5b4bc1,_0x411d0b){const _0x4731d9=a134_0x4d3cf9,{appCodes:appCodes=[],env:_0x156b5c,metadata:_0x535ba7}=_0x411d0b,_0x313161={..._0x5b4bc1,..._0x535ba7||{}};delete _0x313161['appcode'],delete _0x313161['app'];if(_0x156b5c)_0x313161[_0x4731d9(0x1fb)]=_0x156b5c;else!_0x313161[_0x4731d9(0x1fb)]&&(_0x313161['env']=DEFAULT_CONFIG_VALUES[_0x4731d9(0x1fb)]);const _0x113f82=buildCanonicalAppConfig(appCodes,_0x313161['env']);return Object[_0x4731d9(0x1e8)](_0x113f82)['length']>0x0&&(_0x313161['apps']=_0x113f82[_0x4731d9(0x1ed)],_0x313161[_0x4731d9(0x1fc)]=_0x113f82['defaultApp']),_0x313161;}const LOCALE_MAP={'zh':a134_0x4d3cf9(0x1f5),'zh-cn':a134_0x4d3cf9(0x1f5),'zh_cn':a134_0x4d3cf9(0x1f5),'en':a134_0x4d3cf9(0x1f2),'en-us':a134_0x4d3cf9(0x1f2),'en_us':'en-US'};export function normalizeLocale(_0x2fd8bd){const _0x32a50e=a134_0x4d3cf9;if(!_0x2fd8bd)return null;return LOCALE_MAP[_0x2fd8bd[_0x32a50e(0x1fd)]()]??null;}
1
+ const a134_0x519df0=a134_0x3140;(function(_0x296395,_0x4010b7){const _0x38a53a=a134_0x3140,_0x302a65=_0x296395();while(!![]){try{const _0x576909=parseInt(_0x38a53a(0x77))/0x1+-parseInt(_0x38a53a(0x7f))/0x2*(-parseInt(_0x38a53a(0x75))/0x3)+-parseInt(_0x38a53a(0x87))/0x4*(parseInt(_0x38a53a(0x93))/0x5)+-parseInt(_0x38a53a(0x85))/0x6*(parseInt(_0x38a53a(0x95))/0x7)+-parseInt(_0x38a53a(0x98))/0x8+-parseInt(_0x38a53a(0x9c))/0x9*(-parseInt(_0x38a53a(0x90))/0xa)+-parseInt(_0x38a53a(0x99))/0xb;if(_0x576909===_0x4010b7)break;else _0x302a65['push'](_0x302a65['shift']());}catch(_0x2a89e3){_0x302a65['push'](_0x302a65['shift']());}}}(a134_0x2baa,0x71cfa));import{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';import{RABETBASE_ENV_VALUES}from'../constant/env.js';function a134_0x2baa(){const _0xd0effe=['Risk\x20level','apps','string','46022RBioqd','keys','entries','apiDir','trim','app','6xPGjMj','toLowerCase','512216ZBXXYZ','API\x20directory\x20path','locale','accessKey','Default\x20page\x20size','defaultFormat','pageSize','Target\x20environment','zh-CN','2296310ZPPYwt','length','Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','10TSWxJm','inherit','440524afEozY','filter','Locale','1951376DvvDec','1705374QDKWdT','env','Auth\x20cookie','18nrGnrn','has','map','en-US','number','39mkOqeO','format','425761QjmTJV','Access\x20key','appcode','cookie','riskLevel'];a134_0x2baa=function(){return _0xd0effe;};return a134_0x2baa();}import{RABETBASE_OUTPUT_FORMAT_VALUES}from'../constant/output.js';import{RISK_LEVEL_VALUES}from'../constant/risk.js';export{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';export const PROJECT_CREATE_INHERITABLE_KEYS=[a134_0x519df0(0x7a),a134_0x519df0(0x8a),'locale',a134_0x519df0(0x76),a134_0x519df0(0x7b)];export const TOP_LEVEL_CONFIG_KEYS=new Set([a134_0x519df0(0x79),'env',a134_0x519df0(0x89),'format','cookie',a134_0x519df0(0x8a),a134_0x519df0(0x82)]);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x151355){return[..._0x151355]['join'](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}function a134_0x3140(_0x19ce47,_0x71aed){_0x19ce47=_0x19ce47-0x72;const _0x2baaf6=a134_0x2baa();let _0x31401e=_0x2baaf6[_0x19ce47];return _0x31401e;}export function isTopLevelConfigKey(_0x413cd2){const _0x5c18f9=a134_0x519df0;return TOP_LEVEL_CONFIG_KEYS[_0x5c18f9(0x9d)](_0x413cd2);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}export function getConfigCommandKeyDescription(){return'Config\x20key\x20('+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':'env','apiDir':a134_0x519df0(0x82),'cookie':a134_0x519df0(0x7a),'accessKey':a134_0x519df0(0x8a),'defaultFormat':'format','pageSize':a134_0x519df0(0x8d),'riskLevel':a134_0x519df0(0x7b),'locale':a134_0x519df0(0x89)};export function getAppProfileFlagDefs(){const _0x154a79=a134_0x519df0;return[{'name':'env','type':_0x154a79(0x7e),'description':_0x154a79(0x8e),'enum':[...RABETBASE_ENV_VALUES]},{'name':_0x154a79(0x82),'type':_0x154a79(0x7e),'description':_0x154a79(0x88)},{'name':_0x154a79(0x7a),'type':_0x154a79(0x7e),'description':_0x154a79(0x9b),'hidden':!![]},{'name':_0x154a79(0x8a),'type':_0x154a79(0x7e),'description':_0x154a79(0x78),'hidden':!![]},{'name':_0x154a79(0x8c),'type':_0x154a79(0x7e),'description':_0x154a79(0x92),'enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':_0x154a79(0x8d),'type':_0x154a79(0x74),'description':_0x154a79(0x8b)},{'name':_0x154a79(0x7b),'type':'string','description':_0x154a79(0x7c),'enum':[...RISK_LEVEL_VALUES]},{'name':'locale','type':_0x154a79(0x7e),'description':_0x154a79(0x97)}];}export function collectAppProfileOverrides(_0x3daea2){const _0x191ad0=a134_0x519df0,_0x2f0f35={};for(const [_0x1d72f3,_0x5e0831]of Object[_0x191ad0(0x81)](APP_PROFILE_FLAG_KEY_MAP)){const _0xd08e89=_0x3daea2(_0x1d72f3);if(!_0xd08e89)continue;_0x2f0f35[_0x5e0831]=_0x5e0831===_0x191ad0(0x8d)?Number(_0xd08e89):_0xd08e89;}return _0x2f0f35;}export function buildAppProfileListFields(_0x59a601){const _0x4e13d5=a134_0x519df0;return{'env':_0x59a601[_0x4e13d5(0x9a)]??null,'apiDir':_0x59a601[_0x4e13d5(0x82)]??null,'hasCookie':!!_0x59a601['cookie'],'hasAccessKey':!!_0x59a601[_0x4e13d5(0x8a)],'format':_0x59a601[_0x4e13d5(0x76)]??null,'pageSize':_0x59a601[_0x4e13d5(0x8d)]??null,'riskLevel':_0x59a601[_0x4e13d5(0x7b)]??null,'locale':_0x59a601[_0x4e13d5(0x89)]??null};}export function buildAppDoctorFields(_0x5753e1,_0x56edce){const _0x29b63d=a134_0x519df0;return{'env':{'value':_0x5753e1[_0x29b63d(0x9a)]||_0x56edce[_0x29b63d(0x9a)],'source':_0x5753e1['env']?'app':'inherit'},'apiDir':{'value':_0x5753e1[_0x29b63d(0x82)]||_0x56edce['apiDir'],'source':_0x5753e1[_0x29b63d(0x82)]?_0x29b63d(0x84):_0x29b63d(0x94)},'cookie':{'value':_0x5753e1[_0x29b63d(0x7a)]||_0x56edce[_0x29b63d(0x7a)],'source':_0x5753e1[_0x29b63d(0x7a)]?_0x29b63d(0x84):_0x29b63d(0x94)},'accessKey':{'value':_0x5753e1[_0x29b63d(0x8a)]||_0x56edce[_0x29b63d(0x8a)],'source':_0x5753e1[_0x29b63d(0x8a)]?_0x29b63d(0x84):'inherit'}};}export function buildCanonicalAppConfig(_0x5353a4,_0x495020){const _0x1a6b80=a134_0x519df0,_0x146d05=_0x5353a4[_0x1a6b80(0x72)](_0x383a04=>String(_0x383a04||'')[_0x1a6b80(0x83)]())[_0x1a6b80(0x96)](Boolean);if(_0x146d05[_0x1a6b80(0x91)]===0x0)return{};const _0x57dd08={};for(const _0x33cc7b of _0x146d05){_0x57dd08[_0x33cc7b]=_0x495020?{'appcode':_0x33cc7b,'env':_0x495020}:{'appcode':_0x33cc7b};}return{'apps':_0x57dd08,'defaultApp':_0x146d05[0x0]};}export function buildCanonicalProjectConfig(_0x10c979,_0x101dd1){const _0x1e5468=a134_0x519df0,{appCodes:appCodes=[],env:_0x5bf7f6,metadata:_0x62c2a3}=_0x101dd1,_0x48754c={..._0x10c979,..._0x62c2a3||{}};delete _0x48754c[_0x1e5468(0x79)],delete _0x48754c[_0x1e5468(0x84)];if(_0x5bf7f6)_0x48754c[_0x1e5468(0x9a)]=_0x5bf7f6;else!_0x48754c[_0x1e5468(0x9a)]&&(_0x48754c[_0x1e5468(0x9a)]=DEFAULT_CONFIG_VALUES[_0x1e5468(0x9a)]);const _0x4deae7=buildCanonicalAppConfig(appCodes,_0x48754c['env']);return Object[_0x1e5468(0x80)](_0x4deae7)['length']>0x0&&(_0x48754c['apps']=_0x4deae7[_0x1e5468(0x7d)],_0x48754c['defaultApp']=_0x4deae7['defaultApp']),_0x48754c;}const LOCALE_MAP={'zh':a134_0x519df0(0x8f),'zh-cn':'zh-CN','zh_cn':a134_0x519df0(0x8f),'en':a134_0x519df0(0x73),'en-us':a134_0x519df0(0x73),'en_us':a134_0x519df0(0x73)};export function normalizeLocale(_0x76d878){const _0x485051=a134_0x519df0;if(!_0x76d878)return null;return LOCALE_MAP[_0x76d878[_0x485051(0x86)]()]??null;}
@@ -1 +1 @@
1
- function a135_0x6ea6(_0x2499eb,_0x59868f){_0x2499eb=_0x2499eb-0x118;const _0x12d9d8=a135_0x12d9();let _0x6ea613=_0x12d9d8[_0x2499eb];return _0x6ea613;}function a135_0x12d9(){const _0x639d01=['11008jXLNAa','979670KOydVj','https://g.lovrabet.com/dist/rabetbase-cli/config/index.json','122193DxDsZr','158244GmsSUz','649644ykqGgR','78SqMjTt','1173123hMSSZd','72TgtBBZ','67991ulcYtS','121ZJLQKI','5ZVRRdP','2VLJzek'];a135_0x12d9=function(){return _0x639d01;};return a135_0x12d9();}const a135_0x1f47e3=a135_0x6ea6;(function(_0x4a3671,_0xf720e){const _0x5bae67=a135_0x6ea6,_0x3697cc=_0x4a3671();while(!![]){try{const _0x4d2def=-parseInt(_0x5bae67(0x11f))/0x1*(-parseInt(_0x5bae67(0x11b))/0x2)+parseInt(_0x5bae67(0x122))/0x3*(parseInt(_0x5bae67(0x11c))/0x4)+-parseInt(_0x5bae67(0x11a))/0x5*(-parseInt(_0x5bae67(0x121))/0x6)+parseInt(_0x5bae67(0x118))/0x7*(-parseInt(_0x5bae67(0x124))/0x8)+parseInt(_0x5bae67(0x123))/0x9+-parseInt(_0x5bae67(0x11d))/0xa+-parseInt(_0x5bae67(0x119))/0xb*(parseInt(_0x5bae67(0x120))/0xc);if(_0x4d2def===_0xf720e)break;else _0x3697cc['push'](_0x3697cc['shift']());}catch(_0x46db5c){_0x3697cc['push'](_0x3697cc['shift']());}}}(a135_0x12d9,0x18e25));export const CLI_VERSION_POLICY_URL=a135_0x1f47e3(0x11e);
1
+ const a135_0x5116a3=a135_0x1ee6;(function(_0x18238c,_0x55728a){const _0x32e223=a135_0x1ee6,_0xd39ee1=_0x18238c();while(!![]){try{const _0x34823a=-parseInt(_0x32e223(0x172))/0x1*(parseInt(_0x32e223(0x16f))/0x2)+-parseInt(_0x32e223(0x167))/0x3*(parseInt(_0x32e223(0x169))/0x4)+-parseInt(_0x32e223(0x170))/0x5*(-parseInt(_0x32e223(0x171))/0x6)+parseInt(_0x32e223(0x16d))/0x7+parseInt(_0x32e223(0x16c))/0x8*(-parseInt(_0x32e223(0x168))/0x9)+-parseInt(_0x32e223(0x16e))/0xa+parseInt(_0x32e223(0x16b))/0xb;if(_0x34823a===_0x55728a)break;else _0xd39ee1['push'](_0xd39ee1['shift']());}catch(_0xfcf074){_0xd39ee1['push'](_0xd39ee1['shift']());}}}(a135_0xedb7,0x2d16c));function a135_0xedb7(){const _0x1d784f=['554524kfiBXR','https://g.lovrabet.com/dist/rabetbase-cli/config/index.json','4397173OqlMOv','8HnTTTo','1495340OjUodV','203430NUHcih','46LSIEyW','1343400CfnFeH','6yHdjEu','2089xdtlFi','6IPIdvb','3165363sEuOqi'];a135_0xedb7=function(){return _0x1d784f;};return a135_0xedb7();}function a135_0x1ee6(_0x37bd2f,_0x5ea391){_0x37bd2f=_0x37bd2f-0x167;const _0xedb7c9=a135_0xedb7();let _0x1ee6c0=_0xedb7c9[_0x37bd2f];return _0x1ee6c0;}export const CLI_VERSION_POLICY_URL=a135_0x5116a3(0x16a);