@lovrabet/rabetbase-cli 2.1.6 → 2.1.7-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) 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/delete.js +1 -0
  52. package/lib/commands/dataset/detail.js +1 -1
  53. package/lib/commands/dataset/index.js +1 -1
  54. package/lib/commands/dataset/link-create.js +1 -0
  55. package/lib/commands/dataset/link-delete.js +1 -0
  56. package/lib/commands/dataset/link-shared.js +1 -0
  57. package/lib/commands/dataset/link-update.js +1 -0
  58. package/lib/commands/dataset/links.js +1 -1
  59. package/lib/commands/dataset/list.js +1 -1
  60. package/lib/commands/dataset/operations.js +1 -1
  61. package/lib/commands/db/analyze-cancel.js +1 -1
  62. package/lib/commands/db/analyze-start.js +1 -1
  63. package/lib/commands/db/analyze-status.js +1 -1
  64. package/lib/commands/db/create.js +1 -1
  65. package/lib/commands/db/delete.js +1 -1
  66. package/lib/commands/db/detail.js +1 -1
  67. package/lib/commands/db/diff.js +1 -1
  68. package/lib/commands/db/index.js +1 -1
  69. package/lib/commands/db/list.js +1 -1
  70. package/lib/commands/db/shared.js +1 -1
  71. package/lib/commands/db/tables.js +1 -1
  72. package/lib/commands/db/test.js +1 -1
  73. package/lib/commands/db/update.js +1 -1
  74. package/lib/commands/doctor.js +1 -1
  75. package/lib/commands/init/index.js +1 -1
  76. package/lib/commands/issue/index.js +1 -0
  77. package/lib/commands/issue/report.js +1 -0
  78. package/lib/commands/logs/index.js +1 -1
  79. package/lib/commands/menu/index.js +1 -1
  80. package/lib/commands/menu/shared/compare-table.js +1 -1
  81. package/lib/commands/menu/shared/index.js +1 -1
  82. package/lib/commands/menu/shared/inquirer.js +1 -1
  83. package/lib/commands/menu/shared/local-pages.js +1 -1
  84. package/lib/commands/menu/shared/logic.js +1 -1
  85. package/lib/commands/menu/shared/service.js +1 -1
  86. package/lib/commands/menu/shared/sync-core.js +1 -1
  87. package/lib/commands/menu/shared/update-core.js +1 -1
  88. package/lib/commands/menu/shared/valid-url.js +1 -1
  89. package/lib/commands/menu/sync.js +1 -1
  90. package/lib/commands/menu/update.js +1 -1
  91. package/lib/commands/page/generate-start.js +1 -1
  92. package/lib/commands/page/generate-status.js +1 -1
  93. package/lib/commands/page/index.js +1 -1
  94. package/lib/commands/page/pull.js +1 -1
  95. package/lib/commands/page/push.js +1 -1
  96. package/lib/commands/page/shared.js +1 -1
  97. package/lib/commands/page/standard-page-status.js +1 -1
  98. package/lib/commands/page/sync.js +1 -1
  99. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  100. package/lib/commands/project/create/format-elapsed.js +1 -1
  101. package/lib/commands/project/create/main.js +1 -1
  102. package/lib/commands/project/create/non-interactive.js +1 -1
  103. package/lib/commands/project/create/project-template-path.js +1 -1
  104. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  105. package/lib/commands/project/create/use-format-code.js +1 -1
  106. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  107. package/lib/commands/project/index.js +1 -1
  108. package/lib/commands/project/init.js +1 -1
  109. package/lib/commands/project/upgrade.js +1 -1
  110. package/lib/commands/registry.js +1 -1
  111. package/lib/commands/run/index.js +1 -1
  112. package/lib/commands/schema.js +1 -1
  113. package/lib/commands/skill/index.js +1 -1
  114. package/lib/commands/sql/create.js +1 -1
  115. package/lib/commands/sql/delete.js +1 -1
  116. package/lib/commands/sql/detail.js +1 -1
  117. package/lib/commands/sql/exec.js +1 -1
  118. package/lib/commands/sql/index.js +1 -1
  119. package/lib/commands/sql/list.js +1 -1
  120. package/lib/commands/sql/pull.js +1 -1
  121. package/lib/commands/sql/push.js +1 -1
  122. package/lib/commands/sql/save.js +1 -1
  123. package/lib/commands/sql/shared.js +1 -1
  124. package/lib/commands/sql/status.js +1 -1
  125. package/lib/commands/sql/validate.js +1 -1
  126. package/lib/config/schema.js +1 -1
  127. package/lib/constant/cdn.js +1 -1
  128. package/lib/constant/cli.js +1 -1
  129. package/lib/constant/defaults.js +1 -1
  130. package/lib/constant/domain.js +1 -1
  131. package/lib/constant/env.js +1 -1
  132. package/lib/constant/output.js +1 -1
  133. package/lib/constant/paths.js +1 -1
  134. package/lib/constant/risk.js +1 -1
  135. package/lib/context.js +1 -1
  136. package/lib/core/alias-resolver.js +1 -1
  137. package/lib/core/api-client.js +1 -1
  138. package/lib/core/bff/config.js +1 -1
  139. package/lib/core/bff/file-system.js +1 -1
  140. package/lib/core/bff/hash.js +1 -1
  141. package/lib/core/bff/lock.js +1 -1
  142. package/lib/core/bff/utils.js +1 -1
  143. package/lib/core/db-resolver.js +1 -1
  144. package/lib/core/page/file-system.js +1 -1
  145. package/lib/core/page/hash.js +1 -1
  146. package/lib/core/page/lock.js +1 -1
  147. package/lib/core/sql-sync/config.js +1 -1
  148. package/lib/core/sql-sync/file-system.js +1 -1
  149. package/lib/core/sql-sync/hash.js +1 -1
  150. package/lib/core/sql-sync/lock.js +1 -1
  151. package/lib/core/sql-sync/utils.js +1 -1
  152. package/lib/core/sql-validator.js +1 -1
  153. package/lib/errors.js +1 -1
  154. package/lib/framework/build-all-flags.js +1 -1
  155. package/lib/framework/flags.js +1 -1
  156. package/lib/framework/help.js +1 -1
  157. package/lib/framework/index.js +1 -1
  158. package/lib/framework/output.js +1 -1
  159. package/lib/framework/response.js +1 -1
  160. package/lib/framework/runner-alias.js +1 -1
  161. package/lib/framework/runner.js +1 -1
  162. package/lib/framework/schema-export.js +1 -1
  163. package/lib/framework/types.js +1 -1
  164. package/lib/generated/build-info.js +1 -1
  165. package/lib/help.js +1 -1
  166. package/lib/skills/main.js +1 -1
  167. package/lib/skills/npx-skills-add.js +1 -1
  168. package/lib/telemetry/cli-command-trace.js +1 -1
  169. package/lib/telemetry/cli-help-trace.js +1 -1
  170. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  171. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  172. package/lib/telemetry/send-cli-trace-log.js +1 -1
  173. package/lib/telemetry/send-platform-issue-collect-log.js +1 -0
  174. package/lib/utils/ai_config.js +1 -1
  175. package/lib/utils/apply-jq-filter.js +1 -1
  176. package/lib/utils/cdn-config.js +1 -1
  177. package/lib/utils/check-sdk-version.js +1 -1
  178. package/lib/utils/cli-version-check.js +1 -1
  179. package/lib/utils/cli-version-policy.js +1 -1
  180. package/lib/utils/config.js +1 -1
  181. package/lib/utils/copy-directory.js +1 -1
  182. package/lib/utils/entity-with-id.js +1 -1
  183. package/lib/utils/file-utils.js +1 -1
  184. package/lib/utils/guides-cdn.js +1 -1
  185. package/lib/utils/http-client.js +1 -1
  186. package/lib/utils/is-non-interactive.js +1 -1
  187. package/lib/utils/logger.js +1 -1
  188. package/lib/utils/params.js +1 -1
  189. package/lib/utils/platform.js +1 -1
  190. package/lib/utils/rules-cdn.js +1 -1
  191. package/lib/utils/sleep.js +1 -1
  192. package/lib/utils/template-replacer.js +1 -1
  193. package/lib/utils/version.js +1 -1
  194. package/lib/utils/with-active-cookie.js +1 -1
  195. package/lib/utils/write-cli-side-channel.js +1 -1
  196. package/package.json +2 -1
