@lovrabet/rabetbase-cli 2.2.4-beta.1 → 2.2.4-beta.3

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 (205) 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.js +1 -1
  144. package/lib/core/alias-resolver.js +1 -1
  145. package/lib/core/api-client.js +1 -1
  146. package/lib/core/bff/config.js +1 -1
  147. package/lib/core/bff/file-system.js +1 -1
  148. package/lib/core/bff/hash.js +1 -1
  149. package/lib/core/bff/lock.js +1 -1
  150. package/lib/core/bff/utils.js +1 -1
  151. package/lib/core/db-resolver.js +1 -1
  152. package/lib/core/page/file-system.js +1 -1
  153. package/lib/core/page/hash.js +1 -1
  154. package/lib/core/page/lock.js +1 -1
  155. package/lib/core/sql-sync/config.js +1 -1
  156. package/lib/core/sql-sync/file-system.js +1 -1
  157. package/lib/core/sql-sync/hash.js +1 -1
  158. package/lib/core/sql-sync/lock.js +1 -1
  159. package/lib/core/sql-sync/utils.js +1 -1
  160. package/lib/core/sql-validator.js +1 -1
  161. package/lib/errors.js +1 -1
  162. package/lib/framework/build-all-flags.js +1 -1
  163. package/lib/framework/flags.js +1 -1
  164. package/lib/framework/help.js +1 -1
  165. package/lib/framework/index.js +1 -1
  166. package/lib/framework/output.js +1 -1
  167. package/lib/framework/response.js +1 -1
  168. package/lib/framework/runner-alias.js +1 -1
  169. package/lib/framework/runner.js +1 -1
  170. package/lib/framework/schema-export.js +1 -1
  171. package/lib/framework/types.js +1 -1
  172. package/lib/generated/build-info.js +1 -1
  173. package/lib/help.js +1 -1
  174. package/lib/skills/main.js +1 -1
  175. package/lib/skills/npx-skills-add.js +1 -1
  176. package/lib/telemetry/cli-command-trace.js +1 -1
  177. package/lib/telemetry/cli-help-trace.js +1 -1
  178. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  179. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  180. package/lib/telemetry/send-cli-trace-log.js +1 -1
  181. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  182. package/lib/utils/ai_config.js +1 -1
  183. package/lib/utils/apply-jq-filter.js +1 -1
  184. package/lib/utils/cdn-config.js +1 -1
  185. package/lib/utils/check-sdk-version.js +1 -1
  186. package/lib/utils/cli-version-check.js +1 -1
  187. package/lib/utils/cli-version-policy.js +1 -1
  188. package/lib/utils/config.js +1 -1
  189. package/lib/utils/copy-directory.js +1 -1
  190. package/lib/utils/entity-with-id.js +1 -1
  191. package/lib/utils/file-utils.js +1 -1
  192. package/lib/utils/guides-cdn.js +1 -1
  193. package/lib/utils/http-client.js +1 -1
  194. package/lib/utils/is-non-interactive.js +1 -1
  195. package/lib/utils/logger.js +1 -1
  196. package/lib/utils/params.js +1 -1
  197. package/lib/utils/platform.js +1 -1
  198. package/lib/utils/rules-cdn.js +1 -1
  199. package/lib/utils/sleep.js +1 -1
  200. package/lib/utils/template-replacer.js +1 -1
  201. package/lib/utils/update-notice.js +1 -1
  202. package/lib/utils/version.js +1 -1
  203. package/lib/utils/with-active-cookie.js +1 -1
  204. package/lib/utils/write-cli-side-channel.js +1 -1
  205. package/package.json +1 -1