@@ -1 +1 @@
1
- const a108_0x58cf12=a108_0x4161;(function(_0x40a0e9,_0x26019e){const _0x555a23=a108_0x4161,_0x18a205=_0x40a0e9();while(!![]){try{const _0xc52a9a=parseInt(_0x555a23(0x169))/0x1*(parseInt(_0x555a23(0x161))/0x2)+-parseInt(_0x555a23(0x16b))/0x3+-parseInt(_0x555a23(0x174))/0x4*(-parseInt(_0x555a23(0x170))/0x5)+-parseInt(_0x555a23(0x175))/0x6+-parseInt(_0x555a23(0x16d))/0x7+parseInt(_0x555a23(0x177))/0x8+parseInt(_0x555a23(0x179))/0x9;if(_0xc52a9a===_0x26019e)break;else _0x18a205['push'](_0x18a205['shift']());}catch(_0x16128a){_0x18a205['push'](_0x18a205['shift']());}}}(a108_0x3824,0xe462b));function a108_0x4161(_0x428d87,_0x34e573){_0x428d87=_0x428d87-0x15f;const _0x382449=a108_0x3824();let _0x4161d2=_0x382449[_0x428d87];return _0x4161d2;}import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a108_0x3824(){const _0x45f7de=['high-risk-write','sqlRoot','replace','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','appCode','entries','Would\x20delete\x20SQL\x20','trashDir','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','str','1322ZBEcZa','sqlcode','toISOString','validation','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','filter','trashedTo','\x20(local\x20file\x20moved\x20to\x20trash)','1963cjrMjq','lastSync','1329681zFLXro','POST','1666546EaICih','lockFilePath','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','472950BMybEF','Deleted\x20','delete','fromEntries','68gRDCKy','9521292vuThBz','remoteId','364760nacnEq','SQL\x20lock\x20file\x20not\x20found.','2272374ykMGhD','sqls','startsWith'];a108_0x3824=function(){return _0x45f7de;};return a108_0x3824();}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':'sql','command':a108_0x58cf12(0x172),'description':a108_0x58cf12(0x16f),'risk':a108_0x58cf12(0x17c),'flags':[SQLCODE_FLAG],async 'validate'(_0x3df8be){const _0xbf67de=a108_0x58cf12,_0x1bf68c=loadSqlProjectConfig(_0x3df8be[_0xbf67de(0x180)]),_0x1ac8d4=await readSqlLockFile(_0x1bf68c[_0xbf67de(0x16e)]);if(!_0x1ac8d4)throw CliErrors[_0xbf67de(0x164)](_0xbf67de(0x17f));},async 'dryRun'(_0xf34de2){const _0x22c26b=a108_0x58cf12,_0x2f5583=loadSqlProjectConfig(_0xf34de2['appCode']),_0x331271=await readSqlLockFile(_0x2f5583[_0x22c26b(0x16e)]);if(!_0x331271)throw CliErrors[_0x22c26b(0x164)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x8e4345}=ensureSqlLockScope(_0x331271,_0xf34de2['appCode'],_0x2f5583['sqlRoot'],_0x22c26b(0x172)),_0x2f212f=_0xf34de2['str']('sqlcode'),_0x1dd646=_0x8e4345[_0x22c26b(0x17a)][_0x2f212f];if(!_0x1dd646)throw CliErrors[_0x22c26b(0x164)](_0x22c26b(0x165)+_0x2f212f+'\x22.');return{'method':_0x22c26b(0x16c),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x2f212f,'id':_0x1dd646[_0x22c26b(0x176)],'localPath':resolveLocalSqlFilePath(_0x2f5583,_0x2f212f,_0x1dd646)},'description':_0x22c26b(0x182)+_0x2f212f+_0x22c26b(0x15f)+_0x2f5583[_0x22c26b(0x183)]};},async 'execute'(_0x11d7df){const _0x46139c=a108_0x58cf12,_0x2ebb86=loadSqlProjectConfig(_0x11d7df['appCode']),_0x3f6443=await readSqlLockFile(_0x2ebb86[_0x46139c(0x16e)]);if(!_0x3f6443)throw CliErrors[_0x46139c(0x164)](_0x46139c(0x178));const {lockData:_0x55304c,appLock:_0x40a28f}=ensureSqlLockScope(_0x3f6443,_0x11d7df[_0x46139c(0x180)],_0x2ebb86[_0x46139c(0x17d)],_0x46139c(0x172)),_0x1cd5ef=_0x11d7df[_0x46139c(0x160)](_0x46139c(0x162)),_0x28750e=_0x40a28f['sqls'][_0x1cd5ef];if(!_0x28750e)throw CliErrors[_0x46139c(0x164)](_0x46139c(0x165)+_0x1cd5ef+'\x22.');await deleteSqlQuery({'id':_0x28750e[_0x46139c(0x176)],'sqlCode':_0x1cd5ef}),_0x40a28f[_0x46139c(0x17a)]=Object[_0x46139c(0x173)](Object[_0x46139c(0x181)](_0x40a28f[_0x46139c(0x17a)])[_0x46139c(0x166)](([_0x34d1ba])=>_0x34d1ba!==_0x1cd5ef)),_0x40a28f[_0x46139c(0x16a)]=new Date()[_0x46139c(0x163)](),await writeSqlLockFile(_0x2ebb86['lockFilePath'],_0x55304c);const _0x4f882b=resolveLocalSqlFilePath(_0x2ebb86,_0x1cd5ef,_0x28750e);let _0x2db1bc;await fileExists(_0x4f882b)&&(_0x2db1bc=await moveToTrash(_0x2ebb86['projectRoot'],_0x2ebb86['trashDir'],_0x4f882b),await cleanupEmptyDirectories(dirname(_0x4f882b),_0x2ebb86['sqlRootDir']));const _0x1db015={'deleted':_0x1cd5ef,'remoteId':_0x28750e[_0x46139c(0x176)]};if(_0x2db1bc)_0x1db015[_0x46139c(0x167)]=_0x2db1bc;return{'ok':!![],'data':_0x1db015,'message':_0x46139c(0x171)+_0x1cd5ef+(_0x2db1bc?_0x46139c(0x168):'')};}};async function moveToTrash(_0x399701,_0x505e6d,_0x10ca2b){const _0x4c65e9=a108_0x58cf12,_0x108445=new Date()[_0x4c65e9(0x163)]()[_0x4c65e9(0x17e)](/[:.]/g,'-'),_0xb3ecf7=relative(_0x399701,_0x10ca2b),_0x4e17c9=join(_0x505e6d,_0x108445,_0xb3ecf7);return await mkdir(dirname(_0x4e17c9),{'recursive':!![]}),await rename(_0x10ca2b,_0x4e17c9),_0x4e17c9;}async function cleanupEmptyDirectories(_0x367176,_0x278df2){const _0x2a6162=a108_0x58cf12;let _0xb570d9=resolve(_0x367176);const _0x2e7f62=resolve(_0x278df2);while(_0xb570d9[_0x2a6162(0x17b)](''+_0x2e7f62+sep)||_0xb570d9===_0x2e7f62){if(_0xb570d9===_0x2e7f62)return;try{const _0x366c8f=await readdir(_0xb570d9);if(_0x366c8f['length']>0x0)return;await rmdir(_0xb570d9);}catch{return;}_0xb570d9=dirname(_0xb570d9);}}
1
+ const a115_0x3e0c82=a115_0x4f6a;(function(_0x38c193,_0x427777){const _0x409a6e=a115_0x4f6a,_0x315599=_0x38c193();while(!![]){try{const _0x25a467=parseInt(_0x409a6e(0x1ab))/0x1+parseInt(_0x409a6e(0x1b4))/0x2*(-parseInt(_0x409a6e(0x1b0))/0x3)+parseInt(_0x409a6e(0x1b9))/0x4+parseInt(_0x409a6e(0x19f))/0x5*(-parseInt(_0x409a6e(0x1b2))/0x6)+parseInt(_0x409a6e(0x1b3))/0x7+-parseInt(_0x409a6e(0x1af))/0x8+parseInt(_0x409a6e(0x1a2))/0x9;if(_0x25a467===_0x427777)break;else _0x315599['push'](_0x315599['shift']());}catch(_0x4cb8da){_0x315599['push'](_0x315599['shift']());}}}(a115_0x363a,0xc3043));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';function a115_0x4f6a(_0x80bfec,_0x32f3fd){_0x80bfec=_0x80bfec-0x195;const _0x363a94=a115_0x363a();let _0x4f6aea=_0x363a94[_0x80bfec];return _0x4f6aea;}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';function a115_0x363a(){const _0x53d9a4=['2435Kzxewv','POST','str','3885876ijaBAo','\x20(local\x20file\x20moved\x20to\x20trash)','replace','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','trashedTo','fromEntries','remoteId','startsWith','Deleted\x20','1172812iujctF','trashDir','sqlcode','SQL\x20lock\x20file\x20not\x20found.','368824HAbjdE','768198CRSNBf','length','4398tWjTun','1043126ostUJK','12ORRQet','sqlRoot','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','sqls','Would\x20delete\x20SQL\x20','3938652ilvrbM','lockFilePath','sqlRootDir','sql','high-risk-write','/smartapi/custom/deleteUserCustomSql','appCode','delete','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','validation'];a115_0x363a=function(){return _0x53d9a4;};return a115_0x363a();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a115_0x3e0c82(0x197),'command':a115_0x3e0c82(0x19b),'description':a115_0x3e0c82(0x19c),'risk':a115_0x3e0c82(0x198),'flags':[SQLCODE_FLAG],async 'validate'(_0x2a6d01){const _0x54d3a4=a115_0x3e0c82,_0x1ee375=loadSqlProjectConfig(_0x2a6d01[_0x54d3a4(0x19a)]),_0x214463=await readSqlLockFile(_0x1ee375['lockFilePath']);if(!_0x214463)throw CliErrors[_0x54d3a4(0x19e)](_0x54d3a4(0x19d));},async 'dryRun'(_0x24fdad){const _0x2e7516=a115_0x3e0c82,_0x2dfbc8=loadSqlProjectConfig(_0x24fdad[_0x2e7516(0x19a)]),_0x558ca3=await readSqlLockFile(_0x2dfbc8[_0x2e7516(0x195)]);if(!_0x558ca3)throw CliErrors[_0x2e7516(0x19e)](_0x2e7516(0x19d));const {appLock:_0x584230}=ensureSqlLockScope(_0x558ca3,_0x24fdad['appCode'],_0x2dfbc8[_0x2e7516(0x1b5)],'delete'),_0x11a6d4=_0x24fdad[_0x2e7516(0x1a1)](_0x2e7516(0x1ad)),_0x1384bb=_0x584230[_0x2e7516(0x1b7)][_0x11a6d4];if(!_0x1384bb)throw CliErrors[_0x2e7516(0x19e)](_0x2e7516(0x1a5)+_0x11a6d4+'\x22.');return{'method':_0x2e7516(0x1a0),'url':_0x2e7516(0x199),'body':{'sqlCode':_0x11a6d4,'id':_0x1384bb[_0x2e7516(0x1a8)],'localPath':resolveLocalSqlFilePath(_0x2dfbc8,_0x11a6d4,_0x1384bb)},'description':_0x2e7516(0x1b8)+_0x11a6d4+_0x2e7516(0x1b6)+_0x2dfbc8[_0x2e7516(0x1ac)]};},async 'execute'(_0x46a81c){const _0x56c88d=a115_0x3e0c82,_0x384cae=loadSqlProjectConfig(_0x46a81c['appCode']),_0x142ed1=await readSqlLockFile(_0x384cae[_0x56c88d(0x195)]);if(!_0x142ed1)throw CliErrors[_0x56c88d(0x19e)](_0x56c88d(0x1ae));const {lockData:_0x216e01,appLock:_0x56a2a2}=ensureSqlLockScope(_0x142ed1,_0x46a81c[_0x56c88d(0x19a)],_0x384cae['sqlRoot'],_0x56c88d(0x19b)),_0xd2dc90=_0x46a81c[_0x56c88d(0x1a1)]('sqlcode'),_0x547c5e=_0x56a2a2[_0x56c88d(0x1b7)][_0xd2dc90];if(!_0x547c5e)throw CliErrors['validation'](_0x56c88d(0x1a5)+_0xd2dc90+'\x22.');await deleteSqlQuery({'id':_0x547c5e[_0x56c88d(0x1a8)],'sqlCode':_0xd2dc90}),_0x56a2a2['sqls']=Object[_0x56c88d(0x1a7)](Object['entries'](_0x56a2a2['sqls'])['filter'](([_0x22ad45])=>_0x22ad45!==_0xd2dc90)),_0x56a2a2['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x384cae[_0x56c88d(0x195)],_0x216e01);const _0x869c67=resolveLocalSqlFilePath(_0x384cae,_0xd2dc90,_0x547c5e);let _0x5819e7;await fileExists(_0x869c67)&&(_0x5819e7=await moveToTrash(_0x384cae['projectRoot'],_0x384cae[_0x56c88d(0x1ac)],_0x869c67),await cleanupEmptyDirectories(dirname(_0x869c67),_0x384cae[_0x56c88d(0x196)]));const _0x5c7564={'deleted':_0xd2dc90,'remoteId':_0x547c5e[_0x56c88d(0x1a8)]};if(_0x5819e7)_0x5c7564[_0x56c88d(0x1a6)]=_0x5819e7;return{'ok':!![],'data':_0x5c7564,'message':_0x56c88d(0x1aa)+_0xd2dc90+(_0x5819e7?_0x56c88d(0x1a3):'')};}};async function moveToTrash(_0x25815b,_0x3edaa2,_0x28754d){const _0x23d32e=a115_0x3e0c82,_0x1d044a=new Date()['toISOString']()[_0x23d32e(0x1a4)](/[:.]/g,'-'),_0x27e6fa=relative(_0x25815b,_0x28754d),_0x4d29c5=join(_0x3edaa2,_0x1d044a,_0x27e6fa);return await mkdir(dirname(_0x4d29c5),{'recursive':!![]}),await rename(_0x28754d,_0x4d29c5),_0x4d29c5;}async function cleanupEmptyDirectories(_0x542d81,_0x26166d){const _0x473082=a115_0x3e0c82;let _0x2563db=resolve(_0x542d81);const _0x10b43a=resolve(_0x26166d);while(_0x2563db[_0x473082(0x1a9)](''+_0x10b43a+sep)||_0x2563db===_0x10b43a){if(_0x2563db===_0x10b43a)return;try{const _0x2c5a57=await readdir(_0x2563db);if(_0x2c5a57[_0x473082(0x1b1)]>0x0)return;await rmdir(_0x2563db);}catch{return;}_0x2563db=dirname(_0x2563db);}}
@@ -1 +1 @@
1
- const a109_0x36a34c=a109_0x3754;(function(_0x55ac2a,_0x5288bf){const _0x215db7=a109_0x3754,_0x58e463=_0x55ac2a();while(!![]){try{const _0x38f81e=parseInt(_0x215db7(0xd5))/0x1+-parseInt(_0x215db7(0xe1))/0x2*(-parseInt(_0x215db7(0xe0))/0x3)+parseInt(_0x215db7(0xdd))/0x4*(-parseInt(_0x215db7(0xdf))/0x5)+parseInt(_0x215db7(0xe9))/0x6*(-parseInt(_0x215db7(0xe7))/0x7)+-parseInt(_0x215db7(0xde))/0x8*(parseInt(_0x215db7(0xe4))/0x9)+parseInt(_0x215db7(0xd6))/0xa*(-parseInt(_0x215db7(0xd4))/0xb)+parseInt(_0x215db7(0xe8))/0xc*(parseInt(_0x215db7(0xe2))/0xd);if(_0x38f81e===_0x5288bf)break;else _0x58e463['push'](_0x58e463['shift']());}catch(_0x1976c5){_0x58e463['push'](_0x58e463['shift']());}}}(a109_0x292d,0x76fdb));function a109_0x3754(_0x1fb73b,_0x1d5a50){_0x1fb73b=_0x1fb73b-0xd3;const _0x292d5c=a109_0x292d();let _0x375410=_0x292d5c[_0x1fb73b];return _0x375410;}import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':'detail','description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':a109_0x36a34c(0xd9),'type':a109_0x36a34c(0xe3),'description':a109_0x36a34c(0xd8)}],async 'execute'(_0x2f33af){const _0x184ee6=a109_0x36a34c,_0xf22973=await getSqlQueryInfo(_0x2f33af[_0x184ee6(0xda)],_0x2f33af[_0x184ee6(0xe5)](_0x184ee6(0xdb))),_0x1245b5=_0x2f33af['bool'](_0x184ee6(0xd9));if(_0x1245b5)return{'ok':!![],'data':_0xf22973};const _0x39550b=_0xf22973[_0x184ee6(0xd7)]?await getDbName(_0x2f33af['appCode'],_0xf22973[_0x184ee6(0xd7)]):undefined;return{'ok':!![],'data':{'sqlCode':_0xf22973[_0x184ee6(0xe6)],'sqlName':_0xf22973[_0x184ee6(0xd3)],'db':_0x39550b?_0x39550b+'\x20('+_0xf22973[_0x184ee6(0xd7)]+')':_0xf22973[_0x184ee6(0xd7)]??'','description':_0xf22973['description']??'','sqlContent':_0xf22973[_0x184ee6(0xdc)]??''}};}};function a109_0x292d(){const _0x1163b2=['sqlName','55cAoByb','512324wLWQdG','896570oDIHgU','dbId','Return\x20full\x20raw\x20SQL\x20query\x20object','verbose','appCode','sqlcode','sqlContent','220KxkrSJ','11040KEqlBI','20675HnRPOx','2031FNwUEy','638RVIrQJ','26kRuCEc','boolean','4203AomrxR','str','sqlCode','1157716NlhIPM','8460276qLtQcy','12gbXgXj'];a109_0x292d=function(){return _0x1163b2;};return a109_0x292d();}
1
+ function a116_0x3f0d(_0xd669ff,_0x40dd5b){_0xd669ff=_0xd669ff-0xf9;const _0x141938=a116_0x1419();let _0x3f0d63=_0x141938[_0xd669ff];return _0x3f0d63;}const a116_0x5c05c3=a116_0x3f0d;(function(_0x502e15,_0x32aa9d){const _0x377720=a116_0x3f0d,_0x1a0d8a=_0x502e15();while(!![]){try{const _0x163f53=-parseInt(_0x377720(0x106))/0x1*(-parseInt(_0x377720(0x10b))/0x2)+-parseInt(_0x377720(0x107))/0x3*(-parseInt(_0x377720(0x108))/0x4)+-parseInt(_0x377720(0x101))/0x5*(-parseInt(_0x377720(0xfc))/0x6)+parseInt(_0x377720(0xf9))/0x7*(-parseInt(_0x377720(0x103))/0x8)+-parseInt(_0x377720(0xfa))/0x9+parseInt(_0x377720(0x10a))/0xa+-parseInt(_0x377720(0x10c))/0xb;if(_0x163f53===_0x32aa9d)break;else _0x1a0d8a['push'](_0x1a0d8a['shift']());}catch(_0xb87cf1){_0x1a0d8a['push'](_0x1a0d8a['shift']());}}}(a116_0x1419,0x7e483));import{getSqlQueryInfo}from'../../core/api-client.js';function a116_0x1419(){const _0x634c5e=['389270HLrRUe','sqlContent','296viJfsM','sqlCode','bool','1jUxpAv','3qfoHpt','3909476APILlQ','str','5776490icjoYq','936578mDzwvw','8928260YyNIai','appCode','33047amtZeV','5378157qzPraD','sqlName','6HEqwpY','verbose','dbId','description','sqlcode'];a116_0x1419=function(){return _0x634c5e;};return a116_0x1419();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':'detail','description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':a116_0x5c05c3(0xfd),'type':'boolean','description':'Return\x20full\x20raw\x20SQL\x20query\x20object'}],async 'execute'(_0x386df7){const _0x225467=a116_0x5c05c3,_0xcc556d=await getSqlQueryInfo(_0x386df7[_0x225467(0x10d)],_0x386df7[_0x225467(0x109)](_0x225467(0x100))),_0x3cedde=_0x386df7[_0x225467(0x105)](_0x225467(0xfd));if(_0x3cedde)return{'ok':!![],'data':_0xcc556d};const _0x40aa86=_0xcc556d[_0x225467(0xfe)]?await getDbName(_0x386df7[_0x225467(0x10d)],_0xcc556d['dbId']):undefined;return{'ok':!![],'data':{'sqlCode':_0xcc556d[_0x225467(0x104)],'sqlName':_0xcc556d[_0x225467(0xfb)],'db':_0x40aa86?_0x40aa86+'\x20('+_0xcc556d[_0x225467(0xfe)]+')':_0xcc556d[_0x225467(0xfe)]??'','description':_0xcc556d[_0x225467(0xff)]??'','sqlContent':_0xcc556d[_0x225467(0x102)]??''}};}};
@@ -1 +1 @@
1
- const a110_0x460f25=a110_0x5aa7;(function(_0x642d6b,_0x2e63e8){const _0x4a0f6a=a110_0x5aa7,_0x10a2de=_0x642d6b();while(!![]){try{const _0x1ffd18=-parseInt(_0x4a0f6a(0x163))/0x1+parseInt(_0x4a0f6a(0x15c))/0x2*(-parseInt(_0x4a0f6a(0x15d))/0x3)+-parseInt(_0x4a0f6a(0x164))/0x4+parseInt(_0x4a0f6a(0x15a))/0x5+-parseInt(_0x4a0f6a(0x169))/0x6+-parseInt(_0x4a0f6a(0x15e))/0x7*(parseInt(_0x4a0f6a(0x154))/0x8)+-parseInt(_0x4a0f6a(0x15f))/0x9*(-parseInt(_0x4a0f6a(0x157))/0xa);if(_0x1ffd18===_0x2e63e8)break;else _0x10a2de['push'](_0x10a2de['shift']());}catch(_0x415bb1){_0x10a2de['push'](_0x10a2de['shift']());}}}(a110_0x1359,0x395ed));function a110_0x5aa7(_0x17d422,_0x260b59){_0x17d422=_0x17d422-0x151;const _0x13593f=a110_0x1359();let _0x5aa76c=_0x13593f[_0x17d422];return _0x5aa76c;}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':'sql','command':a110_0x460f25(0x151),'description':a110_0x460f25(0x167),'risk':a110_0x460f25(0x15b),'flags':[SQLCODE_FLAG,{'name':a110_0x460f25(0x160),'type':a110_0x460f25(0x153),'description':a110_0x460f25(0x156)}],async 'execute'(_0x452f15){const _0xd23b9d=a110_0x460f25,_0x17c38b=parseJsonParams(_0x452f15['str']('params')),_0x45452d=Date[_0xd23b9d(0x165)](),_0x21cc60=await executeSql(_0x452f15[_0xd23b9d(0x155)],_0x452f15[_0xd23b9d(0x168)](_0xd23b9d(0x162)),_0x17c38b),_0xa293cb=Date['now']()-_0x45452d,_0x48a0ce=_0x21cc60?.[_0xd23b9d(0x158)]??_0x21cc60,_0x3caf99=_0x21cc60?.[_0xd23b9d(0x159)]??!![];if(!_0x3caf99)return{'ok':![],'data':{'error':_0x21cc60?.[_0xd23b9d(0x166)]||'SQL\x20execution\x20failed','elapsed':_0xa293cb},'message':_0xd23b9d(0x161)};const _0x4e91a7=Array['isArray'](_0x48a0ce)?_0x48a0ce:[];return{'ok':!![],'data':{'rows':_0x4e91a7,'rowCount':_0x4e91a7['length'],'elapsed':_0xa293cb},'message':'Returned\x20'+_0x4e91a7[_0xd23b9d(0x152)]+'\x20row(s)\x20in\x20'+_0xa293cb+'ms'};}};function a110_0x1359(){const _0x50b07e=['string','40WVHMzn','appCode','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','533050LGLCcW','execResult','execSuccess','1044725RCJbnp','read','16DHHICE','107367oMPpjJ','174034eOKihT','171piCqaA','params','SQL\x20execution\x20failed','sqlcode','105046eOebwI','1242464nRuEon','now','execError','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','str','962802LeZHVR','exec','length'];a110_0x1359=function(){return _0x50b07e;};return a110_0x1359();}
1
+ const a117_0x41d245=a117_0x577e;(function(_0x32869c,_0x2b31fa){const _0x10a5f4=a117_0x577e,_0x2d6b03=_0x32869c();while(!![]){try{const _0x281c6b=parseInt(_0x10a5f4(0x93))/0x1*(parseInt(_0x10a5f4(0x9a))/0x2)+-parseInt(_0x10a5f4(0x9f))/0x3+parseInt(_0x10a5f4(0x91))/0x4+parseInt(_0x10a5f4(0xa0))/0x5*(parseInt(_0x10a5f4(0x99))/0x6)+parseInt(_0x10a5f4(0xa1))/0x7+parseInt(_0x10a5f4(0x8a))/0x8+parseInt(_0x10a5f4(0x8f))/0x9*(-parseInt(_0x10a5f4(0x95))/0xa);if(_0x281c6b===_0x2b31fa)break;else _0x2d6b03['push'](_0x2d6b03['shift']());}catch(_0x130640){_0x2d6b03['push'](_0x2d6b03['shift']());}}}(a117_0x275b,0x20c95));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a117_0x577e(_0x2d5d56,_0x43b506){_0x2d5d56=_0x2d5d56-0x8a;const _0x275b03=a117_0x275b();let _0x577e8b=_0x275b03[_0x2d5d56];return _0x577e8b;}function a117_0x275b(){const _0x22e621=['5699385cwTxYT','read','983628PLCuuy','params','203071LydMwG','appCode','10tyGhsc','SQL\x20execution\x20failed','sqlcode','length','12mTphBN','2HoejnJ','execError','exec','execResult','string','179544JecSjN','396310oXMObA','1425648fXuPqz','129920SiNrby','isArray','\x20row(s)\x20in\x20','now','sql'];a117_0x275b=function(){return _0x22e621;};return a117_0x275b();}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a117_0x41d245(0x8e),'command':a117_0x41d245(0x9c),'description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':a117_0x41d245(0x90),'flags':[SQLCODE_FLAG,{'name':a117_0x41d245(0x92),'type':a117_0x41d245(0x9e),'description':'SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)'}],async 'execute'(_0x503030){const _0x282e3d=a117_0x41d245,_0x1d1864=parseJsonParams(_0x503030['str'](_0x282e3d(0x92))),_0x14d97e=Date[_0x282e3d(0x8d)](),_0x497ebe=await executeSql(_0x503030[_0x282e3d(0x94)],_0x503030['str'](_0x282e3d(0x97)),_0x1d1864),_0x3e50d5=Date[_0x282e3d(0x8d)]()-_0x14d97e,_0x2784df=_0x497ebe?.[_0x282e3d(0x9d)]??_0x497ebe,_0x4dd592=_0x497ebe?.['execSuccess']??!![];if(!_0x4dd592)return{'ok':![],'data':{'error':_0x497ebe?.[_0x282e3d(0x9b)]||_0x282e3d(0x96),'elapsed':_0x3e50d5},'message':_0x282e3d(0x96)};const _0x45b080=Array[_0x282e3d(0x8b)](_0x2784df)?_0x2784df:[];return{'ok':!![],'data':{'rows':_0x45b080,'rowCount':_0x45b080[_0x282e3d(0x98)],'elapsed':_0x3e50d5},'message':'Returned\x20'+_0x45b080[_0x282e3d(0x98)]+_0x282e3d(0x8c)+_0x3e50d5+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x49ec50,_0x198316){const _0x4629f7=a111_0x31c8,_0x34ab0a=_0x49ec50();while(!![]){try{const _0x16b6be=-parseInt(_0x4629f7(0x16f))/0x1+-parseInt(_0x4629f7(0x171))/0x2+-parseInt(_0x4629f7(0x172))/0x3+parseInt(_0x4629f7(0x173))/0x4*(-parseInt(_0x4629f7(0x16e))/0x5)+parseInt(_0x4629f7(0x174))/0x6+-parseInt(_0x4629f7(0x175))/0x7+parseInt(_0x4629f7(0x170))/0x8;if(_0x16b6be===_0x198316)break;else _0x34ab0a['push'](_0x34ab0a['shift']());}catch(_0x2fa52c){_0x34ab0a['push'](_0x34ab0a['shift']());}}}(a111_0x23f1,0xebc92));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';function a111_0x31c8(_0x53c789,_0x5250e6){_0x53c789=_0x53c789-0x16e;const _0x23f1aa=a111_0x23f1();let _0x31c89c=_0x23f1aa[_0x53c789];return _0x31c89c;}function a111_0x23f1(){const _0x1e9fbb=['4DLwSzn','2526066eKEuEK','6856766fiLMCa','3070460BNFXuP','913469sWwbrW','33970112EdAqJe','1330312KnsHfC','1587726KhQTYa'];a111_0x23f1=function(){return _0x1e9fbb;};return a111_0x23f1();}import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x5225b7,_0x52ca16){const _0x150b83=a118_0x3be8,_0x725b47=_0x5225b7();while(!![]){try{const _0x600445=-parseInt(_0x150b83(0xff))/0x1*(parseInt(_0x150b83(0x101))/0x2)+parseInt(_0x150b83(0x100))/0x3*(-parseInt(_0x150b83(0x105))/0x4)+-parseInt(_0x150b83(0x103))/0x5*(-parseInt(_0x150b83(0x104))/0x6)+parseInt(_0x150b83(0x106))/0x7+-parseInt(_0x150b83(0x108))/0x8*(-parseInt(_0x150b83(0xfd))/0x9)+-parseInt(_0x150b83(0x102))/0xa*(-parseInt(_0x150b83(0x107))/0xb)+-parseInt(_0x150b83(0xfe))/0xc*(parseInt(_0x150b83(0x109))/0xd);if(_0x600445===_0x52ca16)break;else _0x725b47['push'](_0x725b47['shift']());}catch(_0x3b3ced){_0x725b47['push'](_0x725b47['shift']());}}}(a118_0xe9b7,0xb8fe2));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';function a118_0xe9b7(){const _0x3842d7=['184NSMLyc','13451074PehYdH','126405RGjpeD','12okwcwR','1246510vIPVTn','249bZfMVs','2OdrnRF','47490GFqFfm','95VjvrOA','408978ejsBAJ','13868hTqFbR','4580023eOQkjn','2442oeoqrj'];a118_0xe9b7=function(){return _0x3842d7;};return a118_0xe9b7();}import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';function a118_0x3be8(_0x4290e6,_0x3a17a2){_0x4290e6=_0x4290e6-0xfd;const _0xe9b710=a118_0xe9b7();let _0x3be8a2=_0xe9b710[_0x4290e6];return _0x3be8a2;}import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- const a112_0x2c6624=a112_0x4c20;(function(_0xa114a3,_0x424cb1){const _0x4f3049=a112_0x4c20,_0x20aeea=_0xa114a3();while(!![]){try{const _0x1e624b=-parseInt(_0x4f3049(0x1cc))/0x1*(-parseInt(_0x4f3049(0x1ce))/0x2)+parseInt(_0x4f3049(0x1ba))/0x3*(-parseInt(_0x4f3049(0x1c0))/0x4)+-parseInt(_0x4f3049(0x1ca))/0x5+-parseInt(_0x4f3049(0x1c7))/0x6+parseInt(_0x4f3049(0x1cf))/0x7+-parseInt(_0x4f3049(0x1c6))/0x8+parseInt(_0x4f3049(0x1c1))/0x9;if(_0x1e624b===_0x424cb1)break;else _0x20aeea['push'](_0x20aeea['shift']());}catch(_0x1f0f4a){_0x20aeea['push'](_0x20aeea['shift']());}}}(a112_0x35eb,0x2f5cc));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a112_0x4c20(_0x3e7561,_0x254a4d){_0x3e7561=_0x3e7561-0x1b7;const _0x35ebc5=a112_0x35eb();let _0x4c20d9=_0x35ebc5[_0x3e7561];return _0x4c20d9;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a112_0x2c6624(0x1c9),'description':'List\x20custom\x20SQL\x20queries','risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a112_0x2c6624(0x1c5),'type':a112_0x2c6624(0x1b9),'description':a112_0x2c6624(0x1cd)},{'name':'page','type':a112_0x2c6624(0x1c3),'description':a112_0x2c6624(0x1d4),'default':0x1},{'name':a112_0x2c6624(0x1cb),'type':'number','description':a112_0x2c6624(0x1b7)},{'name':'verbose','type':'boolean','description':a112_0x2c6624(0x1bb)}],async 'execute'(_0x4c79cd){const _0x205cf2=a112_0x2c6624,_0x15d94a=await listSqlQueries(_0x4c79cd['appCode'],{'sqlCode':_0x4c79cd[_0x205cf2(0x1bc)](_0x205cf2(0x1c2))||undefined,'sqlName':_0x4c79cd['str']('name')||undefined,'currentPage':_0x4c79cd[_0x205cf2(0x1b8)](_0x205cf2(0x1d0)),'pageSize':_0x4c79cd[_0x205cf2(0x1b8)]('pagesize',0x32)}),_0x4b4997=_0x4c79cd['bool'](_0x205cf2(0x1c4)),_0x390dd7=_0x15d94a['tableData']??[],_0x516561=_0x15d94a['paging']?.['totalCount']??_0x390dd7[_0x205cf2(0x1d3)];let _0x5f0166;return _0x4b4997?_0x5f0166=_0x390dd7:_0x5f0166=await Promise[_0x205cf2(0x1d5)](_0x390dd7['map'](async _0x36a9f1=>{const _0x5d985c=_0x205cf2;let _0x55d6f4;try{_0x55d6f4=_0x36a9f1['dbId']?await getDbName(_0x4c79cd['appCode'],_0x36a9f1[_0x5d985c(0x1c8)]):undefined;}catch{}return{'sqlCode':_0x36a9f1[_0x5d985c(0x1d6)],'sqlName':_0x36a9f1[_0x5d985c(0x1be)],'description':_0x36a9f1[_0x5d985c(0x1bd)]??'','db':_0x55d6f4?_0x55d6f4+'\x20('+_0x36a9f1[_0x5d985c(0x1c8)]+')':_0x36a9f1[_0x5d985c(0x1c8)]??''};})),{'ok':!![],'data':_0x5f0166,'message':_0x390dd7[_0x205cf2(0x1d3)]===0x0?_0x205cf2(0x1d2):_0x205cf2(0x1d1)+_0x390dd7['length']+_0x205cf2(0x1bf)+_0x516561+').'};}};function a112_0x35eb(){const _0x30d70f=['1603464dNtwwd','198828hNkGPm','dbId','list','823615ummnug','pagesize','85543zjYHlr','Filter\x20by\x20SQL\x20name','2aEFubw','2187948Mccjmf','page','Found\x20','No\x20custom\x20SQL\x20queries\x20found.','length','Page\x20number','all','sqlCode','Page\x20size','num','string','62919iNkKvU','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','str','description','sqlName','\x20SQL\x20queries\x20(total:\x20','20maHuCh','2691432ShycLp','sqlcode','number','verbose','name'];a112_0x35eb=function(){return _0x30d70f;};return a112_0x35eb();}
1
+ function a119_0x50c1(_0x11259d,_0x17b7ce){_0x11259d=_0x11259d-0x9d;const _0x16b927=a119_0x16b9();let _0x50c17d=_0x16b927[_0x11259d];return _0x50c17d;}function a119_0x16b9(){const _0x542874=['bool','List\x20custom\x20SQL\x20queries','34095366DcDLyZ','1069217IfwysZ','sqlName','read','pagesize','str','tableData','appCode','1667208AFmwZn','length','sqlcode','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','verbose','Found\x20','all','Page\x20size','name','7047FOFRHe','string','1275326bXqrPw','map','number','description','21FuyVEb','sqlCode','sql','8314020AMGvit','5529966xxJAlY','paging','num','dbId','208NAnANl','page','totalCount'];a119_0x16b9=function(){return _0x542874;};return a119_0x16b9();}const a119_0x18d99e=a119_0x50c1;(function(_0x25311e,_0x438979){const _0x212f28=a119_0x50c1,_0x270f00=_0x25311e();while(!![]){try{const _0x29d637=-parseInt(_0x212f28(0xaf))/0x1+-parseInt(_0x212f28(0x9d))/0x2+parseInt(_0x212f28(0xbf))/0x3*(parseInt(_0x212f28(0xa9))/0x4)+-parseInt(_0x212f28(0xa4))/0x5+parseInt(_0x212f28(0xa5))/0x6+-parseInt(_0x212f28(0xa1))/0x7*(parseInt(_0x212f28(0xb6))/0x8)+parseInt(_0x212f28(0xae))/0x9;if(_0x29d637===_0x438979)break;else _0x270f00['push'](_0x270f00['shift']());}catch(_0x1b8182){_0x270f00['push'](_0x270f00['shift']());}}}(a119_0x16b9,0xcc6b0));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':a119_0x18d99e(0xa3),'command':'list','description':a119_0x18d99e(0xad),'risk':a119_0x18d99e(0xb1),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a119_0x18d99e(0xbe),'type':a119_0x18d99e(0xc0),'description':'Filter\x20by\x20SQL\x20name'},{'name':a119_0x18d99e(0xaa),'type':a119_0x18d99e(0x9f),'description':'Page\x20number','default':0x1},{'name':'pagesize','type':'number','description':a119_0x18d99e(0xbd)},{'name':'verbose','type':'boolean','description':a119_0x18d99e(0xb9)}],async 'execute'(_0x4bda5a){const _0x576115=a119_0x18d99e,_0x55a84a=await listSqlQueries(_0x4bda5a[_0x576115(0xb5)],{'sqlCode':_0x4bda5a[_0x576115(0xb3)](_0x576115(0xb8))||undefined,'sqlName':_0x4bda5a[_0x576115(0xb3)]('name')||undefined,'currentPage':_0x4bda5a[_0x576115(0xa7)]('page'),'pageSize':_0x4bda5a[_0x576115(0xa7)](_0x576115(0xb2),0x32)}),_0xf9e988=_0x4bda5a[_0x576115(0xac)](_0x576115(0xba)),_0x2d4636=_0x55a84a[_0x576115(0xb4)]??[],_0xc5775=_0x55a84a[_0x576115(0xa6)]?.[_0x576115(0xab)]??_0x2d4636[_0x576115(0xb7)];let _0x3e2f51;return _0xf9e988?_0x3e2f51=_0x2d4636:_0x3e2f51=await Promise[_0x576115(0xbc)](_0x2d4636[_0x576115(0x9e)](async _0x59541c=>{const _0x1f7fd4=_0x576115;let _0x3d9cce;try{_0x3d9cce=_0x59541c[_0x1f7fd4(0xa8)]?await getDbName(_0x4bda5a[_0x1f7fd4(0xb5)],_0x59541c[_0x1f7fd4(0xa8)]):undefined;}catch{}return{'sqlCode':_0x59541c[_0x1f7fd4(0xa2)],'sqlName':_0x59541c[_0x1f7fd4(0xb0)],'description':_0x59541c[_0x1f7fd4(0xa0)]??'','db':_0x3d9cce?_0x3d9cce+'\x20('+_0x59541c[_0x1f7fd4(0xa8)]+')':_0x59541c[_0x1f7fd4(0xa8)]??''};})),{'ok':!![],'data':_0x3e2f51,'message':_0x2d4636['length']===0x0?'No\x20custom\x20SQL\x20queries\x20found.':_0x576115(0xbb)+_0x2d4636['length']+'\x20SQL\x20queries\x20(total:\x20'+_0xc5775+').'};}};
@@ -1 +1 @@
1
- const a113_0x1cf11c=a113_0x5330;(function(_0x23a7c4,_0x5d51de){const _0xba1654=a113_0x5330,_0x522069=_0x23a7c4();while(!![]){try{const _0x4a076=-parseInt(_0xba1654(0xe9))/0x1*(-parseInt(_0xba1654(0xf0))/0x2)+-parseInt(_0xba1654(0x113))/0x3*(parseInt(_0xba1654(0xd9))/0x4)+parseInt(_0xba1654(0xea))/0x5*(-parseInt(_0xba1654(0xe7))/0x6)+-parseInt(_0xba1654(0xdf))/0x7+-parseInt(_0xba1654(0xe8))/0x8*(-parseInt(_0xba1654(0xf9))/0x9)+-parseInt(_0xba1654(0x107))/0xa*(parseInt(_0xba1654(0x10d))/0xb)+parseInt(_0xba1654(0xed))/0xc;if(_0x4a076===_0x5d51de)break;else _0x522069['push'](_0x522069['shift']());}catch(_0x33537d){_0x522069['push'](_0x522069['shift']());}}}(a113_0x1376,0xb5909));function a113_0x1376(){const _0x150923=['filter','skipped','write','name','appCode','bool','description','6MBukoS','65232jtLbQG','125mppoRz','3723605yEfKsn','unchanged','test','32104236FThzRD','path','lastSync','11420vBCUfv','Pull\x20complete:\x20','toISOString','mybatisXml','message','length','Force\x20overwrite\x20local\x20unsynced\x20changes','paging','Would\x20pull\x20','567UpFEoA','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','lockFilePath','sqlContent','sqlName','\x20skipped,\x20','Filter\x20by\x20SQL\x20display\x20name','sqlRootDir','\x20failed','sql','str','sqlcode','force','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','110gaxUvo','catch','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','POST','\x20written,\x20','tableData','680471lqxTAo','nonInteractive','sqls','sqlCode','sqlRoot','utf8','312891PaGbmx','string','No\x20remote\x20SQL\x20queries\x20matched.','replace','join','push','44PGatgg','conflict','boolean','dbId','pull','local\x20differs\x20from\x20remote','4106599HwluCr'];a113_0x1376=function(){return _0x150923;};return a113_0x1376();}import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x1e4127,_0x1a74ec){const _0x3cb3d3=a113_0x5330,_0x583309=[];let _0x10bd70=0x1;while(!![]){const _0x25ce9c=await listSqlQueries(_0x1e4127,{'currentPage':_0x10bd70,'pageSize':PAGE_SIZE,'sqlCode':_0x1a74ec[_0x3cb3d3(0x110)],'sqlName':_0x1a74ec['sqlName']}),_0x398979=_0x25ce9c[_0x3cb3d3(0x10c)]??[];_0x583309[_0x3cb3d3(0xd8)](..._0x398979);if(_0x398979[_0x3cb3d3(0xf5)]===0x0)break;const _0x436c01=_0x25ce9c[_0x3cb3d3(0xf7)]?.['totalCount'];if(_0x436c01!=null?_0x583309[_0x3cb3d3(0xf5)]>=_0x436c01:_0x398979[_0x3cb3d3(0xf5)]<PAGE_SIZE)break;_0x10bd70++;}return _0x583309;}async function ensureSqlContent(_0x5e4bb5){const _0x1a5bb9=a113_0x5330;if(_0x5e4bb5[_0x1a5bb9(0xfc)]!=null&&String(_0x5e4bb5['sqlContent'])['length']>0x0)return _0x5e4bb5;return getSqlQueryDetail(_0x5e4bb5[_0x1a5bb9(0x110)]);}export const sqlPull={'service':'sql','command':a113_0x1cf11c(0xdd),'description':a113_0x1cf11c(0xfa),'risk':a113_0x1cf11c(0xe2),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a113_0x1cf11c(0xe3),'type':a113_0x1cf11c(0x114),'description':a113_0x1cf11c(0xff)},{'name':a113_0x1cf11c(0x105),'type':a113_0x1cf11c(0xdb),'description':a113_0x1cf11c(0xf6)}],async 'dryRun'(_0x13874f){const _0x3a0b60=a113_0x1cf11c,_0x1a7fb0=loadSqlProjectConfig(_0x13874f[_0x3a0b60(0xe4)]),_0x3408a9=await readSqlLockFile(_0x1a7fb0[_0x3a0b60(0xfb)]),{appLock:_0x35b949}=ensureSqlLockScope(_0x3408a9??createEmptySqlLock(),_0x1a7fb0['appCode'],_0x1a7fb0['sqlRoot'],'pull'),_0x9fe2eb=await fetchAllSqlQueries(_0x13874f[_0x3a0b60(0xe4)],{'sqlCode':_0x13874f[_0x3a0b60(0x103)]('sqlcode')||undefined,'sqlName':_0x13874f[_0x3a0b60(0x103)](_0x3a0b60(0xe3))||undefined}),_0x16bb60=[];for(const _0x1f76bb of _0x9fe2eb){const _0x392cd1=await ensureSqlContent(_0x1f76bb),_0x4c8fa4=ensureRemoteSqlContent(_0x392cd1),_0x31b79c=detectModeFromSql(_0x392cd1),_0x2673c9=_0x392cd1[_0x3a0b60(0xdc)]?await getDbName(_0x13874f[_0x3a0b60(0xe4)],Number(_0x392cd1['dbId']))[_0x3a0b60(0x108)](()=>undefined):undefined,_0x289e2d=buildLocalSqlFileContent({'sqlCode':_0x392cd1['sqlCode'],'sqlName':_0x392cd1[_0x3a0b60(0xfd)],'dbId':_0x392cd1[_0x3a0b60(0xdc)]},_0x4c8fa4,{'dbName':_0x2673c9,'mode':_0x31b79c,'syncedAt':new Date()[_0x3a0b60(0xf2)](),'description':_0x392cd1[_0x3a0b60(0xe6)]}),_0x23afb5=buildSqlLockEntry(_0x392cd1,_0x4c8fa4,'',{'dbName':_0x2673c9}),_0x951126=resolveLocalSqlFilePath(_0x1a7fb0,_0x392cd1[_0x3a0b60(0x110)],_0x23afb5);let _0x30cc18='would_pull',_0x29f25e;if(await fileExists(_0x951126)){const _0x339b56=await readFile(_0x951126,_0x3a0b60(0x112));isEquivalentPulledSqlFile(_0x339b56,_0x289e2d,_0x31b79c)?(_0x30cc18=_0x3a0b60(0xe1),_0x29f25e=_0x3a0b60(0xeb)):(_0x30cc18=_0x3a0b60(0xda),_0x29f25e='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x16bb60[_0x3a0b60(0xd8)]({'sqlCode':_0x392cd1['sqlCode'],'sqlName':_0x392cd1['sqlName'],'filePath':_0x951126,'status':_0x30cc18,'reason':_0x29f25e});}return{'method':_0x3a0b60(0x10a),'url':_0x3a0b60(0x109),'body':{'appCode':_0x13874f['appCode'],'sqlCode':_0x13874f[_0x3a0b60(0x103)](_0x3a0b60(0x104))||null,'sqlName':_0x13874f['str'](_0x3a0b60(0xe3))||null,'files':_0x16bb60},'description':_0x3a0b60(0xf8)+_0x16bb60[_0x3a0b60(0xf5)]+'\x20SQL\x20file(s)\x20into\x20'+_0x1a7fb0[_0x3a0b60(0x100)]};},async 'execute'(_0x316a51){const _0x9c0a08=a113_0x1cf11c,_0x6e37ce=loadSqlProjectConfig(_0x316a51[_0x9c0a08(0xe4)]),_0x4f3a25=await readSqlLockFile(_0x6e37ce[_0x9c0a08(0xfb)]),{lockData:_0x2c2bad,appLock:_0x4d1bbc}=ensureSqlLockScope(_0x4f3a25??createEmptySqlLock(),_0x6e37ce[_0x9c0a08(0xe4)],_0x6e37ce[_0x9c0a08(0x111)],_0x9c0a08(0xdd)),_0x1e406e=_0x316a51[_0x9c0a08(0xe5)](_0x9c0a08(0x105)),_0x31e06e=await fetchAllSqlQueries(_0x316a51[_0x9c0a08(0xe4)],{'sqlCode':_0x316a51[_0x9c0a08(0x103)](_0x9c0a08(0x104))||undefined,'sqlName':_0x316a51[_0x9c0a08(0x103)]('name')||undefined});if(_0x31e06e[_0x9c0a08(0xf5)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x9c0a08(0x115)};const _0x52148a=[],_0x306c1e=[];for(const _0x117375 of _0x31e06e){try{_0x52148a[_0x9c0a08(0xd8)](await ensureSqlContent(_0x117375));}catch(_0x1a6487){_0x306c1e[_0x9c0a08(0xd8)]({'sqlCode':_0x117375[_0x9c0a08(0x110)],'error':_0x1a6487 instanceof Error?_0x1a6487[_0x9c0a08(0xf4)]:String(_0x1a6487)});}}if(_0x1e406e&&!_0x316a51[_0x9c0a08(0x10e)]){let _0x3ff22f=![];for(const _0x12ed1e of _0x52148a){const _0xe1b03f=detectModeFromSql(_0x12ed1e),_0x275fa5=_0x12ed1e[_0x9c0a08(0xdc)]?await getDbName(_0x316a51['appCode'],Number(_0x12ed1e['dbId']))[_0x9c0a08(0x108)](()=>undefined):undefined,_0x193a9c=buildLocalSqlFileContent({'sqlCode':_0x12ed1e['sqlCode'],'sqlName':_0x12ed1e[_0x9c0a08(0xfd)],'dbId':_0x12ed1e[_0x9c0a08(0xdc)]},ensureRemoteSqlContent(_0x12ed1e),{'dbName':_0x275fa5,'mode':_0xe1b03f,'syncedAt':new Date()[_0x9c0a08(0xf2)](),'description':_0x12ed1e[_0x9c0a08(0xe6)]}),_0x481fda=resolveLocalSqlFilePath(_0x6e37ce,_0x12ed1e[_0x9c0a08(0x110)],buildSqlLockEntry(_0x12ed1e,ensureRemoteSqlContent(_0x12ed1e),'',{'dbName':_0x275fa5}));if(await fileExists(_0x481fda)){const _0x50cd47=await readFile(_0x481fda,'utf8');if(!isEquivalentPulledSqlFile(_0x50cd47,_0x193a9c,_0xe1b03f)){_0x3ff22f=!![];break;}}}if(_0x3ff22f){const _0x4b2cba=await confirmForceOverwrite(_0x9c0a08(0x106));if(!_0x4b2cba)throw CliErrors['cancelled']('Force\x20pull\x20cancelled.');}}const _0x59a28c=cloneSqlLockData(_0x2c2bad),_0x9b09b0=_0x59a28c['apps'][_0x6e37ce['appCode']],_0x1176df=[],_0x24f404=[];for(const _0x42f7df of _0x52148a){const _0x597e22=_0x9b09b0[_0x9c0a08(0x10f)][_0x42f7df[_0x9c0a08(0x110)]],_0x483370=ensureRemoteSqlContent(_0x42f7df),_0x208c03=detectModeFromSql(_0x42f7df),_0x4dd589=_0x42f7df[_0x9c0a08(0xdc)]?await getDbName(_0x316a51[_0x9c0a08(0xe4)],Number(_0x42f7df['dbId']))[_0x9c0a08(0x108)](()=>undefined):undefined,_0x5d3e31=buildLocalSqlFileContent({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'sqlName':_0x42f7df[_0x9c0a08(0xfd)],'dbId':_0x42f7df[_0x9c0a08(0xdc)]},_0x483370,{'dbName':_0x4dd589,'mode':_0x208c03,'syncedAt':new Date()['toISOString'](),'description':_0x42f7df['description']}),_0x40cdeb=buildSqlLockEntry(_0x42f7df,_0x483370,computeSqlContentHash(_0x5d3e31),{'dbName':_0x4dd589}),_0xcdf2a1=_0x40cdeb[_0x9c0a08(0xee)],_0x753eea=join(_0x6e37ce['sqlRootDir'],_0xcdf2a1);try{if(await fileExists(_0x753eea)){const _0x21dcca=await readFile(_0x753eea,'utf8');if(isEquivalentPulledSqlFile(_0x21dcca,_0x5d3e31,_0x208c03)){_0x24f404['push']({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'reason':_0x9c0a08(0xeb)}),_0x9b09b0[_0x9c0a08(0x10f)][_0x42f7df['sqlCode']]={..._0x40cdeb,'hash':computeSqlContentHash(_0x21dcca),'path':_0xcdf2a1};continue;}if(!_0x1e406e){_0x24f404['push']({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'reason':_0x9c0a08(0xde)});continue;}}const _0x3622eb=_0x597e22?.[_0x9c0a08(0xee)]?join(_0x6e37ce[_0x9c0a08(0x100)],_0x597e22[_0x9c0a08(0xee)]):undefined;_0x3622eb&&_0x3622eb!==_0x753eea&&await fileExists(_0x3622eb)&&await rm(_0x3622eb,{'force':!![]}),await ensureParentDirectory(_0x753eea),await writeFile(_0x753eea,_0x5d3e31,_0x9c0a08(0x112)),_0x9b09b0[_0x9c0a08(0x10f)][_0x42f7df[_0x9c0a08(0x110)]]={..._0x40cdeb,'path':_0xcdf2a1},_0x1176df[_0x9c0a08(0xd8)]({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'filePath':_0x753eea});}catch(_0x43c82a){_0x306c1e['push']({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'error':_0x43c82a instanceof Error?_0x43c82a[_0x9c0a08(0xf4)]:String(_0x43c82a)});}}return _0x9b09b0[_0x9c0a08(0xef)]=new Date()[_0x9c0a08(0xf2)](),await writeSqlLockFile(_0x6e37ce[_0x9c0a08(0xfb)],_0x59a28c),{'ok':_0x306c1e[_0x9c0a08(0xf5)]===0x0,'data':{'pulled':_0x1176df,'skipped':_0x24f404,'failed':_0x306c1e},'message':_0x9c0a08(0xf1)+_0x1176df[_0x9c0a08(0xf5)]+_0x9c0a08(0x10b)+_0x24f404[_0x9c0a08(0xf5)]+_0x9c0a08(0xfe)+_0x306c1e[_0x9c0a08(0xf5)]+_0x9c0a08(0x101)};}};function detectModeFromSql(_0x2e6a9e){const _0xbb0826=a113_0x1cf11c,_0x4ddd9f=ensureRemoteSqlContent(_0x2e6a9e),_0x284bb4=stripLocalSqlMetadata(_0x4ddd9f,_0xbb0826(0xf3))['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0xbb0826(0xec)](_0x284bb4))return _0xbb0826(0xf3);return _0xbb0826(0x102);}function isEquivalentPulledSqlFile(_0x383418,_0x488c44,_0x35513b){return normalizePullComparableContent(_0x383418,_0x35513b)===normalizePullComparableContent(_0x488c44,_0x35513b);}function normalizePullComparableContent(_0x1e2416,_0x9e6759){const _0x6ffc27=a113_0x1cf11c,_0x474d1a=_0x1e2416[_0x6ffc27(0xd6)](/\r\n/g,'\x0a')['split']('\x0a'),_0x1344e0=_0x474d1a[_0x6ffc27(0xe0)](_0xa61ed=>!isSyncedAtMetadataLine(_0xa61ed,_0x9e6759));return _0x1344e0[_0x6ffc27(0xd7)]('\x0a');}function a113_0x5330(_0x59a9d2,_0x35e7c4){_0x59a9d2=_0x59a9d2-0xd6;const _0x137638=a113_0x1376();let _0x533057=_0x137638[_0x59a9d2];return _0x533057;}function isSyncedAtMetadataLine(_0xe37525,_0x26f000){const _0x23469b=a113_0x1cf11c;if(_0x26f000==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x23469b(0xec)](_0xe37525);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x23469b(0xec)](_0xe37525);}
1
+ const a120_0x35c6d6=a120_0x1940;(function(_0x5eaa10,_0x57dfea){const _0x23eac1=a120_0x1940,_0x3629d7=_0x5eaa10();while(!![]){try{const _0x17e947=-parseInt(_0x23eac1(0x1cb))/0x1*(-parseInt(_0x23eac1(0x1b8))/0x2)+-parseInt(_0x23eac1(0x1d3))/0x3*(parseInt(_0x23eac1(0x1ab))/0x4)+-parseInt(_0x23eac1(0x1b2))/0x5*(parseInt(_0x23eac1(0x1b3))/0x6)+-parseInt(_0x23eac1(0x1bb))/0x7*(-parseInt(_0x23eac1(0x1d1))/0x8)+parseInt(_0x23eac1(0x1b6))/0x9*(parseInt(_0x23eac1(0x1c5))/0xa)+parseInt(_0x23eac1(0x1d4))/0xb+-parseInt(_0x23eac1(0x1de))/0xc*(-parseInt(_0x23eac1(0x1d5))/0xd);if(_0x17e947===_0x57dfea)break;else _0x3629d7['push'](_0x3629d7['shift']());}catch(_0x18b9bb){_0x3629d7['push'](_0x3629d7['shift']());}}}(a120_0x5e29,0x83ff1));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';function a120_0x5e29(){const _0x42382f=['path','\x20SQL\x20file(s)\x20into\x20','replace','POST','12mTDDji','name','boolean','force','length','Force\x20pull\x20cancelled.','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','catch','dbId','88372caRGWY','No\x20remote\x20SQL\x20queries\x20matched.','pull','push','toISOString','appCode','description','205fXGZQE','122154XDkrGK','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','conflict','18EnSIQJ','string','724hySrwW','sqlContent','sqlcode','60396icusQv','split','sql','str','write','sqlName','mybatisXml','\x20failed','test','bool','3235580CPvbPG','sqlRootDir','totalCount','sqls','sqlCode','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','554Vvuqni','trimStart','Force\x20overwrite\x20local\x20unsynced\x20changes','filter','lockFilePath','unchanged','464lLENyx','utf8','72oJyTrC','4802050rAEgBQ','1572610UmyNvW','message','lastSync','sqlRoot','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)'];a120_0x5e29=function(){return _0x42382f;};return a120_0x5e29();}import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a120_0x1940(_0x507df6,_0x56357b){_0x507df6=_0x507df6-0x1ab;const _0x5e29b1=a120_0x5e29();let _0x194043=_0x5e29b1[_0x507df6];return _0x194043;}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(_0x4c80ac,_0x56c9dc){const _0xf475cd=a120_0x1940,_0x2801b1=[];let _0x1348b7=0x1;while(!![]){const _0x475940=await listSqlQueries(_0x4c80ac,{'currentPage':_0x1348b7,'pageSize':PAGE_SIZE,'sqlCode':_0x56c9dc['sqlCode'],'sqlName':_0x56c9dc['sqlName']}),_0x5caf7d=_0x475940['tableData']??[];_0x2801b1[_0xf475cd(0x1ae)](..._0x5caf7d);if(_0x5caf7d['length']===0x0)break;const _0x262b18=_0x475940['paging']?.[_0xf475cd(0x1c7)];if(_0x262b18!=null?_0x2801b1[_0xf475cd(0x1e2)]>=_0x262b18:_0x5caf7d['length']<PAGE_SIZE)break;_0x1348b7++;}return _0x2801b1;}async function ensureSqlContent(_0x451f8a){const _0x5b5f75=a120_0x1940;if(_0x451f8a[_0x5b5f75(0x1b9)]!=null&&String(_0x451f8a[_0x5b5f75(0x1b9)])[_0x5b5f75(0x1e2)]>0x0)return _0x451f8a;return getSqlQueryDetail(_0x451f8a[_0x5b5f75(0x1c9)]);}export const sqlPull={'service':a120_0x35c6d6(0x1bd),'command':a120_0x35c6d6(0x1ad),'description':a120_0x35c6d6(0x1ca),'risk':a120_0x35c6d6(0x1bf),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a120_0x35c6d6(0x1b7),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':a120_0x35c6d6(0x1e1),'type':a120_0x35c6d6(0x1e0),'description':a120_0x35c6d6(0x1cd)}],async 'dryRun'(_0x110400){const _0x35d47f=a120_0x35c6d6,_0x1c34eb=loadSqlProjectConfig(_0x110400[_0x35d47f(0x1b0)]),_0x13be98=await readSqlLockFile(_0x1c34eb[_0x35d47f(0x1cf)]),{appLock:_0x155a80}=ensureSqlLockScope(_0x13be98??createEmptySqlLock(),_0x1c34eb[_0x35d47f(0x1b0)],_0x1c34eb['sqlRoot'],_0x35d47f(0x1ad)),_0x4c4c50=await fetchAllSqlQueries(_0x110400[_0x35d47f(0x1b0)],{'sqlCode':_0x110400[_0x35d47f(0x1be)]('sqlcode')||undefined,'sqlName':_0x110400[_0x35d47f(0x1be)](_0x35d47f(0x1df))||undefined}),_0x4fd01f=[];for(const _0x325be1 of _0x4c4c50){const _0x3086a0=await ensureSqlContent(_0x325be1),_0xc0cc47=ensureRemoteSqlContent(_0x3086a0),_0xe0da03=detectModeFromSql(_0x3086a0),_0x4ba42f=_0x3086a0[_0x35d47f(0x1e6)]?await getDbName(_0x110400[_0x35d47f(0x1b0)],Number(_0x3086a0[_0x35d47f(0x1e6)]))[_0x35d47f(0x1e5)](()=>undefined):undefined,_0xe71fff=buildLocalSqlFileContent({'sqlCode':_0x3086a0['sqlCode'],'sqlName':_0x3086a0[_0x35d47f(0x1c0)],'dbId':_0x3086a0['dbId']},_0xc0cc47,{'dbName':_0x4ba42f,'mode':_0xe0da03,'syncedAt':new Date()[_0x35d47f(0x1af)](),'description':_0x3086a0[_0x35d47f(0x1b1)]}),_0x1ef527=buildSqlLockEntry(_0x3086a0,_0xc0cc47,'',{'dbName':_0x4ba42f}),_0x2cd9f1=resolveLocalSqlFilePath(_0x1c34eb,_0x3086a0[_0x35d47f(0x1c9)],_0x1ef527);let _0x53a67f='would_pull',_0x390314;if(await fileExists(_0x2cd9f1)){const _0x2bb270=await readFile(_0x2cd9f1,_0x35d47f(0x1d2));isEquivalentPulledSqlFile(_0x2bb270,_0xe71fff,_0xe0da03)?(_0x53a67f='skipped',_0x390314='unchanged'):(_0x53a67f=_0x35d47f(0x1b5),_0x390314=_0x35d47f(0x1d9));}_0x4fd01f['push']({'sqlCode':_0x3086a0[_0x35d47f(0x1c9)],'sqlName':_0x3086a0['sqlName'],'filePath':_0x2cd9f1,'status':_0x53a67f,'reason':_0x390314});}return{'method':_0x35d47f(0x1dd),'url':_0x35d47f(0x1b4),'body':{'appCode':_0x110400[_0x35d47f(0x1b0)],'sqlCode':_0x110400['str'](_0x35d47f(0x1ba))||null,'sqlName':_0x110400[_0x35d47f(0x1be)](_0x35d47f(0x1df))||null,'files':_0x4fd01f},'description':'Would\x20pull\x20'+_0x4fd01f[_0x35d47f(0x1e2)]+_0x35d47f(0x1db)+_0x1c34eb['sqlRootDir']};},async 'execute'(_0x4601d6){const _0x2ba128=a120_0x35c6d6,_0x530179=loadSqlProjectConfig(_0x4601d6[_0x2ba128(0x1b0)]),_0x5a9f8a=await readSqlLockFile(_0x530179[_0x2ba128(0x1cf)]),{lockData:_0xd3a96b,appLock:_0x56fe3d}=ensureSqlLockScope(_0x5a9f8a??createEmptySqlLock(),_0x530179[_0x2ba128(0x1b0)],_0x530179[_0x2ba128(0x1d8)],_0x2ba128(0x1ad)),_0x2174f5=_0x4601d6[_0x2ba128(0x1c4)](_0x2ba128(0x1e1)),_0x9c0ddc=await fetchAllSqlQueries(_0x4601d6['appCode'],{'sqlCode':_0x4601d6['str'](_0x2ba128(0x1ba))||undefined,'sqlName':_0x4601d6[_0x2ba128(0x1be)](_0x2ba128(0x1df))||undefined});if(_0x9c0ddc[_0x2ba128(0x1e2)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x2ba128(0x1ac)};const _0x43563e=[],_0x307f8d=[];for(const _0x1c56ee of _0x9c0ddc){try{_0x43563e[_0x2ba128(0x1ae)](await ensureSqlContent(_0x1c56ee));}catch(_0x46ca7a){_0x307f8d[_0x2ba128(0x1ae)]({'sqlCode':_0x1c56ee[_0x2ba128(0x1c9)],'error':_0x46ca7a instanceof Error?_0x46ca7a[_0x2ba128(0x1d6)]:String(_0x46ca7a)});}}if(_0x2174f5&&!_0x4601d6['nonInteractive']){let _0x21a231=![];for(const _0x11216a of _0x43563e){const _0x386f27=detectModeFromSql(_0x11216a),_0x421a4a=_0x11216a[_0x2ba128(0x1e6)]?await getDbName(_0x4601d6['appCode'],Number(_0x11216a['dbId']))[_0x2ba128(0x1e5)](()=>undefined):undefined,_0xeea0bb=buildLocalSqlFileContent({'sqlCode':_0x11216a[_0x2ba128(0x1c9)],'sqlName':_0x11216a[_0x2ba128(0x1c0)],'dbId':_0x11216a[_0x2ba128(0x1e6)]},ensureRemoteSqlContent(_0x11216a),{'dbName':_0x421a4a,'mode':_0x386f27,'syncedAt':new Date()[_0x2ba128(0x1af)](),'description':_0x11216a['description']}),_0x3a1684=resolveLocalSqlFilePath(_0x530179,_0x11216a[_0x2ba128(0x1c9)],buildSqlLockEntry(_0x11216a,ensureRemoteSqlContent(_0x11216a),'',{'dbName':_0x421a4a}));if(await fileExists(_0x3a1684)){const _0x18f281=await readFile(_0x3a1684,_0x2ba128(0x1d2));if(!isEquivalentPulledSqlFile(_0x18f281,_0xeea0bb,_0x386f27)){_0x21a231=!![];break;}}}if(_0x21a231){const _0x5ec03a=await confirmForceOverwrite(_0x2ba128(0x1e4));if(!_0x5ec03a)throw CliErrors['cancelled'](_0x2ba128(0x1e3));}}const _0x3e10ae=cloneSqlLockData(_0xd3a96b),_0x3859e9=_0x3e10ae['apps'][_0x530179[_0x2ba128(0x1b0)]],_0x4c9dd4=[],_0x35bd24=[];for(const _0xaff03e of _0x43563e){const _0x54d623=_0x3859e9['sqls'][_0xaff03e[_0x2ba128(0x1c9)]],_0x248746=ensureRemoteSqlContent(_0xaff03e),_0x4ee3c9=detectModeFromSql(_0xaff03e),_0x185c95=_0xaff03e['dbId']?await getDbName(_0x4601d6[_0x2ba128(0x1b0)],Number(_0xaff03e['dbId']))[_0x2ba128(0x1e5)](()=>undefined):undefined,_0x3566ca=buildLocalSqlFileContent({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'sqlName':_0xaff03e['sqlName'],'dbId':_0xaff03e['dbId']},_0x248746,{'dbName':_0x185c95,'mode':_0x4ee3c9,'syncedAt':new Date()['toISOString'](),'description':_0xaff03e[_0x2ba128(0x1b1)]}),_0x6aa465=buildSqlLockEntry(_0xaff03e,_0x248746,computeSqlContentHash(_0x3566ca),{'dbName':_0x185c95}),_0x52c433=_0x6aa465[_0x2ba128(0x1da)],_0x40e089=join(_0x530179[_0x2ba128(0x1c6)],_0x52c433);try{if(await fileExists(_0x40e089)){const _0x42f51b=await readFile(_0x40e089,_0x2ba128(0x1d2));if(isEquivalentPulledSqlFile(_0x42f51b,_0x3566ca,_0x4ee3c9)){_0x35bd24[_0x2ba128(0x1ae)]({'sqlCode':_0xaff03e['sqlCode'],'reason':_0x2ba128(0x1d0)}),_0x3859e9['sqls'][_0xaff03e[_0x2ba128(0x1c9)]]={..._0x6aa465,'hash':computeSqlContentHash(_0x42f51b),'path':_0x52c433};continue;}if(!_0x2174f5){_0x35bd24[_0x2ba128(0x1ae)]({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x5d72e2=_0x54d623?.[_0x2ba128(0x1da)]?join(_0x530179[_0x2ba128(0x1c6)],_0x54d623[_0x2ba128(0x1da)]):undefined;_0x5d72e2&&_0x5d72e2!==_0x40e089&&await fileExists(_0x5d72e2)&&await rm(_0x5d72e2,{'force':!![]}),await ensureParentDirectory(_0x40e089),await writeFile(_0x40e089,_0x3566ca,_0x2ba128(0x1d2)),_0x3859e9[_0x2ba128(0x1c8)][_0xaff03e['sqlCode']]={..._0x6aa465,'path':_0x52c433},_0x4c9dd4[_0x2ba128(0x1ae)]({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'filePath':_0x40e089});}catch(_0x420cad){_0x307f8d['push']({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'error':_0x420cad instanceof Error?_0x420cad[_0x2ba128(0x1d6)]:String(_0x420cad)});}}return _0x3859e9[_0x2ba128(0x1d7)]=new Date()[_0x2ba128(0x1af)](),await writeSqlLockFile(_0x530179[_0x2ba128(0x1cf)],_0x3e10ae),{'ok':_0x307f8d[_0x2ba128(0x1e2)]===0x0,'data':{'pulled':_0x4c9dd4,'skipped':_0x35bd24,'failed':_0x307f8d},'message':'Pull\x20complete:\x20'+_0x4c9dd4['length']+'\x20written,\x20'+_0x35bd24[_0x2ba128(0x1e2)]+'\x20skipped,\x20'+_0x307f8d[_0x2ba128(0x1e2)]+_0x2ba128(0x1c2)};}};function detectModeFromSql(_0x5cb837){const _0x1d357c=a120_0x35c6d6,_0x20e4df=ensureRemoteSqlContent(_0x5cb837),_0x2dd971=stripLocalSqlMetadata(_0x20e4df,_0x1d357c(0x1c1))[_0x1d357c(0x1cc)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x2dd971))return _0x1d357c(0x1c1);return _0x1d357c(0x1bd);}function isEquivalentPulledSqlFile(_0x445b8a,_0x5a93f4,_0x5351ac){return normalizePullComparableContent(_0x445b8a,_0x5351ac)===normalizePullComparableContent(_0x5a93f4,_0x5351ac);}function normalizePullComparableContent(_0x30cfbc,_0x45be4a){const _0x3b6f5f=a120_0x35c6d6,_0x539a88=_0x30cfbc[_0x3b6f5f(0x1dc)](/\r\n/g,'\x0a')[_0x3b6f5f(0x1bc)]('\x0a'),_0x4bef43=_0x539a88[_0x3b6f5f(0x1ce)](_0x1477b9=>!isSyncedAtMetadataLine(_0x1477b9,_0x45be4a));return _0x4bef43['join']('\x0a');}function isSyncedAtMetadataLine(_0xb824fa,_0x37e9ea){const _0x472879=a120_0x35c6d6;if(_0x37e9ea===_0x472879(0x1c1))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x472879(0x1c3)](_0xb824fa);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x472879(0x1c3)](_0xb824fa);}
@@ -1 +1 @@
1
- const a114_0x3784ff=a114_0x11fa;(function(_0x10e803,_0x4f91b8){const _0x34ba39=a114_0x11fa,_0x1f8d5e=_0x10e803();while(!![]){try{const _0x326d4b=-parseInt(_0x34ba39(0x128))/0x1+-parseInt(_0x34ba39(0x14d))/0x2*(-parseInt(_0x34ba39(0x167))/0x3)+parseInt(_0x34ba39(0x149))/0x4+parseInt(_0x34ba39(0x12f))/0x5+parseInt(_0x34ba39(0x147))/0x6*(-parseInt(_0x34ba39(0x12d))/0x7)+parseInt(_0x34ba39(0x165))/0x8+parseInt(_0x34ba39(0x14e))/0x9*(-parseInt(_0x34ba39(0x159))/0xa);if(_0x326d4b===_0x4f91b8)break;else _0x1f8d5e['push'](_0x1f8d5e['shift']());}catch(_0x180f81){_0x1f8d5e['push'](_0x1f8d5e['shift']());}}}(a114_0x3bd9,0x256ef));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';function a114_0x3bd9(){const _0x113a91=['push','Local\x20SQL\x20not\x20found:\x20','utf8','str','remoteId','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','sqlRootDir','1362918VlVfAZ','join','1114980yZtifc','bool','lockFilePath','Local\x20directory\x20\x22','2gGCqnV','3618891yjzxEG','No\x20local\x20SQL\x20files\x20found.','force','path','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','validation','Push\x20complete:\x20','lastSync','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','get','version','10bYuVEo','has','sql','toISOString','unchanged','/smartapi/custom/updateUserCustomSql','replace','set','No\x20database\x20matches\x20local\x20directory\x20\x22','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','dbDirectory','sqlRoot','2019984pGoJEE','map','141159lLJLFs','entries','filePath','74142NQytMI','\x20skipped,\x20','sqlCode','dbId','boolean','7KDgnjY','length','1392125oDaOma','startsWith','projectRoot','POST','isFinite','mode','relativePath','filter','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','message','catch','dbName','\x20failed','Push\x20local\x20SQL\x20files\x20to\x20remote','appCode','sqlName','sqls'];a114_0x3bd9=function(){return _0x113a91;};return a114_0x3bd9();}async function getTargetSqlQueries(_0x6bac02,_0x255ee4,_0x59109c){const _0x5ecc73=a114_0x11fa,_0x4d8b38=await scanLocalSqlQueries(_0x6bac02),_0x366a55=new Map();for(const _0x103a1e of _0x4d8b38){if(_0x59109c&&_0x103a1e[_0x5ecc73(0x12a)]!==_0x59109c)continue;const _0x1ec6a2=_0x366a55[_0x5ecc73(0x157)](_0x103a1e[_0x5ecc73(0x12a)])??[];_0x1ec6a2['push'](_0x103a1e),_0x366a55[_0x5ecc73(0x160)](_0x103a1e[_0x5ecc73(0x12a)],_0x1ec6a2);}if(_0x59109c&&!_0x366a55[_0x5ecc73(0x15a)](_0x59109c))throw CliErrors[_0x5ecc73(0x153)](_0x5ecc73(0x141)+_0x59109c);const _0x342b0f=[];for(const [_0x4073c0,_0x1598f2]of _0x366a55[_0x5ecc73(0x168)]()){if(_0x1598f2['length']===0x1){_0x342b0f['push'](_0x1598f2[0x0]);continue;}const _0x31c4b3=_0x255ee4[_0x5ecc73(0x13f)][_0x4073c0],_0x2be22d=_0x31c4b3?.[_0x5ecc73(0x151)],_0x5e6add=_0x2be22d?_0x1598f2['filter'](_0x2d0f7a=>_0x2d0f7a[_0x5ecc73(0x135)]!==_0x2be22d):_0x1598f2;if(_0x31c4b3&&_0x5e6add[_0x5ecc73(0x12e)]===0x1){_0x342b0f[_0x5ecc73(0x140)](_0x5e6add[0x0]);continue;}throw CliErrors['validation'](_0x5ecc73(0x137)+_0x4073c0+_0x5ecc73(0x152));}return _0x342b0f;}export const sqlPush={'service':a114_0x3784ff(0x15b),'command':a114_0x3784ff(0x140),'description':a114_0x3784ff(0x13c),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a114_0x3784ff(0x150),'type':a114_0x3784ff(0x12c),'description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0xae24e2){const _0x54520d=a114_0x3784ff,_0x2eb805=loadSqlProjectConfig(_0xae24e2['appCode']),_0x374620=await readSqlLockFile(_0x2eb805['lockFilePath']),{appLock:_0x22f2ca}=ensureSqlLockScope(_0x374620??createEmptySqlLock(),_0xae24e2[_0x54520d(0x13d)],_0x2eb805[_0x54520d(0x164)],'push'),_0x176ae7=await getTargetSqlQueries(_0x2eb805,_0x22f2ca,_0xae24e2[_0x54520d(0x143)]('sqlcode')||undefined),_0x650949=[];for(const _0x5e8ff5 of _0x176ae7){const _0x54f815=await computeSqlFileHash(_0x5e8ff5[_0x54520d(0x127)]),_0x59ef96=_0x22f2ca[_0x54520d(0x13f)][_0x5e8ff5['sqlCode']],_0x18e0d6=!!_0x59ef96&&(_0x59ef96['path']!==_0x5e8ff5['relativePath']||!!_0x5e8ff5[_0x54520d(0x13e)]&&_0x59ef96[_0x54520d(0x13e)]!==_0x5e8ff5[_0x54520d(0x13e)]);if(!_0xae24e2[_0x54520d(0x14a)]('force')&&_0x59ef96&&_0x59ef96['hash']===_0x54f815&&!_0x18e0d6)continue;_0x650949[_0x54520d(0x140)](_0x5e8ff5[_0x54520d(0x12a)]);}return{'method':_0x54520d(0x132),'url':_0x54520d(0x15e),'body':{'sqlCodes':_0x650949,'appCode':_0xae24e2[_0x54520d(0x13d)]},'description':'Would\x20push\x20'+_0x650949[_0x54520d(0x12e)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x55eb12){const _0x23110b=a114_0x3784ff,_0x2d4210=loadSqlProjectConfig(_0x55eb12[_0x23110b(0x13d)]),_0x8d3261=await readSqlLockFile(_0x2d4210[_0x23110b(0x14b)]),{lockData:_0x24f8ee,appLock:_0x24cba2}=ensureSqlLockScope(_0x8d3261??createEmptySqlLock(),_0x55eb12[_0x23110b(0x13d)],_0x2d4210[_0x23110b(0x164)],_0x23110b(0x140)),_0x17fd20=await getTargetSqlQueries(_0x2d4210,_0x24cba2,_0x55eb12[_0x23110b(0x143)]('sqlcode')||undefined);if(_0x17fd20['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x23110b(0x14f)};const _0x460f67=[],_0x5c092e=[],_0x2f3fb3=[];for(const _0x4d2200 of _0x17fd20){const _0x408959=_0x24cba2[_0x23110b(0x13f)][_0x4d2200[_0x23110b(0x12a)]];if(!_0x408959){_0x2f3fb3[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'error':_0x23110b(0x145)});continue;}try{const _0x46bf55=await computeSqlFileHash(_0x4d2200[_0x23110b(0x127)]),_0x3ba9d4=_0x408959['path']!==_0x4d2200[_0x23110b(0x135)]||!!_0x4d2200[_0x23110b(0x13e)]&&_0x408959[_0x23110b(0x13e)]!==_0x4d2200['sqlName'];if(!_0x55eb12['bool'](_0x23110b(0x150))&&_0x408959['hash']===_0x46bf55&&!_0x3ba9d4){_0x5c092e['push']({'sqlCode':_0x4d2200['sqlCode'],'reason':_0x23110b(0x15d)});continue;}if(_0x408959['version']==null){_0x2f3fb3[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'error':_0x23110b(0x156)});continue;}const _0x2f8639=await readFile(_0x4d2200[_0x23110b(0x127)],_0x23110b(0x142)),_0x15907b=stripLocalSqlMetadata(_0x2f8639,_0x4d2200[_0x23110b(0x134)]),_0x47c682=_0x4d2200[_0x23110b(0x13e)]||_0x408959['sqlName'],_0x48e898=await resolveTargetDbBinding(_0x55eb12[_0x23110b(0x13d)],_0x4d2200,_0x408959),_0x113c06=await updateSqlQuery({'id':_0x408959[_0x23110b(0x144)],'appCode':_0x55eb12[_0x23110b(0x13d)],'sqlCode':_0x4d2200['sqlCode'],'sqlName':_0x47c682,'dbId':_0x48e898[_0x23110b(0x12b)],'version':_0x408959[_0x23110b(0x158)],'sqlContent':_0x15907b,'sqlConfig':_0x408959['sqlConfig']??undefined}),_0x946e9e=_0x113c06[_0x23110b(0x12b)]?await getDbName(_0x55eb12[_0x23110b(0x13d)],Number(_0x113c06['dbId']))[_0x23110b(0x139)](()=>_0x48e898[_0x23110b(0x13a)]):_0x48e898[_0x23110b(0x13a)];_0x24cba2[_0x23110b(0x13f)][_0x4d2200[_0x23110b(0x12a)]]={...buildSqlLockEntry(_0x113c06,_0x15907b,_0x46bf55,{'dbName':_0x946e9e}),'path':_0x4d2200['relativePath'],'mode':_0x408959[_0x23110b(0x134)]},await archivePreviousSqlFileIfNeeded(_0x2d4210,_0x408959[_0x23110b(0x151)],_0x4d2200[_0x23110b(0x135)]),_0x460f67[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'remoteId':_0x408959[_0x23110b(0x144)]});}catch(_0x1ac4fe){_0x2f3fb3[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'error':_0x1ac4fe instanceof Error?_0x1ac4fe[_0x23110b(0x138)]:String(_0x1ac4fe)});}}return _0x24cba2[_0x23110b(0x155)]=new Date()['toISOString'](),await writeSqlLockFile(_0x2d4210[_0x23110b(0x14b)],_0x24f8ee),{'ok':_0x2f3fb3[_0x23110b(0x12e)]===0x0,'data':{'pushed':_0x460f67,'skipped':_0x5c092e,'failed':_0x2f3fb3},'message':_0x23110b(0x154)+_0x460f67['length']+'\x20pushed,\x20'+_0x5c092e[_0x23110b(0x12e)]+_0x23110b(0x129)+_0x2f3fb3[_0x23110b(0x12e)]+_0x23110b(0x13b)};}};async function archivePreviousSqlFileIfNeeded(_0x5a804b,_0x376b9f,_0x578da5){const _0x270851=a114_0x3784ff;if(!_0x376b9f||_0x376b9f===_0x578da5)return;const _0x880b75=join(_0x5a804b[_0x270851(0x146)],_0x376b9f);if(!await fileExists(_0x880b75))return;const _0x4ff63a=await moveToTrash(_0x5a804b[_0x270851(0x131)],_0x5a804b['trashDir'],_0x880b75);await cleanupEmptyDirectories(dirname(_0x880b75),_0x5a804b[_0x270851(0x146)]),void _0x4ff63a;}async function moveToTrash(_0x5f1891,_0x356532,_0x35490e){const _0x41d57a=a114_0x3784ff,_0x136a27=new Date()[_0x41d57a(0x15c)]()[_0x41d57a(0x15f)](/[:.]/g,'-'),_0x3d7b5c=relative(_0x5f1891,_0x35490e),_0x3bba32=join(_0x356532,_0x136a27,_0x3d7b5c);return await mkdir(dirname(_0x3bba32),{'recursive':!![]}),await rename(_0x35490e,_0x3bba32),_0x3bba32;}async function cleanupEmptyDirectories(_0x3207f5,_0xc6b403){const _0x3b35d5=a114_0x3784ff;let _0x56a227=resolve(_0x3207f5);const _0x17ee94=resolve(_0xc6b403);while(_0x56a227[_0x3b35d5(0x130)](''+_0x17ee94+sep)||_0x56a227===_0x17ee94){if(_0x56a227===_0x17ee94)return;try{const _0x4464f4=await readdir(_0x56a227);if(_0x4464f4[_0x3b35d5(0x12e)]>0x0)return;await rmdir(_0x56a227);}catch{return;}_0x56a227=dirname(_0x56a227);}}async function resolveTargetDbBinding(_0xb10ac5,_0x162174,_0x30a04b){const _0x29656e=a114_0x3784ff,_0x1e7140=_0x162174[_0x29656e(0x163)];if(!_0x1e7140)return{'dbId':_0x30a04b[_0x29656e(0x12b)],'dbName':_0x30a04b[_0x29656e(0x13a)]};const _0x44fbbb=buildDbDirectoryName(_0x30a04b[_0x29656e(0x13a)],_0x30a04b['dbId']);if(_0x1e7140===_0x44fbbb)return{'dbId':_0x30a04b[_0x29656e(0x12b)],'dbName':_0x30a04b[_0x29656e(0x13a)]};const _0x349938=parseExplicitDbDirectory(_0x1e7140);if(_0x349938!=null)return{'dbId':_0x349938,'dbName':await getDbName(_0xb10ac5,_0x349938)[_0x29656e(0x139)](()=>undefined)};const _0x386971=await listDatabases(_0xb10ac5),_0x81d062=_0x386971[_0x29656e(0x136)](_0x1411e1=>buildDbDirectoryName(_0x1411e1[_0x29656e(0x13a)],_0x1411e1['dbId'])===_0x1e7140);if(_0x81d062['length']===0x1)return{'dbId':_0x81d062[0x0][_0x29656e(0x12b)],'dbName':_0x81d062[0x0]['dbName']};if(_0x81d062[_0x29656e(0x12e)]===0x0)throw CliErrors['validation'](_0x29656e(0x161)+_0x1e7140+'\x22\x20for\x20sqlCode\x20'+_0x162174[_0x29656e(0x12a)]+'.');const _0x414b1c=_0x81d062[_0x29656e(0x166)](_0x436130=>_0x436130['dbName']+'\x20('+_0x436130['dbId']+')')[_0x29656e(0x148)](',\x20');throw CliErrors['validation'](_0x29656e(0x14c)+_0x1e7140+_0x29656e(0x162)+_0x162174[_0x29656e(0x12a)]+':\x20'+_0x414b1c);}function a114_0x11fa(_0x4f5324,_0x4e920e){_0x4f5324=_0x4f5324-0x127;const _0x3bd906=a114_0x3bd9();let _0x11fabb=_0x3bd906[_0x4f5324];return _0x11fabb;}function parseExplicitDbDirectory(_0x3a2ec0){const _0x50f71d=a114_0x3784ff,_0x523c29=/^db-(\d+)$/['exec'](_0x3a2ec0);if(!_0x523c29)return null;const _0x7f8b08=Number(_0x523c29[0x1]);return Number[_0x50f71d(0x133)](_0x7f8b08)&&_0x7f8b08>0x0?_0x7f8b08:null;}
1
+ function a121_0x2ab4(_0x3a8a34,_0x40c71d){_0x3a8a34=_0x3a8a34-0xea;const _0x3c0447=a121_0x3c04();let _0x2ab48d=_0x3c0447[_0x3a8a34];return _0x2ab48d;}function a121_0x3c04(){const _0x947a5=['Would\x20push\x20','sqlCode','replace','143595uBFbEr','sqlConfig','27377qfHSmZ','sqlRootDir','/smartapi/custom/updateUserCustomSql','catch','set','force','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','12iNUcEC','No\x20database\x20matches\x20local\x20directory\x20\x22','Push\x20complete:\x20','remoteId','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','Local\x20SQL\x20not\x20found:\x20','entries','\x22\x20for\x20sqlCode\x20','length','exec','validation','version','sqlRoot','appCode','startsWith','sql','path','lastSync','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','\x20SQL\x20file(s)','\x20skipped,\x20','140bJlbTd','toISOString','hash','117845SQlqfN','get','sqlName','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','10lkkPkW','message','relativePath','filter','map','has','join','295815XFCWoB','dbName','Push\x20local\x20SQL\x20files\x20to\x20remote','POST','174jpatEb','bool','filePath','313893TjTInt','utf8','isFinite','sqlcode','mode','252JwUzxR','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','dbDirectory','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','trashDir','unchanged','dbId','lockFilePath','sqls','24IyTxLc','push','\x20failed','55913loLOhK','45077tEeuHt'];a121_0x3c04=function(){return _0x947a5;};return a121_0x3c04();}const a121_0x39bd3c=a121_0x2ab4;(function(_0x5698b2,_0x3193df){const _0x3e45ea=a121_0x2ab4,_0x164957=_0x5698b2();while(!![]){try{const _0x2e12ae=parseInt(_0x3e45ea(0xed))/0x1*(parseInt(_0x3e45ea(0x116))/0x2)+-parseInt(_0x3e45ea(0x124))/0x3*(parseInt(_0x3e45ea(0xfa))/0x4)+parseInt(_0x3e45ea(0x11d))/0x5+-parseInt(_0x3e45ea(0x121))/0x6*(parseInt(_0x3e45ea(0xf3))/0x7)+-parseInt(_0x3e45ea(0x132))/0x8*(-parseInt(_0x3e45ea(0xf1))/0x9)+parseInt(_0x3e45ea(0x10f))/0xa*(parseInt(_0x3e45ea(0xec))/0xb)+-parseInt(_0x3e45ea(0x129))/0xc*(-parseInt(_0x3e45ea(0x112))/0xd);if(_0x2e12ae===_0x3193df)break;else _0x164957['push'](_0x164957['shift']());}catch(_0x25aecd){_0x164957['push'](_0x164957['shift']());}}}(a121_0x3c04,0x28ae4));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(_0x2b4629,_0x15bfbf,_0x132ea5){const _0x2de150=a121_0x2ab4,_0x1d977b=await scanLocalSqlQueries(_0x2b4629),_0x18d172=new Map();for(const _0xa740ed of _0x1d977b){if(_0x132ea5&&_0xa740ed[_0x2de150(0xef)]!==_0x132ea5)continue;const _0x132ef1=_0x18d172[_0x2de150(0x113)](_0xa740ed['sqlCode'])??[];_0x132ef1[_0x2de150(0xea)](_0xa740ed),_0x18d172[_0x2de150(0xf7)](_0xa740ed[_0x2de150(0xef)],_0x132ef1);}if(_0x132ea5&&!_0x18d172[_0x2de150(0x11b)](_0x132ea5))throw CliErrors['validation'](_0x2de150(0xff)+_0x132ea5);const _0x36dc20=[];for(const [_0x574e01,_0x2b0632]of _0x18d172[_0x2de150(0x100)]()){if(_0x2b0632[_0x2de150(0x102)]===0x1){_0x36dc20[_0x2de150(0xea)](_0x2b0632[0x0]);continue;}const _0x2eace0=_0x15bfbf[_0x2de150(0x131)][_0x574e01],_0x3a37c8=_0x2eace0?.['path'],_0x1662ea=_0x3a37c8?_0x2b0632[_0x2de150(0x119)](_0x82d99c=>_0x82d99c[_0x2de150(0x118)]!==_0x3a37c8):_0x2b0632;if(_0x2eace0&&_0x1662ea['length']===0x1){_0x36dc20[_0x2de150(0xea)](_0x1662ea[0x0]);continue;}throw CliErrors[_0x2de150(0x104)](_0x2de150(0xf9)+_0x574e01+_0x2de150(0x12a));}return _0x36dc20;}export const sqlPush={'service':a121_0x39bd3c(0x109),'command':'push','description':a121_0x39bd3c(0x11f),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':'boolean','description':a121_0x39bd3c(0x10c)}],async 'dryRun'(_0x24847e){const _0x1a108e=a121_0x39bd3c,_0x29a9a2=loadSqlProjectConfig(_0x24847e['appCode']),_0x142d29=await readSqlLockFile(_0x29a9a2[_0x1a108e(0x130)]),{appLock:_0x39a974}=ensureSqlLockScope(_0x142d29??createEmptySqlLock(),_0x24847e[_0x1a108e(0x107)],_0x29a9a2[_0x1a108e(0x106)],_0x1a108e(0xea)),_0x119d49=await getTargetSqlQueries(_0x29a9a2,_0x39a974,_0x24847e['str'](_0x1a108e(0x127))||undefined),_0x1c0d12=[];for(const _0x4f4c29 of _0x119d49){const _0x2b82e6=await computeSqlFileHash(_0x4f4c29[_0x1a108e(0x123)]),_0x1a7d5c=_0x39a974[_0x1a108e(0x131)][_0x4f4c29[_0x1a108e(0xef)]],_0x48f8a3=!!_0x1a7d5c&&(_0x1a7d5c[_0x1a108e(0x10a)]!==_0x4f4c29['relativePath']||!!_0x4f4c29[_0x1a108e(0x114)]&&_0x1a7d5c[_0x1a108e(0x114)]!==_0x4f4c29['sqlName']);if(!_0x24847e[_0x1a108e(0x122)](_0x1a108e(0xf8))&&_0x1a7d5c&&_0x1a7d5c[_0x1a108e(0x111)]===_0x2b82e6&&!_0x48f8a3)continue;_0x1c0d12[_0x1a108e(0xea)](_0x4f4c29[_0x1a108e(0xef)]);}return{'method':_0x1a108e(0x120),'url':_0x1a108e(0xf5),'body':{'sqlCodes':_0x1c0d12,'appCode':_0x24847e[_0x1a108e(0x107)]},'description':_0x1a108e(0xee)+_0x1c0d12[_0x1a108e(0x102)]+_0x1a108e(0x10d)};},async 'execute'(_0x18f806){const _0x227226=a121_0x39bd3c,_0x10189e=loadSqlProjectConfig(_0x18f806[_0x227226(0x107)]),_0x1cb3c8=await readSqlLockFile(_0x10189e[_0x227226(0x130)]),{lockData:_0x566ef5,appLock:_0x28ba13}=ensureSqlLockScope(_0x1cb3c8??createEmptySqlLock(),_0x18f806[_0x227226(0x107)],_0x10189e[_0x227226(0x106)],_0x227226(0xea)),_0x310b7f=await getTargetSqlQueries(_0x10189e,_0x28ba13,_0x18f806['str']('sqlcode')||undefined);if(_0x310b7f[_0x227226(0x102)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x230002=[],_0xc61247=[],_0x38aa26=[];for(const _0x55ac55 of _0x310b7f){const _0x31af8c=_0x28ba13[_0x227226(0x131)][_0x55ac55[_0x227226(0xef)]];if(!_0x31af8c){_0x38aa26[_0x227226(0xea)]({'sqlCode':_0x55ac55[_0x227226(0xef)],'error':_0x227226(0x115)});continue;}try{const _0x1394ca=await computeSqlFileHash(_0x55ac55[_0x227226(0x123)]),_0x12e999=_0x31af8c[_0x227226(0x10a)]!==_0x55ac55[_0x227226(0x118)]||!!_0x55ac55[_0x227226(0x114)]&&_0x31af8c[_0x227226(0x114)]!==_0x55ac55[_0x227226(0x114)];if(!_0x18f806[_0x227226(0x122)](_0x227226(0xf8))&&_0x31af8c['hash']===_0x1394ca&&!_0x12e999){_0xc61247[_0x227226(0xea)]({'sqlCode':_0x55ac55['sqlCode'],'reason':_0x227226(0x12e)});continue;}if(_0x31af8c[_0x227226(0x105)]==null){_0x38aa26['push']({'sqlCode':_0x55ac55['sqlCode'],'error':_0x227226(0xfe)});continue;}const _0x253c5c=await readFile(_0x55ac55['filePath'],_0x227226(0x125)),_0x463df1=stripLocalSqlMetadata(_0x253c5c,_0x55ac55[_0x227226(0x128)]),_0x490cc7=_0x55ac55[_0x227226(0x114)]||_0x31af8c[_0x227226(0x114)],_0xb15e9b=await resolveTargetDbBinding(_0x18f806[_0x227226(0x107)],_0x55ac55,_0x31af8c),_0x2e159f=await updateSqlQuery({'id':_0x31af8c[_0x227226(0xfd)],'appCode':_0x18f806[_0x227226(0x107)],'sqlCode':_0x55ac55[_0x227226(0xef)],'sqlName':_0x490cc7,'dbId':_0xb15e9b[_0x227226(0x12f)],'version':_0x31af8c[_0x227226(0x105)],'sqlContent':_0x463df1,'sqlConfig':_0x31af8c[_0x227226(0xf2)]??undefined}),_0x3dc808=_0x2e159f['dbId']?await getDbName(_0x18f806[_0x227226(0x107)],Number(_0x2e159f[_0x227226(0x12f)]))[_0x227226(0xf6)](()=>_0xb15e9b[_0x227226(0x11e)]):_0xb15e9b[_0x227226(0x11e)];_0x28ba13[_0x227226(0x131)][_0x55ac55[_0x227226(0xef)]]={...buildSqlLockEntry(_0x2e159f,_0x463df1,_0x1394ca,{'dbName':_0x3dc808}),'path':_0x55ac55[_0x227226(0x118)],'mode':_0x31af8c['mode']},await archivePreviousSqlFileIfNeeded(_0x10189e,_0x31af8c[_0x227226(0x10a)],_0x55ac55[_0x227226(0x118)]),_0x230002['push']({'sqlCode':_0x55ac55['sqlCode'],'remoteId':_0x31af8c[_0x227226(0xfd)]});}catch(_0x45e184){_0x38aa26[_0x227226(0xea)]({'sqlCode':_0x55ac55[_0x227226(0xef)],'error':_0x45e184 instanceof Error?_0x45e184[_0x227226(0x117)]:String(_0x45e184)});}}return _0x28ba13[_0x227226(0x10b)]=new Date()['toISOString'](),await writeSqlLockFile(_0x10189e[_0x227226(0x130)],_0x566ef5),{'ok':_0x38aa26['length']===0x0,'data':{'pushed':_0x230002,'skipped':_0xc61247,'failed':_0x38aa26},'message':_0x227226(0xfc)+_0x230002['length']+'\x20pushed,\x20'+_0xc61247[_0x227226(0x102)]+_0x227226(0x10e)+_0x38aa26[_0x227226(0x102)]+_0x227226(0xeb)};}};async function archivePreviousSqlFileIfNeeded(_0x228daf,_0x1ab527,_0x56444c){const _0x19ef4c=a121_0x39bd3c;if(!_0x1ab527||_0x1ab527===_0x56444c)return;const _0x37acad=join(_0x228daf[_0x19ef4c(0xf4)],_0x1ab527);if(!await fileExists(_0x37acad))return;const _0x2a07b4=await moveToTrash(_0x228daf['projectRoot'],_0x228daf[_0x19ef4c(0x12d)],_0x37acad);await cleanupEmptyDirectories(dirname(_0x37acad),_0x228daf[_0x19ef4c(0xf4)]),void _0x2a07b4;}async function moveToTrash(_0x15c945,_0x1a7ff9,_0xdd613a){const _0x4eba33=a121_0x39bd3c,_0x10dafd=new Date()[_0x4eba33(0x110)]()[_0x4eba33(0xf0)](/[:.]/g,'-'),_0x2e88ba=relative(_0x15c945,_0xdd613a),_0x2f6a2f=join(_0x1a7ff9,_0x10dafd,_0x2e88ba);return await mkdir(dirname(_0x2f6a2f),{'recursive':!![]}),await rename(_0xdd613a,_0x2f6a2f),_0x2f6a2f;}async function cleanupEmptyDirectories(_0x16bb3f,_0x43b63a){const _0x4de4cc=a121_0x39bd3c;let _0x206c94=resolve(_0x16bb3f);const _0x3a4452=resolve(_0x43b63a);while(_0x206c94[_0x4de4cc(0x108)](''+_0x3a4452+sep)||_0x206c94===_0x3a4452){if(_0x206c94===_0x3a4452)return;try{const _0x56c81b=await readdir(_0x206c94);if(_0x56c81b[_0x4de4cc(0x102)]>0x0)return;await rmdir(_0x206c94);}catch{return;}_0x206c94=dirname(_0x206c94);}}async function resolveTargetDbBinding(_0x31b4f6,_0x2a76ef,_0x374a91){const _0x2c5b18=a121_0x39bd3c,_0x35bae8=_0x2a76ef[_0x2c5b18(0x12b)];if(!_0x35bae8)return{'dbId':_0x374a91['dbId'],'dbName':_0x374a91[_0x2c5b18(0x11e)]};const _0x2a4a79=buildDbDirectoryName(_0x374a91['dbName'],_0x374a91['dbId']);if(_0x35bae8===_0x2a4a79)return{'dbId':_0x374a91[_0x2c5b18(0x12f)],'dbName':_0x374a91['dbName']};const _0x9db42e=parseExplicitDbDirectory(_0x35bae8);if(_0x9db42e!=null)return{'dbId':_0x9db42e,'dbName':await getDbName(_0x31b4f6,_0x9db42e)[_0x2c5b18(0xf6)](()=>undefined)};const _0x37074f=await listDatabases(_0x31b4f6),_0xdafd01=_0x37074f[_0x2c5b18(0x119)](_0x44d976=>buildDbDirectoryName(_0x44d976['dbName'],_0x44d976[_0x2c5b18(0x12f)])===_0x35bae8);if(_0xdafd01[_0x2c5b18(0x102)]===0x1)return{'dbId':_0xdafd01[0x0][_0x2c5b18(0x12f)],'dbName':_0xdafd01[0x0]['dbName']};if(_0xdafd01[_0x2c5b18(0x102)]===0x0)throw CliErrors[_0x2c5b18(0x104)](_0x2c5b18(0xfb)+_0x35bae8+_0x2c5b18(0x101)+_0x2a76ef[_0x2c5b18(0xef)]+'.');const _0x976dc2=_0xdafd01[_0x2c5b18(0x11a)](_0x4d94c2=>_0x4d94c2[_0x2c5b18(0x11e)]+'\x20('+_0x4d94c2[_0x2c5b18(0x12f)]+')')[_0x2c5b18(0x11c)](',\x20');throw CliErrors[_0x2c5b18(0x104)]('Local\x20directory\x20\x22'+_0x35bae8+_0x2c5b18(0x12c)+_0x2a76ef[_0x2c5b18(0xef)]+':\x20'+_0x976dc2);}function parseExplicitDbDirectory(_0x417c4b){const _0x9a4bcf=a121_0x39bd3c,_0x5a9b43=/^db-(\d+)$/[_0x9a4bcf(0x103)](_0x417c4b);if(!_0x5a9b43)return null;const _0x13a202=Number(_0x5a9b43[0x1]);return Number[_0x9a4bcf(0x126)](_0x13a202)&&_0x13a202>0x0?_0x13a202:null;}
@@ -1 +1 @@
1
- const a115_0x376874=a115_0x5880;(function(_0x2cb953,_0x4b1c62){const _0x5e51cb=a115_0x5880,_0x2ca7ed=_0x2cb953();while(!![]){try{const _0x136003=parseInt(_0x5e51cb(0x1e3))/0x1+-parseInt(_0x5e51cb(0x1d1))/0x2*(-parseInt(_0x5e51cb(0x1d4))/0x3)+-parseInt(_0x5e51cb(0x1d7))/0x4*(parseInt(_0x5e51cb(0x1da))/0x5)+-parseInt(_0x5e51cb(0x1e1))/0x6*(parseInt(_0x5e51cb(0x1df))/0x7)+-parseInt(_0x5e51cb(0x1e0))/0x8+parseInt(_0x5e51cb(0x1d5))/0x9*(-parseInt(_0x5e51cb(0x1de))/0xa)+-parseInt(_0x5e51cb(0x1e2))/0xb*(-parseInt(_0x5e51cb(0x1d3))/0xc);if(_0x136003===_0x4b1c62)break;else _0x2ca7ed['push'](_0x2ca7ed['shift']());}catch(_0x19ba3a){_0x2ca7ed['push'](_0x2ca7ed['shift']());}}}(a115_0x1fd8,0x4cfe3));function a115_0x1fd8(){const _0x2af5a7=['Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','2iAQsYK','join','77124FKcpOB','1681635PnDRYG','108NCzsmn','write','852qSUGzq','save','string','7815EdknLj','SQL\x20query\x20display\x20name','validation','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','20090ZTxHAY','575169lVjiIX','4767344tvzRUn','18IRqxfY','1199rxLtLt','253721BwOSXQ','description','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','sqlname'];a115_0x1fd8=function(){return _0x2af5a7;};return a115_0x1fd8();}import{CliErrors}from'../../errors.js';function a115_0x5880(_0x3175ad,_0xb6f26){_0x3175ad=_0x3175ad-0x1cd;const _0x1fd8d3=a115_0x1fd8();let _0x588013=_0x1fd8d3[_0x3175ad];return _0x588013;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a115_0x376874(0x1ce),'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`.'][a115_0x376874(0x1d2)]('\x0a');export const sqlSave={'service':'sql','command':a115_0x376874(0x1d8),'description':a115_0x376874(0x1d0),'risk':a115_0x376874(0x1d6),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':'file','type':a115_0x376874(0x1d9),'required':!![],'description':'Path\x20to\x20the\x20SQL\x20file'},SQLCODE_FLAG_OPTIONAL,{'name':a115_0x376874(0x1cf),'type':a115_0x376874(0x1d9),'description':a115_0x376874(0x1db)},{'name':'db','type':a115_0x376874(0x1d9),'description':a115_0x376874(0x1dd)},{'name':a115_0x376874(0x1cd),'type':a115_0x376874(0x1d9),'description':'Query\x20description'}],async 'validate'(){const _0x26f9c1=a115_0x376874;throw CliErrors[_0x26f9c1(0x1dc)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x53c0ca=a115_0x376874;throw CliErrors[_0x53c0ca(0x1dc)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a122_0x18fdbf=a122_0x4b9e;(function(_0x4ca823,_0xbb0d11){const _0x3ca9c3=a122_0x4b9e,_0x3270c5=_0x4ca823();while(!![]){try{const _0x16d526=-parseInt(_0x3ca9c3(0x1e0))/0x1*(-parseInt(_0x3ca9c3(0x1d4))/0x2)+-parseInt(_0x3ca9c3(0x1e6))/0x3*(-parseInt(_0x3ca9c3(0x1eb))/0x4)+-parseInt(_0x3ca9c3(0x1e5))/0x5*(-parseInt(_0x3ca9c3(0x1d9))/0x6)+parseInt(_0x3ca9c3(0x1d6))/0x7+parseInt(_0x3ca9c3(0x1e9))/0x8+-parseInt(_0x3ca9c3(0x1e7))/0x9+-parseInt(_0x3ca9c3(0x1d5))/0xa;if(_0x16d526===_0xbb0d11)break;else _0x3270c5['push'](_0x3270c5['shift']());}catch(_0x8aeb55){_0x3270c5['push'](_0x3270c5['shift']());}}}(a122_0x4533,0x92da6));function a122_0x4b9e(_0x359514,_0x196238){_0x359514=_0x359514-0x1d4;const _0x4533e5=a122_0x4533();let _0x4b9e70=_0x4533e5[_0x359514];return _0x4b9e70;}import{CliErrors}from'../../errors.js';function a122_0x4533(){const _0x4eab46=['SQL\x20query\x20display\x20name','95440JTjhYi','15UtuaTg','3446352Kadloh','string','3359056uRnzqy','write','317452QbdGpA','27358xDboyM','19777820UOujGW','5057850bOlWVK','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','validation','228TdesEK','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`.','Path\x20to\x20the\x20SQL\x20file','sql','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','save','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','51vSzXtH','description','file','sqlname'];a122_0x4533=function(){return _0x4eab46;};return a122_0x4533();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a122_0x18fdbf(0x1d7),a122_0x18fdbf(0x1dd),a122_0x18fdbf(0x1da)]['join']('\x0a');export const sqlSave={'service':a122_0x18fdbf(0x1dc),'command':a122_0x18fdbf(0x1de),'description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':a122_0x18fdbf(0x1ea),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a122_0x18fdbf(0x1e2),'type':'string','required':!![],'description':a122_0x18fdbf(0x1db)},SQLCODE_FLAG_OPTIONAL,{'name':a122_0x18fdbf(0x1e3),'type':a122_0x18fdbf(0x1e8),'description':a122_0x18fdbf(0x1e4)},{'name':'db','type':a122_0x18fdbf(0x1e8),'description':a122_0x18fdbf(0x1df)},{'name':a122_0x18fdbf(0x1e1),'type':'string','description':'Query\x20description'}],async 'validate'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0xe3dc20=a122_0x18fdbf;throw CliErrors[_0xe3dc20(0x1d8)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- (function(_0x41c10d,_0x534c0a){const _0x5851f7=a116_0x4d1a,_0xa8799d=_0x41c10d();while(!![]){try{const _0x26b732=-parseInt(_0x5851f7(0x203))/0x1*(-parseInt(_0x5851f7(0x205))/0x2)+-parseInt(_0x5851f7(0x1ec))/0x3+parseInt(_0x5851f7(0x1fc))/0x4+parseInt(_0x5851f7(0x1e1))/0x5+parseInt(_0x5851f7(0x1e7))/0x6*(-parseInt(_0x5851f7(0x20a))/0x7)+parseInt(_0x5851f7(0x206))/0x8*(parseInt(_0x5851f7(0x1ee))/0x9)+-parseInt(_0x5851f7(0x1e2))/0xa*(parseInt(_0x5851f7(0x1f0))/0xb);if(_0x26b732===_0x534c0a)break;else _0xa8799d['push'](_0xa8799d['shift']());}catch(_0x591ad6){_0xa8799d['push'](_0xa8799d['shift']());}}}(a116_0x428d,0xc4cbf));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR='.rabetbase/sql';export function buildSqlLockEntry(_0x3cf1e4,_0x156b51,_0x71c608,_0xa1602e){const _0x358d0a=a116_0x4d1a,_0x1d6faa=detectSqlMode(_0x156b51);return{'path':buildSqlRelativePath(_0x3cf1e4['sqlCode'],_0x3cf1e4[_0x358d0a(0x1ed)],_0xa1602e?.[_0x358d0a(0x1e6)],_0x1d6faa,_0x3cf1e4[_0x358d0a(0x1ff)]),'hash':_0x71c608,'remoteId':_0x3cf1e4['id'],'version':_0x3cf1e4[_0x358d0a(0x1f9)],'dbId':Number(_0x3cf1e4['dbId']),'dbName':_0xa1602e?.[_0x358d0a(0x1e6)],'sqlName':_0x3cf1e4[_0x358d0a(0x1ed)],'sqlConfig':_0x3cf1e4['sqlConfig']??undefined,'mode':_0x1d6faa};}function a116_0x428d(){const _0x373dcc=['553cAAAWD','sqls','toLowerCase','7373505FpwxoV','10KbLMUg','mode','split','push','dbName','40362MEsJiF','apps','--\x20@lovrabet.','question','trim','1298343PBfQkg','sqlName','20322pogXFB','includes','4956963NlucDv','length','syncedAt','\x20-->','endsWith','trimStart','<!--\x20@lovrabet.','sqlRoot','close','version','stdin','lastSync','76032lPuEma','fromEntries','filter','dbId','replace','yes','sqlCode','329809BJcTmB','entries','2jFGxsC','1408zsJoTp','join','mybatisXml','description'];a116_0x428d=function(){return _0x373dcc;};return a116_0x428d();}function a116_0x4d1a(_0x3539da,_0x257f78){_0x3539da=_0x3539da-0x1e1;const _0x428d5b=a116_0x428d();let _0x4d1a0d=_0x428d5b[_0x3539da];return _0x4d1a0d;}export function cloneSqlLockData(_0x568492){const _0x330277=a116_0x4d1a;return{'apps':Object[_0x330277(0x1fd)](Object[_0x330277(0x204)](_0x568492[_0x330277(0x1e8)])['map'](([_0x4abcfb,_0x224e2b])=>[_0x4abcfb,{'sqlRoot':_0x224e2b[_0x330277(0x1f7)],'lastSync':_0x224e2b[_0x330277(0x1fb)],'sqls':{..._0x224e2b[_0x330277(0x20b)]}}]))};}export function ensureRemoteSqlContent(_0xb7cf0f){return _0xb7cf0f['sqlContent']??'';}export function buildLocalSqlFileContent(_0x498988,_0x14e2fc,_0x533b9e){const _0x47963c=a116_0x4d1a,_0xd95a81=_0x533b9e?.['mode']??detectSqlMode(_0x14e2fc),_0x4e397c=stripLocalSqlMetadata(_0x14e2fc,_0xd95a81)['trim'](),_0x1ebe51=[...buildMetadataHeaderLines({'sqlCode':_0x498988[_0x47963c(0x202)],'sqlName':_0x498988[_0x47963c(0x1ed)],'dbId':_0x498988[_0x47963c(0x1ff)],'dbName':_0x533b9e?.[_0x47963c(0x1e6)],'mode':_0xd95a81,'syncedAt':_0x533b9e?.['syncedAt'],'description':_0x533b9e?.[_0x47963c(0x209)]},_0xd95a81),'',_0x4e397c],_0x303fd2=_0x1ebe51[_0x47963c(0x207)]('\x0a');return _0x303fd2[_0x47963c(0x1f4)]('\x0a')?_0x303fd2:_0x303fd2+'\x0a';}export function stripLocalSqlMetadata(_0x3d18e2,_0x12e55c){const _0x28693e=a116_0x4d1a,_0x5de045=_0x3d18e2[_0x28693e(0x200)](/\r\n/g,'\x0a')[_0x28693e(0x1e4)]('\x0a'),_0xb598e3=[];let _0x4b9b55=0x0;if(_0x12e55c===_0x28693e(0x208))while(_0x4b9b55<_0x5de045['length']){const _0x4e2ea9=_0x5de045[_0x4b9b55]??'';if(/^\s*<!--\s*@lovrabet\./['test'](_0x4e2ea9)){_0x4b9b55++;continue;}if(_0x4e2ea9[_0x28693e(0x1eb)]()===''&&_0x4b9b55>0x0){_0x4b9b55++;continue;}break;}else while(_0x4b9b55<_0x5de045[_0x28693e(0x1f1)]){const _0x3e3e77=_0x5de045[_0x4b9b55]??'';if(/^\s*--\s*@lovrabet\./['test'](_0x3e3e77)){_0x4b9b55++;continue;}if(_0x3e3e77['trim']()===''&&_0x4b9b55>0x0){_0x4b9b55++;continue;}break;}for(;_0x4b9b55<_0x5de045[_0x28693e(0x1f1)];_0x4b9b55++){_0xb598e3[_0x28693e(0x1e5)](_0x5de045[_0x4b9b55]);}return _0xb598e3[_0x28693e(0x207)]('\x0a')[_0x28693e(0x1f5)]();}export function resolveSqlMode(_0x441467,_0x3a5723){const _0x35d198=a116_0x4d1a;if(_0x3a5723?.[_0x35d198(0x1e3)])return _0x3a5723['mode'];return detectSqlMode(_0x441467);}export function resolveSqlFileName(_0x3f44c4,_0x172e8c,_0x53bf4d){const _0x569ea8=a116_0x4d1a;if(_0x53bf4d?.['path'])return _0x53bf4d['path'];if(_0x53bf4d?.[_0x569ea8(0x1ed)]||_0x53bf4d?.[_0x569ea8(0x1e6)])return buildSqlRelativePath(_0x3f44c4,_0x53bf4d?.[_0x569ea8(0x1ed)],_0x53bf4d?.[_0x569ea8(0x1e6)],resolveSqlMode(_0x172e8c,_0x53bf4d),_0x53bf4d?.[_0x569ea8(0x1ff)]);return buildDefaultSqlFileName(_0x3f44c4,resolveSqlMode(_0x172e8c,_0x53bf4d));}export function resolveSqlLocalDir(_0x537bc8,_0x496c19){return join(_0x537bc8,SQL_LOCAL_REL_DIR,_0x496c19);}export async function confirmForceOverwrite(_0x54c064){const _0x296da8=a116_0x4d1a,_0x19a172=createInterface({'input':process[_0x296da8(0x1fa)],'output':process['stderr']}),_0x332803=await new Promise(_0x4f4e66=>{const _0x12ea44=_0x296da8;_0x19a172[_0x12ea44(0x1ea)](_0x54c064+'\x20[y/N]\x20',_0x4f4e66);});return _0x19a172[_0x296da8(0x1f8)](),['y',_0x296da8(0x201)][_0x296da8(0x1ef)](_0x332803['trim']()[_0x296da8(0x20c)]());}export function findSqlLockScope(_0x3265ce,_0xeb3b7c){return _0x3265ce['apps'][_0xeb3b7c];}function buildMetadataHeaderLines(_0x31032c,_0x5a95ee){const _0x12bf68=a116_0x4d1a,_0xd71bea=[[_0x12bf68(0x202),_0x31032c['sqlCode']],[_0x12bf68(0x1ed),_0x31032c[_0x12bf68(0x1ed)]],['dbId',_0x31032c[_0x12bf68(0x1ff)]],[_0x12bf68(0x1e6),_0x31032c['dbName']],[_0x12bf68(0x1e3),_0x31032c[_0x12bf68(0x1e3)]],[_0x12bf68(0x1f2),_0x31032c[_0x12bf68(0x1f2)]],['description',_0x31032c[_0x12bf68(0x209)]]];if(_0x5a95ee==='mybatisXml')return _0xd71bea[_0x12bf68(0x1fe)](([,_0x3ae0b1])=>_0x3ae0b1!==undefined&&_0x3ae0b1!==null&&String(_0x3ae0b1)[_0x12bf68(0x1eb)]()!=='')['map'](([_0x3da9d9,_0x598ea2])=>_0x12bf68(0x1f6)+_0x3da9d9+':\x20'+String(_0x598ea2)+_0x12bf68(0x1f3));return _0xd71bea['filter'](([,_0x4fa139])=>_0x4fa139!==undefined&&_0x4fa139!==null&&String(_0x4fa139)[_0x12bf68(0x1eb)]()!=='')['map'](([_0x2327ab,_0x25542b])=>_0x12bf68(0x1e9)+_0x2327ab+':\x20'+String(_0x25542b));}
1
+ const a123_0x2e8397=a123_0xa995;(function(_0x50a4f3,_0x56079d){const _0x3fe839=a123_0xa995,_0xae7b76=_0x50a4f3();while(!![]){try{const _0x5d3e07=parseInt(_0x3fe839(0x183))/0x1*(-parseInt(_0x3fe839(0x1a1))/0x2)+-parseInt(_0x3fe839(0x191))/0x3*(parseInt(_0x3fe839(0x19b))/0x4)+parseInt(_0x3fe839(0x193))/0x5+-parseInt(_0x3fe839(0x192))/0x6*(parseInt(_0x3fe839(0x187))/0x7)+parseInt(_0x3fe839(0x1a8))/0x8*(parseInt(_0x3fe839(0x190))/0x9)+parseInt(_0x3fe839(0x18d))/0xa+parseInt(_0x3fe839(0x19d))/0xb;if(_0x5d3e07===_0x56079d)break;else _0xae7b76['push'](_0xae7b76['shift']());}catch(_0x564035){_0xae7b76['push'](_0xae7b76['shift']());}}}(a123_0x3eeb,0x863fb));import{createInterface}from'node:readline';import{join}from'node:path';function a123_0xa995(_0xe65e68,_0x2acecc){_0xe65e68=_0xe65e68-0x17f;const _0x3eebe0=a123_0x3eeb();let _0xa995bc=_0x3eebe0[_0xe65e68];return _0xa995bc;}import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a123_0x2e8397(0x1a9);export function buildSqlLockEntry(_0x1d90de,_0x8c8e6d,_0x4d563f,_0x5b980e){const _0x4e3cd7=a123_0x2e8397,_0x16fd35=detectSqlMode(_0x8c8e6d);return{'path':buildSqlRelativePath(_0x1d90de[_0x4e3cd7(0x19a)],_0x1d90de[_0x4e3cd7(0x19f)],_0x5b980e?.[_0x4e3cd7(0x18a)],_0x16fd35,_0x1d90de[_0x4e3cd7(0x188)]),'hash':_0x4d563f,'remoteId':_0x1d90de['id'],'version':_0x1d90de['version'],'dbId':Number(_0x1d90de[_0x4e3cd7(0x188)]),'dbName':_0x5b980e?.[_0x4e3cd7(0x18a)],'sqlName':_0x1d90de['sqlName'],'sqlConfig':_0x1d90de[_0x4e3cd7(0x1a3)]??undefined,'mode':_0x16fd35};}export function cloneSqlLockData(_0x5a6f6d){const _0x1e320b=a123_0x2e8397;return{'apps':Object[_0x1e320b(0x196)](Object[_0x1e320b(0x194)](_0x5a6f6d[_0x1e320b(0x199)])['map'](([_0x5cb097,_0x46e107])=>[_0x5cb097,{'sqlRoot':_0x46e107[_0x1e320b(0x18b)],'lastSync':_0x46e107[_0x1e320b(0x1a6)],'sqls':{..._0x46e107[_0x1e320b(0x19c)]}}]))};}export function ensureRemoteSqlContent(_0x2e7dd3){const _0x5aedc4=a123_0x2e8397;return _0x2e7dd3[_0x5aedc4(0x182)]??'';}export function buildLocalSqlFileContent(_0x132de8,_0x29bc4a,_0x607a2a){const _0x26461f=a123_0x2e8397,_0x2af1b7=_0x607a2a?.[_0x26461f(0x181)]??detectSqlMode(_0x29bc4a),_0x4df2c2=stripLocalSqlMetadata(_0x29bc4a,_0x2af1b7)[_0x26461f(0x1a0)](),_0x192934=[...buildMetadataHeaderLines({'sqlCode':_0x132de8[_0x26461f(0x19a)],'sqlName':_0x132de8['sqlName'],'dbId':_0x132de8['dbId'],'dbName':_0x607a2a?.['dbName'],'mode':_0x2af1b7,'syncedAt':_0x607a2a?.['syncedAt'],'description':_0x607a2a?.['description']},_0x2af1b7),'',_0x4df2c2],_0x405573=_0x192934['join']('\x0a');return _0x405573['endsWith']('\x0a')?_0x405573:_0x405573+'\x0a';}export function stripLocalSqlMetadata(_0x211e64,_0x1e633c){const _0x39a073=a123_0x2e8397,_0xf33a1c=_0x211e64['replace'](/\r\n/g,'\x0a')[_0x39a073(0x17f)]('\x0a'),_0x229282=[];let _0x22305e=0x0;if(_0x1e633c===_0x39a073(0x184))while(_0x22305e<_0xf33a1c[_0x39a073(0x186)]){const _0x2040d2=_0xf33a1c[_0x22305e]??'';if(/^\s*<!--\s*@lovrabet\./[_0x39a073(0x1a7)](_0x2040d2)){_0x22305e++;continue;}if(_0x2040d2['trim']()===''&&_0x22305e>0x0){_0x22305e++;continue;}break;}else while(_0x22305e<_0xf33a1c[_0x39a073(0x186)]){const _0xc76c7=_0xf33a1c[_0x22305e]??'';if(/^\s*--\s*@lovrabet\./['test'](_0xc76c7)){_0x22305e++;continue;}if(_0xc76c7[_0x39a073(0x1a0)]()===''&&_0x22305e>0x0){_0x22305e++;continue;}break;}for(;_0x22305e<_0xf33a1c[_0x39a073(0x186)];_0x22305e++){_0x229282[_0x39a073(0x189)](_0xf33a1c[_0x22305e]);}return _0x229282['join']('\x0a')[_0x39a073(0x197)]();}export function resolveSqlMode(_0x4a23b1,_0x489bad){const _0x1ae6a7=a123_0x2e8397;if(_0x489bad?.['mode'])return _0x489bad[_0x1ae6a7(0x181)];return detectSqlMode(_0x4a23b1);}function a123_0x3eeb(){const _0x5bd492=['181994ubxetq','--\x20@lovrabet.','sqlConfig','path','map','lastSync','test','488WOOUzv','.rabetbase/sql','split','description','mode','sqlContent','4IweAuv','mybatisXml','\x20[y/N]\x20','length','76790QRtPjF','dbId','push','dbName','sqlRoot','filter','261960ZSDTSt','syncedAt','yes','135009lGLTRh','57567dYAtLO','534QBKzXn','461300cRNImr','entries','stderr','fromEntries','trimStart','stdin','apps','sqlCode','56KhdDRg','sqls','12378630cMwMle','close','sqlName','trim'];a123_0x3eeb=function(){return _0x5bd492;};return a123_0x3eeb();}export function resolveSqlFileName(_0x4d8dab,_0x3107a2,_0x595d2d){const _0x5bac2f=a123_0x2e8397;if(_0x595d2d?.[_0x5bac2f(0x1a4)])return _0x595d2d[_0x5bac2f(0x1a4)];if(_0x595d2d?.[_0x5bac2f(0x19f)]||_0x595d2d?.['dbName'])return buildSqlRelativePath(_0x4d8dab,_0x595d2d?.[_0x5bac2f(0x19f)],_0x595d2d?.[_0x5bac2f(0x18a)],resolveSqlMode(_0x3107a2,_0x595d2d),_0x595d2d?.['dbId']);return buildDefaultSqlFileName(_0x4d8dab,resolveSqlMode(_0x3107a2,_0x595d2d));}export function resolveSqlLocalDir(_0x464cd9,_0x1c8a44){return join(_0x464cd9,SQL_LOCAL_REL_DIR,_0x1c8a44);}export async function confirmForceOverwrite(_0x144522){const _0x56b947=a123_0x2e8397,_0x123556=createInterface({'input':process[_0x56b947(0x198)],'output':process[_0x56b947(0x195)]}),_0x376c9d=await new Promise(_0x545ff1=>{const _0x14ab6e=_0x56b947;_0x123556['question'](_0x144522+_0x14ab6e(0x185),_0x545ff1);});return _0x123556[_0x56b947(0x19e)](),['y',_0x56b947(0x18f)]['includes'](_0x376c9d[_0x56b947(0x1a0)]()['toLowerCase']());}export function findSqlLockScope(_0x251b11,_0x3e8cf3){const _0x16cfb6=a123_0x2e8397;return _0x251b11[_0x16cfb6(0x199)][_0x3e8cf3];}function buildMetadataHeaderLines(_0x45a685,_0x1234d0){const _0x5e0242=a123_0x2e8397,_0x4f1f91=[[_0x5e0242(0x19a),_0x45a685[_0x5e0242(0x19a)]],[_0x5e0242(0x19f),_0x45a685[_0x5e0242(0x19f)]],[_0x5e0242(0x188),_0x45a685['dbId']],[_0x5e0242(0x18a),_0x45a685['dbName']],['mode',_0x45a685[_0x5e0242(0x181)]],[_0x5e0242(0x18e),_0x45a685['syncedAt']],[_0x5e0242(0x180),_0x45a685['description']]];if(_0x1234d0===_0x5e0242(0x184))return _0x4f1f91[_0x5e0242(0x18c)](([,_0x2dd0c2])=>_0x2dd0c2!==undefined&&_0x2dd0c2!==null&&String(_0x2dd0c2)['trim']()!=='')[_0x5e0242(0x1a5)](([_0x2680cd,_0x3fb426])=>'<!--\x20@lovrabet.'+_0x2680cd+':\x20'+String(_0x3fb426)+'\x20-->');return _0x4f1f91['filter'](([,_0x3b0c0a])=>_0x3b0c0a!==undefined&&_0x3b0c0a!==null&&String(_0x3b0c0a)[_0x5e0242(0x1a0)]()!=='')[_0x5e0242(0x1a5)](([_0x12977d,_0x15c085])=>_0x5e0242(0x1a2)+_0x12977d+':\x20'+String(_0x15c085));}
@@ -1 +1 @@
1
- const a117_0xea72ab=a117_0x34dd;(function(_0x37c28b,_0x42e73d){const _0x53eef4=a117_0x34dd,_0xc99cc0=_0x37c28b();while(!![]){try{const _0x34af01=parseInt(_0x53eef4(0x1a8))/0x1+parseInt(_0x53eef4(0x19d))/0x2*(parseInt(_0x53eef4(0x1b5))/0x3)+parseInt(_0x53eef4(0x1ac))/0x4+parseInt(_0x53eef4(0x1ab))/0x5+-parseInt(_0x53eef4(0x192))/0x6*(parseInt(_0x53eef4(0x194))/0x7)+parseInt(_0x53eef4(0x1a9))/0x8*(parseInt(_0x53eef4(0x1a1))/0x9)+parseInt(_0x53eef4(0x195))/0xa*(-parseInt(_0x53eef4(0x1a3))/0xb);if(_0x34af01===_0x42e73d)break;else _0xc99cc0['push'](_0xc99cc0['shift']());}catch(_0x20db55){_0xc99cc0['push'](_0xc99cc0['shift']());}}}(a117_0x213d,0x4ccfe));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a117_0x213d(){const _0x4c6937=['\x20added,\x20','status','54926rJDJUA','filePath','\x20missing,\x20','remote','18gbNjPs','push','4345zsiTqX','lockKey','map','paging','appCode','312943iXGAxV','878208gLdGnn','keys','2454785mbZPVO','1585752dGmFFm','hash','sqlCode','has','sql','totalCount','path','boolean','tableData','9XFzSGo','bool','sqls','6mOiuGr','\x20remote-only','1157779wnZpnE','25880QaYsQP','\x20unchanged','All\x20SQL\x20queries\x20are\x20in\x20sync.','sqlName','\x20modified,\x20','length'];a117_0x213d=function(){return _0x4c6937;};return a117_0x213d();}import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x2890d7){const _0x501a92=a117_0x34dd,_0x4812f6=[];let _0x10ca18=0x1;while(!![]){const _0x387306=await listSqlQueries(_0x2890d7,{'currentPage':_0x10ca18,'pageSize':PAGE_SIZE}),_0x316513=_0x387306[_0x501a92(0x1b4)]??[];_0x4812f6[_0x501a92(0x1a2)](..._0x316513[_0x501a92(0x1a5)](_0x29c76e=>_0x29c76e[_0x501a92(0x1ae)]));if(_0x316513[_0x501a92(0x19a)]===0x0)break;const _0x5145eb=_0x387306[_0x501a92(0x1a6)]?.[_0x501a92(0x1b1)];if(_0x5145eb!=null?_0x4812f6[_0x501a92(0x19a)]>=_0x5145eb:_0x316513[_0x501a92(0x19a)]<PAGE_SIZE)break;_0x10ca18++;}return _0x4812f6;}function a117_0x34dd(_0x27d389,_0xfda5f1){_0x27d389=_0x27d389-0x192;const _0x213d0d=a117_0x213d();let _0x34ddef=_0x213d0d[_0x27d389];return _0x34ddef;}export const sqlStatus={'service':a117_0xea72ab(0x1b0),'command':a117_0xea72ab(0x19c),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':'read','flags':[{'name':'remote','type':a117_0xea72ab(0x1b3),'description':'Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally'}],async 'execute'(_0x397177){const _0x77bb92=a117_0xea72ab,_0x597de1=loadSqlProjectConfig(_0x397177[_0x77bb92(0x1a7)]),_0x2f36a0=await readSqlLockFile(_0x597de1['lockFilePath']),{appLock:_0x415e8d}=ensureSqlLockScope(_0x2f36a0??createEmptySqlLock(),_0x597de1[_0x77bb92(0x1a7)],_0x597de1['sqlRoot'],_0x77bb92(0x19c)),_0x533e8e=await scanLocalSqlQueries(_0x597de1),_0x3eb122=[],_0x30d592=[],_0x11a94c=[],_0x102d72=[],_0x157dbe=new Set(_0x533e8e[_0x77bb92(0x1a5)](_0x4d9bd6=>_0x4d9bd6[_0x77bb92(0x1a4)]));for(const _0x70c00a of _0x533e8e){const _0x1c6b2f=await computeSqlFileHash(_0x70c00a[_0x77bb92(0x19e)]),_0x43a8b6=_0x415e8d[_0x77bb92(0x1b7)][_0x70c00a[_0x77bb92(0x1a4)]],_0x340928=!!_0x43a8b6&&_0x43a8b6[_0x77bb92(0x1b2)]!==_0x70c00a['relativePath'],_0x3c20f1=!!_0x43a8b6&&!!_0x70c00a['sqlName']&&_0x43a8b6[_0x77bb92(0x198)]!==_0x70c00a[_0x77bb92(0x198)];if(!_0x43a8b6)_0x3eb122[_0x77bb92(0x1a2)](_0x70c00a['lockKey']);else _0x43a8b6[_0x77bb92(0x1ad)]!==_0x1c6b2f||_0x340928||_0x3c20f1?_0x30d592['push'](_0x70c00a[_0x77bb92(0x1a4)]):_0x11a94c['push'](_0x70c00a[_0x77bb92(0x1a4)]);}for(const _0x2d8171 of Object[_0x77bb92(0x1aa)](_0x415e8d[_0x77bb92(0x1b7)])){!_0x157dbe['has'](_0x2d8171)&&_0x102d72[_0x77bb92(0x1a2)](_0x2d8171);}const _0x508a9c=[];if(_0x397177[_0x77bb92(0x1b6)](_0x77bb92(0x1a0))){const _0x6a92d3=await fetchAllSqlCodes(_0x397177['appCode']);for(const _0x465d1a of _0x6a92d3){!_0x157dbe[_0x77bb92(0x1af)](_0x465d1a)&&!_0x415e8d[_0x77bb92(0x1b7)][_0x465d1a]&&_0x508a9c['push'](_0x465d1a);}}const _0x152514=_0x3eb122[_0x77bb92(0x19a)]===0x0&&_0x30d592[_0x77bb92(0x19a)]===0x0&&_0x102d72[_0x77bb92(0x19a)]===0x0&&_0x508a9c[_0x77bb92(0x19a)]===0x0;return{'ok':!![],'data':{'added':_0x3eb122,'modified':_0x30d592,'missing':_0x102d72,'unchanged':_0x11a94c,'remoteOnly':_0x508a9c},'message':_0x152514?_0x77bb92(0x197):_0x3eb122[_0x77bb92(0x19a)]+_0x77bb92(0x19b)+_0x30d592[_0x77bb92(0x19a)]+_0x77bb92(0x199)+_0x102d72[_0x77bb92(0x19a)]+_0x77bb92(0x19f)+_0x11a94c[_0x77bb92(0x19a)]+_0x77bb92(0x196)+(_0x508a9c[_0x77bb92(0x19a)]>0x0?',\x20'+_0x508a9c['length']+_0x77bb92(0x193):'')};}};
1
+ const a124_0x2ec32c=a124_0xe32f;(function(_0x3150b1,_0x48f6a9){const _0x11015a=a124_0xe32f,_0x47ae05=_0x3150b1();while(!![]){try{const _0x3058e6=parseInt(_0x11015a(0x1fe))/0x1*(-parseInt(_0x11015a(0x202))/0x2)+-parseInt(_0x11015a(0x20a))/0x3+-parseInt(_0x11015a(0x1fb))/0x4+-parseInt(_0x11015a(0x1e9))/0x5+-parseInt(_0x11015a(0x203))/0x6+-parseInt(_0x11015a(0x1ef))/0x7*(-parseInt(_0x11015a(0x1eb))/0x8)+parseInt(_0x11015a(0x1e7))/0x9;if(_0x3058e6===_0x48f6a9)break;else _0x47ae05['push'](_0x47ae05['shift']());}catch(_0x47e09e){_0x47ae05['push'](_0x47ae05['shift']());}}}(a124_0x3062,0xc8e41));function a124_0x3062(){const _0xbc535b=['\x20unchanged','50848wpgDzt','map','path','has','7JPYaYz','hash','paging','tableData','sqls','lockFilePath','filePath','sql','All\x20SQL\x20queries\x20are\x20in\x20sync.','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','sqlName','keys','3764056UsSHiG','status','sqlCode','2765BWoGbx','\x20added,\x20','bool','lockKey','1128dwhtpR','103512IpTmrl','appCode','totalCount','boolean','push','\x20remote-only','length','1782537cDVrnX','48639852fUMoUT','remote','7380150vweGjd'];a124_0x3062=function(){return _0xbc535b;};return a124_0x3062();}import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';function a124_0xe32f(_0x2a98ca,_0x2d1db2){_0x2a98ca=_0x2a98ca-0x1e7;const _0x30621a=a124_0x3062();let _0xe32fae=_0x30621a[_0x2a98ca];return _0xe32fae;}import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x3209c5){const _0x27de88=a124_0xe32f,_0x21874b=[];let _0x5f0e9b=0x1;while(!![]){const _0x4667ad=await listSqlQueries(_0x3209c5,{'currentPage':_0x5f0e9b,'pageSize':PAGE_SIZE}),_0x4f6e0f=_0x4667ad[_0x27de88(0x1f2)]??[];_0x21874b['push'](..._0x4f6e0f['map'](_0x4c196b=>_0x4c196b[_0x27de88(0x1fd)]));if(_0x4f6e0f[_0x27de88(0x209)]===0x0)break;const _0x57688a=_0x4667ad[_0x27de88(0x1f1)]?.[_0x27de88(0x205)];if(_0x57688a!=null?_0x21874b['length']>=_0x57688a:_0x4f6e0f[_0x27de88(0x209)]<PAGE_SIZE)break;_0x5f0e9b++;}return _0x21874b;}export const sqlStatus={'service':a124_0x2ec32c(0x1f6),'command':a124_0x2ec32c(0x1fc),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':'read','flags':[{'name':a124_0x2ec32c(0x1e8),'type':a124_0x2ec32c(0x206),'description':a124_0x2ec32c(0x1f8)}],async 'execute'(_0x591d01){const _0x45defb=a124_0x2ec32c,_0x11f46e=loadSqlProjectConfig(_0x591d01[_0x45defb(0x204)]),_0x306162=await readSqlLockFile(_0x11f46e[_0x45defb(0x1f4)]),{appLock:_0x11f6e0}=ensureSqlLockScope(_0x306162??createEmptySqlLock(),_0x11f46e['appCode'],_0x11f46e['sqlRoot'],'status'),_0x169cbc=await scanLocalSqlQueries(_0x11f46e),_0x4fdb31=[],_0x50a9a3=[],_0x2313fb=[],_0x3cfb5d=[],_0x1d1f57=new Set(_0x169cbc[_0x45defb(0x1ec)](_0x460f20=>_0x460f20[_0x45defb(0x201)]));for(const _0x2ba119 of _0x169cbc){const _0xefa927=await computeSqlFileHash(_0x2ba119[_0x45defb(0x1f5)]),_0x1f50b0=_0x11f6e0[_0x45defb(0x1f3)][_0x2ba119[_0x45defb(0x201)]],_0x304357=!!_0x1f50b0&&_0x1f50b0[_0x45defb(0x1ed)]!==_0x2ba119['relativePath'],_0x11a11c=!!_0x1f50b0&&!!_0x2ba119[_0x45defb(0x1f9)]&&_0x1f50b0[_0x45defb(0x1f9)]!==_0x2ba119[_0x45defb(0x1f9)];if(!_0x1f50b0)_0x4fdb31[_0x45defb(0x207)](_0x2ba119[_0x45defb(0x201)]);else _0x1f50b0[_0x45defb(0x1f0)]!==_0xefa927||_0x304357||_0x11a11c?_0x50a9a3[_0x45defb(0x207)](_0x2ba119[_0x45defb(0x201)]):_0x2313fb[_0x45defb(0x207)](_0x2ba119[_0x45defb(0x201)]);}for(const _0x34c523 of Object[_0x45defb(0x1fa)](_0x11f6e0['sqls'])){!_0x1d1f57[_0x45defb(0x1ee)](_0x34c523)&&_0x3cfb5d[_0x45defb(0x207)](_0x34c523);}const _0x62af2b=[];if(_0x591d01[_0x45defb(0x200)](_0x45defb(0x1e8))){const _0x495acf=await fetchAllSqlCodes(_0x591d01[_0x45defb(0x204)]);for(const _0x488fc7 of _0x495acf){!_0x1d1f57[_0x45defb(0x1ee)](_0x488fc7)&&!_0x11f6e0[_0x45defb(0x1f3)][_0x488fc7]&&_0x62af2b[_0x45defb(0x207)](_0x488fc7);}}const _0x597926=_0x4fdb31[_0x45defb(0x209)]===0x0&&_0x50a9a3[_0x45defb(0x209)]===0x0&&_0x3cfb5d[_0x45defb(0x209)]===0x0&&_0x62af2b[_0x45defb(0x209)]===0x0;return{'ok':!![],'data':{'added':_0x4fdb31,'modified':_0x50a9a3,'missing':_0x3cfb5d,'unchanged':_0x2313fb,'remoteOnly':_0x62af2b},'message':_0x597926?_0x45defb(0x1f7):_0x4fdb31[_0x45defb(0x209)]+_0x45defb(0x1ff)+_0x50a9a3[_0x45defb(0x209)]+'\x20modified,\x20'+_0x3cfb5d['length']+'\x20missing,\x20'+_0x2313fb['length']+_0x45defb(0x1ea)+(_0x62af2b[_0x45defb(0x209)]>0x0?',\x20'+_0x62af2b['length']+_0x45defb(0x208):'')};}};
@@ -1 +1 @@
1
- const a118_0xee8931=a118_0x4b60;function a118_0x4b60(_0x49e3e2,_0x2b784b){_0x49e3e2=_0x49e3e2-0x7c;const _0x3873c9=a118_0x3873();let _0x4b60fa=_0x3873c9[_0x49e3e2];return _0x4b60fa;}(function(_0x285585,_0x365715){const _0x421c50=a118_0x4b60,_0x195c57=_0x285585();while(!![]){try{const _0x575eb1=-parseInt(_0x421c50(0x8a))/0x1+parseInt(_0x421c50(0xa1))/0x2+-parseInt(_0x421c50(0x7e))/0x3*(-parseInt(_0x421c50(0x8b))/0x4)+-parseInt(_0x421c50(0x94))/0x5*(-parseInt(_0x421c50(0x95))/0x6)+parseInt(_0x421c50(0x82))/0x7+-parseInt(_0x421c50(0x9e))/0x8+-parseInt(_0x421c50(0x97))/0x9;if(_0x575eb1===_0x365715)break;else _0x195c57['push'](_0x195c57['shift']());}catch(_0xeed143){_0x195c57['push'](_0x195c57['shift']());}}}(a118_0x3873,0x63eda));import{readFileSync,existsSync}from'node:fs';function a118_0x3873(){const _0xb0790f=['split','reason','toLowerCase','flagMissing','trim','6075560vCFDGr','utf-8','validation','563668lOqVBR','validate','Table\x20\x22','push','string','parameters','240153TeiKxp','tableName','read','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','5609324NEgCIW','length','dbtableConfig','valid','sqlType','fields','schemas','isDangerous','168577QpUpuo','28kCcKoX','str','sql','message','name','isSelectOnly','cwd','file','map','5biXjif','518244dLtrzI','tables','3533121QZvuEK','Provide\x20--file\x20or\x20--sql'];a118_0x3873=function(){return _0xb0790f;};return a118_0x3873();}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';export const sqlValidate={'service':a118_0xee8931(0x8d),'command':a118_0xee8931(0xa2),'description':'Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','risk':a118_0xee8931(0x80),'flags':[{'name':a118_0xee8931(0x92),'type':a118_0xee8931(0x7c),'description':'Path\x20to\x20the\x20SQL\x20file\x20to\x20validate'},{'name':a118_0xee8931(0x8d),'type':'string','description':'Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'},{'name':a118_0xee8931(0x88),'type':a118_0xee8931(0x7c),'description':a118_0xee8931(0x81)}],async 'execute'(_0x222dd5){const _0x496f00=a118_0xee8931,_0x5ea004=_0x222dd5[_0x496f00(0x8c)](_0x496f00(0x92)),_0xff892d=_0x222dd5[_0x496f00(0x8c)]('sql');if(!_0x5ea004&&!_0xff892d)throw CliErrors[_0x496f00(0x9c)]('file',_0x496f00(0x98));let _0x3d2ba6;if(_0x5ea004){const _0x5448c5=resolve(process[_0x496f00(0x91)](),_0x5ea004);if(!existsSync(_0x5448c5))throw CliErrors[_0x496f00(0xa0)]('File\x20not\x20found:\x20'+_0x5448c5);_0x3d2ba6=readFileSync(_0x5448c5,_0x496f00(0x9f));}else _0x3d2ba6=_0xff892d;const _0x4948=validateSql(_0x3d2ba6),_0x55db8f={'valid':_0x4948[_0x496f00(0x85)],'sqlType':_0x4948['sqlType']['type'],'isSelectOnly':_0x4948[_0x496f00(0x86)][_0x496f00(0x90)],'isDangerous':_0x4948['sqlType'][_0x496f00(0x89)],'tables':_0x4948[_0x496f00(0x96)],'parameters':_0x4948[_0x496f00(0x7d)],'message':_0x4948[_0x496f00(0x8e)]};_0x4948['sqlType']['reason']&&(_0x55db8f[_0x496f00(0x9a)]=_0x4948[_0x496f00(0x86)][_0x496f00(0x9a)]);const _0x42f5ec=_0x222dd5[_0x496f00(0x8c)](_0x496f00(0x88));if(_0x42f5ec&&_0x4948['valid']){const _0x4363fd=_0x42f5ec[_0x496f00(0x99)](',')[_0x496f00(0x93)](_0x175d1f=>_0x175d1f[_0x496f00(0x9d)]())['filter'](Boolean),_0x26c19c=[],_0x39720b=await listDatasets(_0x222dd5['appCode']),_0x20ebb1=new Map(_0x39720b[_0x496f00(0x93)](_0x4b3c03=>[_0x4b3c03[_0x496f00(0x84)]?.[_0x496f00(0x7f)]?.[_0x496f00(0x9b)](),_0x4b3c03]));for(const _0x171ba2 of _0x4948['tables']){const _0x2d664d=_0x20ebb1['get'](_0x171ba2[_0x496f00(0x9b)]());!_0x2d664d&&_0x26c19c[_0x496f00(0xa4)](_0x496f00(0xa3)+_0x171ba2+'\x22\x20not\x20found\x20in\x20any\x20dataset');}for(const _0xf9bb35 of _0x4363fd){try{const _0x51e1c4=await getDatasetDetail(_0xf9bb35),_0x18549e=Array['isArray'](_0x51e1c4[_0x496f00(0x87)])?_0x51e1c4[_0x496f00(0x87)]:[],_0x44f8db=new Set(_0x18549e[_0x496f00(0x93)](_0x5855f1=>_0x5855f1[_0x496f00(0x8f)]?.['toLowerCase']())),_0x4f4c80=_0x51e1c4['dbtableConfig']?.[_0x496f00(0x7f)]||_0x51e1c4[_0x496f00(0x7f)]||_0xf9bb35;_0x55db8f['schema:'+_0x4f4c80]={'code':_0xf9bb35,'tableName':_0x4f4c80,'fieldCount':_0x44f8db['size'],'fields':Array['from'](_0x44f8db)};}catch{_0x26c19c['push']('Dataset\x20\x22'+_0xf9bb35+'\x22\x20not\x20found\x20or\x20not\x20accessible');}}_0x26c19c[_0x496f00(0x83)]>0x0&&(_0x55db8f['schemaWarnings']=_0x26c19c);}return{'ok':_0x4948[_0x496f00(0x85)],'data':_0x55db8f,'message':_0x4948[_0x496f00(0x8e)]};}};
1
+ const a125_0x17e424=a125_0x5a15;function a125_0x5b28(){const _0x5a0b16=['str','fields','map','sqlType','2753280MIiqxS','tableName','isDangerous','from','Provide\x20--file\x20or\x20--sql','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','length','message','type','537392XxXdLN','dbtableConfig','tables','4317922izUPCP','string','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','split','6087245WOKgju','27AFWssO','schema:','sql','name','Dataset\x20\x22','reason','validation','Table\x20\x22','\x22\x20not\x20found\x20or\x20not\x20accessible','22570434GIsOOo','file','filter','schemas','151869uLoCiO','cwd','utf-8','isSelectOnly','valid','read','get','flagMissing','toLowerCase','2TDvBbq','size','3611616HCUkPZ','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','\x22\x20not\x20found\x20in\x20any\x20dataset'];a125_0x5b28=function(){return _0x5a0b16;};return a125_0x5b28();}(function(_0x346fa5,_0x17b020){const _0x311cea=a125_0x5a15,_0xb0a4eb=_0x346fa5();while(!![]){try{const _0x1557d6=-parseInt(_0x311cea(0x76))/0x1*(parseInt(_0x311cea(0x7f))/0x2)+-parseInt(_0x311cea(0x69))/0x3*(parseInt(_0x311cea(0x91))/0x4)+parseInt(_0x311cea(0x68))/0x5+-parseInt(_0x311cea(0x88))/0x6+-parseInt(_0x311cea(0x64))/0x7+-parseInt(_0x311cea(0x81))/0x8+parseInt(_0x311cea(0x72))/0x9;if(_0x1557d6===_0x17b020)break;else _0xb0a4eb['push'](_0xb0a4eb['shift']());}catch(_0x27a904){_0xb0a4eb['push'](_0xb0a4eb['shift']());}}}(a125_0x5b28,0xcc5e8));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';function a125_0x5a15(_0x19fe3e,_0x52e1f9){_0x19fe3e=_0x19fe3e-0x64;const _0x5b2849=a125_0x5b28();let _0x5a155a=_0x5b2849[_0x19fe3e];return _0x5a155a;}import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const sqlValidate={'service':a125_0x17e424(0x6b),'command':'validate','description':'Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','risk':a125_0x17e424(0x7b),'flags':[{'name':a125_0x17e424(0x73),'type':a125_0x17e424(0x65),'description':a125_0x17e424(0x8d)},{'name':a125_0x17e424(0x6b),'type':a125_0x17e424(0x65),'description':a125_0x17e424(0x66)},{'name':'schemas','type':a125_0x17e424(0x65),'description':a125_0x17e424(0x82)}],async 'execute'(_0x571ad5){const _0x2f9349=a125_0x17e424,_0x21bea1=_0x571ad5['str'](_0x2f9349(0x73)),_0x4ed0ac=_0x571ad5[_0x2f9349(0x84)](_0x2f9349(0x6b));if(!_0x21bea1&&!_0x4ed0ac)throw CliErrors[_0x2f9349(0x7d)](_0x2f9349(0x73),_0x2f9349(0x8c));let _0x2f8539;if(_0x21bea1){const _0x41cee5=resolve(process[_0x2f9349(0x77)](),_0x21bea1);if(!existsSync(_0x41cee5))throw CliErrors[_0x2f9349(0x6f)]('File\x20not\x20found:\x20'+_0x41cee5);_0x2f8539=readFileSync(_0x41cee5,_0x2f9349(0x78));}else _0x2f8539=_0x4ed0ac;const _0x57fb9a=validateSql(_0x2f8539),_0x16610c={'valid':_0x57fb9a['valid'],'sqlType':_0x57fb9a[_0x2f9349(0x87)][_0x2f9349(0x90)],'isSelectOnly':_0x57fb9a[_0x2f9349(0x87)][_0x2f9349(0x79)],'isDangerous':_0x57fb9a[_0x2f9349(0x87)][_0x2f9349(0x8a)],'tables':_0x57fb9a[_0x2f9349(0x93)],'parameters':_0x57fb9a['parameters'],'message':_0x57fb9a[_0x2f9349(0x8f)]};_0x57fb9a['sqlType'][_0x2f9349(0x6e)]&&(_0x16610c[_0x2f9349(0x6e)]=_0x57fb9a[_0x2f9349(0x87)]['reason']);const _0x563906=_0x571ad5[_0x2f9349(0x84)](_0x2f9349(0x75));if(_0x563906&&_0x57fb9a[_0x2f9349(0x7a)]){const _0x2088ab=_0x563906[_0x2f9349(0x67)](',')[_0x2f9349(0x86)](_0x2a195f=>_0x2a195f['trim']())[_0x2f9349(0x74)](Boolean),_0x21ff43=[],_0x1c46bd=await listDatasets(_0x571ad5['appCode']),_0x22cbbb=new Map(_0x1c46bd[_0x2f9349(0x86)](_0x46bab7=>[_0x46bab7[_0x2f9349(0x92)]?.[_0x2f9349(0x89)]?.[_0x2f9349(0x7e)](),_0x46bab7]));for(const _0x397ef2 of _0x57fb9a[_0x2f9349(0x93)]){const _0x4e4611=_0x22cbbb[_0x2f9349(0x7c)](_0x397ef2['toLowerCase']());!_0x4e4611&&_0x21ff43['push'](_0x2f9349(0x70)+_0x397ef2+_0x2f9349(0x83));}for(const _0x5674a9 of _0x2088ab){try{const _0x5a74f0=await getDatasetDetail(_0x5674a9),_0x546f31=Array['isArray'](_0x5a74f0[_0x2f9349(0x85)])?_0x5a74f0[_0x2f9349(0x85)]:[],_0x2d8410=new Set(_0x546f31[_0x2f9349(0x86)](_0x5e1cbe=>_0x5e1cbe[_0x2f9349(0x6c)]?.['toLowerCase']())),_0x5e3cfa=_0x5a74f0['dbtableConfig']?.[_0x2f9349(0x89)]||_0x5a74f0[_0x2f9349(0x89)]||_0x5674a9;_0x16610c[_0x2f9349(0x6a)+_0x5e3cfa]={'code':_0x5674a9,'tableName':_0x5e3cfa,'fieldCount':_0x2d8410[_0x2f9349(0x80)],'fields':Array[_0x2f9349(0x8b)](_0x2d8410)};}catch{_0x21ff43['push'](_0x2f9349(0x6d)+_0x5674a9+_0x2f9349(0x71));}}_0x21ff43[_0x2f9349(0x8e)]>0x0&&(_0x16610c['schemaWarnings']=_0x21ff43);}return{'ok':_0x57fb9a[_0x2f9349(0x7a)],'data':_0x16610c,'message':_0x57fb9a[_0x2f9349(0x8f)]};}};
@@ -1 +1 @@
1
- const a119_0x353550=a119_0x3bd7;(function(_0x18ba3d,_0x3b9908){const _0x2d232d=a119_0x3bd7,_0x1f5376=_0x18ba3d();while(!![]){try{const _0x178986=parseInt(_0x2d232d(0xc9))/0x1*(-parseInt(_0x2d232d(0xea))/0x2)+parseInt(_0x2d232d(0xc2))/0x3+parseInt(_0x2d232d(0xd9))/0x4+parseInt(_0x2d232d(0xd2))/0x5*(parseInt(_0x2d232d(0xc7))/0x6)+-parseInt(_0x2d232d(0xc4))/0x7*(-parseInt(_0x2d232d(0xd7))/0x8)+parseInt(_0x2d232d(0xde))/0x9*(parseInt(_0x2d232d(0xc8))/0xa)+-parseInt(_0x2d232d(0xc1))/0xb;if(_0x178986===_0x3b9908)break;else _0x1f5376['push'](_0x1f5376['shift']());}catch(_0x4d4a9a){_0x1f5376['push'](_0x1f5376['shift']());}}}(a119_0x4de2,0xd65b4));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=[a119_0x353550(0xe7),a119_0x353550(0xdc),a119_0x353550(0xcb),a119_0x353550(0xd5),a119_0x353550(0xc3)];export const TOP_LEVEL_CONFIG_KEYS=new Set([a119_0x353550(0xcc),a119_0x353550(0xd6),'locale',a119_0x353550(0xd5),a119_0x353550(0xe7),a119_0x353550(0xdc),a119_0x353550(0xe6)]);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x5a61ac){const _0x593ac0=a119_0x353550;return[..._0x5a61ac][_0x593ac0(0xe2)](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}export function isTopLevelConfigKey(_0x5b2a47){const _0x2daf3a=a119_0x353550;return TOP_LEVEL_CONFIG_KEYS[_0x2daf3a(0xe0)](_0x5b2a47);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}export function getConfigCommandKeyDescription(){return'Config\x20key\x20('+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':'env','apiDir':a119_0x353550(0xe6),'cookie':'cookie','accessKey':a119_0x353550(0xdc),'defaultFormat':'format','pageSize':'pageSize','riskLevel':a119_0x353550(0xc3),'locale':a119_0x353550(0xcb)};function a119_0x4de2(){const _0x2c7845=['env','72NLPEoZ','Default\x20page\x20size','2544800bRjRTR','en-US','Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','accessKey','entries','321426hVHNPU','length','has','number','join','filter','inherit','app','apiDir','cookie','defaultApp','apps','2AljcwO','defaultFormat','24934635mvdzCK','1497132pDrXDV','riskLevel','1241555KMDPNf','Locale','Access\x20key','1356MEZGqg','120IDfavJ','819416mVnObf','Auth\x20cookie','locale','appcode','zh-CN','string','Risk\x20level','pageSize','toLowerCase','17790yCMTTV','trim','keys','format'];a119_0x4de2=function(){return _0x2c7845;};return a119_0x4de2();}function a119_0x3bd7(_0x44b015,_0x2181b2){_0x44b015=_0x44b015-0xc0;const _0x4de2e7=a119_0x4de2();let _0x3bd7c5=_0x4de2e7[_0x44b015];return _0x3bd7c5;}export function getAppProfileFlagDefs(){const _0x4cbdc0=a119_0x353550;return[{'name':_0x4cbdc0(0xd6),'type':'string','description':'Target\x20environment','enum':[...RABETBASE_ENV_VALUES]},{'name':_0x4cbdc0(0xe6),'type':_0x4cbdc0(0xce),'description':'API\x20directory\x20path'},{'name':_0x4cbdc0(0xe7),'type':_0x4cbdc0(0xce),'description':_0x4cbdc0(0xca),'hidden':!![]},{'name':'accessKey','type':_0x4cbdc0(0xce),'description':_0x4cbdc0(0xc6),'hidden':!![]},{'name':_0x4cbdc0(0xc0),'type':'string','description':_0x4cbdc0(0xdb),'enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':_0x4cbdc0(0xd0),'type':_0x4cbdc0(0xe1),'description':_0x4cbdc0(0xd8)},{'name':_0x4cbdc0(0xc3),'type':'string','description':_0x4cbdc0(0xcf),'enum':[...RISK_LEVEL_VALUES]},{'name':'locale','type':_0x4cbdc0(0xce),'description':_0x4cbdc0(0xc5)}];}export function collectAppProfileOverrides(_0x13c106){const _0x215477=a119_0x353550,_0x1ddcad={};for(const [_0x3ba30c,_0x3f2521]of Object[_0x215477(0xdd)](APP_PROFILE_FLAG_KEY_MAP)){const _0x13c588=_0x13c106(_0x3ba30c);if(!_0x13c588)continue;_0x1ddcad[_0x3f2521]=_0x3f2521===_0x215477(0xd0)?Number(_0x13c588):_0x13c588;}return _0x1ddcad;}export function buildAppProfileListFields(_0x515bb1){const _0x4da0fc=a119_0x353550;return{'env':_0x515bb1[_0x4da0fc(0xd6)]??null,'apiDir':_0x515bb1[_0x4da0fc(0xe6)]??null,'hasCookie':!!_0x515bb1[_0x4da0fc(0xe7)],'hasAccessKey':!!_0x515bb1[_0x4da0fc(0xdc)],'format':_0x515bb1[_0x4da0fc(0xd5)]??null,'pageSize':_0x515bb1[_0x4da0fc(0xd0)]??null,'riskLevel':_0x515bb1[_0x4da0fc(0xc3)]??null,'locale':_0x515bb1[_0x4da0fc(0xcb)]??null};}export function buildAppDoctorFields(_0x442391,_0x4e7455){const _0x50cb66=a119_0x353550;return{'env':{'value':_0x442391[_0x50cb66(0xd6)]||_0x4e7455[_0x50cb66(0xd6)],'source':_0x442391[_0x50cb66(0xd6)]?_0x50cb66(0xe5):_0x50cb66(0xe4)},'apiDir':{'value':_0x442391[_0x50cb66(0xe6)]||_0x4e7455['apiDir'],'source':_0x442391[_0x50cb66(0xe6)]?_0x50cb66(0xe5):'inherit'},'cookie':{'value':_0x442391['cookie']||_0x4e7455['cookie'],'source':_0x442391['cookie']?'app':'inherit'},'accessKey':{'value':_0x442391['accessKey']||_0x4e7455[_0x50cb66(0xdc)],'source':_0x442391[_0x50cb66(0xdc)]?_0x50cb66(0xe5):_0x50cb66(0xe4)}};}export function buildCanonicalAppConfig(_0x1a8764,_0x417d2a){const _0x2e9b33=a119_0x353550,_0x2db2fd=_0x1a8764['map'](_0x592d72=>String(_0x592d72||'')[_0x2e9b33(0xd3)]())[_0x2e9b33(0xe3)](Boolean);if(_0x2db2fd[_0x2e9b33(0xdf)]===0x0)return{};const _0x39fbc4={};for(const _0x5beb84 of _0x2db2fd){_0x39fbc4[_0x5beb84]=_0x417d2a?{'appcode':_0x5beb84,'env':_0x417d2a}:{'appcode':_0x5beb84};}return{'apps':_0x39fbc4,'defaultApp':_0x2db2fd[0x0]};}export function buildCanonicalProjectConfig(_0x1c85a4,_0x3fc67a){const _0x226155=a119_0x353550,{appCodes:appCodes=[],env:_0x4d014f,metadata:_0x4b2e5e}=_0x3fc67a,_0x1d6292={..._0x1c85a4,..._0x4b2e5e||{}};delete _0x1d6292[_0x226155(0xcc)],delete _0x1d6292['app'];if(_0x4d014f)_0x1d6292['env']=_0x4d014f;else!_0x1d6292['env']&&(_0x1d6292[_0x226155(0xd6)]=DEFAULT_CONFIG_VALUES[_0x226155(0xd6)]);const _0x2f826c=buildCanonicalAppConfig(appCodes,_0x1d6292[_0x226155(0xd6)]);return Object[_0x226155(0xd4)](_0x2f826c)['length']>0x0&&(_0x1d6292[_0x226155(0xe9)]=_0x2f826c[_0x226155(0xe9)],_0x1d6292[_0x226155(0xe8)]=_0x2f826c[_0x226155(0xe8)]),_0x1d6292;}const LOCALE_MAP={'zh':a119_0x353550(0xcd),'zh-cn':'zh-CN','zh_cn':'zh-CN','en':a119_0x353550(0xda),'en-us':a119_0x353550(0xda),'en_us':a119_0x353550(0xda)};export function normalizeLocale(_0x280fe1){const _0xeb824f=a119_0x353550;if(!_0x280fe1)return null;return LOCALE_MAP[_0x280fe1[_0xeb824f(0xd1)]()]??null;}
1
+ const a126_0x11321f=a126_0x29d7;function a126_0x399a(){const _0x21d0e4=['302NDagta','4521brHEVG','Risk\x20level','format','inherit','132jSCxaF','string','90ihciFy','pageSize','Config\x20key\x20(','app','apps','number','appcode','trim','8212TRyYjT','Access\x20key','160665uYGjQu','Auth\x20cookie','3599982jhGEMq','defaultApp','defaultFormat','3249666jSUjBX','zh-CN','env','keys','accessKey','3308328cMgcJe','7544400rkakEN','length','apiDir','Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','riskLevel','filter','has','cookie','en-US','locale','entries'];a126_0x399a=function(){return _0x21d0e4;};return a126_0x399a();}(function(_0x404371,_0x6bb225){const _0x50dfe3=a126_0x29d7,_0x309ab5=_0x404371();while(!![]){try{const _0x210c59=parseInt(_0x50dfe3(0x1a2))/0x1*(parseInt(_0x50dfe3(0x1a1))/0x2)+parseInt(_0x50dfe3(0x1a6))/0x3*(-parseInt(_0x50dfe3(0x1b0))/0x4)+parseInt(_0x50dfe3(0x1b2))/0x5*(-parseInt(_0x50dfe3(0x1a8))/0x6)+-parseInt(_0x50dfe3(0x1b7))/0x7+parseInt(_0x50dfe3(0x195))/0x8+-parseInt(_0x50dfe3(0x1b4))/0x9+parseInt(_0x50dfe3(0x196))/0xa;if(_0x210c59===_0x6bb225)break;else _0x309ab5['push'](_0x309ab5['shift']());}catch(_0x314df9){_0x309ab5['push'](_0x309ab5['shift']());}}}(a126_0x399a,0x65189));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';function a126_0x29d7(_0x41a93c,_0x53cfac){_0x41a93c=_0x41a93c-0x194;const _0x399a92=a126_0x399a();let _0x29d739=_0x399a92[_0x41a93c];return _0x29d739;}export{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';export const PROJECT_CREATE_INHERITABLE_KEYS=[a126_0x11321f(0x19d),'accessKey','locale',a126_0x11321f(0x1a4),a126_0x11321f(0x19a)];export const TOP_LEVEL_CONFIG_KEYS=new Set([a126_0x11321f(0x1ae),'env',a126_0x11321f(0x19f),a126_0x11321f(0x1a4),a126_0x11321f(0x19d),a126_0x11321f(0x194),a126_0x11321f(0x198)]);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x55c6a2){return[..._0x55c6a2]['join'](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}export function isTopLevelConfigKey(_0x5dbb85){const _0x5ec06e=a126_0x11321f;return TOP_LEVEL_CONFIG_KEYS[_0x5ec06e(0x19c)](_0x5dbb85);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}export function getConfigCommandKeyDescription(){const _0x259d0f=a126_0x11321f;return _0x259d0f(0x1aa)+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':a126_0x11321f(0x1b9),'apiDir':a126_0x11321f(0x198),'cookie':a126_0x11321f(0x19d),'accessKey':'accessKey','defaultFormat':a126_0x11321f(0x1a4),'pageSize':a126_0x11321f(0x1a9),'riskLevel':a126_0x11321f(0x19a),'locale':a126_0x11321f(0x19f)};export function getAppProfileFlagDefs(){const _0x3ae50a=a126_0x11321f;return[{'name':_0x3ae50a(0x1b9),'type':_0x3ae50a(0x1a7),'description':'Target\x20environment','enum':[...RABETBASE_ENV_VALUES]},{'name':_0x3ae50a(0x198),'type':'string','description':'API\x20directory\x20path'},{'name':_0x3ae50a(0x19d),'type':'string','description':_0x3ae50a(0x1b3),'hidden':!![]},{'name':_0x3ae50a(0x194),'type':_0x3ae50a(0x1a7),'description':_0x3ae50a(0x1b1),'hidden':!![]},{'name':_0x3ae50a(0x1b6),'type':_0x3ae50a(0x1a7),'description':_0x3ae50a(0x199),'enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':_0x3ae50a(0x1a9),'type':_0x3ae50a(0x1ad),'description':'Default\x20page\x20size'},{'name':_0x3ae50a(0x19a),'type':'string','description':_0x3ae50a(0x1a3),'enum':[...RISK_LEVEL_VALUES]},{'name':_0x3ae50a(0x19f),'type':_0x3ae50a(0x1a7),'description':'Locale'}];}export function collectAppProfileOverrides(_0x4cbbdb){const _0x4977f5=a126_0x11321f,_0x1b0818={};for(const [_0x1af1e4,_0x5479d6]of Object[_0x4977f5(0x1a0)](APP_PROFILE_FLAG_KEY_MAP)){const _0x2797ef=_0x4cbbdb(_0x1af1e4);if(!_0x2797ef)continue;_0x1b0818[_0x5479d6]=_0x5479d6===_0x4977f5(0x1a9)?Number(_0x2797ef):_0x2797ef;}return _0x1b0818;}export function buildAppProfileListFields(_0x57f1fe){const _0x1a890b=a126_0x11321f;return{'env':_0x57f1fe[_0x1a890b(0x1b9)]??null,'apiDir':_0x57f1fe[_0x1a890b(0x198)]??null,'hasCookie':!!_0x57f1fe['cookie'],'hasAccessKey':!!_0x57f1fe[_0x1a890b(0x194)],'format':_0x57f1fe['format']??null,'pageSize':_0x57f1fe[_0x1a890b(0x1a9)]??null,'riskLevel':_0x57f1fe[_0x1a890b(0x19a)]??null,'locale':_0x57f1fe[_0x1a890b(0x19f)]??null};}export function buildAppDoctorFields(_0x29e9ac,_0x330e5c){const _0x43300b=a126_0x11321f;return{'env':{'value':_0x29e9ac['env']||_0x330e5c[_0x43300b(0x1b9)],'source':_0x29e9ac[_0x43300b(0x1b9)]?_0x43300b(0x1ab):_0x43300b(0x1a5)},'apiDir':{'value':_0x29e9ac['apiDir']||_0x330e5c[_0x43300b(0x198)],'source':_0x29e9ac[_0x43300b(0x198)]?'app':'inherit'},'cookie':{'value':_0x29e9ac[_0x43300b(0x19d)]||_0x330e5c['cookie'],'source':_0x29e9ac[_0x43300b(0x19d)]?_0x43300b(0x1ab):_0x43300b(0x1a5)},'accessKey':{'value':_0x29e9ac[_0x43300b(0x194)]||_0x330e5c[_0x43300b(0x194)],'source':_0x29e9ac[_0x43300b(0x194)]?_0x43300b(0x1ab):_0x43300b(0x1a5)}};}export function buildCanonicalAppConfig(_0x2e4924,_0x237419){const _0x4905d6=a126_0x11321f,_0x4beaaf=_0x2e4924['map'](_0x569c89=>String(_0x569c89||'')[_0x4905d6(0x1af)]())[_0x4905d6(0x19b)](Boolean);if(_0x4beaaf[_0x4905d6(0x197)]===0x0)return{};const _0x3fd7e2={};for(const _0x4d34de of _0x4beaaf){_0x3fd7e2[_0x4d34de]=_0x237419?{'appcode':_0x4d34de,'env':_0x237419}:{'appcode':_0x4d34de};}return{'apps':_0x3fd7e2,'defaultApp':_0x4beaaf[0x0]};}export function buildCanonicalProjectConfig(_0x46da17,_0x5188c2){const _0x5b6328=a126_0x11321f,{appCodes:appCodes=[],env:_0x2a3f0c,metadata:_0x145412}=_0x5188c2,_0x1c5c6a={..._0x46da17,..._0x145412||{}};delete _0x1c5c6a[_0x5b6328(0x1ae)],delete _0x1c5c6a[_0x5b6328(0x1ab)];if(_0x2a3f0c)_0x1c5c6a[_0x5b6328(0x1b9)]=_0x2a3f0c;else!_0x1c5c6a[_0x5b6328(0x1b9)]&&(_0x1c5c6a[_0x5b6328(0x1b9)]=DEFAULT_CONFIG_VALUES[_0x5b6328(0x1b9)]);const _0x57e464=buildCanonicalAppConfig(appCodes,_0x1c5c6a[_0x5b6328(0x1b9)]);return Object[_0x5b6328(0x1ba)](_0x57e464)[_0x5b6328(0x197)]>0x0&&(_0x1c5c6a[_0x5b6328(0x1ac)]=_0x57e464['apps'],_0x1c5c6a[_0x5b6328(0x1b5)]=_0x57e464[_0x5b6328(0x1b5)]),_0x1c5c6a;}const LOCALE_MAP={'zh':a126_0x11321f(0x1b8),'zh-cn':'zh-CN','zh_cn':a126_0x11321f(0x1b8),'en':a126_0x11321f(0x19e),'en-us':a126_0x11321f(0x19e),'en_us':a126_0x11321f(0x19e)};export function normalizeLocale(_0x3eec13){if(!_0x3eec13)return null;return LOCALE_MAP[_0x3eec13['toLowerCase']()]??null;}
@@ -1 +1 @@
1
- const a120_0x4e0995=a120_0x4c94;(function(_0xc1f8e0,_0x437812){const _0x2421af=a120_0x4c94,_0x241b32=_0xc1f8e0();while(!![]){try{const _0x45d5d7=parseInt(_0x2421af(0xf5))/0x1+-parseInt(_0x2421af(0xf3))/0x2*(-parseInt(_0x2421af(0xed))/0x3)+-parseInt(_0x2421af(0xf2))/0x4+parseInt(_0x2421af(0xf4))/0x5+-parseInt(_0x2421af(0xf0))/0x6+parseInt(_0x2421af(0xef))/0x7+parseInt(_0x2421af(0xee))/0x8;if(_0x45d5d7===_0x437812)break;else _0x241b32['push'](_0x241b32['shift']());}catch(_0x538e3d){_0x241b32['push'](_0x241b32['shift']());}}}(a120_0x3e17,0xc6f1e));function a120_0x4c94(_0x121055,_0x229dd1){_0x121055=_0x121055-0xed;const _0x3e171e=a120_0x3e17();let _0x4c943f=_0x3e171e[_0x121055];return _0x4c943f;}export const CLI_VERSION_POLICY_URL=a120_0x4e0995(0xf1);function a120_0x3e17(){const _0x1a8205=['225040yUiZal','6EKnszW','34800XZQjqn','674779ArcKKX','2409714DwSOTW','https://g.lovrabet.com/dist/rabetbase-cli/config/index.json','5304268pKXJzr','984224wIHABQ','6162765TVSGgp'];a120_0x3e17=function(){return _0x1a8205;};return a120_0x3e17();}
1
+ (function(_0x5d3648,_0x30f7bc){const _0x5b9c8e=a127_0x1089,_0x427ee3=_0x5d3648();while(!![]){try{const _0x4f162e=-parseInt(_0x5b9c8e(0x156))/0x1+-parseInt(_0x5b9c8e(0x158))/0x2*(parseInt(_0x5b9c8e(0x15d))/0x3)+parseInt(_0x5b9c8e(0x15b))/0x4+-parseInt(_0x5b9c8e(0x159))/0x5+parseInt(_0x5b9c8e(0x157))/0x6+-parseInt(_0x5b9c8e(0x15c))/0x7+parseInt(_0x5b9c8e(0x15a))/0x8;if(_0x4f162e===_0x30f7bc)break;else _0x427ee3['push'](_0x427ee3['shift']());}catch(_0xf13fa1){_0x427ee3['push'](_0x427ee3['shift']());}}}(a127_0x50bd,0x9a84b));export const CLI_VERSION_POLICY_URL='https://g.lovrabet.com/dist/rabetbase-cli/config/index.json';function a127_0x1089(_0x3394ce,_0x223df6){_0x3394ce=_0x3394ce-0x156;const _0x50bde7=a127_0x50bd();let _0x1089a1=_0x50bde7[_0x3394ce];return _0x1089a1;}function a127_0x50bd(){const _0x521f10=['320419HtkEKl','7156542pCKacF','2071204PnqbyD','2883710ZhfECJ','10261640CcKdXK','2084972WGTQns','3017245GxggkV','3nIjUqu'];a127_0x50bd=function(){return _0x521f10;};return a127_0x50bd();}