@@ -1 +1 @@
1
- const a122_0x537ad4=a122_0x3011;(function(_0x5af962,_0x140839){const _0x4ec796=a122_0x3011,_0x35fce9=_0x5af962();while(!![]){try{const _0x54e21d=-parseInt(_0x4ec796(0x1b5))/0x1+-parseInt(_0x4ec796(0x1aa))/0x2+-parseInt(_0x4ec796(0x1c5))/0x3*(parseInt(_0x4ec796(0x1ab))/0x4)+parseInt(_0x4ec796(0x1ba))/0x5+parseInt(_0x4ec796(0x1d4))/0x6*(-parseInt(_0x4ec796(0x1a0))/0x7)+parseInt(_0x4ec796(0x1a6))/0x8*(parseInt(_0x4ec796(0x1ce))/0x9)+parseInt(_0x4ec796(0x1c7))/0xa;if(_0x54e21d===_0x140839)break;else _0x35fce9['push'](_0x35fce9['shift']());}catch(_0x46b533){_0x35fce9['push'](_0x35fce9['shift']());}}}(a122_0x1e0e,0x4692f));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';function a122_0x3011(_0x52a1f9,_0xc7627a){_0x52a1f9=_0x52a1f9-0x19f;const _0x1e0edd=a122_0x1e0e();let _0x3011ef=_0x1e0edd[_0x52a1f9];return _0x3011ef;}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(_0x37cd4){const _0x4c6594=a122_0x3011;if(_0x37cd4===_0x4c6594(0x1c4))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','\x20\x20SELECT\x201\x20AS\x20id',_0x4c6594(0x1ac),''][_0x4c6594(0x1a8)]('\x0a');return[_0x4c6594(0x1a5),''][_0x4c6594(0x1a8)]('\x0a');}export const sqlCreate={'service':a122_0x537ad4(0x1cc),'command':'create','description':a122_0x537ad4(0x1a3),'risk':a122_0x537ad4(0x1a2),'flags':[{'name':a122_0x537ad4(0x1d2),'type':a122_0x537ad4(0x1c1),'description':a122_0x537ad4(0x1c2)},{'name':a122_0x537ad4(0x1d3),'type':a122_0x537ad4(0x1b6),'description':'Target\x20database\x20ID'},{'name':a122_0x537ad4(0x1de),'type':a122_0x537ad4(0x1c1),'enum':[a122_0x537ad4(0x1cc),a122_0x537ad4(0x1c4)],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x16ed8c){const _0x321ad4=a122_0x537ad4;if(!_0x16ed8c[_0x321ad4(0x1ae)])return;if(!_0x16ed8c[_0x321ad4(0x1be)]('name')[_0x321ad4(0x1c0)]())throw CliErrors[_0x321ad4(0x1b4)]('name',_0x321ad4(0x1b7));const _0x274f0a=resolveProvidedDbId(_0x16ed8c);if(typeof _0x274f0a!==_0x321ad4(0x1b6)||!Number[_0x321ad4(0x1d6)](_0x274f0a)||_0x274f0a<=0x0)throw CliErrors['flagMissing'](_0x321ad4(0x1d3),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x16ed8c[_0x321ad4(0x1be)](_0x321ad4(0x1de))[_0x321ad4(0x1c0)]())throw CliErrors[_0x321ad4(0x1b4)]('mode',_0x321ad4(0x1d7));},async 'dryRun'(_0x3b2dd0){const _0x243383=a122_0x537ad4,_0x12520e=loadSqlProjectConfig(_0x3b2dd0['appCode']),{sqlName:_0x3bff0b,dbId:_0x5b8e8f,dbName:_0x29b17d,mode:_0x337201}=await resolveSqlNewInputs(_0x3b2dd0),_0x44b4e6=buildSqlRelativePath(_0x243383(0x1c3),_0x3bff0b,_0x29b17d,_0x337201,_0x5b8e8f),_0x5171d4=_0x12520e[_0x243383(0x1b0)]+'/'+_0x44b4e6;return{'method':_0x243383(0x1b8),'url':_0x243383(0x1a7),'body':{'appCode':_0x3b2dd0['appCode'],'sqlName':_0x3bff0b,'dbId':_0x5b8e8f,'mode':_0x337201,'localPath':_0x5171d4},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x12520e[_0x243383(0x1b0)]};},async 'execute'(_0x21c242){const _0x5914eb=a122_0x537ad4,_0x495ecd=loadSqlProjectConfig(_0x21c242[_0x5914eb(0x1a4)]),{sqlName:_0x177cc6,dbId:_0x1794d3,dbName:_0x2fe4ff,mode:_0xa85f6}=await resolveSqlNewInputs(_0x21c242),_0x2a3089=generateSqlTemplate(_0xa85f6),_0x371ee0=await createSqlQuery({'appCode':_0x21c242['appCode'],'sqlName':_0x177cc6,'dbId':_0x1794d3,'sqlContent':_0x2a3089}),_0x5c1cf1=ensureRemoteSqlContent(_0x371ee0),_0x39238f=_0x2fe4ff||await getDbName(_0x21c242['appCode'],_0x1794d3)[_0x5914eb(0x1c6)](()=>undefined),_0x33ee03=buildSqlRelativePath(_0x371ee0[_0x5914eb(0x1d5)],_0x371ee0[_0x5914eb(0x1d8)],_0x39238f,_0xa85f6,_0x1794d3),_0x411f1f=_0x495ecd[_0x5914eb(0x1b0)]+'/'+_0x33ee03,_0x86360c=buildLocalSqlFileContent({'sqlCode':_0x371ee0['sqlCode'],'sqlName':_0x371ee0['sqlName'],'dbId':_0x371ee0[_0x5914eb(0x1bc)]},_0x5c1cf1,{'dbName':_0x39238f,'mode':_0xa85f6,'syncedAt':new Date()['toISOString'](),'description':_0x371ee0[_0x5914eb(0x1b2)]});if(await fileExists(_0x411f1f))throw CliErrors[_0x5914eb(0x19f)](_0x5914eb(0x1ad)+_0x411f1f);await ensureParentDirectory(_0x411f1f),await writeFile(_0x411f1f,_0x86360c,_0x5914eb(0x1b9));const _0x3058c2=await readSqlLockFile(_0x495ecd['lockFilePath']),{lockData:_0x3954b3,appLock:_0x11e43e}=ensureSqlLockScope(_0x3058c2??createEmptySqlLock(),_0x495ecd[_0x5914eb(0x1a4)],_0x495ecd['sqlRoot'],_0x5914eb(0x1ca));return _0x11e43e[_0x5914eb(0x1dd)][_0x371ee0[_0x5914eb(0x1d5)]]={...buildSqlLockEntry(_0x371ee0,_0x5c1cf1,computeSqlContentHash(_0x86360c),{'dbName':_0x39238f}),'path':_0x33ee03,'mode':_0xa85f6},_0x11e43e['lastSync']=new Date()[_0x5914eb(0x1cb)](),await writeSqlLockFile(_0x495ecd['lockFilePath'],_0x3954b3),{'ok':!![],'data':{'id':_0x371ee0['id'],'sqlCode':_0x371ee0['sqlCode'],'sqlName':_0x371ee0['sqlName'],'dbId':_0x371ee0[_0x5914eb(0x1bc)],'path':_0x411f1f,'mode':_0xa85f6},'message':_0x5914eb(0x1bf)+_0x371ee0[_0x5914eb(0x1d5)]};}};async function resolveSqlNewInputs(_0x2e0c7b){const _0x3e8f28=await resolveSqlNameInput(_0x2e0c7b),{dbId:_0x31bec9,dbName:_0x28c7e9}=await resolveDbSelection(_0x2e0c7b),_0x44eb05=await resolveSqlModeInput(_0x2e0c7b);return{'sqlName':_0x3e8f28,'dbId':_0x31bec9,'dbName':_0x28c7e9,'mode':_0x44eb05};}async function resolveSqlNameInput(_0x7399d0){const _0x454ed9=a122_0x537ad4,_0x123e3a=_0x7399d0['str'](_0x454ed9(0x1d2))[_0x454ed9(0x1c0)]();if(_0x123e3a)return _0x123e3a;if(_0x7399d0[_0x454ed9(0x1ae)])throw CliErrors[_0x454ed9(0x1b4)](_0x454ed9(0x1d2),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x454ed9(0x1a9),'validate':_0x2b8af1=>_0x2b8af1[_0x454ed9(0x1c0)]()?!![]:_0x454ed9(0x1d0)}))[_0x454ed9(0x1c0)]();}async function resolveDbSelection(_0x3c97e1){const _0x3e4e82=a122_0x537ad4,_0x92f727=resolveProvidedDbId(_0x3c97e1);if(typeof _0x92f727===_0x3e4e82(0x1b6)&&Number[_0x3e4e82(0x1d6)](_0x92f727)&&_0x92f727>0x0)return{'dbId':_0x92f727,'dbName':await getDbName(_0x3c97e1[_0x3e4e82(0x1a4)],_0x92f727)[_0x3e4e82(0x1c6)](()=>undefined)};if(_0x3c97e1[_0x3e4e82(0x1ae)])throw CliErrors[_0x3e4e82(0x1b4)]('db-id',_0x3e4e82(0x1d9));const _0x55ab1d=await listDatabases(_0x3c97e1['appCode'])[_0x3e4e82(0x1c6)](()=>[]);if(_0x55ab1d[_0x3e4e82(0x1cf)]===0x1)return{'dbId':_0x55ab1d[0x0][_0x3e4e82(0x1bc)],'dbName':_0x55ab1d[0x0][_0x3e4e82(0x1a1)]};if(_0x55ab1d[_0x3e4e82(0x1cf)]>0x1){const _0x357ea5=await select({'message':_0x3e4e82(0x1af),'choices':[..._0x55ab1d[_0x3e4e82(0x1da)](_0x523388=>({'name':_0x523388[_0x3e4e82(0x1a1)]+'\x20('+_0x523388[_0x3e4e82(0x1bc)]+')','value':serializeDbSelection(_0x523388)})),{'name':_0x3e4e82(0x1db),'value':_0x3e4e82(0x1bd)}]});if(_0x357ea5!==_0x3e4e82(0x1bd))return deserializeDbSelection(_0x357ea5);}const _0x39bdfa=await input({'message':'请输入目标数据库\x20dbId:','validate':_0xb12cbe=>{const _0x24403a=_0x3e4e82,_0x3df13a=_0xb12cbe[_0x24403a(0x1c0)]();if(!_0x3df13a)return _0x24403a(0x1cd);const _0x4d992e=Number(_0x3df13a);if(!Number[_0x24403a(0x1dc)](_0x4d992e)||_0x4d992e<=0x0)return _0x24403a(0x1bb);return!![];}});return{'dbId':Number(_0x39bdfa[_0x3e4e82(0x1c0)]())};}async function resolveSqlModeInput(_0x41d70b){const _0x571ae1=a122_0x537ad4,_0x319506=_0x41d70b[_0x571ae1(0x1be)](_0x571ae1(0x1de))[_0x571ae1(0x1c0)]();if(_0x319506===_0x571ae1(0x1cc)||_0x319506==='mybatisXml')return _0x319506;if(_0x41d70b[_0x571ae1(0x1ae)])throw CliErrors[_0x571ae1(0x1b4)](_0x571ae1(0x1de),_0x571ae1(0x1d7));return await select({'message':_0x571ae1(0x1b3),'choices':[{'name':'普通\x20SQL(sql)','value':_0x571ae1(0x1cc),'description':_0x571ae1(0x1c9)},{'name':'MyBatis\x20XML(mybatisXml)','value':_0x571ae1(0x1c4),'description':_0x571ae1(0x1c8)}]});}function serializeDbSelection(_0x163eb9){return JSON['stringify']({'dbId':_0x163eb9['dbId'],'dbName':_0x163eb9['dbName']});}function deserializeDbSelection(_0xe8f327){const _0x5d8c27=a122_0x537ad4;try{const _0x3d5c82=JSON['parse'](_0xe8f327);if(typeof _0x3d5c82[_0x5d8c27(0x1bc)]===_0x5d8c27(0x1b6)&&Number[_0x5d8c27(0x1d6)](_0x3d5c82[_0x5d8c27(0x1bc)]))return{'dbId':_0x3d5c82[_0x5d8c27(0x1bc)],'dbName':_0x3d5c82[_0x5d8c27(0x1a1)]};}catch{}throw CliErrors[_0x5d8c27(0x19f)](_0x5d8c27(0x1d1)+_0xe8f327);}function resolveProvidedDbId(_0x4001eb){const _0x3875b2=a122_0x537ad4,_0x34e277=_0x4001eb[_0x3875b2(0x1b1)](_0x3875b2(0x1d3));if(typeof _0x34e277===_0x3875b2(0x1b6)&&Number[_0x3875b2(0x1d6)](_0x34e277))return _0x34e277;return undefined;}function a122_0x1e0e(){const _0x3b65d4=['sqlCode','isFinite','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','sqlName','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','map','✎\x20手动输入\x20dbId','isInteger','sqls','mode','validation','7utUYeq','dbName','high-risk-write','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','appCode','SELECT\x201\x20AS\x20id;','3032uLVWAN','/smartapi/custom/saveUserCustomSql','join','请输入\x20SQL\x20名称:','123256oEhivo','4awytxd','</select>','File\x20already\x20exists:\x20','nonInteractive','请选择目标数据库:','sqlRootDir','flag','description','请选择本地\x20SQL\x20模式:','flagMissing','408527aXXGhN','number','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','POST','utf8','693855MnqVaM','dbId\x20必须为正整数','dbId','__manual__','str','Created\x20SQL\x20query\x20','trim','string','SQL\x20query\x20display\x20name','<server-generated-sqlCode>','mybatisXml','54519IZmexF','catch','6325580suOUNW','适合带动态标签的\x20MyBatis\x20XML\x20SQL','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','new','toISOString','sql','dbId\x20不能为空','4707WPDLRv','length','SQL\x20名称不能为空','Invalid\x20database\x20selection\x20payload:\x20','name','db-id','1152882JQtsUv'];a122_0x1e0e=function(){return _0x3b65d4;};return a122_0x1e0e();}
1
+ const a122_0x516294=a122_0x3351;(function(_0x4969b8,_0x284326){const _0x91be47=a122_0x3351,_0x5019c2=_0x4969b8();while(!![]){try{const _0x1d8163=-parseInt(_0x91be47(0x157))/0x1*(-parseInt(_0x91be47(0x165))/0x2)+-parseInt(_0x91be47(0x164))/0x3+-parseInt(_0x91be47(0x192))/0x4*(parseInt(_0x91be47(0x15e))/0x5)+parseInt(_0x91be47(0x160))/0x6+parseInt(_0x91be47(0x18c))/0x7+-parseInt(_0x91be47(0x172))/0x8*(-parseInt(_0x91be47(0x181))/0x9)+parseInt(_0x91be47(0x163))/0xa;if(_0x1d8163===_0x284326)break;else _0x5019c2['push'](_0x5019c2['shift']());}catch(_0x43d19d){_0x5019c2['push'](_0x5019c2['shift']());}}}(a122_0x36b1,0xd7a92));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';function a122_0x3351(_0x1e1ad0,_0x4222de){_0x1e1ad0=_0x1e1ad0-0x154;const _0x36b1e3=a122_0x36b1();let _0x335170=_0x36b1e3[_0x1e1ad0];return _0x335170;}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(_0x26bcad){const _0x482d20=a122_0x3351;if(_0x26bcad==='mybatisXml')return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','\x20\x20SELECT\x201\x20AS\x20id','</select>','']['join']('\x0a');return[_0x482d20(0x15b),''][_0x482d20(0x17b)]('\x0a');}export const sqlCreate={'service':'sql','command':'create','description':'Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','risk':a122_0x516294(0x159),'flags':[{'name':a122_0x516294(0x185),'type':'string','description':a122_0x516294(0x170)},{'name':'db-id','type':a122_0x516294(0x15f),'description':a122_0x516294(0x18a)},{'name':'mode','type':a122_0x516294(0x17e),'enum':[a122_0x516294(0x15c),a122_0x516294(0x168)],'description':a122_0x516294(0x182)}],async 'validate'(_0x237ea5){const _0x2133dd=a122_0x516294;if(!_0x237ea5[_0x2133dd(0x16f)])return;if(!_0x237ea5['str'](_0x2133dd(0x185))[_0x2133dd(0x16e)]())throw CliErrors[_0x2133dd(0x171)]('name',_0x2133dd(0x190));const _0x5962f6=resolveProvidedDbId(_0x237ea5);if(typeof _0x5962f6!==_0x2133dd(0x15f)||!Number[_0x2133dd(0x161)](_0x5962f6)||_0x5962f6<=0x0)throw CliErrors[_0x2133dd(0x171)](_0x2133dd(0x16b),_0x2133dd(0x173));if(!_0x237ea5[_0x2133dd(0x178)](_0x2133dd(0x188))['trim']())throw CliErrors[_0x2133dd(0x171)]('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x55cbcd){const _0x47ff29=a122_0x516294,_0xdf3233=loadSqlProjectConfig(_0x55cbcd[_0x47ff29(0x191)]),{sqlName:_0x517b65,dbId:_0x153adf,dbName:_0x4d461a,mode:_0x461da4}=await resolveSqlNewInputs(_0x55cbcd),_0x3f167c=buildSqlRelativePath('<server-generated-sqlCode>',_0x517b65,_0x4d461a,_0x461da4,_0x153adf),_0x1d61e0=_0xdf3233[_0x47ff29(0x155)]+'/'+_0x3f167c;return{'method':_0x47ff29(0x166),'url':_0x47ff29(0x17a),'body':{'appCode':_0x55cbcd[_0x47ff29(0x191)],'sqlName':_0x517b65,'dbId':_0x153adf,'mode':_0x461da4,'localPath':_0x1d61e0},'description':_0x47ff29(0x18b)+_0xdf3233[_0x47ff29(0x155)]};},async 'execute'(_0x531504){const _0x3f71ac=a122_0x516294,_0x29a9e6=loadSqlProjectConfig(_0x531504[_0x3f71ac(0x191)]),{sqlName:_0x28fcca,dbId:_0x4b895c,dbName:_0x28696a,mode:_0x4f54c7}=await resolveSqlNewInputs(_0x531504),_0x304dfd=generateSqlTemplate(_0x4f54c7),_0x3006ec=await createSqlQuery({'appCode':_0x531504['appCode'],'sqlName':_0x28fcca,'dbId':_0x4b895c,'sqlContent':_0x304dfd}),_0x5a0370=ensureRemoteSqlContent(_0x3006ec),_0x1dd312=_0x28696a||await getDbName(_0x531504[_0x3f71ac(0x191)],_0x4b895c)[_0x3f71ac(0x187)](()=>undefined),_0x23817a=buildSqlRelativePath(_0x3006ec[_0x3f71ac(0x154)],_0x3006ec[_0x3f71ac(0x18d)],_0x1dd312,_0x4f54c7,_0x4b895c),_0x14f25f=_0x29a9e6[_0x3f71ac(0x155)]+'/'+_0x23817a,_0x151834=buildLocalSqlFileContent({'sqlCode':_0x3006ec[_0x3f71ac(0x154)],'sqlName':_0x3006ec[_0x3f71ac(0x18d)],'dbId':_0x3006ec['dbId']},_0x5a0370,{'dbName':_0x1dd312,'mode':_0x4f54c7,'syncedAt':new Date()[_0x3f71ac(0x176)](),'description':_0x3006ec[_0x3f71ac(0x184)]});if(await fileExists(_0x14f25f))throw CliErrors[_0x3f71ac(0x162)]('File\x20already\x20exists:\x20'+_0x14f25f);await ensureParentDirectory(_0x14f25f),await writeFile(_0x14f25f,_0x151834,_0x3f71ac(0x174));const _0x37b545=await readSqlLockFile(_0x29a9e6[_0x3f71ac(0x189)]),{lockData:_0x4fd0a3,appLock:_0x37d5ec}=ensureSqlLockScope(_0x37b545??createEmptySqlLock(),_0x29a9e6[_0x3f71ac(0x191)],_0x29a9e6['sqlRoot'],_0x3f71ac(0x183));return _0x37d5ec[_0x3f71ac(0x167)][_0x3006ec[_0x3f71ac(0x154)]]={...buildSqlLockEntry(_0x3006ec,_0x5a0370,computeSqlContentHash(_0x151834),{'dbName':_0x1dd312}),'path':_0x23817a,'mode':_0x4f54c7},_0x37d5ec[_0x3f71ac(0x15d)]=new Date()[_0x3f71ac(0x176)](),await writeSqlLockFile(_0x29a9e6['lockFilePath'],_0x4fd0a3),{'ok':!![],'data':{'id':_0x3006ec['id'],'sqlCode':_0x3006ec[_0x3f71ac(0x154)],'sqlName':_0x3006ec[_0x3f71ac(0x18d)],'dbId':_0x3006ec['dbId'],'path':_0x14f25f,'mode':_0x4f54c7},'message':_0x3f71ac(0x16d)+_0x3006ec[_0x3f71ac(0x154)]};}};async function resolveSqlNewInputs(_0x5c2e19){const _0x19f3fd=await resolveSqlNameInput(_0x5c2e19),{dbId:_0x1beeda,dbName:_0x1598fc}=await resolveDbSelection(_0x5c2e19),_0x2c7891=await resolveSqlModeInput(_0x5c2e19);return{'sqlName':_0x19f3fd,'dbId':_0x1beeda,'dbName':_0x1598fc,'mode':_0x2c7891};}async function resolveSqlNameInput(_0x5af4f5){const _0x3110af=a122_0x516294,_0x4d23ae=_0x5af4f5[_0x3110af(0x178)]('name')[_0x3110af(0x16e)]();if(_0x4d23ae)return _0x4d23ae;if(_0x5af4f5['nonInteractive'])throw CliErrors[_0x3110af(0x171)](_0x3110af(0x185),_0x3110af(0x190));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x24c823=>_0x24c823['trim']()?!![]:_0x3110af(0x177)}))[_0x3110af(0x16e)]();}function a122_0x36b1(){const _0x49cc6a=['new','description','name','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','catch','mode','lockFilePath','Target\x20database\x20ID','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','12219753sPYrWn','sqlName','dbId','flag','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','appCode','476072KpWWnC','sqlCode','sqlRootDir','isInteger','279557hXRDba','length','high-risk-write','dbName','SELECT\x201\x20AS\x20id;','sql','lastSync','45DyBqaj','number','4096614kPvGSY','isFinite','validation','4464930MDMoMO','4733865vNzchX','2WmgsfB','POST','sqls','mybatisXml','dbId\x20不能为空','普通\x20SQL(sql)','db-id','__manual__','Created\x20SQL\x20query\x20','trim','nonInteractive','SQL\x20query\x20display\x20name','flagMissing','3023720EsqEsb','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','utf8','请选择本地\x20SQL\x20模式:','toISOString','SQL\x20名称不能为空','str','✎\x20手动输入\x20dbId','/smartapi/custom/saveUserCustomSql','join','适合带动态标签的\x20MyBatis\x20XML\x20SQL','Invalid\x20database\x20selection\x20payload:\x20','string','请输入目标数据库\x20dbId:','请选择目标数据库:','9mcQDTB','Local\x20SQL\x20file\x20mode'];a122_0x36b1=function(){return _0x49cc6a;};return a122_0x36b1();}async function resolveDbSelection(_0x2f9476){const _0x155f0c=a122_0x516294,_0x2ee1f0=resolveProvidedDbId(_0x2f9476);if(typeof _0x2ee1f0===_0x155f0c(0x15f)&&Number['isFinite'](_0x2ee1f0)&&_0x2ee1f0>0x0)return{'dbId':_0x2ee1f0,'dbName':await getDbName(_0x2f9476[_0x155f0c(0x191)],_0x2ee1f0)[_0x155f0c(0x187)](()=>undefined)};if(_0x2f9476[_0x155f0c(0x16f)])throw CliErrors[_0x155f0c(0x171)](_0x155f0c(0x16b),_0x155f0c(0x173));const _0x36a274=await listDatabases(_0x2f9476[_0x155f0c(0x191)])['catch'](()=>[]);if(_0x36a274[_0x155f0c(0x158)]===0x1)return{'dbId':_0x36a274[0x0][_0x155f0c(0x18e)],'dbName':_0x36a274[0x0][_0x155f0c(0x15a)]};if(_0x36a274[_0x155f0c(0x158)]>0x1){const _0x3753e0=await select({'message':_0x155f0c(0x180),'choices':[..._0x36a274['map'](_0x3b2242=>({'name':_0x3b2242[_0x155f0c(0x15a)]+'\x20('+_0x3b2242[_0x155f0c(0x18e)]+')','value':serializeDbSelection(_0x3b2242)})),{'name':_0x155f0c(0x179),'value':_0x155f0c(0x16c)}]});if(_0x3753e0!=='__manual__')return deserializeDbSelection(_0x3753e0);}const _0x47776f=await input({'message':_0x155f0c(0x17f),'validate':_0x4982a1=>{const _0x10e077=_0x155f0c,_0x24979c=_0x4982a1[_0x10e077(0x16e)]();if(!_0x24979c)return _0x10e077(0x169);const _0x412089=Number(_0x24979c);if(!Number[_0x10e077(0x156)](_0x412089)||_0x412089<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0x47776f[_0x155f0c(0x16e)]())};}async function resolveSqlModeInput(_0x3e79f1){const _0x168899=a122_0x516294,_0x257f4a=_0x3e79f1[_0x168899(0x178)](_0x168899(0x188))['trim']();if(_0x257f4a==='sql'||_0x257f4a==='mybatisXml')return _0x257f4a;if(_0x3e79f1['nonInteractive'])throw CliErrors[_0x168899(0x171)](_0x168899(0x188),_0x168899(0x186));return await select({'message':_0x168899(0x175),'choices':[{'name':_0x168899(0x16a),'value':_0x168899(0x15c),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':'MyBatis\x20XML(mybatisXml)','value':_0x168899(0x168),'description':_0x168899(0x17c)}]});}function serializeDbSelection(_0x496da2){const _0x447720=a122_0x516294;return JSON['stringify']({'dbId':_0x496da2['dbId'],'dbName':_0x496da2[_0x447720(0x15a)]});}function deserializeDbSelection(_0xa8845f){const _0x4b76cc=a122_0x516294;try{const _0xb0e31=JSON['parse'](_0xa8845f);if(typeof _0xb0e31['dbId']===_0x4b76cc(0x15f)&&Number[_0x4b76cc(0x161)](_0xb0e31['dbId']))return{'dbId':_0xb0e31[_0x4b76cc(0x18e)],'dbName':_0xb0e31[_0x4b76cc(0x15a)]};}catch{}throw CliErrors['validation'](_0x4b76cc(0x17d)+_0xa8845f);}function resolveProvidedDbId(_0x5d4b1b){const _0x5a5c59=a122_0x516294,_0x5c9535=_0x5d4b1b[_0x5a5c59(0x18f)](_0x5a5c59(0x16b));if(typeof _0x5c9535===_0x5a5c59(0x15f)&&Number[_0x5a5c59(0x161)](_0x5c9535))return _0x5c9535;return undefined;}
@@ -1 +1 @@
1
- const a123_0x565c43=a123_0x1f91;function a123_0x1f91(_0x5ab5e3,_0x53ab9e){_0x5ab5e3=_0x5ab5e3-0x11c;const _0x539be9=a123_0x539b();let _0x1f913d=_0x539be9[_0x5ab5e3];return _0x1f913d;}(function(_0x5ac232,_0x1a2216){const _0x4d3f83=a123_0x1f91,_0x505cdf=_0x5ac232();while(!![]){try{const _0x227f0b=parseInt(_0x4d3f83(0x12e))/0x1+-parseInt(_0x4d3f83(0x11f))/0x2+-parseInt(_0x4d3f83(0x122))/0x3+-parseInt(_0x4d3f83(0x125))/0x4*(parseInt(_0x4d3f83(0x12d))/0x5)+-parseInt(_0x4d3f83(0x142))/0x6*(parseInt(_0x4d3f83(0x132))/0x7)+parseInt(_0x4d3f83(0x138))/0x8*(parseInt(_0x4d3f83(0x140))/0x9)+-parseInt(_0x4d3f83(0x136))/0xa*(-parseInt(_0x4d3f83(0x139))/0xb);if(_0x227f0b===_0x1a2216)break;else _0x505cdf['push'](_0x505cdf['shift']());}catch(_0x2bc1ce){_0x505cdf['push'](_0x505cdf['shift']());}}}(a123_0x539b,0x81739));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';function a123_0x539b(){const _0x4f1400=['lockFilePath','963cSbHzw','Would\x20delete\x20SQL\x20','6aANKyZ','Deleted\x20','sqlRoot','filter','sqlcode','1061710EVRVJp','toISOString','\x20(local\x20file\x20moved\x20to\x20trash)','1430511KrAAGF','delete','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','20OVzEwf','sql','length','str','sqlRootDir','projectRoot','fromEntries','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','166865PcvXNI','95320cSpuvV','remoteId','high-risk-write','sqls','2823709AxLTsl','trashDir','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','POST','8589290yYPqbH','replace','22056bVicly','22DAEAmF','entries','appCode','lastSync','validation','trashedTo'];a123_0x539b=function(){return _0x4f1400;};return a123_0x539b();}import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a123_0x565c43(0x126),'command':a123_0x565c43(0x123),'description':'Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','risk':a123_0x565c43(0x130),'flags':[SQLCODE_FLAG],async 'validate'(_0xf74fc){const _0x431506=a123_0x565c43,_0x24cfc8=loadSqlProjectConfig(_0xf74fc[_0x431506(0x13b)]),_0x46e546=await readSqlLockFile(_0x24cfc8['lockFilePath']);if(!_0x46e546)throw CliErrors[_0x431506(0x13d)](_0x431506(0x12c));},async 'dryRun'(_0x879eb){const _0x33d4b5=a123_0x565c43,_0x2671a2=loadSqlProjectConfig(_0x879eb['appCode']),_0x1b57ed=await readSqlLockFile(_0x2671a2['lockFilePath']);if(!_0x1b57ed)throw CliErrors['validation'](_0x33d4b5(0x12c));const {appLock:_0x5ce591}=ensureSqlLockScope(_0x1b57ed,_0x879eb['appCode'],_0x2671a2[_0x33d4b5(0x11c)],_0x33d4b5(0x123)),_0x4f297b=_0x879eb[_0x33d4b5(0x128)](_0x33d4b5(0x11e)),_0x5b04d6=_0x5ce591['sqls'][_0x4f297b];if(!_0x5b04d6)throw CliErrors[_0x33d4b5(0x13d)](_0x33d4b5(0x124)+_0x4f297b+'\x22.');return{'method':_0x33d4b5(0x135),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x4f297b,'id':_0x5b04d6[_0x33d4b5(0x12f)],'localPath':resolveLocalSqlFilePath(_0x2671a2,_0x4f297b,_0x5b04d6)},'description':_0x33d4b5(0x141)+_0x4f297b+_0x33d4b5(0x134)+_0x2671a2[_0x33d4b5(0x133)]};},async 'execute'(_0x4956b5){const _0x52bded=a123_0x565c43,_0xdbe309=loadSqlProjectConfig(_0x4956b5[_0x52bded(0x13b)]),_0x284b83=await readSqlLockFile(_0xdbe309[_0x52bded(0x13f)]);if(!_0x284b83)throw CliErrors[_0x52bded(0x13d)]('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x44a4cd,appLock:_0xe9d52a}=ensureSqlLockScope(_0x284b83,_0x4956b5[_0x52bded(0x13b)],_0xdbe309[_0x52bded(0x11c)],_0x52bded(0x123)),_0x52f02f=_0x4956b5[_0x52bded(0x128)]('sqlcode'),_0xdb92fd=_0xe9d52a[_0x52bded(0x131)][_0x52f02f];if(!_0xdb92fd)throw CliErrors[_0x52bded(0x13d)](_0x52bded(0x124)+_0x52f02f+'\x22.');await deleteSqlQuery({'id':_0xdb92fd[_0x52bded(0x12f)],'sqlCode':_0x52f02f}),_0xe9d52a['sqls']=Object[_0x52bded(0x12b)](Object[_0x52bded(0x13a)](_0xe9d52a['sqls'])[_0x52bded(0x11d)](([_0x1a3153])=>_0x1a3153!==_0x52f02f)),_0xe9d52a[_0x52bded(0x13c)]=new Date()[_0x52bded(0x120)](),await writeSqlLockFile(_0xdbe309[_0x52bded(0x13f)],_0x44a4cd);const _0xedad5b=resolveLocalSqlFilePath(_0xdbe309,_0x52f02f,_0xdb92fd);let _0x320551;await fileExists(_0xedad5b)&&(_0x320551=await moveToTrash(_0xdbe309[_0x52bded(0x12a)],_0xdbe309[_0x52bded(0x133)],_0xedad5b),await cleanupEmptyDirectories(dirname(_0xedad5b),_0xdbe309[_0x52bded(0x129)]));const _0x3c9baf={'deleted':_0x52f02f,'remoteId':_0xdb92fd[_0x52bded(0x12f)]};if(_0x320551)_0x3c9baf[_0x52bded(0x13e)]=_0x320551;return{'ok':!![],'data':_0x3c9baf,'message':_0x52bded(0x143)+_0x52f02f+(_0x320551?_0x52bded(0x121):'')};}};async function moveToTrash(_0x133270,_0x455e32,_0x36aa3c){const _0x252726=a123_0x565c43,_0x571dd2=new Date()[_0x252726(0x120)]()[_0x252726(0x137)](/[:.]/g,'-'),_0x917ffd=relative(_0x133270,_0x36aa3c),_0x9915c9=join(_0x455e32,_0x571dd2,_0x917ffd);return await mkdir(dirname(_0x9915c9),{'recursive':!![]}),await rename(_0x36aa3c,_0x9915c9),_0x9915c9;}async function cleanupEmptyDirectories(_0x5d90f7,_0x48c189){const _0xb10359=a123_0x565c43;let _0x31e5da=resolve(_0x5d90f7);const _0x31b83d=resolve(_0x48c189);while(_0x31e5da['startsWith'](''+_0x31b83d+sep)||_0x31e5da===_0x31b83d){if(_0x31e5da===_0x31b83d)return;try{const _0x3df5bb=await readdir(_0x31e5da);if(_0x3df5bb[_0xb10359(0x127)]>0x0)return;await rmdir(_0x31e5da);}catch{return;}_0x31e5da=dirname(_0x31e5da);}}
1
+ const a123_0x2318db=a123_0x4feb;(function(_0xce66e2,_0x38e63c){const _0x1cbec5=a123_0x4feb,_0x4629fc=_0xce66e2();while(!![]){try{const _0x259bb0=parseInt(_0x1cbec5(0x1b3))/0x1*(-parseInt(_0x1cbec5(0x1ac))/0x2)+parseInt(_0x1cbec5(0x1b6))/0x3*(-parseInt(_0x1cbec5(0x1b4))/0x4)+parseInt(_0x1cbec5(0x19c))/0x5*(-parseInt(_0x1cbec5(0x1b7))/0x6)+parseInt(_0x1cbec5(0x19f))/0x7*(-parseInt(_0x1cbec5(0x1a6))/0x8)+-parseInt(_0x1cbec5(0x19e))/0x9*(-parseInt(_0x1cbec5(0x1a5))/0xa)+parseInt(_0x1cbec5(0x1ae))/0xb*(parseInt(_0x1cbec5(0x1a1))/0xc)+parseInt(_0x1cbec5(0x1a0))/0xd;if(_0x259bb0===_0x38e63c)break;else _0x4629fc['push'](_0x4629fc['shift']());}catch(_0x1694fe){_0x4629fc['push'](_0x4629fc['shift']());}}}(a123_0x5d93,0xb4436));function a123_0x4feb(_0xf5f7ee,_0x2c8d2c){_0xf5f7ee=_0xf5f7ee-0x196;const _0x5d9337=a123_0x5d93();let _0x4feb16=_0x5d9337[_0xf5f7ee];return _0x4feb16;}import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';function a123_0x5d93(){const _0x156cc7=['entries','trashDir','filter','startsWith','Deleted\x20','104YFNoas','trashedTo','572209qDasMp','lockFilePath','toISOString','sql','delete','11514gGAeTF','756388ShDFyp','remoteId','12MmeXMj','7335180VpQulp','sqlcode','\x20(local\x20file\x20moved\x20to\x20trash)','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','projectRoot','appCode','high-risk-write','sqlRoot','fromEntries','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','sqls','POST','validation','length','lastSync','5zJjHUD','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','6992748vmUQop','325360rGrIeY','18518201gWjnjo','300EwRXph','/smartapi/custom/deleteUserCustomSql','replace','Would\x20delete\x20SQL\x20','10RCYriG','32naoWGY'];a123_0x5d93=function(){return _0x156cc7;};return a123_0x5d93();}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_0x2318db(0x1b1),'command':a123_0x2318db(0x1b2),'description':a123_0x2318db(0x1ba),'risk':a123_0x2318db(0x1bd),'flags':[SQLCODE_FLAG],async 'validate'(_0x4e3ec1){const _0x2fe14f=a123_0x2318db,_0x335993=loadSqlProjectConfig(_0x4e3ec1[_0x2fe14f(0x1bc)]),_0x5a91a4=await readSqlLockFile(_0x335993[_0x2fe14f(0x1af)]);if(!_0x5a91a4)throw CliErrors['validation'](_0x2fe14f(0x19d));},async 'dryRun'(_0x222db4){const _0x104602=a123_0x2318db,_0x432e51=loadSqlProjectConfig(_0x222db4[_0x104602(0x1bc)]),_0x1fc95f=await readSqlLockFile(_0x432e51['lockFilePath']);if(!_0x1fc95f)throw CliErrors[_0x104602(0x199)](_0x104602(0x19d));const {appLock:_0x68d0eb}=ensureSqlLockScope(_0x1fc95f,_0x222db4[_0x104602(0x1bc)],_0x432e51[_0x104602(0x1be)],_0x104602(0x1b2)),_0x3ae92b=_0x222db4['str'](_0x104602(0x1b8)),_0x154fd0=_0x68d0eb[_0x104602(0x197)][_0x3ae92b];if(!_0x154fd0)throw CliErrors[_0x104602(0x199)](_0x104602(0x196)+_0x3ae92b+'\x22.');return{'method':_0x104602(0x198),'url':_0x104602(0x1a2),'body':{'sqlCode':_0x3ae92b,'id':_0x154fd0[_0x104602(0x1b5)],'localPath':resolveLocalSqlFilePath(_0x432e51,_0x3ae92b,_0x154fd0)},'description':_0x104602(0x1a4)+_0x3ae92b+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0x432e51[_0x104602(0x1a8)]};},async 'execute'(_0x43ebd9){const _0x4ac6b7=a123_0x2318db,_0x31b375=loadSqlProjectConfig(_0x43ebd9[_0x4ac6b7(0x1bc)]),_0x293d84=await readSqlLockFile(_0x31b375[_0x4ac6b7(0x1af)]);if(!_0x293d84)throw CliErrors[_0x4ac6b7(0x199)]('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x44781b,appLock:_0x4835c5}=ensureSqlLockScope(_0x293d84,_0x43ebd9[_0x4ac6b7(0x1bc)],_0x31b375[_0x4ac6b7(0x1be)],'delete'),_0x2e7676=_0x43ebd9['str'](_0x4ac6b7(0x1b8)),_0xf1eea1=_0x4835c5[_0x4ac6b7(0x197)][_0x2e7676];if(!_0xf1eea1)throw CliErrors[_0x4ac6b7(0x199)](_0x4ac6b7(0x196)+_0x2e7676+'\x22.');await deleteSqlQuery({'id':_0xf1eea1['remoteId'],'sqlCode':_0x2e7676}),_0x4835c5[_0x4ac6b7(0x197)]=Object[_0x4ac6b7(0x1bf)](Object[_0x4ac6b7(0x1a7)](_0x4835c5['sqls'])[_0x4ac6b7(0x1a9)](([_0x138b3c])=>_0x138b3c!==_0x2e7676)),_0x4835c5[_0x4ac6b7(0x19b)]=new Date()[_0x4ac6b7(0x1b0)](),await writeSqlLockFile(_0x31b375['lockFilePath'],_0x44781b);const _0x143c3d=resolveLocalSqlFilePath(_0x31b375,_0x2e7676,_0xf1eea1);let _0x1d4c84;await fileExists(_0x143c3d)&&(_0x1d4c84=await moveToTrash(_0x31b375[_0x4ac6b7(0x1bb)],_0x31b375[_0x4ac6b7(0x1a8)],_0x143c3d),await cleanupEmptyDirectories(dirname(_0x143c3d),_0x31b375['sqlRootDir']));const _0x1a9d8e={'deleted':_0x2e7676,'remoteId':_0xf1eea1[_0x4ac6b7(0x1b5)]};if(_0x1d4c84)_0x1a9d8e[_0x4ac6b7(0x1ad)]=_0x1d4c84;return{'ok':!![],'data':_0x1a9d8e,'message':_0x4ac6b7(0x1ab)+_0x2e7676+(_0x1d4c84?_0x4ac6b7(0x1b9):'')};}};async function moveToTrash(_0x4da0a5,_0x3e3117,_0x1197ef){const _0x510614=a123_0x2318db,_0x5e5a91=new Date()[_0x510614(0x1b0)]()[_0x510614(0x1a3)](/[:.]/g,'-'),_0x1fa730=relative(_0x4da0a5,_0x1197ef),_0x3f5c8d=join(_0x3e3117,_0x5e5a91,_0x1fa730);return await mkdir(dirname(_0x3f5c8d),{'recursive':!![]}),await rename(_0x1197ef,_0x3f5c8d),_0x3f5c8d;}async function cleanupEmptyDirectories(_0x32e755,_0x28b889){const _0x4fb0b=a123_0x2318db;let _0x2ea04a=resolve(_0x32e755);const _0x6f4d7b=resolve(_0x28b889);while(_0x2ea04a[_0x4fb0b(0x1aa)](''+_0x6f4d7b+sep)||_0x2ea04a===_0x6f4d7b){if(_0x2ea04a===_0x6f4d7b)return;try{const _0x2448c1=await readdir(_0x2ea04a);if(_0x2448c1[_0x4fb0b(0x19a)]>0x0)return;await rmdir(_0x2ea04a);}catch{return;}_0x2ea04a=dirname(_0x2ea04a);}}
@@ -1 +1 @@
1
- function a124_0x1802(_0x41dc28,_0x4cebc4){_0x41dc28=_0x41dc28-0x132;const _0x2fb029=a124_0x2fb0();let _0x18024f=_0x2fb029[_0x41dc28];return _0x18024f;}const a124_0x29f40b=a124_0x1802;(function(_0x28fc3c,_0x524eaf){const _0x5bf986=a124_0x1802,_0x203311=_0x28fc3c();while(!![]){try{const _0x29145c=parseInt(_0x5bf986(0x13d))/0x1*(parseInt(_0x5bf986(0x13c))/0x2)+-parseInt(_0x5bf986(0x139))/0x3+parseInt(_0x5bf986(0x13a))/0x4*(-parseInt(_0x5bf986(0x143))/0x5)+parseInt(_0x5bf986(0x13e))/0x6*(parseInt(_0x5bf986(0x13b))/0x7)+parseInt(_0x5bf986(0x135))/0x8+parseInt(_0x5bf986(0x138))/0x9*(-parseInt(_0x5bf986(0x149))/0xa)+parseInt(_0x5bf986(0x132))/0xb*(-parseInt(_0x5bf986(0x142))/0xc);if(_0x29145c===_0x524eaf)break;else _0x203311['push'](_0x203311['shift']());}catch(_0x3b2f9e){_0x203311['push'](_0x203311['shift']());}}}(a124_0x2fb0,0x25999));import{getSqlQueryInfo}from'../../core/api-client.js';function a124_0x2fb0(){const _0x43a28b=['verbose','202380AlviHa','5rPVtyF','sqlcode','sql','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','boolean','sqlName','20vlPeOg','33jxPfPO','dbId','sqlCode','1724888qZbYMk','description','Return\x20full\x20raw\x20SQL\x20query\x20object','274824fJSsIQ','3366dSzUmY','670444Mpqlto','6405xxrdPy','2RBYKGd','161153oyLjYA','378wFTgiT','appCode','detail'];a124_0x2fb0=function(){return _0x43a28b;};return a124_0x2fb0();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a124_0x29f40b(0x145),'command':a124_0x29f40b(0x140),'description':a124_0x29f40b(0x146),'risk':'read','flags':[SQLCODE_FLAG,{'name':a124_0x29f40b(0x141),'type':a124_0x29f40b(0x147),'description':a124_0x29f40b(0x137)}],async 'execute'(_0x3a3d80){const _0x5c351b=a124_0x29f40b,_0x3adc6e=await getSqlQueryInfo(_0x3a3d80[_0x5c351b(0x13f)],_0x3a3d80['str'](_0x5c351b(0x144))),_0x486875=_0x3a3d80['bool']('verbose');if(_0x486875)return{'ok':!![],'data':_0x3adc6e};const _0x3e9da8=_0x3adc6e[_0x5c351b(0x133)]?await getDbName(_0x3a3d80[_0x5c351b(0x13f)],_0x3adc6e[_0x5c351b(0x133)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x3adc6e[_0x5c351b(0x134)],'sqlName':_0x3adc6e[_0x5c351b(0x148)],'db':_0x3e9da8?_0x3e9da8+'\x20('+_0x3adc6e['dbId']+')':_0x3adc6e[_0x5c351b(0x133)]??'','description':_0x3adc6e[_0x5c351b(0x136)]??'','sqlContent':_0x3adc6e['sqlContent']??''}};}};
1
+ const a124_0x186b22=a124_0x243e;(function(_0x23b5d8,_0x18b58c){const _0x36e97b=a124_0x243e,_0x878a3b=_0x23b5d8();while(!![]){try{const _0x1b8adf=parseInt(_0x36e97b(0xb4))/0x1+parseInt(_0x36e97b(0x9e))/0x2*(-parseInt(_0x36e97b(0xa3))/0x3)+parseInt(_0x36e97b(0xad))/0x4*(-parseInt(_0x36e97b(0xa0))/0x5)+-parseInt(_0x36e97b(0xab))/0x6*(-parseInt(_0x36e97b(0xae))/0x7)+-parseInt(_0x36e97b(0x9c))/0x8+-parseInt(_0x36e97b(0x9d))/0x9+parseInt(_0x36e97b(0xb1))/0xa;if(_0x1b8adf===_0x18b58c)break;else _0x878a3b['push'](_0x878a3b['shift']());}catch(_0x5b2fad){_0x878a3b['push'](_0x878a3b['shift']());}}}(a124_0x5e1c,0x65463));import{getSqlQueryInfo}from'../../core/api-client.js';function a124_0x243e(_0x1d593f,_0x3ca310){_0x1d593f=_0x1d593f-0x9c;const _0x5e1c81=a124_0x5e1c();let _0x243ec2=_0x5e1c81[_0x1d593f];return _0x243ec2;}import{getDbName}from'../../core/db-resolver.js';function a124_0x5e1c(){const _0x15986e=['4gHgovV','1688351hMrMeo','sqlcode','dbId','24032200GTNnwm','sqlContent','appCode','10889Atihly','4967040HVNAsP','7039602faJvqu','94XTZqtE','str','3477895OnWQYc','read','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','9054xljtFg','sqlName','description','boolean','verbose','bool','sql','detail','6iMNOaM','Return\x20full\x20raw\x20SQL\x20query\x20object'];a124_0x5e1c=function(){return _0x15986e;};return a124_0x5e1c();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a124_0x186b22(0xa9),'command':a124_0x186b22(0xaa),'description':a124_0x186b22(0xa2),'risk':a124_0x186b22(0xa1),'flags':[SQLCODE_FLAG,{'name':a124_0x186b22(0xa7),'type':a124_0x186b22(0xa6),'description':a124_0x186b22(0xac)}],async 'execute'(_0x1776f7){const _0x39795d=a124_0x186b22,_0x32ed1d=await getSqlQueryInfo(_0x1776f7[_0x39795d(0xb3)],_0x1776f7[_0x39795d(0x9f)](_0x39795d(0xaf))),_0x129e49=_0x1776f7[_0x39795d(0xa8)](_0x39795d(0xa7));if(_0x129e49)return{'ok':!![],'data':_0x32ed1d};const _0x331520=_0x32ed1d[_0x39795d(0xb0)]?await getDbName(_0x1776f7['appCode'],_0x32ed1d[_0x39795d(0xb0)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x32ed1d['sqlCode'],'sqlName':_0x32ed1d[_0x39795d(0xa4)],'db':_0x331520?_0x331520+'\x20('+_0x32ed1d[_0x39795d(0xb0)]+')':_0x32ed1d[_0x39795d(0xb0)]??'','description':_0x32ed1d[_0x39795d(0xa5)]??'','sqlContent':_0x32ed1d[_0x39795d(0xb2)]??''}};}};
@@ -1 +1 @@
1
- const a125_0x3bb9e4=a125_0x264c;function a125_0x264c(_0x3f21ee,_0x387875){_0x3f21ee=_0x3f21ee-0x86;const _0x422ee7=a125_0x422e();let _0x264cfa=_0x422ee7[_0x3f21ee];return _0x264cfa;}(function(_0x5b2ba7,_0x174856){const _0x1a1fb5=a125_0x264c,_0x45c9dc=_0x5b2ba7();while(!![]){try{const _0x4547f9=parseInt(_0x1a1fb5(0x94))/0x1*(-parseInt(_0x1a1fb5(0x8c))/0x2)+parseInt(_0x1a1fb5(0x87))/0x3*(parseInt(_0x1a1fb5(0x99))/0x4)+parseInt(_0x1a1fb5(0x90))/0x5+-parseInt(_0x1a1fb5(0x9c))/0x6+-parseInt(_0x1a1fb5(0x86))/0x7*(-parseInt(_0x1a1fb5(0x93))/0x8)+-parseInt(_0x1a1fb5(0x8b))/0x9+parseInt(_0x1a1fb5(0x92))/0xa*(parseInt(_0x1a1fb5(0x9b))/0xb);if(_0x4547f9===_0x174856)break;else _0x45c9dc['push'](_0x45c9dc['shift']());}catch(_0x45a995){_0x45c9dc['push'](_0x45c9dc['shift']());}}}(a125_0x422e,0x20d24));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a125_0x3bb9e4(0x8d),'command':a125_0x3bb9e4(0x96),'description':a125_0x3bb9e4(0x9a),'risk':'read','flags':[SQLCODE_FLAG,{'name':'params','type':'string','description':a125_0x3bb9e4(0x98)}],async 'execute'(_0x306f51){const _0x4ef9b5=a125_0x3bb9e4,_0x3229d4=parseJsonParams(_0x306f51['str'](_0x4ef9b5(0x9e))),_0x102071=Date[_0x4ef9b5(0x91)](),_0x5045eb=await executeSql(_0x306f51['appCode'],_0x306f51[_0x4ef9b5(0x8f)](_0x4ef9b5(0x88)),_0x3229d4),_0x326228=Date[_0x4ef9b5(0x91)]()-_0x102071,_0x330d08=_0x5045eb?.['execResult']??_0x5045eb,_0x4012da=_0x5045eb?.[_0x4ef9b5(0x8e)]??!![];if(!_0x4012da)return{'ok':![],'data':{'error':_0x5045eb?.[_0x4ef9b5(0x97)]||'SQL\x20execution\x20failed','elapsed':_0x326228},'message':_0x4ef9b5(0x95)};const _0x1f783b=Array[_0x4ef9b5(0x8a)](_0x330d08)?_0x330d08:[];return{'ok':!![],'data':{'rows':_0x1f783b,'rowCount':_0x1f783b[_0x4ef9b5(0x89)],'elapsed':_0x326228},'message':_0x4ef9b5(0x9d)+_0x1f783b[_0x4ef9b5(0x89)]+'\x20row(s)\x20in\x20'+_0x326228+'ms'};}};function a125_0x422e(){const _0x51a40d=['execError','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','12HbWmzA','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','599995UjMswN','377058QicncW','Returned\x20','params','35BoEMbG','101202bawvwS','sqlcode','length','isArray','1724625hXbOFZ','10kQWJfC','sql','execSuccess','str','818735AjNuNT','now','20UQQwZk','282544SUdlih','32345bsznhz','SQL\x20execution\x20failed','exec'];a125_0x422e=function(){return _0x51a40d;};return a125_0x422e();}
1
+ const a125_0x367413=a125_0x2fd7;(function(_0x1d5ca5,_0x5c44b5){const _0x400f79=a125_0x2fd7,_0x3b3d26=_0x1d5ca5();while(!![]){try{const _0x2cf4a6=parseInt(_0x400f79(0xd4))/0x1*(parseInt(_0x400f79(0xd2))/0x2)+-parseInt(_0x400f79(0xe7))/0x3+-parseInt(_0x400f79(0xd3))/0x4*(-parseInt(_0x400f79(0xdb))/0x5)+parseInt(_0x400f79(0xe2))/0x6*(-parseInt(_0x400f79(0xdd))/0x7)+parseInt(_0x400f79(0xd8))/0x8*(parseInt(_0x400f79(0xd7))/0x9)+parseInt(_0x400f79(0xd6))/0xa*(-parseInt(_0x400f79(0xe1))/0xb)+-parseInt(_0x400f79(0xde))/0xc*(-parseInt(_0x400f79(0xea))/0xd);if(_0x2cf4a6===_0x5c44b5)break;else _0x3b3d26['push'](_0x3b3d26['shift']());}catch(_0x12ab5f){_0x3b3d26['push'](_0x3b3d26['shift']());}}}(a125_0x3819,0x74af1));function a125_0x2fd7(_0x3b04fe,_0x51ccdb){_0x3b04fe=_0x3b04fe-0xd2;const _0x3819f4=a125_0x3819();let _0x2fd727=_0x3819f4[_0x3b04fe];return _0x2fd727;}function a125_0x3819(){const _0x227f78=['831667DyDsXv','str','206740qbSrmx','477dheLua','94216RtXSQI','SQL\x20execution\x20failed','execResult','366470XrYCVB','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','7UejvtG','312quyFCd','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','now','319IwZIYf','3299280lYztEy','appCode','sql','isArray','string','2301645woXyDy','length','execError','396071NRLlQB','\x20row(s)\x20in\x20','execSuccess','params','Returned\x20','2XDCPha','8LVugBk'];a125_0x3819=function(){return _0x227f78;};return a125_0x3819();}import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a125_0x367413(0xe4),'command':'exec','description':a125_0x367413(0xdc),'risk':'read','flags':[SQLCODE_FLAG,{'name':a125_0x367413(0xed),'type':a125_0x367413(0xe6),'description':a125_0x367413(0xdf)}],async 'execute'(_0x5c499f){const _0x5a7940=a125_0x367413,_0x38047f=parseJsonParams(_0x5c499f['str']('params')),_0xd2a6a5=Date[_0x5a7940(0xe0)](),_0x1c9ed7=await executeSql(_0x5c499f[_0x5a7940(0xe3)],_0x5c499f[_0x5a7940(0xd5)]('sqlcode'),_0x38047f),_0xdfd745=Date[_0x5a7940(0xe0)]()-_0xd2a6a5,_0xa5045d=_0x1c9ed7?.[_0x5a7940(0xda)]??_0x1c9ed7,_0x406d16=_0x1c9ed7?.[_0x5a7940(0xec)]??!![];if(!_0x406d16)return{'ok':![],'data':{'error':_0x1c9ed7?.[_0x5a7940(0xe9)]||_0x5a7940(0xd9),'elapsed':_0xdfd745},'message':_0x5a7940(0xd9)};const _0x43ead8=Array[_0x5a7940(0xe5)](_0xa5045d)?_0xa5045d:[];return{'ok':!![],'data':{'rows':_0x43ead8,'rowCount':_0x43ead8[_0x5a7940(0xe8)],'elapsed':_0xdfd745},'message':_0x5a7940(0xee)+_0x43ead8[_0x5a7940(0xe8)]+_0x5a7940(0xeb)+_0xdfd745+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x5f5c3d,_0xd85fb6){const _0x2f713b=a126_0x2ed3,_0xba498c=_0x5f5c3d();while(!![]){try{const _0x264bc8=-parseInt(_0x2f713b(0xb7))/0x1+parseInt(_0x2f713b(0xbb))/0x2*(-parseInt(_0x2f713b(0xb5))/0x3)+parseInt(_0x2f713b(0xbf))/0x4*(parseInt(_0x2f713b(0xbc))/0x5)+parseInt(_0x2f713b(0xbd))/0x6+parseInt(_0x2f713b(0xb6))/0x7*(parseInt(_0x2f713b(0xbe))/0x8)+parseInt(_0x2f713b(0xb8))/0x9*(parseInt(_0x2f713b(0xb9))/0xa)+-parseInt(_0x2f713b(0xba))/0xb;if(_0x264bc8===_0xd85fb6)break;else _0xba498c['push'](_0xba498c['shift']());}catch(_0x1af4eb){_0xba498c['push'](_0xba498c['shift']());}}}(a126_0x1abd,0x5c3ac));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';function a126_0x2ed3(_0x2f4f38,_0x3f0e75){_0x2f4f38=_0x2f4f38-0xb5;const _0x1abdcf=a126_0x1abd();let _0x2ed3be=_0x1abdcf[_0x2f4f38];return _0x2ed3be;}import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';function a126_0x1abd(){const _0x4a6695=['120STiekZ','82660ZQgxPN','390009wRrfbe','288197atcGJU','649393tDEFFh','9SypeeF','5188310xblhdK','6605555wFgCbP','4ARkuWE','5tgCLzk','4383690JPDuME'];a126_0x1abd=function(){return _0x4a6695;};return a126_0x1abd();}import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x1efce2,_0xef9c84){const _0x10961f=a126_0xe1c5,_0x3b1334=_0x1efce2();while(!![]){try{const _0x425f80=parseInt(_0x10961f(0x133))/0x1*(parseInt(_0x10961f(0x135))/0x2)+-parseInt(_0x10961f(0x138))/0x3+-parseInt(_0x10961f(0x134))/0x4*(parseInt(_0x10961f(0x136))/0x5)+-parseInt(_0x10961f(0x131))/0x6+-parseInt(_0x10961f(0x132))/0x7*(-parseInt(_0x10961f(0x137))/0x8)+parseInt(_0x10961f(0x139))/0x9+-parseInt(_0x10961f(0x13b))/0xa*(-parseInt(_0x10961f(0x13a))/0xb);if(_0x425f80===_0xef9c84)break;else _0x3b1334['push'](_0x3b1334['shift']());}catch(_0x4e5897){_0x3b1334['push'](_0x3b1334['shift']());}}}(a126_0x1fe8,0xabe07));function a126_0xe1c5(_0x404774,_0x18b57d){_0x404774=_0x404774-0x131;const _0x1fe8ef=a126_0x1fe8();let _0xe1c5ca=_0x1fe8ef[_0x404774];return _0xe1c5ca;}import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';function a126_0x1fe8(){const _0x31ea46=['33184ViToXs','3288618gWFrUH','6029289IgVJvc','13871803vUcLXF','10EjeUko','7354422JTvPMu','1911jxTSky','8dFVYIv','48fuoYwN','131434YMXrvC','234660xoOXOV'];a126_0x1fe8=function(){return _0x31ea46;};return a126_0x1fe8();}export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- const a127_0x374dc2=a127_0x1b36;function a127_0x3d6b(){const _0x275845=['dbId','string','tableData','all','56BTWLYC','\x20SQL\x20queries\x20(total:\x20','name','pagesize','No\x20custom\x20SQL\x20queries\x20found.','678424rciTxv','description','41198SDJkok','346908FykPhj','boolean','sqlcode','31nZawwc','4977464CtnFFu','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','3686220xwJEyG','verbose','read','paging','1198176MqtpDZ','page','list','sqlName','sqlCode','sql','List\x20custom\x20SQL\x20queries','appCode','str','976495pvGXOF','9THMRBJ','length','bool','number','map','Page\x20number'];a127_0x3d6b=function(){return _0x275845;};return a127_0x3d6b();}(function(_0x541386,_0x1cc094){const _0x2f71f5=a127_0x1b36,_0x18f339=_0x541386();while(!![]){try{const _0x5a5487=-parseInt(_0x2f71f5(0x1cd))/0x1*(parseInt(_0x2f71f5(0x1c9))/0x2)+parseInt(_0x2f71f5(0x1d4))/0x3+parseInt(_0x2f71f5(0x1c7))/0x4+parseInt(_0x2f71f5(0x1dd))/0x5+-parseInt(_0x2f71f5(0x1ca))/0x6*(-parseInt(_0x2f71f5(0x1e8))/0x7)+-parseInt(_0x2f71f5(0x1ce))/0x8*(parseInt(_0x2f71f5(0x1de))/0x9)+parseInt(_0x2f71f5(0x1d0))/0xa;if(_0x5a5487===_0x1cc094)break;else _0x18f339['push'](_0x18f339['shift']());}catch(_0x2f8687){_0x18f339['push'](_0x18f339['shift']());}}}(a127_0x3d6b,0x51b77));function a127_0x1b36(_0x501511,_0x57d386){_0x501511=_0x501511-0x1c5;const _0x3d6b9b=a127_0x3d6b();let _0x1b36a0=_0x3d6b9b[_0x501511];return _0x1b36a0;}import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a127_0x374dc2(0x1d9),'command':a127_0x374dc2(0x1d6),'description':a127_0x374dc2(0x1da),'risk':a127_0x374dc2(0x1d2),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a127_0x374dc2(0x1e5),'description':'Filter\x20by\x20SQL\x20name'},{'name':a127_0x374dc2(0x1d5),'type':a127_0x374dc2(0x1e1),'description':a127_0x374dc2(0x1e3),'default':0x1},{'name':a127_0x374dc2(0x1c5),'type':a127_0x374dc2(0x1e1),'description':'Page\x20size'},{'name':a127_0x374dc2(0x1d1),'type':a127_0x374dc2(0x1cb),'description':a127_0x374dc2(0x1cf)}],async 'execute'(_0x586ab8){const _0x227d7d=a127_0x374dc2,_0x1bb2b3=await listSqlQueries(_0x586ab8[_0x227d7d(0x1db)],{'sqlCode':_0x586ab8[_0x227d7d(0x1dc)](_0x227d7d(0x1cc))||undefined,'sqlName':_0x586ab8[_0x227d7d(0x1dc)](_0x227d7d(0x1ea))||undefined,'currentPage':_0x586ab8['num']('page'),'pageSize':_0x586ab8['num'](_0x227d7d(0x1c5),0x32)}),_0x476703=_0x586ab8[_0x227d7d(0x1e0)](_0x227d7d(0x1d1)),_0x239fb1=_0x1bb2b3[_0x227d7d(0x1e6)]??[],_0x743927=_0x1bb2b3[_0x227d7d(0x1d3)]?.['totalCount']??_0x239fb1[_0x227d7d(0x1df)];let _0x40a5bc;return _0x476703?_0x40a5bc=_0x239fb1:_0x40a5bc=await Promise[_0x227d7d(0x1e7)](_0x239fb1[_0x227d7d(0x1e2)](async _0x4574e3=>{const _0x4e9c20=_0x227d7d;let _0x55b926;try{_0x55b926=_0x4574e3[_0x4e9c20(0x1e4)]?await getDbName(_0x586ab8[_0x4e9c20(0x1db)],_0x4574e3[_0x4e9c20(0x1e4)]):undefined;}catch{}return{'sqlCode':_0x4574e3[_0x4e9c20(0x1d8)],'sqlName':_0x4574e3[_0x4e9c20(0x1d7)],'description':_0x4574e3[_0x4e9c20(0x1c8)]??'','db':_0x55b926?_0x55b926+'\x20('+_0x4574e3[_0x4e9c20(0x1e4)]+')':_0x4574e3[_0x4e9c20(0x1e4)]??''};})),{'ok':!![],'data':_0x40a5bc,'message':_0x239fb1[_0x227d7d(0x1df)]===0x0?_0x227d7d(0x1c6):'Found\x20'+_0x239fb1['length']+_0x227d7d(0x1e9)+_0x743927+').'};}};
1
+ function a127_0x54d8(_0x5063fe,_0x359048){_0x5063fe=_0x5063fe-0x125;const _0x195e7e=a127_0x195e();let _0x54d86e=_0x195e7e[_0x5063fe];return _0x54d86e;}function a127_0x195e(){const _0x19850a=['list','pagesize','read','str','Page\x20size','length','verbose','24xsFhrC','8011386jntXMb','Page\x20number','335043GhgUio','appCode','paging','2QBmCSh','List\x20custom\x20SQL\x20queries','188223yJKrkX','num','Found\x20','\x20SQL\x20queries\x20(total:\x20','all','sqlcode','string','map','bool','description','tableData','sqlCode','16XeXaSC','No\x20custom\x20SQL\x20queries\x20found.','531545ZDDwiG','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','number','1356971OheVWd','1110643gXBUbH','40tPQgBl','name','3274698IRtcde','dbId','boolean','page','Filter\x20by\x20SQL\x20name'];a127_0x195e=function(){return _0x19850a;};return a127_0x195e();}const a127_0x3d867e=a127_0x54d8;(function(_0x22dfe7,_0x4e050f){const _0x5efbd4=a127_0x54d8,_0x4f0fcb=_0x22dfe7();while(!![]){try{const _0x3d6d8b=-parseInt(_0x5efbd4(0x12c))/0x1*(-parseInt(_0x5efbd4(0x141))/0x2)+parseInt(_0x5efbd4(0x13e))/0x3*(parseInt(_0x5efbd4(0x13b))/0x4)+parseInt(_0x5efbd4(0x128))/0x5+-parseInt(_0x5efbd4(0x12f))/0x6+-parseInt(_0x5efbd4(0x143))/0x7*(-parseInt(_0x5efbd4(0x126))/0x8)+-parseInt(_0x5efbd4(0x13c))/0x9+parseInt(_0x5efbd4(0x12d))/0xa*(parseInt(_0x5efbd4(0x12b))/0xb);if(_0x3d6d8b===_0x4e050f)break;else _0x4f0fcb['push'](_0x4f0fcb['shift']());}catch(_0x1a1d34){_0x4f0fcb['push'](_0x4f0fcb['shift']());}}}(a127_0x195e,0xf3bb3));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a127_0x3d867e(0x134),'description':a127_0x3d867e(0x142),'risk':a127_0x3d867e(0x136),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a127_0x3d867e(0x12e),'type':a127_0x3d867e(0x149),'description':a127_0x3d867e(0x133)},{'name':a127_0x3d867e(0x132),'type':'number','description':a127_0x3d867e(0x13d),'default':0x1},{'name':a127_0x3d867e(0x135),'type':a127_0x3d867e(0x12a),'description':a127_0x3d867e(0x138)},{'name':'verbose','type':a127_0x3d867e(0x131),'description':a127_0x3d867e(0x129)}],async 'execute'(_0x4f4c7d){const _0x407f98=a127_0x3d867e,_0x47bfc3=await listSqlQueries(_0x4f4c7d[_0x407f98(0x13f)],{'sqlCode':_0x4f4c7d[_0x407f98(0x137)](_0x407f98(0x148))||undefined,'sqlName':_0x4f4c7d['str'](_0x407f98(0x12e))||undefined,'currentPage':_0x4f4c7d[_0x407f98(0x144)](_0x407f98(0x132)),'pageSize':_0x4f4c7d['num'](_0x407f98(0x135),0x32)}),_0x40a4d7=_0x4f4c7d[_0x407f98(0x14b)](_0x407f98(0x13a)),_0x48a93a=_0x47bfc3[_0x407f98(0x14d)]??[],_0x2f0f49=_0x47bfc3[_0x407f98(0x140)]?.['totalCount']??_0x48a93a[_0x407f98(0x139)];let _0x3e8d76;return _0x40a4d7?_0x3e8d76=_0x48a93a:_0x3e8d76=await Promise[_0x407f98(0x147)](_0x48a93a[_0x407f98(0x14a)](async _0x38bd3c=>{const _0x3979b2=_0x407f98;let _0x2c4f4c;try{_0x2c4f4c=_0x38bd3c[_0x3979b2(0x130)]?await getDbName(_0x4f4c7d['appCode'],_0x38bd3c[_0x3979b2(0x130)]):undefined;}catch{}return{'sqlCode':_0x38bd3c[_0x3979b2(0x125)],'sqlName':_0x38bd3c['sqlName'],'description':_0x38bd3c[_0x3979b2(0x14c)]??'','db':_0x2c4f4c?_0x2c4f4c+'\x20('+_0x38bd3c[_0x3979b2(0x130)]+')':_0x38bd3c[_0x3979b2(0x130)]??''};})),{'ok':!![],'data':_0x3e8d76,'message':_0x48a93a['length']===0x0?_0x407f98(0x127):_0x407f98(0x145)+_0x48a93a[_0x407f98(0x139)]+_0x407f98(0x146)+_0x2f0f49+').'};}};
@@ -1 +1 @@
1
- const a128_0x1979bd=a128_0x5a49;(function(_0x31516e,_0x40a779){const _0x5b9f0c=a128_0x5a49,_0x1ed127=_0x31516e();while(!![]){try{const _0x4fca86=parseInt(_0x5b9f0c(0xd1))/0x1+-parseInt(_0x5b9f0c(0xce))/0x2*(parseInt(_0x5b9f0c(0xb7))/0x3)+-parseInt(_0x5b9f0c(0xb6))/0x4*(parseInt(_0x5b9f0c(0xe8))/0x5)+parseInt(_0x5b9f0c(0xc1))/0x6+-parseInt(_0x5b9f0c(0xdf))/0x7*(-parseInt(_0x5b9f0c(0xbf))/0x8)+parseInt(_0x5b9f0c(0xbd))/0x9+parseInt(_0x5b9f0c(0xc8))/0xa*(-parseInt(_0x5b9f0c(0xc2))/0xb);if(_0x4fca86===_0x40a779)break;else _0x1ed127['push'](_0x1ed127['shift']());}catch(_0x391e64){_0x1ed127['push'](_0x1ed127['shift']());}}}(a128_0xb4a8,0xe57ac));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';function a128_0xb4a8(){const _0x29aca8=['POST','local\x20differs\x20from\x20remote','Filter\x20by\x20SQL\x20display\x20name','test','replace','sqlcode','167655HwHvra','Would\x20pull\x20','toISOString','tableData','description','appCode','apps','sql','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','lockFilePath','bool','108wTNjtY','1227sdCQjX','\x20written,\x20','boolean','totalCount','message','\x20failed','12474297YCNGeh','unchanged','695016VmTnGW','dbId','3373374hTSgpm','33473SaSknu','name','mybatisXml','sqlCode','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','length','1140MaJtZt','sqlRootDir','cancelled','join','sqlContent','str','7484qRhJjN','push','conflict','297494mxMJjy','sqls','Force\x20overwrite\x20local\x20unsynced\x20changes','sqlName','filter','skipped','path','utf8','paging','pull','sqlRoot','catch','\x20SQL\x20file(s)\x20into\x20','lastSync','119ACyyOj','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','force'];a128_0xb4a8=function(){return _0x29aca8;};return a128_0xb4a8();}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(_0x2b7c0d,_0x92074e){const _0x52cb92=a128_0x5a49,_0x466fc8=[];let _0x10be0c=0x1;while(!![]){const _0x479db4=await listSqlQueries(_0x2b7c0d,{'currentPage':_0x10be0c,'pageSize':PAGE_SIZE,'sqlCode':_0x92074e[_0x52cb92(0xc5)],'sqlName':_0x92074e[_0x52cb92(0xd4)]}),_0x309426=_0x479db4[_0x52cb92(0xae)]??[];_0x466fc8[_0x52cb92(0xcf)](..._0x309426);if(_0x309426[_0x52cb92(0xc7)]===0x0)break;const _0x362c78=_0x479db4[_0x52cb92(0xd9)]?.[_0x52cb92(0xba)];if(_0x362c78!=null?_0x466fc8[_0x52cb92(0xc7)]>=_0x362c78:_0x309426[_0x52cb92(0xc7)]<PAGE_SIZE)break;_0x10be0c++;}return _0x466fc8;}async function ensureSqlContent(_0x420bbf){const _0x5965cd=a128_0x5a49;if(_0x420bbf[_0x5965cd(0xcc)]!=null&&String(_0x420bbf['sqlContent'])[_0x5965cd(0xc7)]>0x0)return _0x420bbf;return getSqlQueryDetail(_0x420bbf[_0x5965cd(0xc5)]);}export const sqlPull={'service':'sql','command':a128_0x1979bd(0xda),'description':a128_0x1979bd(0xe0),'risk':'write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a128_0x1979bd(0xc3),'type':'string','description':a128_0x1979bd(0xe4)},{'name':a128_0x1979bd(0xe1),'type':a128_0x1979bd(0xb9),'description':a128_0x1979bd(0xd3)}],async 'dryRun'(_0x3353b5){const _0x4e5bba=a128_0x1979bd,_0x5c5aaf=loadSqlProjectConfig(_0x3353b5[_0x4e5bba(0xb0)]),_0x2ecbae=await readSqlLockFile(_0x5c5aaf[_0x4e5bba(0xb4)]),{appLock:_0x44de77}=ensureSqlLockScope(_0x2ecbae??createEmptySqlLock(),_0x5c5aaf[_0x4e5bba(0xb0)],_0x5c5aaf[_0x4e5bba(0xdb)],_0x4e5bba(0xda)),_0x1ee8dd=await fetchAllSqlQueries(_0x3353b5[_0x4e5bba(0xb0)],{'sqlCode':_0x3353b5[_0x4e5bba(0xcd)](_0x4e5bba(0xe7))||undefined,'sqlName':_0x3353b5[_0x4e5bba(0xcd)](_0x4e5bba(0xc3))||undefined}),_0x29ae9a=[];for(const _0x4c13da of _0x1ee8dd){const _0xe8bd0d=await ensureSqlContent(_0x4c13da),_0x4c5a80=ensureRemoteSqlContent(_0xe8bd0d),_0x319e67=detectModeFromSql(_0xe8bd0d),_0x2e8008=_0xe8bd0d['dbId']?await getDbName(_0x3353b5[_0x4e5bba(0xb0)],Number(_0xe8bd0d[_0x4e5bba(0xc0)]))[_0x4e5bba(0xdc)](()=>undefined):undefined,_0x386e68=buildLocalSqlFileContent({'sqlCode':_0xe8bd0d[_0x4e5bba(0xc5)],'sqlName':_0xe8bd0d[_0x4e5bba(0xd4)],'dbId':_0xe8bd0d[_0x4e5bba(0xc0)]},_0x4c5a80,{'dbName':_0x2e8008,'mode':_0x319e67,'syncedAt':new Date()[_0x4e5bba(0xad)](),'description':_0xe8bd0d['description']}),_0x32e824=buildSqlLockEntry(_0xe8bd0d,_0x4c5a80,'',{'dbName':_0x2e8008}),_0x21cbec=resolveLocalSqlFilePath(_0x5c5aaf,_0xe8bd0d[_0x4e5bba(0xc5)],_0x32e824);let _0x456292='would_pull',_0x2c4fb7;if(await fileExists(_0x21cbec)){const _0x1f8e8b=await readFile(_0x21cbec,_0x4e5bba(0xd8));isEquivalentPulledSqlFile(_0x1f8e8b,_0x386e68,_0x319e67)?(_0x456292=_0x4e5bba(0xd6),_0x2c4fb7='unchanged'):(_0x456292=_0x4e5bba(0xd0),_0x2c4fb7=_0x4e5bba(0xc6));}_0x29ae9a[_0x4e5bba(0xcf)]({'sqlCode':_0xe8bd0d['sqlCode'],'sqlName':_0xe8bd0d[_0x4e5bba(0xd4)],'filePath':_0x21cbec,'status':_0x456292,'reason':_0x2c4fb7});}return{'method':_0x4e5bba(0xe2),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x3353b5['appCode'],'sqlCode':_0x3353b5['str'](_0x4e5bba(0xe7))||null,'sqlName':_0x3353b5[_0x4e5bba(0xcd)](_0x4e5bba(0xc3))||null,'files':_0x29ae9a},'description':_0x4e5bba(0xe9)+_0x29ae9a[_0x4e5bba(0xc7)]+_0x4e5bba(0xdd)+_0x5c5aaf[_0x4e5bba(0xc9)]};},async 'execute'(_0x15048a){const _0x1e2dbf=a128_0x1979bd,_0x41087c=loadSqlProjectConfig(_0x15048a[_0x1e2dbf(0xb0)]),_0x393327=await readSqlLockFile(_0x41087c['lockFilePath']),{lockData:_0x4d4c91,appLock:_0x465db1}=ensureSqlLockScope(_0x393327??createEmptySqlLock(),_0x41087c[_0x1e2dbf(0xb0)],_0x41087c['sqlRoot'],'pull'),_0x134405=_0x15048a[_0x1e2dbf(0xb5)](_0x1e2dbf(0xe1)),_0x49756c=await fetchAllSqlQueries(_0x15048a[_0x1e2dbf(0xb0)],{'sqlCode':_0x15048a['str'](_0x1e2dbf(0xe7))||undefined,'sqlName':_0x15048a['str'](_0x1e2dbf(0xc3))||undefined});if(_0x49756c['length']===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':'No\x20remote\x20SQL\x20queries\x20matched.'};const _0x397a5a=[],_0x4336a9=[];for(const _0x52b742 of _0x49756c){try{_0x397a5a[_0x1e2dbf(0xcf)](await ensureSqlContent(_0x52b742));}catch(_0x1a6b0f){_0x4336a9['push']({'sqlCode':_0x52b742['sqlCode'],'error':_0x1a6b0f instanceof Error?_0x1a6b0f[_0x1e2dbf(0xbb)]:String(_0x1a6b0f)});}}if(_0x134405&&!_0x15048a['nonInteractive']){let _0x571098=![];for(const _0x1f5e12 of _0x397a5a){const _0x22da93=detectModeFromSql(_0x1f5e12),_0x5a718c=_0x1f5e12[_0x1e2dbf(0xc0)]?await getDbName(_0x15048a[_0x1e2dbf(0xb0)],Number(_0x1f5e12[_0x1e2dbf(0xc0)]))[_0x1e2dbf(0xdc)](()=>undefined):undefined,_0xdada8a=buildLocalSqlFileContent({'sqlCode':_0x1f5e12[_0x1e2dbf(0xc5)],'sqlName':_0x1f5e12['sqlName'],'dbId':_0x1f5e12[_0x1e2dbf(0xc0)]},ensureRemoteSqlContent(_0x1f5e12),{'dbName':_0x5a718c,'mode':_0x22da93,'syncedAt':new Date()['toISOString'](),'description':_0x1f5e12[_0x1e2dbf(0xaf)]}),_0x178c6a=resolveLocalSqlFilePath(_0x41087c,_0x1f5e12['sqlCode'],buildSqlLockEntry(_0x1f5e12,ensureRemoteSqlContent(_0x1f5e12),'',{'dbName':_0x5a718c}));if(await fileExists(_0x178c6a)){const _0x3fa328=await readFile(_0x178c6a,_0x1e2dbf(0xd8));if(!isEquivalentPulledSqlFile(_0x3fa328,_0xdada8a,_0x22da93)){_0x571098=!![];break;}}}if(_0x571098){const _0x5452f5=await confirmForceOverwrite(_0x1e2dbf(0xb3));if(!_0x5452f5)throw CliErrors[_0x1e2dbf(0xca)]('Force\x20pull\x20cancelled.');}}const _0x4df837=cloneSqlLockData(_0x4d4c91),_0x36304d=_0x4df837[_0x1e2dbf(0xb1)][_0x41087c['appCode']],_0x1cf22f=[],_0x2fd8b9=[];for(const _0x5f5c3c of _0x397a5a){const _0x3766bd=_0x36304d[_0x1e2dbf(0xd2)][_0x5f5c3c[_0x1e2dbf(0xc5)]],_0x3633b7=ensureRemoteSqlContent(_0x5f5c3c),_0x598119=detectModeFromSql(_0x5f5c3c),_0x3541d2=_0x5f5c3c[_0x1e2dbf(0xc0)]?await getDbName(_0x15048a[_0x1e2dbf(0xb0)],Number(_0x5f5c3c[_0x1e2dbf(0xc0)]))[_0x1e2dbf(0xdc)](()=>undefined):undefined,_0x13f049=buildLocalSqlFileContent({'sqlCode':_0x5f5c3c[_0x1e2dbf(0xc5)],'sqlName':_0x5f5c3c[_0x1e2dbf(0xd4)],'dbId':_0x5f5c3c['dbId']},_0x3633b7,{'dbName':_0x3541d2,'mode':_0x598119,'syncedAt':new Date()['toISOString'](),'description':_0x5f5c3c[_0x1e2dbf(0xaf)]}),_0x3a1edb=buildSqlLockEntry(_0x5f5c3c,_0x3633b7,computeSqlContentHash(_0x13f049),{'dbName':_0x3541d2}),_0x27af03=_0x3a1edb['path'],_0x40ec4e=join(_0x41087c[_0x1e2dbf(0xc9)],_0x27af03);try{if(await fileExists(_0x40ec4e)){const _0x60da38=await readFile(_0x40ec4e,'utf8');if(isEquivalentPulledSqlFile(_0x60da38,_0x13f049,_0x598119)){_0x2fd8b9[_0x1e2dbf(0xcf)]({'sqlCode':_0x5f5c3c['sqlCode'],'reason':_0x1e2dbf(0xbe)}),_0x36304d[_0x1e2dbf(0xd2)][_0x5f5c3c[_0x1e2dbf(0xc5)]]={..._0x3a1edb,'hash':computeSqlContentHash(_0x60da38),'path':_0x27af03};continue;}if(!_0x134405){_0x2fd8b9[_0x1e2dbf(0xcf)]({'sqlCode':_0x5f5c3c['sqlCode'],'reason':_0x1e2dbf(0xe3)});continue;}}const _0x1e6af9=_0x3766bd?.[_0x1e2dbf(0xd7)]?join(_0x41087c[_0x1e2dbf(0xc9)],_0x3766bd[_0x1e2dbf(0xd7)]):undefined;_0x1e6af9&&_0x1e6af9!==_0x40ec4e&&await fileExists(_0x1e6af9)&&await rm(_0x1e6af9,{'force':!![]}),await ensureParentDirectory(_0x40ec4e),await writeFile(_0x40ec4e,_0x13f049,_0x1e2dbf(0xd8)),_0x36304d[_0x1e2dbf(0xd2)][_0x5f5c3c[_0x1e2dbf(0xc5)]]={..._0x3a1edb,'path':_0x27af03},_0x1cf22f[_0x1e2dbf(0xcf)]({'sqlCode':_0x5f5c3c[_0x1e2dbf(0xc5)],'filePath':_0x40ec4e});}catch(_0x29b025){_0x4336a9['push']({'sqlCode':_0x5f5c3c[_0x1e2dbf(0xc5)],'error':_0x29b025 instanceof Error?_0x29b025[_0x1e2dbf(0xbb)]:String(_0x29b025)});}}return _0x36304d[_0x1e2dbf(0xde)]=new Date()[_0x1e2dbf(0xad)](),await writeSqlLockFile(_0x41087c['lockFilePath'],_0x4df837),{'ok':_0x4336a9[_0x1e2dbf(0xc7)]===0x0,'data':{'pulled':_0x1cf22f,'skipped':_0x2fd8b9,'failed':_0x4336a9},'message':'Pull\x20complete:\x20'+_0x1cf22f[_0x1e2dbf(0xc7)]+_0x1e2dbf(0xb8)+_0x2fd8b9[_0x1e2dbf(0xc7)]+'\x20skipped,\x20'+_0x4336a9[_0x1e2dbf(0xc7)]+_0x1e2dbf(0xbc)};}};function a128_0x5a49(_0x165701,_0x3069da){_0x165701=_0x165701-0xad;const _0xb4a829=a128_0xb4a8();let _0x5a49aa=_0xb4a829[_0x165701];return _0x5a49aa;}function detectModeFromSql(_0x7888e5){const _0x2ef16b=a128_0x1979bd,_0x104b0b=ensureRemoteSqlContent(_0x7888e5),_0x51b5f4=stripLocalSqlMetadata(_0x104b0b,'mybatisXml')['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0x2ef16b(0xe5)](_0x51b5f4))return _0x2ef16b(0xc4);return _0x2ef16b(0xb2);}function isEquivalentPulledSqlFile(_0x1a3da8,_0x1f5f04,_0x4a2121){return normalizePullComparableContent(_0x1a3da8,_0x4a2121)===normalizePullComparableContent(_0x1f5f04,_0x4a2121);}function normalizePullComparableContent(_0x45c40f,_0x106ddd){const _0xe1c73d=a128_0x1979bd,_0x1ea924=_0x45c40f[_0xe1c73d(0xe6)](/\r\n/g,'\x0a')['split']('\x0a'),_0xe77c51=_0x1ea924[_0xe1c73d(0xd5)](_0x195282=>!isSyncedAtMetadataLine(_0x195282,_0x106ddd));return _0xe77c51[_0xe1c73d(0xcb)]('\x0a');}function isSyncedAtMetadataLine(_0x3bf1ec,_0x2e2c08){const _0x23c249=a128_0x1979bd;if(_0x2e2c08==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x23c249(0xe5)](_0x3bf1ec);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x23c249(0xe5)](_0x3bf1ec);}
1
+ const a128_0xdc55a8=a128_0x3c50;(function(_0x49cc98,_0x51cb0d){const _0x547994=a128_0x3c50,_0x91244e=_0x49cc98();while(!![]){try{const _0x260741=-parseInt(_0x547994(0x209))/0x1*(parseInt(_0x547994(0x20d))/0x2)+-parseInt(_0x547994(0x224))/0x3*(-parseInt(_0x547994(0x226))/0x4)+parseInt(_0x547994(0x1fc))/0x5*(parseInt(_0x547994(0x201))/0x6)+parseInt(_0x547994(0x230))/0x7*(-parseInt(_0x547994(0x216))/0x8)+-parseInt(_0x547994(0x208))/0x9+parseInt(_0x547994(0x22e))/0xa*(parseInt(_0x547994(0x200))/0xb)+parseInt(_0x547994(0x225))/0xc;if(_0x260741===_0x51cb0d)break;else _0x91244e['push'](_0x91244e['shift']());}catch(_0x5d2d8c){_0x91244e['push'](_0x91244e['shift']());}}}(a128_0x536a,0xa3b43));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';function a128_0x3c50(_0x51f5a9,_0x34af0e){_0x51f5a9=_0x51f5a9-0x1f2;const _0x536ae2=a128_0x536a();let _0x3c5016=_0x536ae2[_0x51f5a9];return _0x3c5016;}import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';function a128_0x536a(){const _0x47b2b7=['Pull\x20complete:\x20','sqlContent','\x20SQL\x20file(s)\x20into\x20','apps','lockFilePath','boolean','Force\x20overwrite\x20local\x20unsynced\x20changes','local\x20differs\x20from\x20remote','sqls','Would\x20pull\x20','sqlcode','2115ooDpSN','28461852qMDXNs','2316NCEoZI','str','\x20failed','catch','filter','conflict','sql','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','10byNNkC','unchanged','478457qIacFa','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','write','would_pull','paging','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','cancelled','\x20skipped,\x20','force','tableData','replace','dbId','35AMMsAX','pull','toISOString','\x20written,\x20','2978679VgKTeX','103494ovIWKN','test','sqlCode','length','name','push','trimStart','846567MTzLef','1WDAEUP','description','utf8','path','2216570NtebZV','message','appCode','sqlName','POST','string','No\x20remote\x20SQL\x20queries\x20matched.','nonInteractive','mybatisXml','152oxEitD','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','sqlRootDir'];a128_0x536a=function(){return _0x47b2b7;};return a128_0x536a();}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(_0x3b2c79,_0x36a631){const _0x4e0ee8=a128_0x3c50,_0x1f4b04=[];let _0x58ba42=0x1;while(!![]){const _0x31c398=await listSqlQueries(_0x3b2c79,{'currentPage':_0x58ba42,'pageSize':PAGE_SIZE,'sqlCode':_0x36a631['sqlCode'],'sqlName':_0x36a631['sqlName']}),_0x19b1b3=_0x31c398[_0x4e0ee8(0x1f9)]??[];_0x1f4b04['push'](..._0x19b1b3);if(_0x19b1b3[_0x4e0ee8(0x204)]===0x0)break;const _0x54ed4a=_0x31c398[_0x4e0ee8(0x1f4)]?.['totalCount'];if(_0x54ed4a!=null?_0x1f4b04[_0x4e0ee8(0x204)]>=_0x54ed4a:_0x19b1b3[_0x4e0ee8(0x204)]<PAGE_SIZE)break;_0x58ba42++;}return _0x1f4b04;}async function ensureSqlContent(_0x20fc0f){const _0x179954=a128_0x3c50;if(_0x20fc0f['sqlContent']!=null&&String(_0x20fc0f[_0x179954(0x21a)])['length']>0x0)return _0x20fc0f;return getSqlQueryDetail(_0x20fc0f[_0x179954(0x203)]);}export const sqlPull={'service':a128_0xdc55a8(0x22c),'command':a128_0xdc55a8(0x1fd),'description':a128_0xdc55a8(0x231),'risk':a128_0xdc55a8(0x1f2),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a128_0xdc55a8(0x205),'type':a128_0xdc55a8(0x212),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':a128_0xdc55a8(0x1f8),'type':a128_0xdc55a8(0x21e),'description':a128_0xdc55a8(0x21f)}],async 'dryRun'(_0x2a2b6b){const _0x282b4c=a128_0xdc55a8,_0x4a89c1=loadSqlProjectConfig(_0x2a2b6b[_0x282b4c(0x20f)]),_0x153dc4=await readSqlLockFile(_0x4a89c1[_0x282b4c(0x21d)]),{appLock:_0x3f6866}=ensureSqlLockScope(_0x153dc4??createEmptySqlLock(),_0x4a89c1[_0x282b4c(0x20f)],_0x4a89c1['sqlRoot'],_0x282b4c(0x1fd)),_0x2ff4e9=await fetchAllSqlQueries(_0x2a2b6b['appCode'],{'sqlCode':_0x2a2b6b[_0x282b4c(0x227)](_0x282b4c(0x223))||undefined,'sqlName':_0x2a2b6b[_0x282b4c(0x227)]('name')||undefined}),_0x14ced9=[];for(const _0x1b3018 of _0x2ff4e9){const _0x16e209=await ensureSqlContent(_0x1b3018),_0x515223=ensureRemoteSqlContent(_0x16e209),_0x4165a7=detectModeFromSql(_0x16e209),_0x598c02=_0x16e209['dbId']?await getDbName(_0x2a2b6b[_0x282b4c(0x20f)],Number(_0x16e209[_0x282b4c(0x1fb)]))[_0x282b4c(0x229)](()=>undefined):undefined,_0x3900f1=buildLocalSqlFileContent({'sqlCode':_0x16e209[_0x282b4c(0x203)],'sqlName':_0x16e209[_0x282b4c(0x210)],'dbId':_0x16e209[_0x282b4c(0x1fb)]},_0x515223,{'dbName':_0x598c02,'mode':_0x4165a7,'syncedAt':new Date()[_0x282b4c(0x1fe)](),'description':_0x16e209[_0x282b4c(0x20a)]}),_0x4322f1=buildSqlLockEntry(_0x16e209,_0x515223,'',{'dbName':_0x598c02}),_0x51cda8=resolveLocalSqlFilePath(_0x4a89c1,_0x16e209[_0x282b4c(0x203)],_0x4322f1);let _0x42fea1=_0x282b4c(0x1f3),_0x38e1dc;if(await fileExists(_0x51cda8)){const _0xf3ecac=await readFile(_0x51cda8,'utf8');isEquivalentPulledSqlFile(_0xf3ecac,_0x3900f1,_0x4165a7)?(_0x42fea1='skipped',_0x38e1dc=_0x282b4c(0x22f)):(_0x42fea1=_0x282b4c(0x22b),_0x38e1dc=_0x282b4c(0x1f5));}_0x14ced9[_0x282b4c(0x206)]({'sqlCode':_0x16e209[_0x282b4c(0x203)],'sqlName':_0x16e209['sqlName'],'filePath':_0x51cda8,'status':_0x42fea1,'reason':_0x38e1dc});}return{'method':_0x282b4c(0x211),'url':_0x282b4c(0x22d),'body':{'appCode':_0x2a2b6b[_0x282b4c(0x20f)],'sqlCode':_0x2a2b6b[_0x282b4c(0x227)]('sqlcode')||null,'sqlName':_0x2a2b6b[_0x282b4c(0x227)](_0x282b4c(0x205))||null,'files':_0x14ced9},'description':_0x282b4c(0x222)+_0x14ced9['length']+_0x282b4c(0x21b)+_0x4a89c1[_0x282b4c(0x218)]};},async 'execute'(_0x2b7c0a){const _0x244437=a128_0xdc55a8,_0x4ece51=loadSqlProjectConfig(_0x2b7c0a[_0x244437(0x20f)]),_0x47a307=await readSqlLockFile(_0x4ece51['lockFilePath']),{lockData:_0x158a5c,appLock:_0x48499b}=ensureSqlLockScope(_0x47a307??createEmptySqlLock(),_0x4ece51['appCode'],_0x4ece51['sqlRoot'],'pull'),_0xd4fe46=_0x2b7c0a['bool'](_0x244437(0x1f8)),_0x19d12a=await fetchAllSqlQueries(_0x2b7c0a[_0x244437(0x20f)],{'sqlCode':_0x2b7c0a['str'](_0x244437(0x223))||undefined,'sqlName':_0x2b7c0a[_0x244437(0x227)]('name')||undefined});if(_0x19d12a[_0x244437(0x204)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x244437(0x213)};const _0x2b4394=[],_0x39de19=[];for(const _0x42568d of _0x19d12a){try{_0x2b4394[_0x244437(0x206)](await ensureSqlContent(_0x42568d));}catch(_0x51c598){_0x39de19[_0x244437(0x206)]({'sqlCode':_0x42568d['sqlCode'],'error':_0x51c598 instanceof Error?_0x51c598[_0x244437(0x20e)]:String(_0x51c598)});}}if(_0xd4fe46&&!_0x2b7c0a[_0x244437(0x214)]){let _0xadcdb=![];for(const _0x156ef7 of _0x2b4394){const _0x17fb84=detectModeFromSql(_0x156ef7),_0x32a80f=_0x156ef7[_0x244437(0x1fb)]?await getDbName(_0x2b7c0a[_0x244437(0x20f)],Number(_0x156ef7[_0x244437(0x1fb)]))[_0x244437(0x229)](()=>undefined):undefined,_0x8396bb=buildLocalSqlFileContent({'sqlCode':_0x156ef7[_0x244437(0x203)],'sqlName':_0x156ef7[_0x244437(0x210)],'dbId':_0x156ef7['dbId']},ensureRemoteSqlContent(_0x156ef7),{'dbName':_0x32a80f,'mode':_0x17fb84,'syncedAt':new Date()['toISOString'](),'description':_0x156ef7['description']}),_0x4583f5=resolveLocalSqlFilePath(_0x4ece51,_0x156ef7[_0x244437(0x203)],buildSqlLockEntry(_0x156ef7,ensureRemoteSqlContent(_0x156ef7),'',{'dbName':_0x32a80f}));if(await fileExists(_0x4583f5)){const _0xf5fea9=await readFile(_0x4583f5,'utf8');if(!isEquivalentPulledSqlFile(_0xf5fea9,_0x8396bb,_0x17fb84)){_0xadcdb=!![];break;}}}if(_0xadcdb){const _0x1daa94=await confirmForceOverwrite(_0x244437(0x217));if(!_0x1daa94)throw CliErrors[_0x244437(0x1f6)]('Force\x20pull\x20cancelled.');}}const _0x315bf7=cloneSqlLockData(_0x158a5c),_0x1439c1=_0x315bf7[_0x244437(0x21c)][_0x4ece51['appCode']],_0x433d11=[],_0x322fd1=[];for(const _0x2f18fb of _0x2b4394){const _0x43e897=_0x1439c1[_0x244437(0x221)][_0x2f18fb[_0x244437(0x203)]],_0x6eb510=ensureRemoteSqlContent(_0x2f18fb),_0x14ac49=detectModeFromSql(_0x2f18fb),_0x377eee=_0x2f18fb[_0x244437(0x1fb)]?await getDbName(_0x2b7c0a['appCode'],Number(_0x2f18fb[_0x244437(0x1fb)]))[_0x244437(0x229)](()=>undefined):undefined,_0x58f44e=buildLocalSqlFileContent({'sqlCode':_0x2f18fb['sqlCode'],'sqlName':_0x2f18fb[_0x244437(0x210)],'dbId':_0x2f18fb[_0x244437(0x1fb)]},_0x6eb510,{'dbName':_0x377eee,'mode':_0x14ac49,'syncedAt':new Date()['toISOString'](),'description':_0x2f18fb[_0x244437(0x20a)]}),_0x124126=buildSqlLockEntry(_0x2f18fb,_0x6eb510,computeSqlContentHash(_0x58f44e),{'dbName':_0x377eee}),_0x30036b=_0x124126[_0x244437(0x20c)],_0x334bde=join(_0x4ece51[_0x244437(0x218)],_0x30036b);try{if(await fileExists(_0x334bde)){const _0x1af5d7=await readFile(_0x334bde,_0x244437(0x20b));if(isEquivalentPulledSqlFile(_0x1af5d7,_0x58f44e,_0x14ac49)){_0x322fd1[_0x244437(0x206)]({'sqlCode':_0x2f18fb[_0x244437(0x203)],'reason':_0x244437(0x22f)}),_0x1439c1[_0x244437(0x221)][_0x2f18fb[_0x244437(0x203)]]={..._0x124126,'hash':computeSqlContentHash(_0x1af5d7),'path':_0x30036b};continue;}if(!_0xd4fe46){_0x322fd1['push']({'sqlCode':_0x2f18fb[_0x244437(0x203)],'reason':_0x244437(0x220)});continue;}}const _0x3ae186=_0x43e897?.[_0x244437(0x20c)]?join(_0x4ece51[_0x244437(0x218)],_0x43e897[_0x244437(0x20c)]):undefined;_0x3ae186&&_0x3ae186!==_0x334bde&&await fileExists(_0x3ae186)&&await rm(_0x3ae186,{'force':!![]}),await ensureParentDirectory(_0x334bde),await writeFile(_0x334bde,_0x58f44e,_0x244437(0x20b)),_0x1439c1[_0x244437(0x221)][_0x2f18fb[_0x244437(0x203)]]={..._0x124126,'path':_0x30036b},_0x433d11[_0x244437(0x206)]({'sqlCode':_0x2f18fb[_0x244437(0x203)],'filePath':_0x334bde});}catch(_0x4713eb){_0x39de19[_0x244437(0x206)]({'sqlCode':_0x2f18fb[_0x244437(0x203)],'error':_0x4713eb instanceof Error?_0x4713eb[_0x244437(0x20e)]:String(_0x4713eb)});}}return _0x1439c1['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x4ece51[_0x244437(0x21d)],_0x315bf7),{'ok':_0x39de19[_0x244437(0x204)]===0x0,'data':{'pulled':_0x433d11,'skipped':_0x322fd1,'failed':_0x39de19},'message':_0x244437(0x219)+_0x433d11[_0x244437(0x204)]+_0x244437(0x1ff)+_0x322fd1['length']+_0x244437(0x1f7)+_0x39de19[_0x244437(0x204)]+_0x244437(0x228)};}};function detectModeFromSql(_0x2b389a){const _0x25db43=a128_0xdc55a8,_0x483801=ensureRemoteSqlContent(_0x2b389a),_0x3a507b=stripLocalSqlMetadata(_0x483801,_0x25db43(0x215))[_0x25db43(0x207)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x3a507b))return _0x25db43(0x215);return _0x25db43(0x22c);}function isEquivalentPulledSqlFile(_0x3746b2,_0x26ebf6,_0x13b9c1){return normalizePullComparableContent(_0x3746b2,_0x13b9c1)===normalizePullComparableContent(_0x26ebf6,_0x13b9c1);}function normalizePullComparableContent(_0x39219d,_0x2841a3){const _0x4d1641=a128_0xdc55a8,_0x2d2c7f=_0x39219d[_0x4d1641(0x1fa)](/\r\n/g,'\x0a')['split']('\x0a'),_0x410008=_0x2d2c7f[_0x4d1641(0x22a)](_0x3be8bb=>!isSyncedAtMetadataLine(_0x3be8bb,_0x2841a3));return _0x410008['join']('\x0a');}function isSyncedAtMetadataLine(_0x4e6a94,_0xafcf69){const _0x314aee=a128_0xdc55a8;if(_0xafcf69===_0x314aee(0x215))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x314aee(0x202)](_0x4e6a94);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x314aee(0x202)](_0x4e6a94);}
@@ -1 +1 @@
1
- const a129_0x50ca10=a129_0x739b;(function(_0x2fa844,_0x57650b){const _0x47126c=a129_0x739b,_0xc520=_0x2fa844();while(!![]){try{const _0x174aa6=parseInt(_0x47126c(0x17c))/0x1+parseInt(_0x47126c(0x1b0))/0x2+parseInt(_0x47126c(0x175))/0x3*(parseInt(_0x47126c(0x19f))/0x4)+-parseInt(_0x47126c(0x1a0))/0x5*(-parseInt(_0x47126c(0x173))/0x6)+-parseInt(_0x47126c(0x1a8))/0x7*(parseInt(_0x47126c(0x18e))/0x8)+parseInt(_0x47126c(0x19c))/0x9+-parseInt(_0x47126c(0x177))/0xa;if(_0x174aa6===_0x57650b)break;else _0xc520['push'](_0xc520['shift']());}catch(_0x3e948a){_0xc520['push'](_0xc520['shift']());}}}(a129_0x61cb,0xecdde));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';function a129_0x739b(_0x22879d,_0x40766a){_0x22879d=_0x22879d-0x172;const _0x61cb08=a129_0x61cb();let _0x739b99=_0x61cb08[_0x22879d];return _0x739b99;}function a129_0x61cb(){const _0x4d154=['lockFilePath','message','1385587LFZfay','unchanged','sqlRoot','\x20pushed,\x20','str','relativePath','filter','lastSync','/smartapi/custom/updateUserCustomSql','toISOString','Would\x20push\x20','sqls','mode','dbName','entries','dbDirectory','remoteId','path','8fEZMLg','sql','No\x20database\x20matches\x20local\x20directory\x20\x22','\x20SQL\x20file(s)','validation','bool','map','appCode','sqlName','sqlRootDir','sqlCode','boolean','utf8','Local\x20directory\x20\x22','15710634BfCbIb','catch','dbId','4VIQvvr','5780260uXDzFm','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','push','get','version','replace','startsWith','exec','3974621ctQPRC','Push\x20complete:\x20','\x20skipped,\x20','hash','sqlConfig','sqlcode','high-risk-write','filePath','1605574Hgpmdd','join','6ZBYOVV','force','1084911xgXPFt','No\x20local\x20SQL\x20files\x20found.','39136800uHPvQV','length','isFinite'];a129_0x61cb=function(){return _0x4d154;};return a129_0x61cb();}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(_0x228f14,_0x3cb418,_0xb58f10){const _0x641146=a129_0x739b,_0x102a81=await scanLocalSqlQueries(_0x228f14),_0x3d1a7b=new Map();for(const _0xb48cdb of _0x102a81){if(_0xb58f10&&_0xb48cdb['sqlCode']!==_0xb58f10)continue;const _0x560632=_0x3d1a7b[_0x641146(0x1a3)](_0xb48cdb[_0x641146(0x198)])??[];_0x560632['push'](_0xb48cdb),_0x3d1a7b['set'](_0xb48cdb['sqlCode'],_0x560632);}if(_0xb58f10&&!_0x3d1a7b['has'](_0xb58f10))throw CliErrors['validation']('Local\x20SQL\x20not\x20found:\x20'+_0xb58f10);const _0x528a22=[];for(const [_0x510bff,_0x436191]of _0x3d1a7b[_0x641146(0x18a)]()){if(_0x436191[_0x641146(0x178)]===0x1){_0x528a22[_0x641146(0x1a2)](_0x436191[0x0]);continue;}const _0x4d9020=_0x3cb418['sqls'][_0x510bff],_0x13dbbd=_0x4d9020?.[_0x641146(0x18d)],_0x32859e=_0x13dbbd?_0x436191[_0x641146(0x182)](_0x37ee77=>_0x37ee77[_0x641146(0x181)]!==_0x13dbbd):_0x436191;if(_0x4d9020&&_0x32859e[_0x641146(0x178)]===0x1){_0x528a22[_0x641146(0x1a2)](_0x32859e[0x0]);continue;}throw CliErrors['validation']('Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20'+_0x510bff+_0x641146(0x1a1));}return _0x528a22;}export const sqlPush={'service':a129_0x50ca10(0x18f),'command':a129_0x50ca10(0x1a2),'description':'Push\x20local\x20SQL\x20files\x20to\x20remote','risk':a129_0x50ca10(0x1ae),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a129_0x50ca10(0x174),'type':a129_0x50ca10(0x199),'description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0xe59cca){const _0x19168a=a129_0x50ca10,_0x1f017f=loadSqlProjectConfig(_0xe59cca[_0x19168a(0x195)]),_0x15d76a=await readSqlLockFile(_0x1f017f[_0x19168a(0x17a)]),{appLock:_0x3b1b20}=ensureSqlLockScope(_0x15d76a??createEmptySqlLock(),_0xe59cca[_0x19168a(0x195)],_0x1f017f['sqlRoot'],_0x19168a(0x1a2)),_0x184c72=await getTargetSqlQueries(_0x1f017f,_0x3b1b20,_0xe59cca[_0x19168a(0x180)](_0x19168a(0x1ad))||undefined),_0x5617fc=[];for(const _0x30e791 of _0x184c72){const _0x536ae5=await computeSqlFileHash(_0x30e791[_0x19168a(0x1af)]),_0x20194c=_0x3b1b20[_0x19168a(0x187)][_0x30e791[_0x19168a(0x198)]],_0x14bc47=!!_0x20194c&&(_0x20194c[_0x19168a(0x18d)]!==_0x30e791[_0x19168a(0x181)]||!!_0x30e791[_0x19168a(0x196)]&&_0x20194c[_0x19168a(0x196)]!==_0x30e791[_0x19168a(0x196)]);if(!_0xe59cca[_0x19168a(0x193)](_0x19168a(0x174))&&_0x20194c&&_0x20194c['hash']===_0x536ae5&&!_0x14bc47)continue;_0x5617fc[_0x19168a(0x1a2)](_0x30e791[_0x19168a(0x198)]);}return{'method':'POST','url':_0x19168a(0x184),'body':{'sqlCodes':_0x5617fc,'appCode':_0xe59cca[_0x19168a(0x195)]},'description':_0x19168a(0x186)+_0x5617fc[_0x19168a(0x178)]+_0x19168a(0x191)};},async 'execute'(_0x58a5ed){const _0xae1e18=a129_0x50ca10,_0x5b05a9=loadSqlProjectConfig(_0x58a5ed[_0xae1e18(0x195)]),_0x29b81a=await readSqlLockFile(_0x5b05a9['lockFilePath']),{lockData:_0x2ea936,appLock:_0x567961}=ensureSqlLockScope(_0x29b81a??createEmptySqlLock(),_0x58a5ed[_0xae1e18(0x195)],_0x5b05a9[_0xae1e18(0x17e)],'push'),_0x39c519=await getTargetSqlQueries(_0x5b05a9,_0x567961,_0x58a5ed[_0xae1e18(0x180)]('sqlcode')||undefined);if(_0x39c519[_0xae1e18(0x178)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0xae1e18(0x176)};const _0x16a320=[],_0x5d5a57=[],_0x2fa317=[];for(const _0x4e50c8 of _0x39c519){const _0x142091=_0x567961[_0xae1e18(0x187)][_0x4e50c8[_0xae1e18(0x198)]];if(!_0x142091){_0x2fa317['push']({'sqlCode':_0x4e50c8['sqlCode'],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x26548f=await computeSqlFileHash(_0x4e50c8[_0xae1e18(0x1af)]),_0x125e9e=_0x142091['path']!==_0x4e50c8[_0xae1e18(0x181)]||!!_0x4e50c8[_0xae1e18(0x196)]&&_0x142091[_0xae1e18(0x196)]!==_0x4e50c8['sqlName'];if(!_0x58a5ed['bool']('force')&&_0x142091[_0xae1e18(0x1ab)]===_0x26548f&&!_0x125e9e){_0x5d5a57[_0xae1e18(0x1a2)]({'sqlCode':_0x4e50c8[_0xae1e18(0x198)],'reason':_0xae1e18(0x17d)});continue;}if(_0x142091[_0xae1e18(0x1a4)]==null){_0x2fa317['push']({'sqlCode':_0x4e50c8['sqlCode'],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x2c4d76=await readFile(_0x4e50c8['filePath'],_0xae1e18(0x19a)),_0x19099c=stripLocalSqlMetadata(_0x2c4d76,_0x4e50c8[_0xae1e18(0x188)]),_0x26621f=_0x4e50c8['sqlName']||_0x142091[_0xae1e18(0x196)],_0x4eb764=await resolveTargetDbBinding(_0x58a5ed[_0xae1e18(0x195)],_0x4e50c8,_0x142091),_0x1f29fb=await updateSqlQuery({'id':_0x142091['remoteId'],'appCode':_0x58a5ed[_0xae1e18(0x195)],'sqlCode':_0x4e50c8['sqlCode'],'sqlName':_0x26621f,'dbId':_0x4eb764[_0xae1e18(0x19e)],'version':_0x142091[_0xae1e18(0x1a4)],'sqlContent':_0x19099c,'sqlConfig':_0x142091[_0xae1e18(0x1ac)]??undefined}),_0x4b499b=_0x1f29fb['dbId']?await getDbName(_0x58a5ed['appCode'],Number(_0x1f29fb['dbId']))[_0xae1e18(0x19d)](()=>_0x4eb764[_0xae1e18(0x189)]):_0x4eb764[_0xae1e18(0x189)];_0x567961[_0xae1e18(0x187)][_0x4e50c8['sqlCode']]={...buildSqlLockEntry(_0x1f29fb,_0x19099c,_0x26548f,{'dbName':_0x4b499b}),'path':_0x4e50c8[_0xae1e18(0x181)],'mode':_0x142091[_0xae1e18(0x188)]},await archivePreviousSqlFileIfNeeded(_0x5b05a9,_0x142091[_0xae1e18(0x18d)],_0x4e50c8[_0xae1e18(0x181)]),_0x16a320[_0xae1e18(0x1a2)]({'sqlCode':_0x4e50c8[_0xae1e18(0x198)],'remoteId':_0x142091[_0xae1e18(0x18c)]});}catch(_0x3b0289){_0x2fa317[_0xae1e18(0x1a2)]({'sqlCode':_0x4e50c8['sqlCode'],'error':_0x3b0289 instanceof Error?_0x3b0289[_0xae1e18(0x17b)]:String(_0x3b0289)});}}return _0x567961[_0xae1e18(0x183)]=new Date()[_0xae1e18(0x185)](),await writeSqlLockFile(_0x5b05a9[_0xae1e18(0x17a)],_0x2ea936),{'ok':_0x2fa317['length']===0x0,'data':{'pushed':_0x16a320,'skipped':_0x5d5a57,'failed':_0x2fa317},'message':_0xae1e18(0x1a9)+_0x16a320['length']+_0xae1e18(0x17f)+_0x5d5a57[_0xae1e18(0x178)]+_0xae1e18(0x1aa)+_0x2fa317[_0xae1e18(0x178)]+'\x20failed'};}};async function archivePreviousSqlFileIfNeeded(_0x43dfac,_0x2cb08c,_0x375bbf){const _0x4b3c08=a129_0x50ca10;if(!_0x2cb08c||_0x2cb08c===_0x375bbf)return;const _0x244d52=join(_0x43dfac[_0x4b3c08(0x197)],_0x2cb08c);if(!await fileExists(_0x244d52))return;const _0x39a69b=await moveToTrash(_0x43dfac['projectRoot'],_0x43dfac['trashDir'],_0x244d52);await cleanupEmptyDirectories(dirname(_0x244d52),_0x43dfac[_0x4b3c08(0x197)]),void _0x39a69b;}async function moveToTrash(_0x56a014,_0x2e54c5,_0x469000){const _0x461fd9=a129_0x50ca10,_0x4f5bfd=new Date()[_0x461fd9(0x185)]()[_0x461fd9(0x1a5)](/[:.]/g,'-'),_0x1c375a=relative(_0x56a014,_0x469000),_0x413a3a=join(_0x2e54c5,_0x4f5bfd,_0x1c375a);return await mkdir(dirname(_0x413a3a),{'recursive':!![]}),await rename(_0x469000,_0x413a3a),_0x413a3a;}async function cleanupEmptyDirectories(_0x448869,_0x3b06a7){const _0x161eed=a129_0x50ca10;let _0x56ea17=resolve(_0x448869);const _0x15df75=resolve(_0x3b06a7);while(_0x56ea17[_0x161eed(0x1a6)](''+_0x15df75+sep)||_0x56ea17===_0x15df75){if(_0x56ea17===_0x15df75)return;try{const _0x1dbfdc=await readdir(_0x56ea17);if(_0x1dbfdc[_0x161eed(0x178)]>0x0)return;await rmdir(_0x56ea17);}catch{return;}_0x56ea17=dirname(_0x56ea17);}}async function resolveTargetDbBinding(_0x1df6b3,_0x333bbf,_0x1dbd40){const _0x3e0282=a129_0x50ca10,_0x36212b=_0x333bbf[_0x3e0282(0x18b)];if(!_0x36212b)return{'dbId':_0x1dbd40[_0x3e0282(0x19e)],'dbName':_0x1dbd40[_0x3e0282(0x189)]};const _0x4eb064=buildDbDirectoryName(_0x1dbd40[_0x3e0282(0x189)],_0x1dbd40[_0x3e0282(0x19e)]);if(_0x36212b===_0x4eb064)return{'dbId':_0x1dbd40[_0x3e0282(0x19e)],'dbName':_0x1dbd40[_0x3e0282(0x189)]};const _0x4fcff7=parseExplicitDbDirectory(_0x36212b);if(_0x4fcff7!=null)return{'dbId':_0x4fcff7,'dbName':await getDbName(_0x1df6b3,_0x4fcff7)[_0x3e0282(0x19d)](()=>undefined)};const _0x4076b1=await listDatabases(_0x1df6b3),_0x53bf79=_0x4076b1[_0x3e0282(0x182)](_0x471502=>buildDbDirectoryName(_0x471502[_0x3e0282(0x189)],_0x471502[_0x3e0282(0x19e)])===_0x36212b);if(_0x53bf79[_0x3e0282(0x178)]===0x1)return{'dbId':_0x53bf79[0x0][_0x3e0282(0x19e)],'dbName':_0x53bf79[0x0]['dbName']};if(_0x53bf79[_0x3e0282(0x178)]===0x0)throw CliErrors[_0x3e0282(0x192)](_0x3e0282(0x190)+_0x36212b+'\x22\x20for\x20sqlCode\x20'+_0x333bbf[_0x3e0282(0x198)]+'.');const _0x42afd0=_0x53bf79[_0x3e0282(0x194)](_0xc51128=>_0xc51128[_0x3e0282(0x189)]+'\x20('+_0xc51128['dbId']+')')[_0x3e0282(0x172)](',\x20');throw CliErrors[_0x3e0282(0x192)](_0x3e0282(0x19b)+_0x36212b+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x333bbf['sqlCode']+':\x20'+_0x42afd0);}function parseExplicitDbDirectory(_0x43008b){const _0xce364e=a129_0x50ca10,_0x47544b=/^db-(\d+)$/[_0xce364e(0x1a7)](_0x43008b);if(!_0x47544b)return null;const _0x97af0e=Number(_0x47544b[0x1]);return Number[_0xce364e(0x179)](_0x97af0e)&&_0x97af0e>0x0?_0x97af0e:null;}
1
+ const a129_0x4a4dc8=a129_0x57c1;(function(_0x362b97,_0x46f2ea){const _0x53cfdd=a129_0x57c1,_0x10d611=_0x362b97();while(!![]){try{const _0xab6f01=parseInt(_0x53cfdd(0x11f))/0x1*(parseInt(_0x53cfdd(0x105))/0x2)+parseInt(_0x53cfdd(0x113))/0x3+parseInt(_0x53cfdd(0x131))/0x4*(-parseInt(_0x53cfdd(0x141))/0x5)+parseInt(_0x53cfdd(0x10a))/0x6*(parseInt(_0x53cfdd(0x134))/0x7)+-parseInt(_0x53cfdd(0x140))/0x8*(parseInt(_0x53cfdd(0x130))/0x9)+parseInt(_0x53cfdd(0x11d))/0xa+-parseInt(_0x53cfdd(0x11e))/0xb*(parseInt(_0x53cfdd(0x10d))/0xc);if(_0xab6f01===_0x46f2ea)break;else _0x10d611['push'](_0x10d611['shift']());}catch(_0x53a072){_0x10d611['push'](_0x10d611['shift']());}}}(a129_0x3279,0x2db63));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(_0x4bd7e6,_0xee16b,_0x1b7494){const _0x21f780=a129_0x57c1,_0x296b38=await scanLocalSqlQueries(_0x4bd7e6),_0x3ff6b8=new Map();for(const _0x3eeb95 of _0x296b38){if(_0x1b7494&&_0x3eeb95[_0x21f780(0x115)]!==_0x1b7494)continue;const _0x576c94=_0x3ff6b8[_0x21f780(0x11a)](_0x3eeb95[_0x21f780(0x115)])??[];_0x576c94[_0x21f780(0x11b)](_0x3eeb95),_0x3ff6b8['set'](_0x3eeb95['sqlCode'],_0x576c94);}if(_0x1b7494&&!_0x3ff6b8[_0x21f780(0x13f)](_0x1b7494))throw CliErrors[_0x21f780(0x129)](_0x21f780(0x142)+_0x1b7494);const _0x2a604a=[];for(const [_0x5ab814,_0x4fa619]of _0x3ff6b8[_0x21f780(0x128)]()){if(_0x4fa619[_0x21f780(0x117)]===0x1){_0x2a604a['push'](_0x4fa619[0x0]);continue;}const _0x2b41b3=_0xee16b[_0x21f780(0x12f)][_0x5ab814],_0x9265bd=_0x2b41b3?.[_0x21f780(0x107)],_0x5f1e58=_0x9265bd?_0x4fa619['filter'](_0x572870=>_0x572870[_0x21f780(0x106)]!==_0x9265bd):_0x4fa619;if(_0x2b41b3&&_0x5f1e58[_0x21f780(0x117)]===0x1){_0x2a604a[_0x21f780(0x11b)](_0x5f1e58[0x0]);continue;}throw CliErrors[_0x21f780(0x129)](_0x21f780(0x10b)+_0x5ab814+_0x21f780(0x138));}return _0x2a604a;}function a129_0x57c1(_0x1e0b5a,_0x42b369){_0x1e0b5a=_0x1e0b5a-0x103;const _0x3279c9=a129_0x3279();let _0x57c1cb=_0x3279c9[_0x1e0b5a];return _0x57c1cb;}export const sqlPush={'service':a129_0x4a4dc8(0x10e),'command':a129_0x4a4dc8(0x11b),'description':a129_0x4a4dc8(0x135),'risk':a129_0x4a4dc8(0x13c),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a129_0x4a4dc8(0x12a),'type':a129_0x4a4dc8(0x112),'description':a129_0x4a4dc8(0x12e)}],async 'dryRun'(_0x1e87dd){const _0x12aa54=a129_0x4a4dc8,_0x72082e=loadSqlProjectConfig(_0x1e87dd[_0x12aa54(0x124)]),_0x329ab8=await readSqlLockFile(_0x72082e[_0x12aa54(0x126)]),{appLock:_0x1f27ad}=ensureSqlLockScope(_0x329ab8??createEmptySqlLock(),_0x1e87dd['appCode'],_0x72082e['sqlRoot'],_0x12aa54(0x11b)),_0x505428=await getTargetSqlQueries(_0x72082e,_0x1f27ad,_0x1e87dd[_0x12aa54(0x125)]('sqlcode')||undefined),_0x31c9f9=[];for(const _0x3115e5 of _0x505428){const _0x1d219c=await computeSqlFileHash(_0x3115e5[_0x12aa54(0x119)]),_0x2422a0=_0x1f27ad[_0x12aa54(0x12f)][_0x3115e5[_0x12aa54(0x115)]],_0x398373=!!_0x2422a0&&(_0x2422a0[_0x12aa54(0x107)]!==_0x3115e5[_0x12aa54(0x106)]||!!_0x3115e5['sqlName']&&_0x2422a0[_0x12aa54(0x109)]!==_0x3115e5[_0x12aa54(0x109)]);if(!_0x1e87dd[_0x12aa54(0x110)](_0x12aa54(0x12a))&&_0x2422a0&&_0x2422a0[_0x12aa54(0x123)]===_0x1d219c&&!_0x398373)continue;_0x31c9f9[_0x12aa54(0x11b)](_0x3115e5[_0x12aa54(0x115)]);}return{'method':_0x12aa54(0x104),'url':'/smartapi/custom/updateUserCustomSql','body':{'sqlCodes':_0x31c9f9,'appCode':_0x1e87dd[_0x12aa54(0x124)]},'description':_0x12aa54(0x13d)+_0x31c9f9[_0x12aa54(0x117)]+_0x12aa54(0x144)};},async 'execute'(_0x209359){const _0x4933da=a129_0x4a4dc8,_0x4cd1a0=loadSqlProjectConfig(_0x209359[_0x4933da(0x124)]),_0x3a5f83=await readSqlLockFile(_0x4cd1a0[_0x4933da(0x126)]),{lockData:_0x44349b,appLock:_0x5f41d4}=ensureSqlLockScope(_0x3a5f83??createEmptySqlLock(),_0x209359['appCode'],_0x4cd1a0['sqlRoot'],_0x4933da(0x11b)),_0x3ba563=await getTargetSqlQueries(_0x4cd1a0,_0x5f41d4,_0x209359[_0x4933da(0x125)](_0x4933da(0x13e))||undefined);if(_0x3ba563[_0x4933da(0x117)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x3d56ac=[],_0x51d611=[],_0x71952f=[];for(const _0x20cdf0 of _0x3ba563){const _0x177c93=_0x5f41d4[_0x4933da(0x12f)][_0x20cdf0['sqlCode']];if(!_0x177c93){_0x71952f[_0x4933da(0x11b)]({'sqlCode':_0x20cdf0[_0x4933da(0x115)],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x1a1c8e=await computeSqlFileHash(_0x20cdf0[_0x4933da(0x119)]),_0x47c081=_0x177c93[_0x4933da(0x107)]!==_0x20cdf0['relativePath']||!!_0x20cdf0['sqlName']&&_0x177c93[_0x4933da(0x109)]!==_0x20cdf0[_0x4933da(0x109)];if(!_0x209359[_0x4933da(0x110)]('force')&&_0x177c93[_0x4933da(0x123)]===_0x1a1c8e&&!_0x47c081){_0x51d611['push']({'sqlCode':_0x20cdf0[_0x4933da(0x115)],'reason':_0x4933da(0x122)});continue;}if(_0x177c93[_0x4933da(0x111)]==null){_0x71952f[_0x4933da(0x11b)]({'sqlCode':_0x20cdf0[_0x4933da(0x115)],'error':_0x4933da(0x137)});continue;}const _0x3cd5d3=await readFile(_0x20cdf0[_0x4933da(0x119)],'utf8'),_0xa1398a=stripLocalSqlMetadata(_0x3cd5d3,_0x20cdf0['mode']),_0x9534f=_0x20cdf0['sqlName']||_0x177c93[_0x4933da(0x109)],_0x337406=await resolveTargetDbBinding(_0x209359[_0x4933da(0x124)],_0x20cdf0,_0x177c93),_0x5944a2=await updateSqlQuery({'id':_0x177c93[_0x4933da(0x108)],'appCode':_0x209359[_0x4933da(0x124)],'sqlCode':_0x20cdf0[_0x4933da(0x115)],'sqlName':_0x9534f,'dbId':_0x337406[_0x4933da(0x10c)],'version':_0x177c93[_0x4933da(0x111)],'sqlContent':_0xa1398a,'sqlConfig':_0x177c93[_0x4933da(0x11c)]??undefined}),_0x106a1b=_0x5944a2[_0x4933da(0x10c)]?await getDbName(_0x209359['appCode'],Number(_0x5944a2['dbId']))[_0x4933da(0x103)](()=>_0x337406['dbName']):_0x337406[_0x4933da(0x133)];_0x5f41d4[_0x4933da(0x12f)][_0x20cdf0[_0x4933da(0x115)]]={...buildSqlLockEntry(_0x5944a2,_0xa1398a,_0x1a1c8e,{'dbName':_0x106a1b}),'path':_0x20cdf0['relativePath'],'mode':_0x177c93['mode']},await archivePreviousSqlFileIfNeeded(_0x4cd1a0,_0x177c93[_0x4933da(0x107)],_0x20cdf0[_0x4933da(0x106)]),_0x3d56ac['push']({'sqlCode':_0x20cdf0[_0x4933da(0x115)],'remoteId':_0x177c93[_0x4933da(0x108)]});}catch(_0x37874d){_0x71952f[_0x4933da(0x11b)]({'sqlCode':_0x20cdf0[_0x4933da(0x115)],'error':_0x37874d instanceof Error?_0x37874d['message']:String(_0x37874d)});}}return _0x5f41d4[_0x4933da(0x143)]=new Date()[_0x4933da(0x127)](),await writeSqlLockFile(_0x4cd1a0[_0x4933da(0x126)],_0x44349b),{'ok':_0x71952f[_0x4933da(0x117)]===0x0,'data':{'pushed':_0x3d56ac,'skipped':_0x51d611,'failed':_0x71952f},'message':'Push\x20complete:\x20'+_0x3d56ac[_0x4933da(0x117)]+_0x4933da(0x13a)+_0x51d611['length']+_0x4933da(0x12b)+_0x71952f[_0x4933da(0x117)]+'\x20failed'};}};async function archivePreviousSqlFileIfNeeded(_0x584449,_0x41b9cf,_0x3abad5){const _0x4b4f96=a129_0x4a4dc8;if(!_0x41b9cf||_0x41b9cf===_0x3abad5)return;const _0x26e636=join(_0x584449[_0x4b4f96(0x136)],_0x41b9cf);if(!await fileExists(_0x26e636))return;const _0x13faf1=await moveToTrash(_0x584449[_0x4b4f96(0x10f)],_0x584449['trashDir'],_0x26e636);await cleanupEmptyDirectories(dirname(_0x26e636),_0x584449[_0x4b4f96(0x136)]),void _0x13faf1;}async function moveToTrash(_0x577e29,_0x47f4f1,_0x15815d){const _0xce056a=a129_0x4a4dc8,_0x2aefbf=new Date()[_0xce056a(0x127)]()[_0xce056a(0x12d)](/[:.]/g,'-'),_0x1c48e5=relative(_0x577e29,_0x15815d),_0x56f712=join(_0x47f4f1,_0x2aefbf,_0x1c48e5);return await mkdir(dirname(_0x56f712),{'recursive':!![]}),await rename(_0x15815d,_0x56f712),_0x56f712;}async function cleanupEmptyDirectories(_0x49cbe6,_0x37ba7e){const _0x2a6aef=a129_0x4a4dc8;let _0x54d4be=resolve(_0x49cbe6);const _0x5a4617=resolve(_0x37ba7e);while(_0x54d4be['startsWith'](''+_0x5a4617+sep)||_0x54d4be===_0x5a4617){if(_0x54d4be===_0x5a4617)return;try{const _0xc0ce00=await readdir(_0x54d4be);if(_0xc0ce00[_0x2a6aef(0x117)]>0x0)return;await rmdir(_0x54d4be);}catch{return;}_0x54d4be=dirname(_0x54d4be);}}function a129_0x3279(){const _0xcd02a2=['Local\x20SQL\x20not\x20found:\x20','lastSync','\x20SQL\x20file(s)','catch','POST','2rRiOTt','relativePath','path','remoteId','sqlName','252RTptJH','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','dbId','1968Kivowl','sql','projectRoot','bool','version','boolean','385233gVuaDo','filter','sqlCode','dbDirectory','length','map','filePath','get','push','sqlConfig','2434330jTqqjh','17699JmTqRi','319433FLNGgD','Local\x20directory\x20\x22','join','unchanged','hash','appCode','str','lockFilePath','toISOString','entries','validation','force','\x20skipped,\x20','\x22\x20for\x20sqlCode\x20','replace','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','sqls','3573OZreCv','546008zzItQs','exec','dbName','40817ieGByb','Push\x20local\x20SQL\x20files\x20to\x20remote','sqlRootDir','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','\x20pushed,\x20','No\x20database\x20matches\x20local\x20directory\x20\x22','high-risk-write','Would\x20push\x20','sqlcode','has','7024oDbiNe','5FsOYsA'];a129_0x3279=function(){return _0xcd02a2;};return a129_0x3279();}async function resolveTargetDbBinding(_0x137bd9,_0x2e0c18,_0x3eb998){const _0x30acd4=a129_0x4a4dc8,_0xc1bc91=_0x2e0c18[_0x30acd4(0x116)];if(!_0xc1bc91)return{'dbId':_0x3eb998[_0x30acd4(0x10c)],'dbName':_0x3eb998[_0x30acd4(0x133)]};const _0x20d776=buildDbDirectoryName(_0x3eb998['dbName'],_0x3eb998[_0x30acd4(0x10c)]);if(_0xc1bc91===_0x20d776)return{'dbId':_0x3eb998[_0x30acd4(0x10c)],'dbName':_0x3eb998['dbName']};const _0x304b02=parseExplicitDbDirectory(_0xc1bc91);if(_0x304b02!=null)return{'dbId':_0x304b02,'dbName':await getDbName(_0x137bd9,_0x304b02)[_0x30acd4(0x103)](()=>undefined)};const _0x72c761=await listDatabases(_0x137bd9),_0x273be6=_0x72c761[_0x30acd4(0x114)](_0x5e7901=>buildDbDirectoryName(_0x5e7901[_0x30acd4(0x133)],_0x5e7901['dbId'])===_0xc1bc91);if(_0x273be6[_0x30acd4(0x117)]===0x1)return{'dbId':_0x273be6[0x0][_0x30acd4(0x10c)],'dbName':_0x273be6[0x0][_0x30acd4(0x133)]};if(_0x273be6[_0x30acd4(0x117)]===0x0)throw CliErrors[_0x30acd4(0x129)](_0x30acd4(0x13b)+_0xc1bc91+_0x30acd4(0x12c)+_0x2e0c18[_0x30acd4(0x115)]+'.');const _0x35438a=_0x273be6[_0x30acd4(0x118)](_0xf8b37c=>_0xf8b37c[_0x30acd4(0x133)]+'\x20('+_0xf8b37c['dbId']+')')[_0x30acd4(0x121)](',\x20');throw CliErrors[_0x30acd4(0x129)](_0x30acd4(0x120)+_0xc1bc91+_0x30acd4(0x139)+_0x2e0c18['sqlCode']+':\x20'+_0x35438a);}function parseExplicitDbDirectory(_0x166ec1){const _0x2b681e=a129_0x4a4dc8,_0x52221e=/^db-(\d+)$/[_0x2b681e(0x132)](_0x166ec1);if(!_0x52221e)return null;const _0x1948c2=Number(_0x52221e[0x1]);return Number['isFinite'](_0x1948c2)&&_0x1948c2>0x0?_0x1948c2:null;}
@@ -1 +1 @@
1
- function a130_0x16c4(_0x4b2bf9,_0x33871e){_0x4b2bf9=_0x4b2bf9-0x16d;const _0x469b50=a130_0x469b();let _0x16c45d=_0x469b50[_0x4b2bf9];return _0x16c45d;}const a130_0xcbfa48=a130_0x16c4;(function(_0x4d7a8c,_0x199503){const _0x48ab78=a130_0x16c4,_0x573281=_0x4d7a8c();while(!![]){try{const _0x1ae018=-parseInt(_0x48ab78(0x16f))/0x1*(parseInt(_0x48ab78(0x17c))/0x2)+-parseInt(_0x48ab78(0x17a))/0x3+-parseInt(_0x48ab78(0x176))/0x4+-parseInt(_0x48ab78(0x180))/0x5*(parseInt(_0x48ab78(0x173))/0x6)+parseInt(_0x48ab78(0x174))/0x7*(-parseInt(_0x48ab78(0x172))/0x8)+parseInt(_0x48ab78(0x17f))/0x9+parseInt(_0x48ab78(0x179))/0xa;if(_0x1ae018===_0x199503)break;else _0x573281['push'](_0x573281['shift']());}catch(_0x1d417b){_0x573281['push'](_0x573281['shift']());}}}(a130_0x469b,0x4320b));import{CliErrors}from'../../errors.js';function a130_0x469b(){const _0x895e88=['file','11045740ACANLc','853827tCCQOr','validation','692Lgoerm','write','SQL\x20query\x20display\x20name','2614707cbJPMh','1945mFeBhx','save','join','248VqHbdD','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','sqlname','1254032SLwxQA','7764HMhYzd','7eAnIaV','string','358420bSeHCb','description'];a130_0x469b=function(){return _0x895e88;};return a130_0x469b();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.'][a130_0xcbfa48(0x16e)]('\x0a');export const sqlSave={'service':'sql','command':a130_0xcbfa48(0x16d),'description':a130_0xcbfa48(0x170),'risk':a130_0xcbfa48(0x17d),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a130_0xcbfa48(0x178),'type':a130_0xcbfa48(0x175),'required':!![],'description':'Path\x20to\x20the\x20SQL\x20file'},SQLCODE_FLAG_OPTIONAL,{'name':a130_0xcbfa48(0x171),'type':a130_0xcbfa48(0x175),'description':a130_0xcbfa48(0x17e)},{'name':'db','type':a130_0xcbfa48(0x175),'description':'Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)'},{'name':a130_0xcbfa48(0x177),'type':a130_0xcbfa48(0x175),'description':'Query\x20description'}],async 'validate'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x52606d=a130_0xcbfa48;throw CliErrors[_0x52606d(0x17b)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ function a130_0x58b9(){const _0x59b6a7=['3KfwAJf','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`.','887845KqOVTi','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','save','7440370BKQFVi','6RXAZwy','string','file','1880UTIQPe','1128762fciOuA','1439972uAmRAa','3593800UGyTSb','Query\x20description','Path\x20to\x20the\x20SQL\x20file','523811ETacVH','validation','SQL\x20query\x20display\x20name','16650zbYLWJ','sql','sqlname','write'];a130_0x58b9=function(){return _0x59b6a7;};return a130_0x58b9();}const a130_0x3b6da3=a130_0x50f8;(function(_0x4433dc,_0x37fa95){const _0x1d0096=a130_0x50f8,_0x3ec50f=_0x4433dc();while(!![]){try{const _0xa19456=-parseInt(_0x1d0096(0x6a))/0x1+parseInt(_0x1d0096(0x7b))/0x2+-parseInt(_0x1d0096(0x71))/0x3*(-parseInt(_0x1d0096(0x7c))/0x4)+-parseInt(_0x1d0096(0x73))/0x5*(-parseInt(_0x1d0096(0x77))/0x6)+-parseInt(_0x1d0096(0x67))/0x7+-parseInt(_0x1d0096(0x7a))/0x8*(parseInt(_0x1d0096(0x6d))/0x9)+parseInt(_0x1d0096(0x76))/0xa;if(_0xa19456===_0x37fa95)break;else _0x3ec50f['push'](_0x3ec50f['shift']());}catch(_0x5ddbb4){_0x3ec50f['push'](_0x3ec50f['shift']());}}}(a130_0x58b9,0x5b503));function a130_0x50f8(_0x37ca7a,_0x1fe3be){_0x37ca7a=_0x37ca7a-0x67;const _0x58b980=a130_0x58b9();let _0x50f8f2=_0x58b980[_0x37ca7a];return _0x50f8f2;}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.',a130_0x3b6da3(0x72)]['join']('\x0a');export const sqlSave={'service':a130_0x3b6da3(0x6e),'command':a130_0x3b6da3(0x75),'description':a130_0x3b6da3(0x74),'risk':a130_0x3b6da3(0x70),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a130_0x3b6da3(0x79),'type':a130_0x3b6da3(0x78),'required':!![],'description':a130_0x3b6da3(0x69)},SQLCODE_FLAG_OPTIONAL,{'name':a130_0x3b6da3(0x6f),'type':a130_0x3b6da3(0x78),'description':a130_0x3b6da3(0x6c)},{'name':'db','type':'string','description':'Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)'},{'name':'description','type':'string','description':a130_0x3b6da3(0x68)}],async 'validate'(){const _0x1669e8=a130_0x3b6da3;throw CliErrors[_0x1669e8(0x6b)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- (function(_0x283a25,_0x3c6e3d){const _0x51fd9b=a131_0x3596,_0x53abd8=_0x283a25();while(!![]){try{const _0x13e042=-parseInt(_0x51fd9b(0x140))/0x1+parseInt(_0x51fd9b(0x131))/0x2*(-parseInt(_0x51fd9b(0x130))/0x3)+-parseInt(_0x51fd9b(0x13f))/0x4*(parseInt(_0x51fd9b(0x142))/0x5)+parseInt(_0x51fd9b(0x12a))/0x6+-parseInt(_0x51fd9b(0x121))/0x7*(-parseInt(_0x51fd9b(0x129))/0x8)+-parseInt(_0x51fd9b(0x13c))/0x9*(-parseInt(_0x51fd9b(0x11c))/0xa)+-parseInt(_0x51fd9b(0x11b))/0xb*(-parseInt(_0x51fd9b(0x12b))/0xc);if(_0x13e042===_0x3c6e3d)break;else _0x53abd8['push'](_0x53abd8['shift']());}catch(_0x8fa29a){_0x53abd8['push'](_0x53abd8['shift']());}}}(a131_0xa6fe,0x20efc));import{createInterface}from'node:readline';function a131_0x3596(_0x1fd5cf,_0x53125c){_0x1fd5cf=_0x1fd5cf-0x114;const _0xa6fe92=a131_0xa6fe();let _0x3596a2=_0xa6fe92[_0x1fd5cf];return _0x3596a2;}import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x19ad3e,_0x39f642,_0x287379,_0x8ecf4b){const _0x59e3ce=a131_0x3596,_0x5a7bce=detectSqlMode(_0x39f642);return{'path':buildSqlRelativePath(_0x19ad3e[_0x59e3ce(0x141)],_0x19ad3e[_0x59e3ce(0x12c)],_0x8ecf4b?.['dbName'],_0x5a7bce,_0x19ad3e[_0x59e3ce(0x124)]),'hash':_0x287379,'remoteId':_0x19ad3e['id'],'version':_0x19ad3e[_0x59e3ce(0x123)],'dbId':Number(_0x19ad3e[_0x59e3ce(0x124)]),'dbName':_0x8ecf4b?.[_0x59e3ce(0x137)],'sqlName':_0x19ad3e['sqlName'],'sqlConfig':_0x19ad3e[_0x59e3ce(0x11a)]??undefined,'mode':_0x5a7bce};}export function cloneSqlLockData(_0x192cca){const _0x4fbeaa=a131_0x3596;return{'apps':Object[_0x4fbeaa(0x120)](Object[_0x4fbeaa(0x11e)](_0x192cca[_0x4fbeaa(0x11d)])['map'](([_0x62aefe,_0x4cb770])=>[_0x62aefe,{'sqlRoot':_0x4cb770[_0x4fbeaa(0x12e)],'lastSync':_0x4cb770[_0x4fbeaa(0x127)],'sqls':{..._0x4cb770[_0x4fbeaa(0x128)]}}]))};}export function ensureRemoteSqlContent(_0x407d74){const _0x1819d2=a131_0x3596;return _0x407d74[_0x1819d2(0x119)]??'';}export function buildLocalSqlFileContent(_0x5d39ec,_0x586949,_0x1bc60a){const _0x42caab=a131_0x3596,_0x271940=_0x1bc60a?.[_0x42caab(0x126)]??detectSqlMode(_0x586949),_0x368e0d=stripLocalSqlMetadata(_0x586949,_0x271940)[_0x42caab(0x114)](),_0x10b193=[...buildMetadataHeaderLines({'sqlCode':_0x5d39ec['sqlCode'],'sqlName':_0x5d39ec[_0x42caab(0x12c)],'dbId':_0x5d39ec[_0x42caab(0x124)],'dbName':_0x1bc60a?.[_0x42caab(0x137)],'mode':_0x271940,'syncedAt':_0x1bc60a?.[_0x42caab(0x133)],'description':_0x1bc60a?.['description']},_0x271940),'',_0x368e0d],_0x880d3c=_0x10b193[_0x42caab(0x138)]('\x0a');return _0x880d3c['endsWith']('\x0a')?_0x880d3c:_0x880d3c+'\x0a';}export function stripLocalSqlMetadata(_0x373a9a,_0x28833a){const _0x1b744b=a131_0x3596,_0x1781da=_0x373a9a[_0x1b744b(0x135)](/\r\n/g,'\x0a')[_0x1b744b(0x12d)]('\x0a'),_0x25fe49=[];let _0x1797b0=0x0;if(_0x28833a===_0x1b744b(0x13a))while(_0x1797b0<_0x1781da[_0x1b744b(0x13e)]){const _0x54a2b6=_0x1781da[_0x1797b0]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x54a2b6)){_0x1797b0++;continue;}if(_0x54a2b6[_0x1b744b(0x114)]()===''&&_0x1797b0>0x0){_0x1797b0++;continue;}break;}else while(_0x1797b0<_0x1781da[_0x1b744b(0x13e)]){const _0x322975=_0x1781da[_0x1797b0]??'';if(/^\s*--\s*@lovrabet\./['test'](_0x322975)){_0x1797b0++;continue;}if(_0x322975[_0x1b744b(0x114)]()===''&&_0x1797b0>0x0){_0x1797b0++;continue;}break;}for(;_0x1797b0<_0x1781da[_0x1b744b(0x13e)];_0x1797b0++){_0x25fe49[_0x1b744b(0x139)](_0x1781da[_0x1797b0]);}return _0x25fe49[_0x1b744b(0x138)]('\x0a')['trimStart']();}export function resolveSqlMode(_0x4cc7f3,_0x1c2dc6){const _0x37638b=a131_0x3596;if(_0x1c2dc6?.[_0x37638b(0x126)])return _0x1c2dc6[_0x37638b(0x126)];return detectSqlMode(_0x4cc7f3);}export function resolveSqlFileName(_0xb87106,_0x25f862,_0x51517f){const _0x4e84ed=a131_0x3596;if(_0x51517f?.[_0x4e84ed(0x116)])return _0x51517f['path'];if(_0x51517f?.[_0x4e84ed(0x12c)]||_0x51517f?.['dbName'])return buildSqlRelativePath(_0xb87106,_0x51517f?.[_0x4e84ed(0x12c)],_0x51517f?.[_0x4e84ed(0x137)],resolveSqlMode(_0x25f862,_0x51517f),_0x51517f?.[_0x4e84ed(0x124)]);return buildDefaultSqlFileName(_0xb87106,resolveSqlMode(_0x25f862,_0x51517f));}export function resolveSqlLocalDir(_0x27eebd,_0x4f7a6e){return join(_0x27eebd,SQL_LOCAL_REL_DIR,_0x4f7a6e);}export async function confirmForceOverwrite(_0x418f76){const _0x293055=a131_0x3596,_0x12fe98=createInterface({'input':process[_0x293055(0x117)],'output':process['stderr']}),_0x3a51ef=await new Promise(_0x47ac90=>{const _0x178bba=_0x293055;_0x12fe98[_0x178bba(0x11f)](_0x418f76+_0x178bba(0x136),_0x47ac90);});return _0x12fe98[_0x293055(0x134)](),['y',_0x293055(0x118)][_0x293055(0x13b)](_0x3a51ef[_0x293055(0x114)]()[_0x293055(0x12f)]());}export function findSqlLockScope(_0x3fdc60,_0x526c8a){return _0x3fdc60['apps'][_0x526c8a];}function a131_0xa6fe(){const _0x68479c=['1142160LoeKjE','apps','entries','question','fromEntries','49btHLgg','<!--\x20@lovrabet.','version','dbId','filter','mode','lastSync','sqls','25768TTysOY','543012zqFqUx','1240404QIsdMJ','sqlName','split','sqlRoot','toLowerCase','261Ktzewm','4022WRsuvo','\x20-->','syncedAt','close','replace','\x20[y/N]\x20','dbName','join','push','mybatisXml','includes','18tktxCZ','map','length','296aCIvXP','163314rrhuMe','sqlCode','5070qPwsLj','trim','description','path','stdin','yes','sqlContent','sqlConfig','22vczbkp'];a131_0xa6fe=function(){return _0x68479c;};return a131_0xa6fe();}function buildMetadataHeaderLines(_0x50a74b,_0x5492dc){const _0xbbffb5=a131_0x3596,_0x4e2259=[[_0xbbffb5(0x141),_0x50a74b[_0xbbffb5(0x141)]],[_0xbbffb5(0x12c),_0x50a74b[_0xbbffb5(0x12c)]],['dbId',_0x50a74b[_0xbbffb5(0x124)]],[_0xbbffb5(0x137),_0x50a74b[_0xbbffb5(0x137)]],[_0xbbffb5(0x126),_0x50a74b['mode']],[_0xbbffb5(0x133),_0x50a74b[_0xbbffb5(0x133)]],[_0xbbffb5(0x115),_0x50a74b['description']]];if(_0x5492dc==='mybatisXml')return _0x4e2259['filter'](([,_0x216a02])=>_0x216a02!==undefined&&_0x216a02!==null&&String(_0x216a02)[_0xbbffb5(0x114)]()!=='')[_0xbbffb5(0x13d)](([_0x52cb09,_0x38b4d7])=>_0xbbffb5(0x122)+_0x52cb09+':\x20'+String(_0x38b4d7)+_0xbbffb5(0x132));return _0x4e2259[_0xbbffb5(0x125)](([,_0x186f75])=>_0x186f75!==undefined&&_0x186f75!==null&&String(_0x186f75)[_0xbbffb5(0x114)]()!=='')[_0xbbffb5(0x13d)](([_0x31bfff,_0x200a7b])=>'--\x20@lovrabet.'+_0x31bfff+':\x20'+String(_0x200a7b));}
1
+ const a131_0x45dd75=a131_0x410c;(function(_0x10104a,_0x20681c){const _0x4c2a1f=a131_0x410c,_0x54f2ab=_0x10104a();while(!![]){try{const _0x47543e=parseInt(_0x4c2a1f(0x113))/0x1+-parseInt(_0x4c2a1f(0xf8))/0x2*(-parseInt(_0x4c2a1f(0x105))/0x3)+parseInt(_0x4c2a1f(0xed))/0x4+parseInt(_0x4c2a1f(0x10a))/0x5+-parseInt(_0x4c2a1f(0x110))/0x6*(parseInt(_0x4c2a1f(0x111))/0x7)+-parseInt(_0x4c2a1f(0xf7))/0x8*(-parseInt(_0x4c2a1f(0xf4))/0x9)+parseInt(_0x4c2a1f(0xf6))/0xa*(-parseInt(_0x4c2a1f(0x103))/0xb);if(_0x47543e===_0x20681c)break;else _0x54f2ab['push'](_0x54f2ab['shift']());}catch(_0x2150e3){_0x54f2ab['push'](_0x54f2ab['shift']());}}}(a131_0x20f3,0x5cbdc));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_0x45dd75(0x107);export function buildSqlLockEntry(_0x2a4fbd,_0x11894c,_0x401bb3,_0x17c85e){const _0x1d1481=a131_0x45dd75,_0x2bdfe0=detectSqlMode(_0x11894c);return{'path':buildSqlRelativePath(_0x2a4fbd[_0x1d1481(0x10b)],_0x2a4fbd[_0x1d1481(0x115)],_0x17c85e?.['dbName'],_0x2bdfe0,_0x2a4fbd[_0x1d1481(0x112)]),'hash':_0x401bb3,'remoteId':_0x2a4fbd['id'],'version':_0x2a4fbd[_0x1d1481(0x114)],'dbId':Number(_0x2a4fbd[_0x1d1481(0x112)]),'dbName':_0x17c85e?.[_0x1d1481(0x100)],'sqlName':_0x2a4fbd[_0x1d1481(0x115)],'sqlConfig':_0x2a4fbd['sqlConfig']??undefined,'mode':_0x2bdfe0};}export function cloneSqlLockData(_0x4b5dbc){const _0x4d5150=a131_0x45dd75;return{'apps':Object[_0x4d5150(0x106)](Object[_0x4d5150(0xf5)](_0x4b5dbc['apps'])['map'](([_0x2ebfd5,_0x564506])=>[_0x2ebfd5,{'sqlRoot':_0x564506[_0x4d5150(0x10c)],'lastSync':_0x564506['lastSync'],'sqls':{..._0x564506['sqls']}}]))};}export function ensureRemoteSqlContent(_0x4f105f){return _0x4f105f['sqlContent']??'';}function a131_0x410c(_0x23c1de,_0x4498f5){_0x23c1de=_0x23c1de-0xec;const _0x20f3ec=a131_0x20f3();let _0x410c15=_0x20f3ec[_0x23c1de];return _0x410c15;}export function buildLocalSqlFileContent(_0x1a7e4d,_0xb6d33f,_0x3c21d6){const _0x469450=a131_0x45dd75,_0x3470ef=_0x3c21d6?.[_0x469450(0xfe)]??detectSqlMode(_0xb6d33f),_0x21e272=stripLocalSqlMetadata(_0xb6d33f,_0x3470ef)[_0x469450(0xf2)](),_0x262090=[...buildMetadataHeaderLines({'sqlCode':_0x1a7e4d[_0x469450(0x10b)],'sqlName':_0x1a7e4d[_0x469450(0x115)],'dbId':_0x1a7e4d[_0x469450(0x112)],'dbName':_0x3c21d6?.[_0x469450(0x100)],'mode':_0x3470ef,'syncedAt':_0x3c21d6?.[_0x469450(0x102)],'description':_0x3c21d6?.[_0x469450(0x10f)]},_0x3470ef),'',_0x21e272],_0x28b67d=_0x262090[_0x469450(0xf0)]('\x0a');return _0x28b67d[_0x469450(0xf3)]('\x0a')?_0x28b67d:_0x28b67d+'\x0a';}export function stripLocalSqlMetadata(_0x43c008,_0x3608e4){const _0x48362c=a131_0x45dd75,_0x35b7a7=_0x43c008[_0x48362c(0x10e)](/\r\n/g,'\x0a')['split']('\x0a'),_0x13b6ca=[];let _0x1ff3ab=0x0;if(_0x3608e4===_0x48362c(0xfb))while(_0x1ff3ab<_0x35b7a7[_0x48362c(0x104)]){const _0x4902a3=_0x35b7a7[_0x1ff3ab]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x4902a3)){_0x1ff3ab++;continue;}if(_0x4902a3[_0x48362c(0xf2)]()===''&&_0x1ff3ab>0x0){_0x1ff3ab++;continue;}break;}else while(_0x1ff3ab<_0x35b7a7[_0x48362c(0x104)]){const _0x306329=_0x35b7a7[_0x1ff3ab]??'';if(/^\s*--\s*@lovrabet\./[_0x48362c(0xf1)](_0x306329)){_0x1ff3ab++;continue;}if(_0x306329['trim']()===''&&_0x1ff3ab>0x0){_0x1ff3ab++;continue;}break;}for(;_0x1ff3ab<_0x35b7a7[_0x48362c(0x104)];_0x1ff3ab++){_0x13b6ca['push'](_0x35b7a7[_0x1ff3ab]);}return _0x13b6ca[_0x48362c(0xf0)]('\x0a')[_0x48362c(0xfd)]();}export function resolveSqlMode(_0x5c5aef,_0x10008b){const _0x552870=a131_0x45dd75;if(_0x10008b?.[_0x552870(0xfe)])return _0x10008b['mode'];return detectSqlMode(_0x5c5aef);}export function resolveSqlFileName(_0x3e86e3,_0x4b9538,_0x4e27bd){const _0x480b15=a131_0x45dd75;if(_0x4e27bd?.[_0x480b15(0xef)])return _0x4e27bd[_0x480b15(0xef)];if(_0x4e27bd?.[_0x480b15(0x115)]||_0x4e27bd?.[_0x480b15(0x100)])return buildSqlRelativePath(_0x3e86e3,_0x4e27bd?.[_0x480b15(0x115)],_0x4e27bd?.[_0x480b15(0x100)],resolveSqlMode(_0x4b9538,_0x4e27bd),_0x4e27bd?.[_0x480b15(0x112)]);return buildDefaultSqlFileName(_0x3e86e3,resolveSqlMode(_0x4b9538,_0x4e27bd));}export function resolveSqlLocalDir(_0x2066d6,_0xa5653f){return join(_0x2066d6,SQL_LOCAL_REL_DIR,_0xa5653f);}export async function confirmForceOverwrite(_0x5043d0){const _0x53f1af=a131_0x45dd75,_0x37737b=createInterface({'input':process[_0x53f1af(0xec)],'output':process['stderr']}),_0x1451d4=await new Promise(_0x562a9b=>{const _0x4a0268=_0x53f1af;_0x37737b[_0x4a0268(0xfa)](_0x5043d0+'\x20[y/N]\x20',_0x562a9b);});return _0x37737b[_0x53f1af(0xee)](),['y',_0x53f1af(0x108)][_0x53f1af(0x101)](_0x1451d4[_0x53f1af(0xf2)]()['toLowerCase']());}export function findSqlLockScope(_0x363b40,_0x5c1734){const _0x129959=a131_0x45dd75;return _0x363b40[_0x129959(0x10d)][_0x5c1734];}function buildMetadataHeaderLines(_0x43c76b,_0x5cf0d3){const _0x26f0dc=a131_0x45dd75,_0x3da29e=[['sqlCode',_0x43c76b[_0x26f0dc(0x10b)]],[_0x26f0dc(0x115),_0x43c76b[_0x26f0dc(0x115)]],[_0x26f0dc(0x112),_0x43c76b[_0x26f0dc(0x112)]],[_0x26f0dc(0x100),_0x43c76b[_0x26f0dc(0x100)]],['mode',_0x43c76b[_0x26f0dc(0xfe)]],[_0x26f0dc(0x102),_0x43c76b['syncedAt']],['description',_0x43c76b[_0x26f0dc(0x10f)]]];if(_0x5cf0d3===_0x26f0dc(0xfb))return _0x3da29e[_0x26f0dc(0xfc)](([,_0x6c5183])=>_0x6c5183!==undefined&&_0x6c5183!==null&&String(_0x6c5183)['trim']()!=='')[_0x26f0dc(0x109)](([_0x10a817,_0xbf7430])=>_0x26f0dc(0xff)+_0x10a817+':\x20'+String(_0xbf7430)+_0x26f0dc(0xf9));return _0x3da29e[_0x26f0dc(0xfc)](([,_0x4f9b0b])=>_0x4f9b0b!==undefined&&_0x4f9b0b!==null&&String(_0x4f9b0b)[_0x26f0dc(0xf2)]()!=='')[_0x26f0dc(0x109)](([_0x33f64d,_0x577504])=>'--\x20@lovrabet.'+_0x33f64d+':\x20'+String(_0x577504));}function a131_0x20f3(){const _0x584bb0=['apps','replace','description','84qcejLu','194999FahVqy','dbId','126217QRoyzU','version','sqlName','stdin','1167364oZNwTu','close','path','join','test','trim','endsWith','9tFrGwm','entries','920HqgsGD','5407880lmJuMz','2zjkvio','\x20-->','question','mybatisXml','filter','trimStart','mode','<!--\x20@lovrabet.','dbName','includes','syncedAt','91003gnvIMt','length','415092XnXJnJ','fromEntries','.rabetbase/sql','yes','map','1492875zOLUxi','sqlCode','sqlRoot'];a131_0x20f3=function(){return _0x584bb0;};return a131_0x20f3();}
@@ -1 +1 @@
1
- function a132_0x4c6e(_0x593ece,_0x389159){_0x593ece=_0x593ece-0x134;const _0x495b96=a132_0x495b();let _0x4c6e57=_0x495b96[_0x593ece];return _0x4c6e57;}const a132_0x3f25ed=a132_0x4c6e;(function(_0x565af5,_0x5045e7){const _0x34120f=a132_0x4c6e,_0x2ad231=_0x565af5();while(!![]){try{const _0x8fd637=parseInt(_0x34120f(0x143))/0x1+-parseInt(_0x34120f(0x151))/0x2+-parseInt(_0x34120f(0x146))/0x3+parseInt(_0x34120f(0x153))/0x4+-parseInt(_0x34120f(0x139))/0x5*(parseInt(_0x34120f(0x134))/0x6)+-parseInt(_0x34120f(0x14c))/0x7*(-parseInt(_0x34120f(0x149))/0x8)+parseInt(_0x34120f(0x14f))/0x9*(parseInt(_0x34120f(0x141))/0xa);if(_0x8fd637===_0x5045e7)break;else _0x2ad231['push'](_0x2ad231['shift']());}catch(_0x4c42c9){_0x2ad231['push'](_0x2ad231['shift']());}}}(a132_0x495b,0x2cb2d));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_0x495b(){const _0x520e4d=['sqls','1886844GjuSAf','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','boolean','appCode','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','5CYjYwX','hash','bool','sqlName','length','lockKey','All\x20SQL\x20queries\x20are\x20in\x20sync.','relativePath','1973830IjYsJr','sqlRoot','236337HKhkhT','sqlCode','path','974433KELijd','push','read','732016kcxPQq','status','paging','28dyDPQC','tableData','map','9nSghrK','totalCount','479714ubwJxk','sql','1049996SwWlTA'];a132_0x495b=function(){return _0x520e4d;};return a132_0x495b();}async function fetchAllSqlCodes(_0x2d2993){const _0x2fe846=a132_0x4c6e,_0x36b5fb=[];let _0x4b3d73=0x1;while(!![]){const _0x3ca05b=await listSqlQueries(_0x2d2993,{'currentPage':_0x4b3d73,'pageSize':PAGE_SIZE}),_0x10a876=_0x3ca05b[_0x2fe846(0x14d)]??[];_0x36b5fb[_0x2fe846(0x147)](..._0x10a876['map'](_0x3a63bb=>_0x3a63bb[_0x2fe846(0x144)]));if(_0x10a876[_0x2fe846(0x13d)]===0x0)break;const _0x5b3584=_0x3ca05b[_0x2fe846(0x14b)]?.[_0x2fe846(0x150)];if(_0x5b3584!=null?_0x36b5fb['length']>=_0x5b3584:_0x10a876[_0x2fe846(0x13d)]<PAGE_SIZE)break;_0x4b3d73++;}return _0x36b5fb;}export const sqlStatus={'service':a132_0x3f25ed(0x152),'command':a132_0x3f25ed(0x14a),'description':a132_0x3f25ed(0x138),'risk':a132_0x3f25ed(0x148),'flags':[{'name':'remote','type':a132_0x3f25ed(0x136),'description':a132_0x3f25ed(0x135)}],async 'execute'(_0x30d7d1){const _0x1056f6=a132_0x3f25ed,_0x349a92=loadSqlProjectConfig(_0x30d7d1[_0x1056f6(0x137)]),_0x185f25=await readSqlLockFile(_0x349a92['lockFilePath']),{appLock:_0x5ed1b9}=ensureSqlLockScope(_0x185f25??createEmptySqlLock(),_0x349a92[_0x1056f6(0x137)],_0x349a92[_0x1056f6(0x142)],'status'),_0x249002=await scanLocalSqlQueries(_0x349a92),_0x1f60d2=[],_0x31f096=[],_0x38cfd2=[],_0x6c6acd=[],_0x366226=new Set(_0x249002[_0x1056f6(0x14e)](_0x361b53=>_0x361b53[_0x1056f6(0x13e)]));for(const _0x1dbe71 of _0x249002){const _0x513c4e=await computeSqlFileHash(_0x1dbe71['filePath']),_0x3fe3a1=_0x5ed1b9[_0x1056f6(0x154)][_0x1dbe71['lockKey']],_0x5d9637=!!_0x3fe3a1&&_0x3fe3a1[_0x1056f6(0x145)]!==_0x1dbe71[_0x1056f6(0x140)],_0x361a6a=!!_0x3fe3a1&&!!_0x1dbe71[_0x1056f6(0x13c)]&&_0x3fe3a1['sqlName']!==_0x1dbe71['sqlName'];if(!_0x3fe3a1)_0x1f60d2['push'](_0x1dbe71[_0x1056f6(0x13e)]);else _0x3fe3a1[_0x1056f6(0x13a)]!==_0x513c4e||_0x5d9637||_0x361a6a?_0x31f096[_0x1056f6(0x147)](_0x1dbe71[_0x1056f6(0x13e)]):_0x38cfd2[_0x1056f6(0x147)](_0x1dbe71[_0x1056f6(0x13e)]);}for(const _0x5573a9 of Object['keys'](_0x5ed1b9[_0x1056f6(0x154)])){!_0x366226['has'](_0x5573a9)&&_0x6c6acd['push'](_0x5573a9);}const _0x43d14b=[];if(_0x30d7d1[_0x1056f6(0x13b)]('remote')){const _0x50cf2c=await fetchAllSqlCodes(_0x30d7d1[_0x1056f6(0x137)]);for(const _0x26a250 of _0x50cf2c){!_0x366226['has'](_0x26a250)&&!_0x5ed1b9[_0x1056f6(0x154)][_0x26a250]&&_0x43d14b['push'](_0x26a250);}}const _0x276f8d=_0x1f60d2[_0x1056f6(0x13d)]===0x0&&_0x31f096[_0x1056f6(0x13d)]===0x0&&_0x6c6acd[_0x1056f6(0x13d)]===0x0&&_0x43d14b[_0x1056f6(0x13d)]===0x0;return{'ok':!![],'data':{'added':_0x1f60d2,'modified':_0x31f096,'missing':_0x6c6acd,'unchanged':_0x38cfd2,'remoteOnly':_0x43d14b},'message':_0x276f8d?_0x1056f6(0x13f):_0x1f60d2[_0x1056f6(0x13d)]+'\x20added,\x20'+_0x31f096['length']+'\x20modified,\x20'+_0x6c6acd[_0x1056f6(0x13d)]+'\x20missing,\x20'+_0x38cfd2['length']+'\x20unchanged'+(_0x43d14b[_0x1056f6(0x13d)]>0x0?',\x20'+_0x43d14b[_0x1056f6(0x13d)]+'\x20remote-only':'')};}};
1
+ const a132_0x4ed412=a132_0x2ade;(function(_0x4bdc38,_0x1dc4f7){const _0x2c981f=a132_0x2ade,_0x1671ca=_0x4bdc38();while(!![]){try{const _0x409436=-parseInt(_0x2c981f(0x1b0))/0x1+parseInt(_0x2c981f(0x1a8))/0x2*(-parseInt(_0x2c981f(0x1a0))/0x3)+-parseInt(_0x2c981f(0x1aa))/0x4*(-parseInt(_0x2c981f(0x1ba))/0x5)+-parseInt(_0x2c981f(0x1b2))/0x6+parseInt(_0x2c981f(0x1ad))/0x7*(-parseInt(_0x2c981f(0x1c1))/0x8)+-parseInt(_0x2c981f(0x1b9))/0x9*(-parseInt(_0x2c981f(0x1a5))/0xa)+-parseInt(_0x2c981f(0x1b5))/0xb*(-parseInt(_0x2c981f(0x1b1))/0xc);if(_0x409436===_0x1dc4f7)break;else _0x1671ca['push'](_0x1671ca['shift']());}catch(_0x599079){_0x1671ca['push'](_0x1671ca['shift']());}}}(a132_0x5d7a,0xc41f0));function a132_0x5d7a(){const _0x3fbca4=['4654524eXHRwy','\x20added,\x20','paging','5254469MNEnHK','boolean','map','lockFilePath','27kTpoZt','10AnHVIo','remote','read','status','keys','hash','sqlName','3056pYKWwY','relativePath','has','bool','totalCount','path','push','tableData','sqls','\x20modified,\x20','63DdcAQi','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','\x20remote-only','sqlRoot','350690MNLrqT','sqlCode','\x20missing,\x20','67118SIkUFL','sql','1859024oRxlUz','lockKey','appCode','896pBcmOE','\x20unchanged','length','135055XteDdO','36Olpinv'];a132_0x5d7a=function(){return _0x3fbca4;};return a132_0x5d7a();}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_0x2ade(_0x6c3c98,_0x5f4253){_0x6c3c98=_0x6c3c98-0x198;const _0x5d7ad4=a132_0x5d7a();let _0x2ade2c=_0x5d7ad4[_0x6c3c98];return _0x2ade2c;}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x19fbab){const _0x12da17=a132_0x2ade,_0x58f21e=[];let _0x132cda=0x1;while(!![]){const _0x1c9d3c=await listSqlQueries(_0x19fbab,{'currentPage':_0x132cda,'pageSize':PAGE_SIZE}),_0x2d5cb3=_0x1c9d3c[_0x12da17(0x19d)]??[];_0x58f21e['push'](..._0x2d5cb3[_0x12da17(0x1b7)](_0x436db5=>_0x436db5[_0x12da17(0x1a6)]));if(_0x2d5cb3[_0x12da17(0x1af)]===0x0)break;const _0x306bb3=_0x1c9d3c[_0x12da17(0x1b4)]?.[_0x12da17(0x19a)];if(_0x306bb3!=null?_0x58f21e[_0x12da17(0x1af)]>=_0x306bb3:_0x2d5cb3[_0x12da17(0x1af)]<PAGE_SIZE)break;_0x132cda++;}return _0x58f21e;}export const sqlStatus={'service':a132_0x4ed412(0x1a9),'command':a132_0x4ed412(0x1bd),'description':a132_0x4ed412(0x1a2),'risk':a132_0x4ed412(0x1bc),'flags':[{'name':a132_0x4ed412(0x1bb),'type':a132_0x4ed412(0x1b6),'description':a132_0x4ed412(0x1a1)}],async 'execute'(_0x37518c){const _0x3195db=a132_0x4ed412,_0x5afc5b=loadSqlProjectConfig(_0x37518c['appCode']),_0x32e011=await readSqlLockFile(_0x5afc5b[_0x3195db(0x1b8)]),{appLock:_0x3b9590}=ensureSqlLockScope(_0x32e011??createEmptySqlLock(),_0x5afc5b[_0x3195db(0x1ac)],_0x5afc5b[_0x3195db(0x1a4)],_0x3195db(0x1bd)),_0x13b2c9=await scanLocalSqlQueries(_0x5afc5b),_0x1a7b4a=[],_0x212eee=[],_0x5d4a87=[],_0x59c5a2=[],_0x2f9522=new Set(_0x13b2c9['map'](_0x4b69dc=>_0x4b69dc[_0x3195db(0x1ab)]));for(const _0x33b0aa of _0x13b2c9){const _0x259270=await computeSqlFileHash(_0x33b0aa['filePath']),_0x40baf8=_0x3b9590['sqls'][_0x33b0aa[_0x3195db(0x1ab)]],_0x224dd1=!!_0x40baf8&&_0x40baf8[_0x3195db(0x19b)]!==_0x33b0aa[_0x3195db(0x1c2)],_0x5459a1=!!_0x40baf8&&!!_0x33b0aa[_0x3195db(0x1c0)]&&_0x40baf8[_0x3195db(0x1c0)]!==_0x33b0aa[_0x3195db(0x1c0)];if(!_0x40baf8)_0x1a7b4a[_0x3195db(0x19c)](_0x33b0aa[_0x3195db(0x1ab)]);else _0x40baf8[_0x3195db(0x1bf)]!==_0x259270||_0x224dd1||_0x5459a1?_0x212eee[_0x3195db(0x19c)](_0x33b0aa[_0x3195db(0x1ab)]):_0x5d4a87[_0x3195db(0x19c)](_0x33b0aa[_0x3195db(0x1ab)]);}for(const _0x753f6b of Object[_0x3195db(0x1be)](_0x3b9590['sqls'])){!_0x2f9522[_0x3195db(0x198)](_0x753f6b)&&_0x59c5a2[_0x3195db(0x19c)](_0x753f6b);}const _0x5d895d=[];if(_0x37518c[_0x3195db(0x199)]('remote')){const _0x51996f=await fetchAllSqlCodes(_0x37518c[_0x3195db(0x1ac)]);for(const _0x4c35af of _0x51996f){!_0x2f9522[_0x3195db(0x198)](_0x4c35af)&&!_0x3b9590[_0x3195db(0x19e)][_0x4c35af]&&_0x5d895d[_0x3195db(0x19c)](_0x4c35af);}}const _0x328fdf=_0x1a7b4a[_0x3195db(0x1af)]===0x0&&_0x212eee['length']===0x0&&_0x59c5a2[_0x3195db(0x1af)]===0x0&&_0x5d895d[_0x3195db(0x1af)]===0x0;return{'ok':!![],'data':{'added':_0x1a7b4a,'modified':_0x212eee,'missing':_0x59c5a2,'unchanged':_0x5d4a87,'remoteOnly':_0x5d895d},'message':_0x328fdf?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x1a7b4a[_0x3195db(0x1af)]+_0x3195db(0x1b3)+_0x212eee[_0x3195db(0x1af)]+_0x3195db(0x19f)+_0x59c5a2['length']+_0x3195db(0x1a7)+_0x5d4a87[_0x3195db(0x1af)]+_0x3195db(0x1ae)+(_0x5d895d[_0x3195db(0x1af)]>0x0?',\x20'+_0x5d895d['length']+_0x3195db(0x1a3):'')};}};
@@ -1 +1 @@
1
- const a133_0x36d20d=a133_0x2d98;(function(_0x39c7f7,_0x15b27c){const _0x4c12a2=a133_0x2d98,_0x3c9aee=_0x39c7f7();while(!![]){try{const _0x397ac0=-parseInt(_0x4c12a2(0x19a))/0x1*(-parseInt(_0x4c12a2(0x1b8))/0x2)+-parseInt(_0x4c12a2(0x1a6))/0x3+parseInt(_0x4c12a2(0x1b4))/0x4*(parseInt(_0x4c12a2(0x1bf))/0x5)+parseInt(_0x4c12a2(0x1a7))/0x6+-parseInt(_0x4c12a2(0x18f))/0x7*(parseInt(_0x4c12a2(0x1bd))/0x8)+parseInt(_0x4c12a2(0x1a0))/0x9*(-parseInt(_0x4c12a2(0x1aa))/0xa)+parseInt(_0x4c12a2(0x1b1))/0xb;if(_0x397ac0===_0x15b27c)break;else _0x3c9aee['push'](_0x3c9aee['shift']());}catch(_0x2e626a){_0x3c9aee['push'](_0x3c9aee['shift']());}}}(a133_0x5856,0x7a2b2));import{readFileSync,existsSync}from'node:fs';function a133_0x2d98(_0x52f69d,_0x472d73){_0x52f69d=_0x52f69d-0x18b;const _0x585639=a133_0x5856();let _0x2d98f8=_0x585639[_0x52f69d];return _0x2d98f8;}function a133_0x5856(){const _0x3f25aa=['isDangerous','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','148pnBXAr','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','from','sql','reason','2715112SZnUNL','Dataset\x20\x22','25ISduEI','schemaWarnings','split','read','isArray','7ZeTtMW','dbtableConfig','validation','map','tables','get','filter','tableName','fields','utf-8','file','11325DVLSYZ','str','Provide\x20--file\x20or\x20--sql','isSelectOnly','size','Table\x20\x22','8632539fdWSrX','\x22\x20not\x20found\x20in\x20any\x20dataset','flagMissing','push','toLowerCase','schema:','2541594wjPZkd','4410852VZWiDL','message','File\x20not\x20found:\x20','10smylwA','\x22\x20not\x20found\x20or\x20not\x20accessible','string','SQL\x20schema\x20validation','length','parameters','trim','4599353AlCUvt','valid','sqlType','523876DbmSuD','validate'];a133_0x5856=function(){return _0x3f25aa;};return a133_0x5856();}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';export const sqlValidate={'service':a133_0x36d20d(0x1bb),'command':a133_0x36d20d(0x1b5),'description':a133_0x36d20d(0x1b9),'risk':a133_0x36d20d(0x18d),'flags':[{'name':a133_0x36d20d(0x199),'type':a133_0x36d20d(0x1ac),'description':'Path\x20to\x20the\x20SQL\x20file\x20to\x20validate'},{'name':a133_0x36d20d(0x1bb),'type':'string','description':'Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'},{'name':'schemas','type':a133_0x36d20d(0x1ac),'description':a133_0x36d20d(0x1b7)}],async 'execute'(_0x4f4252){const _0x4f2918=a133_0x36d20d,_0x1d2c6c=_0x4f4252[_0x4f2918(0x19b)](_0x4f2918(0x199)),_0x162203=_0x4f4252[_0x4f2918(0x19b)]('sql');if(!_0x1d2c6c&&!_0x162203)throw CliErrors[_0x4f2918(0x1a2)](_0x4f2918(0x199),_0x4f2918(0x19c));let _0x53bce0;if(_0x1d2c6c){const _0x1926db=resolve(process['cwd'](),_0x1d2c6c);if(!existsSync(_0x1926db))throw CliErrors[_0x4f2918(0x191)](_0x4f2918(0x1a9)+_0x1926db);_0x53bce0=readFileSync(_0x1926db,_0x4f2918(0x198));}else _0x53bce0=_0x162203;const _0x3417b3=validateSql(_0x53bce0),_0x52b2bc={'valid':_0x3417b3[_0x4f2918(0x1b2)],'sqlType':_0x3417b3[_0x4f2918(0x1b3)]['type'],'isSelectOnly':_0x3417b3[_0x4f2918(0x1b3)][_0x4f2918(0x19d)],'isDangerous':_0x3417b3[_0x4f2918(0x1b3)][_0x4f2918(0x1b6)],'tables':_0x3417b3['tables'],'parameters':_0x3417b3[_0x4f2918(0x1af)],'message':_0x3417b3['message']};_0x3417b3[_0x4f2918(0x1b3)][_0x4f2918(0x1bc)]&&(_0x52b2bc[_0x4f2918(0x1bc)]=_0x3417b3[_0x4f2918(0x1b3)][_0x4f2918(0x1bc)]);const _0x4c6133=_0x4f4252['str']('schemas');if(_0x4c6133&&_0x3417b3[_0x4f2918(0x1b2)]){const _0x320a0a=_0x4c6133[_0x4f2918(0x18c)](',')[_0x4f2918(0x192)](_0x2c928d=>_0x2c928d[_0x4f2918(0x1b0)]())[_0x4f2918(0x195)](Boolean),_0xa1abd0=[],_0x1273a0=filterDbTableBackedDatasets(await listDatasets(_0x4f4252['appCode'])),_0x31111f=new Map(_0x1273a0[_0x4f2918(0x192)](_0x1a4823=>[_0x1a4823[_0x4f2918(0x190)]?.[_0x4f2918(0x196)]?.[_0x4f2918(0x1a4)](),_0x1a4823]));for(const _0x262571 of _0x3417b3[_0x4f2918(0x193)]){const _0x1a6e2b=_0x31111f[_0x4f2918(0x194)](_0x262571['toLowerCase']());!_0x1a6e2b&&_0xa1abd0['push'](_0x4f2918(0x19f)+_0x262571+_0x4f2918(0x1a1));}for(const _0x1c5340 of _0x320a0a){let _0x215a80;try{_0x215a80=await getDatasetDetail(_0x1c5340);}catch{_0xa1abd0[_0x4f2918(0x1a3)](_0x4f2918(0x1be)+_0x1c5340+_0x4f2918(0x1ab));continue;}assertDatasetIsDbTableBacked(_0x215a80,_0x4f2918(0x1ad));const _0x108597=Array[_0x4f2918(0x18e)](_0x215a80[_0x4f2918(0x197)])?_0x215a80['fields']:[],_0x422ae8=new Set(_0x108597[_0x4f2918(0x192)](_0x3ab18e=>_0x3ab18e['name']?.['toLowerCase']())),_0x3e8f9a=_0x215a80['dbtableConfig']?.[_0x4f2918(0x196)]||_0x215a80['tableName']||_0x1c5340;_0x52b2bc[_0x4f2918(0x1a5)+_0x3e8f9a]={'code':_0x1c5340,'tableName':_0x3e8f9a,'fieldCount':_0x422ae8[_0x4f2918(0x19e)],'fields':Array[_0x4f2918(0x1ba)](_0x422ae8)};}_0xa1abd0[_0x4f2918(0x1ae)]>0x0&&(_0x52b2bc[_0x4f2918(0x18b)]=_0xa1abd0);}return{'ok':_0x3417b3['valid'],'data':_0x52b2bc,'message':_0x3417b3[_0x4f2918(0x1a8)]};}};
1
+ const a133_0x1701fd=a133_0x68d8;(function(_0x2a4ec3,_0x4bded2){const _0x38ac9f=a133_0x68d8,_0x4bb6b0=_0x2a4ec3();while(!![]){try{const _0x47c287=-parseInt(_0x38ac9f(0x17f))/0x1*(-parseInt(_0x38ac9f(0x198))/0x2)+parseInt(_0x38ac9f(0x17a))/0x3+-parseInt(_0x38ac9f(0x1a0))/0x4+parseInt(_0x38ac9f(0x190))/0x5+parseInt(_0x38ac9f(0x180))/0x6+-parseInt(_0x38ac9f(0x192))/0x7+-parseInt(_0x38ac9f(0x193))/0x8*(parseInt(_0x38ac9f(0x183))/0x9);if(_0x47c287===_0x4bded2)break;else _0x4bb6b0['push'](_0x4bb6b0['shift']());}catch(_0xd1b855){_0x4bb6b0['push'](_0x4bb6b0['shift']());}}}(a133_0x3e62,0x5e6d7));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';function a133_0x68d8(_0x20a30d,_0x3848bb){_0x20a30d=_0x20a30d-0x17a;const _0x3e6206=a133_0x3e62();let _0x68d84b=_0x3e6206[_0x20a30d];return _0x68d84b;}import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';function a133_0x3e62(){const _0xee7fa=['valid','length','from','Provide\x20--file\x20or\x20--sql','trim','fields','reason','utf-8','validation','2661480nCynPT','Table\x20\x22','4876543PUDyOd','16jrLuKj','push','split','isDangerous','cwd','6CFVmUE','size','tables','appCode','flagMissing','schemaWarnings','SQL\x20schema\x20validation','toLowerCase','2283616rZjQbk','string','validate','schemas','filter','Dataset\x20\x22','tableName','sqlType','dbtableConfig','str','file','2241195BdXevt','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','get','message','216450ZqwEOp','757338nUJtSL','map','File\x20not\x20found:\x20','1802727xgKOWO','sql','type','isArray'];a133_0x3e62=function(){return _0xee7fa;};return a133_0x3e62();}export const sqlValidate={'service':a133_0x1701fd(0x184),'command':a133_0x1701fd(0x1a2),'description':a133_0x1701fd(0x17c),'risk':'read','flags':[{'name':a133_0x1701fd(0x1aa),'type':a133_0x1701fd(0x1a1),'description':'Path\x20to\x20the\x20SQL\x20file\x20to\x20validate'},{'name':a133_0x1701fd(0x184),'type':a133_0x1701fd(0x1a1),'description':a133_0x1701fd(0x17b)},{'name':a133_0x1701fd(0x1a3),'type':'string','description':'Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against'}],async 'execute'(_0xe5f604){const _0x4d65bc=a133_0x1701fd,_0x2cc82c=_0xe5f604[_0x4d65bc(0x1a9)](_0x4d65bc(0x1aa)),_0x2d480a=_0xe5f604[_0x4d65bc(0x1a9)](_0x4d65bc(0x184));if(!_0x2cc82c&&!_0x2d480a)throw CliErrors[_0x4d65bc(0x19c)]('file',_0x4d65bc(0x18a));let _0x5a0a42;if(_0x2cc82c){const _0x207b56=resolve(process[_0x4d65bc(0x197)](),_0x2cc82c);if(!existsSync(_0x207b56))throw CliErrors[_0x4d65bc(0x18f)](_0x4d65bc(0x182)+_0x207b56);_0x5a0a42=readFileSync(_0x207b56,_0x4d65bc(0x18e));}else _0x5a0a42=_0x2d480a;const _0xbbb99e=validateSql(_0x5a0a42),_0x490273={'valid':_0xbbb99e[_0x4d65bc(0x187)],'sqlType':_0xbbb99e['sqlType'][_0x4d65bc(0x185)],'isSelectOnly':_0xbbb99e[_0x4d65bc(0x1a7)]['isSelectOnly'],'isDangerous':_0xbbb99e[_0x4d65bc(0x1a7)][_0x4d65bc(0x196)],'tables':_0xbbb99e[_0x4d65bc(0x19a)],'parameters':_0xbbb99e['parameters'],'message':_0xbbb99e[_0x4d65bc(0x17e)]};_0xbbb99e[_0x4d65bc(0x1a7)]['reason']&&(_0x490273['reason']=_0xbbb99e[_0x4d65bc(0x1a7)][_0x4d65bc(0x18d)]);const _0x5058c1=_0xe5f604[_0x4d65bc(0x1a9)](_0x4d65bc(0x1a3));if(_0x5058c1&&_0xbbb99e[_0x4d65bc(0x187)]){const _0x138030=_0x5058c1[_0x4d65bc(0x195)](',')[_0x4d65bc(0x181)](_0x411170=>_0x411170[_0x4d65bc(0x18b)]())[_0x4d65bc(0x1a4)](Boolean),_0x3ec4c3=[],_0x7e2f65=filterDbTableBackedDatasets(await listDatasets(_0xe5f604[_0x4d65bc(0x19b)])),_0x175707=new Map(_0x7e2f65[_0x4d65bc(0x181)](_0x236506=>[_0x236506[_0x4d65bc(0x1a8)]?.[_0x4d65bc(0x1a6)]?.['toLowerCase'](),_0x236506]));for(const _0x3af3e5 of _0xbbb99e[_0x4d65bc(0x19a)]){const _0x400108=_0x175707[_0x4d65bc(0x17d)](_0x3af3e5[_0x4d65bc(0x19f)]());!_0x400108&&_0x3ec4c3[_0x4d65bc(0x194)](_0x4d65bc(0x191)+_0x3af3e5+'\x22\x20not\x20found\x20in\x20any\x20dataset');}for(const _0x1036fb of _0x138030){let _0x323bbd;try{_0x323bbd=await getDatasetDetail(_0x1036fb);}catch{_0x3ec4c3[_0x4d65bc(0x194)](_0x4d65bc(0x1a5)+_0x1036fb+'\x22\x20not\x20found\x20or\x20not\x20accessible');continue;}assertDatasetIsDbTableBacked(_0x323bbd,_0x4d65bc(0x19e));const _0x1ca0fd=Array[_0x4d65bc(0x186)](_0x323bbd[_0x4d65bc(0x18c)])?_0x323bbd[_0x4d65bc(0x18c)]:[],_0x188af7=new Set(_0x1ca0fd[_0x4d65bc(0x181)](_0xcfc5ac=>_0xcfc5ac['name']?.['toLowerCase']())),_0x225299=_0x323bbd[_0x4d65bc(0x1a8)]?.[_0x4d65bc(0x1a6)]||_0x323bbd[_0x4d65bc(0x1a6)]||_0x1036fb;_0x490273['schema:'+_0x225299]={'code':_0x1036fb,'tableName':_0x225299,'fieldCount':_0x188af7[_0x4d65bc(0x199)],'fields':Array[_0x4d65bc(0x189)](_0x188af7)};}_0x3ec4c3[_0x4d65bc(0x188)]>0x0&&(_0x490273[_0x4d65bc(0x19d)]=_0x3ec4c3);}return{'ok':_0xbbb99e[_0x4d65bc(0x187)],'data':_0x490273,'message':_0xbbb99e[_0x4d65bc(0x17e)]};}};
@@ -1 +1 @@
1
- const a134_0x3d4f3b=a134_0x2ca3;(function(_0x24f6cf,_0x24ee34){const _0x14151b=a134_0x2ca3,_0x406f5d=_0x24f6cf();while(!![]){try{const _0x28b4a8=parseInt(_0x14151b(0x175))/0x1*(-parseInt(_0x14151b(0x182))/0x2)+-parseInt(_0x14151b(0x181))/0x3*(parseInt(_0x14151b(0x188))/0x4)+parseInt(_0x14151b(0x167))/0x5*(parseInt(_0x14151b(0x17a))/0x6)+parseInt(_0x14151b(0x174))/0x7+parseInt(_0x14151b(0x18b))/0x8*(-parseInt(_0x14151b(0x18c))/0x9)+-parseInt(_0x14151b(0x18f))/0xa+parseInt(_0x14151b(0x17e))/0xb*(parseInt(_0x14151b(0x173))/0xc);if(_0x28b4a8===_0x24ee34)break;else _0x406f5d['push'](_0x406f5d['shift']());}catch(_0x5205dd){_0x406f5d['push'](_0x406f5d['shift']());}}}(a134_0x2e80,0xe2647));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_0x3d4f3b(0x169),'accessKey',a134_0x3d4f3b(0x16e),'format',a134_0x3d4f3b(0x179)];export const TOP_LEVEL_CONFIG_KEYS=new Set(['appcode','env','locale',a134_0x3d4f3b(0x171),'cookie',a134_0x3d4f3b(0x186),a134_0x3d4f3b(0x16d)]);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x478390){const _0x58c143=a134_0x3d4f3b;return[..._0x478390][_0x58c143(0x172)](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}export function isTopLevelConfigKey(_0x109ddf){const _0x4e7bef=a134_0x3d4f3b;return TOP_LEVEL_CONFIG_KEYS[_0x4e7bef(0x16b)](_0x109ddf);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}function a134_0x2ca3(_0x2b660d,_0xdec99a){_0x2b660d=_0x2b660d-0x165;const _0x2e80a3=a134_0x2e80();let _0x2ca3b5=_0x2e80a3[_0x2b660d];return _0x2ca3b5;}export function getConfigCommandKeyDescription(){const _0x28fb25=a134_0x3d4f3b;return _0x28fb25(0x16a)+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':a134_0x3d4f3b(0x17d),'apiDir':a134_0x3d4f3b(0x16d),'cookie':'cookie','accessKey':a134_0x3d4f3b(0x186),'defaultFormat':a134_0x3d4f3b(0x171),'pageSize':a134_0x3d4f3b(0x177),'riskLevel':a134_0x3d4f3b(0x179),'locale':'locale'};function a134_0x2e80(){const _0x48b36a=['cookie','Config\x20key\x20(','has','app','apiDir','locale','appcode','inherit','format','join','12RbatEI','8010954QkRVsi','4VFsnRs','en-US','pageSize','Auth\x20cookie','riskLevel','90OyepKv','length','defaultApp','env','45099032EssKHW','Default\x20page\x20size','string','213297NLVxBT','837048wFWxgQ','defaultFormat','apps','Risk\x20level','accessKey','zh-CN','20PPnrPG','number','Locale','3568JBmVHt','31869SyYZou','Access\x20key','keys','17914990qcjPSf','Target\x20environment','Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','toLowerCase','361115EVYdfN','map'];a134_0x2e80=function(){return _0x48b36a;};return a134_0x2e80();}export function getAppProfileFlagDefs(){const _0x229475=a134_0x3d4f3b;return[{'name':_0x229475(0x17d),'type':_0x229475(0x180),'description':_0x229475(0x190),'enum':[...RABETBASE_ENV_VALUES]},{'name':_0x229475(0x16d),'type':'string','description':'API\x20directory\x20path'},{'name':_0x229475(0x169),'type':_0x229475(0x180),'description':_0x229475(0x178),'hidden':!![]},{'name':_0x229475(0x186),'type':'string','description':_0x229475(0x18d),'hidden':!![]},{'name':_0x229475(0x183),'type':_0x229475(0x180),'description':_0x229475(0x165),'enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':_0x229475(0x177),'type':_0x229475(0x189),'description':_0x229475(0x17f)},{'name':_0x229475(0x179),'type':_0x229475(0x180),'description':_0x229475(0x185),'enum':[...RISK_LEVEL_VALUES]},{'name':_0x229475(0x16e),'type':'string','description':_0x229475(0x18a)}];}export function collectAppProfileOverrides(_0x487549){const _0x22ebc1=a134_0x3d4f3b,_0xb55c8c={};for(const [_0x161832,_0x97204b]of Object['entries'](APP_PROFILE_FLAG_KEY_MAP)){const _0x40d6ee=_0x487549(_0x161832);if(!_0x40d6ee)continue;_0xb55c8c[_0x97204b]=_0x97204b===_0x22ebc1(0x177)?Number(_0x40d6ee):_0x40d6ee;}return _0xb55c8c;}export function buildAppProfileListFields(_0x3133a2){const _0x4aac27=a134_0x3d4f3b;return{'env':_0x3133a2['env']??null,'apiDir':_0x3133a2[_0x4aac27(0x16d)]??null,'hasCookie':!!_0x3133a2['cookie'],'hasAccessKey':!!_0x3133a2['accessKey'],'format':_0x3133a2['format']??null,'pageSize':_0x3133a2[_0x4aac27(0x177)]??null,'riskLevel':_0x3133a2[_0x4aac27(0x179)]??null,'locale':_0x3133a2[_0x4aac27(0x16e)]??null};}export function buildAppDoctorFields(_0x421e62,_0x37eb4e){const _0x1162fb=a134_0x3d4f3b;return{'env':{'value':_0x421e62[_0x1162fb(0x17d)]||_0x37eb4e['env'],'source':_0x421e62[_0x1162fb(0x17d)]?_0x1162fb(0x16c):'inherit'},'apiDir':{'value':_0x421e62['apiDir']||_0x37eb4e['apiDir'],'source':_0x421e62[_0x1162fb(0x16d)]?'app':_0x1162fb(0x170)},'cookie':{'value':_0x421e62[_0x1162fb(0x169)]||_0x37eb4e['cookie'],'source':_0x421e62[_0x1162fb(0x169)]?'app':_0x1162fb(0x170)},'accessKey':{'value':_0x421e62[_0x1162fb(0x186)]||_0x37eb4e[_0x1162fb(0x186)],'source':_0x421e62[_0x1162fb(0x186)]?_0x1162fb(0x16c):_0x1162fb(0x170)}};}export function buildCanonicalAppConfig(_0x50fe2c,_0x34b76f){const _0x5d3d88=a134_0x3d4f3b,_0x1f124c=_0x50fe2c[_0x5d3d88(0x168)](_0x2bf535=>String(_0x2bf535||'')['trim']())['filter'](Boolean);if(_0x1f124c[_0x5d3d88(0x17b)]===0x0)return{};const _0x501d70={};for(const _0x6fc2fe of _0x1f124c){_0x501d70[_0x6fc2fe]=_0x34b76f?{'appcode':_0x6fc2fe,'env':_0x34b76f}:{'appcode':_0x6fc2fe};}return{'apps':_0x501d70,'defaultApp':_0x1f124c[0x0]};}export function buildCanonicalProjectConfig(_0x381811,_0x117b07){const _0x40754f=a134_0x3d4f3b,{appCodes:appCodes=[],env:_0x26f19a,metadata:_0xc0a036}=_0x117b07,_0x4840d1={..._0x381811,..._0xc0a036||{}};delete _0x4840d1[_0x40754f(0x16f)],delete _0x4840d1[_0x40754f(0x16c)];if(_0x26f19a)_0x4840d1[_0x40754f(0x17d)]=_0x26f19a;else!_0x4840d1[_0x40754f(0x17d)]&&(_0x4840d1['env']=DEFAULT_CONFIG_VALUES['env']);const _0x1ed527=buildCanonicalAppConfig(appCodes,_0x4840d1[_0x40754f(0x17d)]);return Object[_0x40754f(0x18e)](_0x1ed527)[_0x40754f(0x17b)]>0x0&&(_0x4840d1[_0x40754f(0x184)]=_0x1ed527[_0x40754f(0x184)],_0x4840d1[_0x40754f(0x17c)]=_0x1ed527[_0x40754f(0x17c)]),_0x4840d1;}const LOCALE_MAP={'zh':'zh-CN','zh-cn':a134_0x3d4f3b(0x187),'zh_cn':a134_0x3d4f3b(0x187),'en':a134_0x3d4f3b(0x176),'en-us':a134_0x3d4f3b(0x176),'en_us':a134_0x3d4f3b(0x176)};export function normalizeLocale(_0x5303d1){const _0x165332=a134_0x3d4f3b;if(!_0x5303d1)return null;return LOCALE_MAP[_0x5303d1[_0x165332(0x166)]()]??null;}
1
+ const a134_0x3ce4d5=a134_0x465d;(function(_0x595389,_0x414695){const _0x480c89=a134_0x465d,_0x379779=_0x595389();while(!![]){try{const _0x4a86b5=-parseInt(_0x480c89(0xbf))/0x1*(parseInt(_0x480c89(0xa2))/0x2)+parseInt(_0x480c89(0xb0))/0x3*(parseInt(_0x480c89(0xa6))/0x4)+parseInt(_0x480c89(0xaf))/0x5+-parseInt(_0x480c89(0xb4))/0x6*(-parseInt(_0x480c89(0xc4))/0x7)+-parseInt(_0x480c89(0xbb))/0x8*(-parseInt(_0x480c89(0xab))/0x9)+parseInt(_0x480c89(0xa5))/0xa*(parseInt(_0x480c89(0xc2))/0xb)+-parseInt(_0x480c89(0xa3))/0xc;if(_0x4a86b5===_0x414695)break;else _0x379779['push'](_0x379779['shift']());}catch(_0x3f30a2){_0x379779['push'](_0x379779['shift']());}}}(a134_0x46aa,0x717dd));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=['cookie',a134_0x3ce4d5(0xb8),a134_0x3ce4d5(0xa0),a134_0x3ce4d5(0xac),a134_0x3ce4d5(0xb7)];export const TOP_LEVEL_CONFIG_KEYS=new Set([a134_0x3ce4d5(0xbd),'env',a134_0x3ce4d5(0xa0),a134_0x3ce4d5(0xac),'cookie',a134_0x3ce4d5(0xb8),a134_0x3ce4d5(0xc0)]);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x49b4a4){return[..._0x49b4a4]['join'](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}export function isTopLevelConfigKey(_0x41b3c9){const _0x14e97c=a134_0x3ce4d5;return TOP_LEVEL_CONFIG_KEYS[_0x14e97c(0xa7)](_0x41b3c9);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}export function getConfigCommandKeyDescription(){return'Config\x20key\x20('+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':a134_0x3ce4d5(0xba),'apiDir':'apiDir','cookie':a134_0x3ce4d5(0xc1),'accessKey':a134_0x3ce4d5(0xb8),'defaultFormat':a134_0x3ce4d5(0xac),'pageSize':a134_0x3ce4d5(0xbc),'riskLevel':a134_0x3ce4d5(0xb7),'locale':'locale'};export function getAppProfileFlagDefs(){const _0x58ad88=a134_0x3ce4d5;return[{'name':_0x58ad88(0xba),'type':_0x58ad88(0xad),'description':_0x58ad88(0xbe),'enum':[...RABETBASE_ENV_VALUES]},{'name':_0x58ad88(0xc0),'type':_0x58ad88(0xad),'description':_0x58ad88(0x9f)},{'name':_0x58ad88(0xc1),'type':'string','description':_0x58ad88(0xb5),'hidden':!![]},{'name':'accessKey','type':_0x58ad88(0xad),'description':'Access\x20key','hidden':!![]},{'name':'defaultFormat','type':_0x58ad88(0xad),'description':_0x58ad88(0xa9),'enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':'pageSize','type':_0x58ad88(0xb9),'description':_0x58ad88(0xa4)},{'name':'riskLevel','type':'string','description':_0x58ad88(0xc5),'enum':[...RISK_LEVEL_VALUES]},{'name':'locale','type':_0x58ad88(0xad),'description':_0x58ad88(0xa8)}];}export function collectAppProfileOverrides(_0x349a8d){const _0x17ae53=a134_0x3ce4d5,_0x2416d9={};for(const [_0x54ad4e,_0x303a8c]of Object[_0x17ae53(0xc7)](APP_PROFILE_FLAG_KEY_MAP)){const _0x4992aa=_0x349a8d(_0x54ad4e);if(!_0x4992aa)continue;_0x2416d9[_0x303a8c]=_0x303a8c===_0x17ae53(0xbc)?Number(_0x4992aa):_0x4992aa;}return _0x2416d9;}function a134_0x465d(_0x1bf94c,_0x5e8727){_0x1bf94c=_0x1bf94c-0x9f;const _0x46aab0=a134_0x46aa();let _0x465ddf=_0x46aab0[_0x1bf94c];return _0x465ddf;}export function buildAppProfileListFields(_0x32e92e){const _0xd6c303=a134_0x3ce4d5;return{'env':_0x32e92e[_0xd6c303(0xba)]??null,'apiDir':_0x32e92e[_0xd6c303(0xc0)]??null,'hasCookie':!!_0x32e92e[_0xd6c303(0xc1)],'hasAccessKey':!!_0x32e92e['accessKey'],'format':_0x32e92e['format']??null,'pageSize':_0x32e92e[_0xd6c303(0xbc)]??null,'riskLevel':_0x32e92e[_0xd6c303(0xb7)]??null,'locale':_0x32e92e[_0xd6c303(0xa0)]??null};}export function buildAppDoctorFields(_0x2c9e96,_0x2a7ecf){const _0x49a893=a134_0x3ce4d5;return{'env':{'value':_0x2c9e96[_0x49a893(0xba)]||_0x2a7ecf[_0x49a893(0xba)],'source':_0x2c9e96[_0x49a893(0xba)]?'app':'inherit'},'apiDir':{'value':_0x2c9e96[_0x49a893(0xc0)]||_0x2a7ecf[_0x49a893(0xc0)],'source':_0x2c9e96[_0x49a893(0xc0)]?_0x49a893(0xb6):'inherit'},'cookie':{'value':_0x2c9e96[_0x49a893(0xc1)]||_0x2a7ecf[_0x49a893(0xc1)],'source':_0x2c9e96[_0x49a893(0xc1)]?_0x49a893(0xb6):_0x49a893(0xb1)},'accessKey':{'value':_0x2c9e96[_0x49a893(0xb8)]||_0x2a7ecf[_0x49a893(0xb8)],'source':_0x2c9e96[_0x49a893(0xb8)]?'app':'inherit'}};}function a134_0x46aa(){const _0x5259a9=['cookie','2177659NexmNq','filter','5873ZynsWZ','Risk\x20level','map','entries','API\x20directory\x20path','locale','defaultApp','4768AWlQtS','5791764gsbvtV','Default\x20page\x20size','10JVNWpf','4Pzwdzp','has','Locale','Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','keys','113193YyudWj','format','string','apps','3753225IivKkn','130908WCHUWA','inherit','toLowerCase','trim','954NfaGhR','Auth\x20cookie','app','riskLevel','accessKey','number','env','8rOazeJ','pageSize','appcode','Target\x20environment','80xGLBra','apiDir'];a134_0x46aa=function(){return _0x5259a9;};return a134_0x46aa();}export function buildCanonicalAppConfig(_0x459d85,_0x5b453e){const _0x342a92=a134_0x3ce4d5,_0x52455d=_0x459d85[_0x342a92(0xc6)](_0x1eee54=>String(_0x1eee54||'')[_0x342a92(0xb3)]())[_0x342a92(0xc3)](Boolean);if(_0x52455d['length']===0x0)return{};const _0x1228e3={};for(const _0x55fe78 of _0x52455d){_0x1228e3[_0x55fe78]=_0x5b453e?{'appcode':_0x55fe78,'env':_0x5b453e}:{'appcode':_0x55fe78};}return{'apps':_0x1228e3,'defaultApp':_0x52455d[0x0]};}export function buildCanonicalProjectConfig(_0x51666c,_0xddaf81){const _0x3a04f7=a134_0x3ce4d5,{appCodes:appCodes=[],env:_0x25d312,metadata:_0x569403}=_0xddaf81,_0x598960={..._0x51666c,..._0x569403||{}};delete _0x598960[_0x3a04f7(0xbd)],delete _0x598960[_0x3a04f7(0xb6)];if(_0x25d312)_0x598960[_0x3a04f7(0xba)]=_0x25d312;else!_0x598960['env']&&(_0x598960[_0x3a04f7(0xba)]=DEFAULT_CONFIG_VALUES[_0x3a04f7(0xba)]);const _0x3a14b4=buildCanonicalAppConfig(appCodes,_0x598960[_0x3a04f7(0xba)]);return Object[_0x3a04f7(0xaa)](_0x3a14b4)['length']>0x0&&(_0x598960[_0x3a04f7(0xae)]=_0x3a14b4['apps'],_0x598960[_0x3a04f7(0xa1)]=_0x3a14b4[_0x3a04f7(0xa1)]),_0x598960;}const LOCALE_MAP={'zh':'zh-CN','zh-cn':'zh-CN','zh_cn':'zh-CN','en':'en-US','en-us':'en-US','en_us':'en-US'};export function normalizeLocale(_0x2468f9){const _0xc1f633=a134_0x3ce4d5;if(!_0x2468f9)return null;return LOCALE_MAP[_0x2468f9[_0xc1f633(0xb2)]()]??null;}