@lovrabet/rabetbase-cli 2.1.12 → 2.1.14-beta.0

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 (201) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/fetch-model-list.js +1 -1
  3. package/lib/api/generate-api-file.js +1 -1
  4. package/lib/auth/auth-server-ui.js +1 -1
  5. package/lib/auth/auth-server.js +1 -1
  6. package/lib/auth/constant.js +1 -1
  7. package/lib/auth/get-cookie.js +1 -1
  8. package/lib/auth/get-session-user.js +1 -1
  9. package/lib/auth/is-session-valid.js +1 -1
  10. package/lib/auth/login-success-html.js +1 -1
  11. package/lib/auth/logout.js +1 -1
  12. package/lib/cli-flags.js +1 -1
  13. package/lib/cli.js +1 -1
  14. package/lib/commands/api/generate.js +1 -1
  15. package/lib/commands/api/index.js +1 -1
  16. package/lib/commands/api/list.js +1 -1
  17. package/lib/commands/api/pull.js +1 -1
  18. package/lib/commands/api/shared.js +1 -1
  19. package/lib/commands/app/add.js +1 -1
  20. package/lib/commands/app/discover.js +1 -1
  21. package/lib/commands/app/index.js +1 -1
  22. package/lib/commands/app/list.js +1 -1
  23. package/lib/commands/app/remove.js +1 -1
  24. package/lib/commands/app/shared.js +1 -1
  25. package/lib/commands/app/use.js +1 -1
  26. package/lib/commands/auth/index.js +1 -1
  27. package/lib/commands/bff/create.js +1 -1
  28. package/lib/commands/bff/delete.js +1 -1
  29. package/lib/commands/bff/detail.js +1 -1
  30. package/lib/commands/bff/index.js +1 -1
  31. package/lib/commands/bff/list.js +1 -1
  32. package/lib/commands/bff/pull.js +1 -1
  33. package/lib/commands/bff/push.js +1 -1
  34. package/lib/commands/bff/status.js +1 -1
  35. package/lib/commands/cli-update.js +1 -1
  36. package/lib/commands/codegen/index.js +1 -1
  37. package/lib/commands/codegen/sdk.js +1 -1
  38. package/lib/commands/codegen/sql.js +1 -1
  39. package/lib/commands/common/app-selector.js +1 -1
  40. package/lib/commands/common/flags.js +1 -1
  41. package/lib/commands/common/validate.js +1 -1
  42. package/lib/commands/config/get.js +1 -1
  43. package/lib/commands/config/index.js +1 -1
  44. package/lib/commands/config/list.js +1 -1
  45. package/lib/commands/config/set.js +1 -1
  46. package/lib/commands/config/shared.js +1 -1
  47. package/lib/commands/data/filter.js +1 -1
  48. package/lib/commands/data/getOne.js +1 -1
  49. package/lib/commands/data/index.js +1 -1
  50. package/lib/commands/data/shared.js +1 -1
  51. package/lib/commands/dataset/capability.js +1 -1
  52. package/lib/commands/dataset/delete.js +1 -1
  53. package/lib/commands/dataset/detail.js +1 -1
  54. package/lib/commands/dataset/field-update.js +1 -1
  55. package/lib/commands/dataset/index.js +1 -1
  56. package/lib/commands/dataset/link-create.js +1 -1
  57. package/lib/commands/dataset/link-delete.js +1 -1
  58. package/lib/commands/dataset/link-shared.js +1 -1
  59. package/lib/commands/dataset/link-update.js +1 -1
  60. package/lib/commands/dataset/links.js +1 -1
  61. package/lib/commands/dataset/list.js +1 -1
  62. package/lib/commands/dataset/operations.js +1 -1
  63. package/lib/commands/dataset/rename.js +1 -0
  64. package/lib/commands/db/analyze-cancel.js +1 -1
  65. package/lib/commands/db/analyze-start.js +1 -1
  66. package/lib/commands/db/analyze-status.js +1 -1
  67. package/lib/commands/db/create.js +1 -1
  68. package/lib/commands/db/delete.js +1 -1
  69. package/lib/commands/db/detail.js +1 -1
  70. package/lib/commands/db/diff.js +1 -1
  71. package/lib/commands/db/index.js +1 -1
  72. package/lib/commands/db/list.js +1 -1
  73. package/lib/commands/db/shared.js +1 -1
  74. package/lib/commands/db/tables.js +1 -1
  75. package/lib/commands/db/test.js +1 -1
  76. package/lib/commands/db/update.js +1 -1
  77. package/lib/commands/doctor.js +1 -1
  78. package/lib/commands/init/index.js +1 -1
  79. package/lib/commands/issue/index.js +1 -1
  80. package/lib/commands/issue/nudge.js +1 -1
  81. package/lib/commands/issue/report.js +1 -1
  82. package/lib/commands/issue/shared.js +1 -1
  83. package/lib/commands/logs/index.js +1 -1
  84. package/lib/commands/menu/index.js +1 -1
  85. package/lib/commands/menu/shared/compare-table.js +1 -1
  86. package/lib/commands/menu/shared/index.js +1 -1
  87. package/lib/commands/menu/shared/inquirer.js +1 -1
  88. package/lib/commands/menu/shared/local-pages.js +1 -1
  89. package/lib/commands/menu/shared/logic.js +1 -1
  90. package/lib/commands/menu/shared/service.js +1 -1
  91. package/lib/commands/menu/shared/sync-core.js +1 -1
  92. package/lib/commands/menu/shared/update-core.js +1 -1
  93. package/lib/commands/menu/shared/valid-url.js +1 -1
  94. package/lib/commands/menu/sync.js +1 -1
  95. package/lib/commands/menu/update.js +1 -1
  96. package/lib/commands/page/generate-start.js +1 -1
  97. package/lib/commands/page/generate-status.js +1 -1
  98. package/lib/commands/page/index.js +1 -1
  99. package/lib/commands/page/pull.js +1 -1
  100. package/lib/commands/page/push.js +1 -1
  101. package/lib/commands/page/shared.js +1 -1
  102. package/lib/commands/page/standard-page-status.js +1 -1
  103. package/lib/commands/page/sync.js +1 -1
  104. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  105. package/lib/commands/project/create/format-elapsed.js +1 -1
  106. package/lib/commands/project/create/main.js +1 -1
  107. package/lib/commands/project/create/non-interactive.js +1 -1
  108. package/lib/commands/project/create/project-template-path.js +1 -1
  109. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  110. package/lib/commands/project/create/use-format-code.js +1 -1
  111. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  112. package/lib/commands/project/index.js +1 -1
  113. package/lib/commands/project/init.js +1 -1
  114. package/lib/commands/project/upgrade.js +1 -1
  115. package/lib/commands/registry.js +1 -1
  116. package/lib/commands/run/index.js +1 -1
  117. package/lib/commands/schema.js +1 -1
  118. package/lib/commands/skill/index.js +1 -1
  119. package/lib/commands/sql/create.js +1 -1
  120. package/lib/commands/sql/delete.js +1 -1
  121. package/lib/commands/sql/detail.js +1 -1
  122. package/lib/commands/sql/exec.js +1 -1
  123. package/lib/commands/sql/index.js +1 -1
  124. package/lib/commands/sql/list.js +1 -1
  125. package/lib/commands/sql/pull.js +1 -1
  126. package/lib/commands/sql/push.js +1 -1
  127. package/lib/commands/sql/save.js +1 -1
  128. package/lib/commands/sql/shared.js +1 -1
  129. package/lib/commands/sql/status.js +1 -1
  130. package/lib/commands/sql/validate.js +1 -1
  131. package/lib/config/schema.js +1 -1
  132. package/lib/constant/cdn.js +1 -1
  133. package/lib/constant/cli.js +1 -1
  134. package/lib/constant/defaults.js +1 -1
  135. package/lib/constant/domain.js +1 -1
  136. package/lib/constant/env.js +1 -1
  137. package/lib/constant/output.js +1 -1
  138. package/lib/constant/paths.js +1 -1
  139. package/lib/constant/risk.js +1 -1
  140. package/lib/context.js +1 -1
  141. package/lib/core/alias-resolver.js +1 -1
  142. package/lib/core/api-client.js +1 -1
  143. package/lib/core/bff/config.js +1 -1
  144. package/lib/core/bff/file-system.js +1 -1
  145. package/lib/core/bff/hash.js +1 -1
  146. package/lib/core/bff/lock.js +1 -1
  147. package/lib/core/bff/utils.js +1 -1
  148. package/lib/core/db-resolver.js +1 -1
  149. package/lib/core/page/file-system.js +1 -1
  150. package/lib/core/page/hash.js +1 -1
  151. package/lib/core/page/lock.js +1 -1
  152. package/lib/core/sql-sync/config.js +1 -1
  153. package/lib/core/sql-sync/file-system.js +1 -1
  154. package/lib/core/sql-sync/hash.js +1 -1
  155. package/lib/core/sql-sync/lock.js +1 -1
  156. package/lib/core/sql-sync/utils.js +1 -1
  157. package/lib/core/sql-validator.js +1 -1
  158. package/lib/errors.js +1 -1
  159. package/lib/framework/build-all-flags.js +1 -1
  160. package/lib/framework/flags.js +1 -1
  161. package/lib/framework/help.js +1 -1
  162. package/lib/framework/index.js +1 -1
  163. package/lib/framework/output.js +1 -1
  164. package/lib/framework/response.js +1 -1
  165. package/lib/framework/runner-alias.js +1 -1
  166. package/lib/framework/runner.js +1 -1
  167. package/lib/framework/schema-export.js +1 -1
  168. package/lib/framework/types.js +1 -1
  169. package/lib/generated/build-info.js +1 -1
  170. package/lib/help.js +1 -1
  171. package/lib/skills/main.js +1 -1
  172. package/lib/skills/npx-skills-add.js +1 -1
  173. package/lib/telemetry/cli-command-trace.js +1 -1
  174. package/lib/telemetry/cli-help-trace.js +1 -1
  175. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  176. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  177. package/lib/telemetry/send-cli-trace-log.js +1 -1
  178. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  179. package/lib/utils/ai_config.js +1 -1
  180. package/lib/utils/apply-jq-filter.js +1 -1
  181. package/lib/utils/cdn-config.js +1 -1
  182. package/lib/utils/check-sdk-version.js +1 -1
  183. package/lib/utils/cli-version-check.js +1 -1
  184. package/lib/utils/cli-version-policy.js +1 -1
  185. package/lib/utils/config.js +1 -1
  186. package/lib/utils/copy-directory.js +1 -1
  187. package/lib/utils/entity-with-id.js +1 -1
  188. package/lib/utils/file-utils.js +1 -1
  189. package/lib/utils/guides-cdn.js +1 -1
  190. package/lib/utils/http-client.js +1 -1
  191. package/lib/utils/is-non-interactive.js +1 -1
  192. package/lib/utils/logger.js +1 -1
  193. package/lib/utils/params.js +1 -1
  194. package/lib/utils/platform.js +1 -1
  195. package/lib/utils/rules-cdn.js +1 -1
  196. package/lib/utils/sleep.js +1 -1
  197. package/lib/utils/template-replacer.js +1 -1
  198. package/lib/utils/version.js +1 -1
  199. package/lib/utils/with-active-cookie.js +1 -1
  200. package/lib/utils/write-cli-side-channel.js +1 -1
  201. package/package.json +1 -1
@@ -1 +1 @@
1
- const a118_0x328de2=a118_0x2f69;(function(_0x121402,_0x45d471){const _0x49d55f=a118_0x2f69,_0x50eb5b=_0x121402();while(!![]){try{const _0x1a3be7=-parseInt(_0x49d55f(0x19e))/0x1*(parseInt(_0x49d55f(0x1b4))/0x2)+parseInt(_0x49d55f(0x1bf))/0x3*(-parseInt(_0x49d55f(0x1c8))/0x4)+-parseInt(_0x49d55f(0x1d3))/0x5+parseInt(_0x49d55f(0x1ba))/0x6+parseInt(_0x49d55f(0x1b5))/0x7*(parseInt(_0x49d55f(0x1be))/0x8)+parseInt(_0x49d55f(0x1c1))/0x9+-parseInt(_0x49d55f(0x1ae))/0xa;if(_0x1a3be7===_0x45d471)break;else _0x50eb5b['push'](_0x50eb5b['shift']());}catch(_0x451125){_0x50eb5b['push'](_0x50eb5b['shift']());}}}(a118_0x33fb,0x96406));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';function a118_0x33fb(){const _0x5f0b3b=['2270410BUlwIZ','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','isFinite','trim','join','sqlRoot','sql','Target\x20database\x20ID','请选择目标数据库:','dbId','db-id','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','SQL\x20名称不能为空','19553tSCeWw','str','Created\x20SQL\x20query\x20','lockFilePath','File\x20already\x20exists:\x20','catch','__manual__','请输入\x20SQL\x20名称:','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','请选择本地\x20SQL\x20模式:','validation','create','dbId\x20不能为空','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','Invalid\x20database\x20selection\x20payload:\x20','stringify','1829940YedUzd','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','\x20\x20SELECT\x201\x20AS\x20id','new','lastSync','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','6LmrpdD','4220692CVIsBe','dbId\x20必须为正整数','length','Local\x20SQL\x20file\x20mode','MyBatis\x20XML(mybatisXml)','4524846DnOqKK','name','sqlCode','普通\x20SQL(sql)','8irFTqV','3sRyWXx','isInteger','441549lcLoHB','</select>','SELECT\x201\x20AS\x20id;','toISOString','high-risk-write','mybatisXml','string','379972AFWWMX','sqlRootDir','适合带动态标签的\x20MyBatis\x20XML\x20SQL','number','appCode','dbName','sqlName','mode','flagMissing','nonInteractive','/smartapi/custom/saveUserCustomSql'];a118_0x33fb=function(){return _0x5f0b3b;};return a118_0x33fb();}import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x2d9030){const _0xa6cfb1=a118_0x2f69;if(_0x2d9030===_0xa6cfb1(0x1c6))return[_0xa6cfb1(0x19c),_0xa6cfb1(0x1b0),_0xa6cfb1(0x1c2),''][_0xa6cfb1(0x1d7)]('\x0a');return[_0xa6cfb1(0x1c3),''][_0xa6cfb1(0x1d7)]('\x0a');}export const sqlCreate={'service':a118_0x328de2(0x197),'command':a118_0x328de2(0x1a9),'description':a118_0x328de2(0x1d4),'risk':a118_0x328de2(0x1c5),'flags':[{'name':a118_0x328de2(0x1bb),'type':a118_0x328de2(0x1c7),'description':'SQL\x20query\x20display\x20name'},{'name':a118_0x328de2(0x19b),'type':a118_0x328de2(0x1cb),'description':a118_0x328de2(0x198)},{'name':'mode','type':a118_0x328de2(0x1c7),'enum':['sql',a118_0x328de2(0x1c6)],'description':a118_0x328de2(0x1b8)}],async 'validate'(_0x2363fe){const _0x504f71=a118_0x328de2;if(!_0x2363fe[_0x504f71(0x1d1)])return;if(!_0x2363fe[_0x504f71(0x19f)]('name')[_0x504f71(0x1d6)]())throw CliErrors['flagMissing'](_0x504f71(0x1bb),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x2753fb=resolveProvidedDbId(_0x2363fe);if(typeof _0x2753fb!=='number'||!Number[_0x504f71(0x1d5)](_0x2753fb)||_0x2753fb<=0x0)throw CliErrors[_0x504f71(0x1d0)](_0x504f71(0x19b),_0x504f71(0x1a6));if(!_0x2363fe[_0x504f71(0x19f)](_0x504f71(0x1cf))[_0x504f71(0x1d6)]())throw CliErrors[_0x504f71(0x1d0)](_0x504f71(0x1cf),_0x504f71(0x1af));},async 'dryRun'(_0x7e101){const _0x52ff10=a118_0x328de2,_0x2f6140=loadSqlProjectConfig(_0x7e101[_0x52ff10(0x1cc)]),{sqlName:_0x13824d,dbId:_0x4b5c47,dbName:_0x3b2440,mode:_0x2d0f35}=await resolveSqlNewInputs(_0x7e101),_0x5a69fd=buildSqlRelativePath('<server-generated-sqlCode>',_0x13824d,_0x3b2440,_0x2d0f35,_0x4b5c47),_0xaa1dc7=_0x2f6140[_0x52ff10(0x1c9)]+'/'+_0x5a69fd;return{'method':'POST','url':_0x52ff10(0x1d2),'body':{'appCode':_0x7e101[_0x52ff10(0x1cc)],'sqlName':_0x13824d,'dbId':_0x4b5c47,'mode':_0x2d0f35,'localPath':_0xaa1dc7},'description':_0x52ff10(0x1ab)+_0x2f6140[_0x52ff10(0x1c9)]};},async 'execute'(_0xb66d17){const _0x106e68=a118_0x328de2,_0x44737b=loadSqlProjectConfig(_0xb66d17[_0x106e68(0x1cc)]),{sqlName:_0x2ab4e5,dbId:_0x21c91a,dbName:_0x20da6b,mode:_0x32d4c7}=await resolveSqlNewInputs(_0xb66d17),_0x28d1d4=generateSqlTemplate(_0x32d4c7),_0x23e413=await createSqlQuery({'appCode':_0xb66d17['appCode'],'sqlName':_0x2ab4e5,'dbId':_0x21c91a,'sqlContent':_0x28d1d4}),_0x4b092f=ensureRemoteSqlContent(_0x23e413),_0x2043e2=_0x20da6b||await getDbName(_0xb66d17[_0x106e68(0x1cc)],_0x21c91a)[_0x106e68(0x1a3)](()=>undefined),_0x5d246d=buildSqlRelativePath(_0x23e413[_0x106e68(0x1bc)],_0x23e413[_0x106e68(0x1ce)],_0x2043e2,_0x32d4c7,_0x21c91a),_0x4a29cc=_0x44737b[_0x106e68(0x1c9)]+'/'+_0x5d246d,_0x3ecda5=buildLocalSqlFileContent({'sqlCode':_0x23e413[_0x106e68(0x1bc)],'sqlName':_0x23e413[_0x106e68(0x1ce)],'dbId':_0x23e413[_0x106e68(0x19a)]},_0x4b092f,{'dbName':_0x2043e2,'mode':_0x32d4c7,'syncedAt':new Date()[_0x106e68(0x1c4)](),'description':_0x23e413['description']});if(await fileExists(_0x4a29cc))throw CliErrors[_0x106e68(0x1a8)](_0x106e68(0x1a2)+_0x4a29cc);await ensureParentDirectory(_0x4a29cc),await writeFile(_0x4a29cc,_0x3ecda5,'utf8');const _0xba6a07=await readSqlLockFile(_0x44737b[_0x106e68(0x1a1)]),{lockData:_0x4c5df4,appLock:_0x29d559}=ensureSqlLockScope(_0xba6a07??createEmptySqlLock(),_0x44737b[_0x106e68(0x1cc)],_0x44737b[_0x106e68(0x1d8)],_0x106e68(0x1b1));return _0x29d559['sqls'][_0x23e413[_0x106e68(0x1bc)]]={...buildSqlLockEntry(_0x23e413,_0x4b092f,computeSqlContentHash(_0x3ecda5),{'dbName':_0x2043e2}),'path':_0x5d246d,'mode':_0x32d4c7},_0x29d559[_0x106e68(0x1b2)]=new Date()[_0x106e68(0x1c4)](),await writeSqlLockFile(_0x44737b[_0x106e68(0x1a1)],_0x4c5df4),{'ok':!![],'data':{'id':_0x23e413['id'],'sqlCode':_0x23e413[_0x106e68(0x1bc)],'sqlName':_0x23e413[_0x106e68(0x1ce)],'dbId':_0x23e413[_0x106e68(0x19a)],'path':_0x4a29cc,'mode':_0x32d4c7},'message':_0x106e68(0x1a0)+_0x23e413[_0x106e68(0x1bc)]};}};function a118_0x2f69(_0x1a8e62,_0x1f0051){_0x1a8e62=_0x1a8e62-0x197;const _0x33fbf4=a118_0x33fb();let _0x2f6973=_0x33fbf4[_0x1a8e62];return _0x2f6973;}async function resolveSqlNewInputs(_0x1ec5ef){const _0x211696=await resolveSqlNameInput(_0x1ec5ef),{dbId:_0x27a723,dbName:_0xbd80be}=await resolveDbSelection(_0x1ec5ef),_0xb255e3=await resolveSqlModeInput(_0x1ec5ef);return{'sqlName':_0x211696,'dbId':_0x27a723,'dbName':_0xbd80be,'mode':_0xb255e3};}async function resolveSqlNameInput(_0x3eab2b){const _0x1f76b=a118_0x328de2,_0x296249=_0x3eab2b['str'](_0x1f76b(0x1bb))[_0x1f76b(0x1d6)]();if(_0x296249)return _0x296249;if(_0x3eab2b[_0x1f76b(0x1d1)])throw CliErrors['flagMissing'](_0x1f76b(0x1bb),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x1f76b(0x1a5),'validate':_0x4354d7=>_0x4354d7['trim']()?!![]:_0x1f76b(0x19d)}))[_0x1f76b(0x1d6)]();}async function resolveDbSelection(_0x1bccd1){const _0x1d10d3=a118_0x328de2,_0x529ceb=resolveProvidedDbId(_0x1bccd1);if(typeof _0x529ceb===_0x1d10d3(0x1cb)&&Number[_0x1d10d3(0x1d5)](_0x529ceb)&&_0x529ceb>0x0)return{'dbId':_0x529ceb,'dbName':await getDbName(_0x1bccd1[_0x1d10d3(0x1cc)],_0x529ceb)[_0x1d10d3(0x1a3)](()=>undefined)};if(_0x1bccd1[_0x1d10d3(0x1d1)])throw CliErrors[_0x1d10d3(0x1d0)](_0x1d10d3(0x19b),_0x1d10d3(0x1a6));const _0xe0001f=await listDatabases(_0x1bccd1[_0x1d10d3(0x1cc)])[_0x1d10d3(0x1a3)](()=>[]);if(_0xe0001f['length']===0x1)return{'dbId':_0xe0001f[0x0][_0x1d10d3(0x19a)],'dbName':_0xe0001f[0x0][_0x1d10d3(0x1cd)]};if(_0xe0001f[_0x1d10d3(0x1b7)]>0x1){const _0x46b822=await select({'message':_0x1d10d3(0x199),'choices':[..._0xe0001f['map'](_0x3b1ddf=>({'name':_0x3b1ddf[_0x1d10d3(0x1cd)]+'\x20('+_0x3b1ddf['dbId']+')','value':serializeDbSelection(_0x3b1ddf)})),{'name':'✎\x20手动输入\x20dbId','value':_0x1d10d3(0x1a4)}]});if(_0x46b822!=='__manual__')return deserializeDbSelection(_0x46b822);}const _0x153b97=await input({'message':'请输入目标数据库\x20dbId:','validate':_0x3f2b83=>{const _0x10643a=_0x1d10d3,_0x39ae9c=_0x3f2b83[_0x10643a(0x1d6)]();if(!_0x39ae9c)return _0x10643a(0x1aa);const _0x37365a=Number(_0x39ae9c);if(!Number[_0x10643a(0x1c0)](_0x37365a)||_0x37365a<=0x0)return _0x10643a(0x1b6);return!![];}});return{'dbId':Number(_0x153b97[_0x1d10d3(0x1d6)]())};}async function resolveSqlModeInput(_0xe05278){const _0x446618=a118_0x328de2,_0x1c492a=_0xe05278[_0x446618(0x19f)](_0x446618(0x1cf))[_0x446618(0x1d6)]();if(_0x1c492a===_0x446618(0x197)||_0x1c492a===_0x446618(0x1c6))return _0x1c492a;if(_0xe05278[_0x446618(0x1d1)])throw CliErrors[_0x446618(0x1d0)](_0x446618(0x1cf),_0x446618(0x1af));return await select({'message':_0x446618(0x1a7),'choices':[{'name':_0x446618(0x1bd),'value':_0x446618(0x197),'description':_0x446618(0x1b3)},{'name':_0x446618(0x1b9),'value':_0x446618(0x1c6),'description':_0x446618(0x1ca)}]});}function serializeDbSelection(_0x22c4c8){const _0x115231=a118_0x328de2;return JSON[_0x115231(0x1ad)]({'dbId':_0x22c4c8[_0x115231(0x19a)],'dbName':_0x22c4c8[_0x115231(0x1cd)]});}function deserializeDbSelection(_0x21db68){const _0x889e46=a118_0x328de2;try{const _0xb51e6e=JSON['parse'](_0x21db68);if(typeof _0xb51e6e[_0x889e46(0x19a)]==='number'&&Number[_0x889e46(0x1d5)](_0xb51e6e[_0x889e46(0x19a)]))return{'dbId':_0xb51e6e['dbId'],'dbName':_0xb51e6e[_0x889e46(0x1cd)]};}catch{}throw CliErrors['validation'](_0x889e46(0x1ac)+_0x21db68);}function resolveProvidedDbId(_0x153700){const _0x33dc65=a118_0x328de2,_0x5345a7=_0x153700['flag'](_0x33dc65(0x19b));if(typeof _0x5345a7===_0x33dc65(0x1cb)&&Number[_0x33dc65(0x1d5)](_0x5345a7))return _0x5345a7;return undefined;}
1
+ const a119_0x375a38=a119_0x39b5;(function(_0x3e472c,_0x5ddcf8){const _0xb9e50=a119_0x39b5,_0x3c501b=_0x3e472c();while(!![]){try{const _0x37cb27=parseInt(_0xb9e50(0xc1))/0x1+-parseInt(_0xb9e50(0xc8))/0x2*(-parseInt(_0xb9e50(0xbb))/0x3)+parseInt(_0xb9e50(0xca))/0x4*(-parseInt(_0xb9e50(0xd5))/0x5)+-parseInt(_0xb9e50(0xae))/0x6*(parseInt(_0xb9e50(0xd4))/0x7)+parseInt(_0xb9e50(0xb5))/0x8+-parseInt(_0xb9e50(0xd2))/0x9*(-parseInt(_0xb9e50(0xb6))/0xa)+-parseInt(_0xb9e50(0xbc))/0xb;if(_0x37cb27===_0x5ddcf8)break;else _0x3c501b['push'](_0x3c501b['shift']());}catch(_0x39b525){_0x3c501b['push'](_0x3c501b['shift']());}}}(a119_0xd902,0xde683));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';function a119_0xd902(){const _0xc9947e=['high-risk-write','flag','parse','sqlRoot','适合带动态标签的\x20MyBatis\x20XML\x20SQL','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','4968186RgdTBI','utf8','isFinite','Target\x20database\x20ID','description','mode','join','11765008mKUyVm','7825900oAHMbR','lockFilePath','appCode','dbId\x20必须为正整数','mybatisXml','3785466WCreYR','25833038njRNKv','sql','db-id','name','lastSync','1755797XBQZtz','sqlCode','dbName','dbId\x20不能为空','<server-generated-sqlCode>','map','toISOString','2oRAwxE','number','4eguEZq','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','string','sqlName','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','flagMissing','trim','SQL\x20query\x20display\x20name','9HBCtBv','catch','14LKRgRg','1776680bBlSCl','sqlRootDir','new','Invalid\x20database\x20selection\x20payload:\x20','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','File\x20already\x20exists:\x20','Created\x20SQL\x20query\x20','length','nonInteractive','Local\x20SQL\x20file\x20mode','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','普通\x20SQL(sql)','/smartapi/custom/saveUserCustomSql','isInteger','str','请输入目标数据库\x20dbId:','SELECT\x201\x20AS\x20id;','\x20\x20SELECT\x201\x20AS\x20id','dbId','✎\x20手动输入\x20dbId'];a119_0xd902=function(){return _0xc9947e;};return a119_0xd902();}function a119_0x39b5(_0x31dabb,_0x5e6de9){_0x31dabb=_0x31dabb-0x97;const _0xd902ce=a119_0xd902();let _0x39b5e9=_0xd902ce[_0x31dabb];return _0x39b5e9;}import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x3ea45e){const _0x2abde0=a119_0x39b5;if(_0x3ea45e===_0x2abde0(0xba))return[_0x2abde0(0xad),_0x2abde0(0xa5),'</select>',''][_0x2abde0(0xb4)]('\x0a');return[_0x2abde0(0xa4),''][_0x2abde0(0xb4)]('\x0a');}export const sqlCreate={'service':a119_0x375a38(0xbd),'command':'create','description':'Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','risk':a119_0x375a38(0xa8),'flags':[{'name':'name','type':a119_0x375a38(0xcc),'description':a119_0x375a38(0xd1)},{'name':'db-id','type':a119_0x375a38(0xc9),'description':a119_0x375a38(0xb1)},{'name':a119_0x375a38(0xb3),'type':a119_0x375a38(0xcc),'enum':['sql',a119_0x375a38(0xba)],'description':a119_0x375a38(0x9c)}],async 'validate'(_0x51704b){const _0x1f5320=a119_0x375a38;if(!_0x51704b[_0x1f5320(0x9b)])return;if(!_0x51704b[_0x1f5320(0xa2)](_0x1f5320(0xbf))['trim']())throw CliErrors[_0x1f5320(0xcf)](_0x1f5320(0xbf),_0x1f5320(0x9d));const _0x1630d2=resolveProvidedDbId(_0x51704b);if(typeof _0x1630d2!==_0x1f5320(0xc9)||!Number[_0x1f5320(0xb0)](_0x1630d2)||_0x1630d2<=0x0)throw CliErrors[_0x1f5320(0xcf)](_0x1f5320(0xbe),_0x1f5320(0x97));if(!_0x51704b[_0x1f5320(0xa2)](_0x1f5320(0xb3))[_0x1f5320(0xd0)]())throw CliErrors['flagMissing'](_0x1f5320(0xb3),_0x1f5320(0x9e));},async 'dryRun'(_0x20bfec){const _0x2dd784=a119_0x375a38,_0x52194a=loadSqlProjectConfig(_0x20bfec[_0x2dd784(0xb8)]),{sqlName:_0x5d1ddf,dbId:_0x3bf742,dbName:_0x26aebd,mode:_0x2bc5a3}=await resolveSqlNewInputs(_0x20bfec),_0x1452f2=buildSqlRelativePath(_0x2dd784(0xc5),_0x5d1ddf,_0x26aebd,_0x2bc5a3,_0x3bf742),_0x19374c=_0x52194a['sqlRootDir']+'/'+_0x1452f2;return{'method':'POST','url':_0x2dd784(0xa0),'body':{'appCode':_0x20bfec[_0x2dd784(0xb8)],'sqlName':_0x5d1ddf,'dbId':_0x3bf742,'mode':_0x2bc5a3,'localPath':_0x19374c},'description':_0x2dd784(0xce)+_0x52194a['sqlRootDir']};},async 'execute'(_0xec69a6){const _0x61171d=a119_0x375a38,_0x2dfd58=loadSqlProjectConfig(_0xec69a6['appCode']),{sqlName:_0x46ce16,dbId:_0x2b8b74,dbName:_0x328668,mode:_0x13801d}=await resolveSqlNewInputs(_0xec69a6),_0x2528fc=generateSqlTemplate(_0x13801d),_0x51c159=await createSqlQuery({'appCode':_0xec69a6[_0x61171d(0xb8)],'sqlName':_0x46ce16,'dbId':_0x2b8b74,'sqlContent':_0x2528fc}),_0x3dd8ba=ensureRemoteSqlContent(_0x51c159),_0x27b906=_0x328668||await getDbName(_0xec69a6[_0x61171d(0xb8)],_0x2b8b74)[_0x61171d(0xd3)](()=>undefined),_0x2d73d5=buildSqlRelativePath(_0x51c159[_0x61171d(0xc2)],_0x51c159[_0x61171d(0xcd)],_0x27b906,_0x13801d,_0x2b8b74),_0x42d0db=_0x2dfd58[_0x61171d(0xd6)]+'/'+_0x2d73d5,_0x1f02a2=buildLocalSqlFileContent({'sqlCode':_0x51c159[_0x61171d(0xc2)],'sqlName':_0x51c159[_0x61171d(0xcd)],'dbId':_0x51c159[_0x61171d(0xa6)]},_0x3dd8ba,{'dbName':_0x27b906,'mode':_0x13801d,'syncedAt':new Date()[_0x61171d(0xc7)](),'description':_0x51c159[_0x61171d(0xb2)]});if(await fileExists(_0x42d0db))throw CliErrors['validation'](_0x61171d(0x98)+_0x42d0db);await ensureParentDirectory(_0x42d0db),await writeFile(_0x42d0db,_0x1f02a2,_0x61171d(0xaf));const _0x15e26f=await readSqlLockFile(_0x2dfd58[_0x61171d(0xb7)]),{lockData:_0x529cf5,appLock:_0x1f2df8}=ensureSqlLockScope(_0x15e26f??createEmptySqlLock(),_0x2dfd58['appCode'],_0x2dfd58[_0x61171d(0xab)],_0x61171d(0xd7));return _0x1f2df8['sqls'][_0x51c159[_0x61171d(0xc2)]]={...buildSqlLockEntry(_0x51c159,_0x3dd8ba,computeSqlContentHash(_0x1f02a2),{'dbName':_0x27b906}),'path':_0x2d73d5,'mode':_0x13801d},_0x1f2df8[_0x61171d(0xc0)]=new Date()['toISOString'](),await writeSqlLockFile(_0x2dfd58[_0x61171d(0xb7)],_0x529cf5),{'ok':!![],'data':{'id':_0x51c159['id'],'sqlCode':_0x51c159[_0x61171d(0xc2)],'sqlName':_0x51c159['sqlName'],'dbId':_0x51c159[_0x61171d(0xa6)],'path':_0x42d0db,'mode':_0x13801d},'message':_0x61171d(0x99)+_0x51c159[_0x61171d(0xc2)]};}};async function resolveSqlNewInputs(_0x16cb3b){const _0x523d3c=await resolveSqlNameInput(_0x16cb3b),{dbId:_0x24e455,dbName:_0x24dd72}=await resolveDbSelection(_0x16cb3b),_0x5b1146=await resolveSqlModeInput(_0x16cb3b);return{'sqlName':_0x523d3c,'dbId':_0x24e455,'dbName':_0x24dd72,'mode':_0x5b1146};}async function resolveSqlNameInput(_0x455742){const _0x3be89f=a119_0x375a38,_0x4dc393=_0x455742[_0x3be89f(0xa2)](_0x3be89f(0xbf))['trim']();if(_0x4dc393)return _0x4dc393;if(_0x455742[_0x3be89f(0x9b)])throw CliErrors['flagMissing'](_0x3be89f(0xbf),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x2624c8=>_0x2624c8['trim']()?!![]:'SQL\x20名称不能为空'}))[_0x3be89f(0xd0)]();}async function resolveDbSelection(_0x73e11){const _0x1cabe2=a119_0x375a38,_0x1b21c0=resolveProvidedDbId(_0x73e11);if(typeof _0x1b21c0==='number'&&Number['isFinite'](_0x1b21c0)&&_0x1b21c0>0x0)return{'dbId':_0x1b21c0,'dbName':await getDbName(_0x73e11['appCode'],_0x1b21c0)[_0x1cabe2(0xd3)](()=>undefined)};if(_0x73e11[_0x1cabe2(0x9b)])throw CliErrors['flagMissing'](_0x1cabe2(0xbe),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0xcb4092=await listDatabases(_0x73e11['appCode'])['catch'](()=>[]);if(_0xcb4092[_0x1cabe2(0x9a)]===0x1)return{'dbId':_0xcb4092[0x0][_0x1cabe2(0xa6)],'dbName':_0xcb4092[0x0][_0x1cabe2(0xc3)]};if(_0xcb4092['length']>0x1){const _0x5f4003=await select({'message':'请选择目标数据库:','choices':[..._0xcb4092[_0x1cabe2(0xc6)](_0x44ae84=>({'name':_0x44ae84[_0x1cabe2(0xc3)]+'\x20('+_0x44ae84[_0x1cabe2(0xa6)]+')','value':serializeDbSelection(_0x44ae84)})),{'name':_0x1cabe2(0xa7),'value':'__manual__'}]});if(_0x5f4003!=='__manual__')return deserializeDbSelection(_0x5f4003);}const _0xbcdfa7=await input({'message':_0x1cabe2(0xa3),'validate':_0x4c1d20=>{const _0x39d0f1=_0x1cabe2,_0x285415=_0x4c1d20[_0x39d0f1(0xd0)]();if(!_0x285415)return _0x39d0f1(0xc4);const _0xe83050=Number(_0x285415);if(!Number[_0x39d0f1(0xa1)](_0xe83050)||_0xe83050<=0x0)return _0x39d0f1(0xb9);return!![];}});return{'dbId':Number(_0xbcdfa7[_0x1cabe2(0xd0)]())};}async function resolveSqlModeInput(_0x12285a){const _0x2b1a4a=a119_0x375a38,_0x263312=_0x12285a[_0x2b1a4a(0xa2)](_0x2b1a4a(0xb3))[_0x2b1a4a(0xd0)]();if(_0x263312===_0x2b1a4a(0xbd)||_0x263312===_0x2b1a4a(0xba))return _0x263312;if(_0x12285a['nonInteractive'])throw CliErrors[_0x2b1a4a(0xcf)](_0x2b1a4a(0xb3),_0x2b1a4a(0x9e));return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x2b1a4a(0x9f),'value':_0x2b1a4a(0xbd),'description':_0x2b1a4a(0xcb)},{'name':'MyBatis\x20XML(mybatisXml)','value':_0x2b1a4a(0xba),'description':_0x2b1a4a(0xac)}]});}function serializeDbSelection(_0x781600){const _0x4d11de=a119_0x375a38;return JSON['stringify']({'dbId':_0x781600[_0x4d11de(0xa6)],'dbName':_0x781600[_0x4d11de(0xc3)]});}function deserializeDbSelection(_0x284693){const _0x3f09f9=a119_0x375a38;try{const _0x5258fd=JSON[_0x3f09f9(0xaa)](_0x284693);if(typeof _0x5258fd[_0x3f09f9(0xa6)]===_0x3f09f9(0xc9)&&Number[_0x3f09f9(0xb0)](_0x5258fd[_0x3f09f9(0xa6)]))return{'dbId':_0x5258fd[_0x3f09f9(0xa6)],'dbName':_0x5258fd['dbName']};}catch{}throw CliErrors['validation'](_0x3f09f9(0xd8)+_0x284693);}function resolveProvidedDbId(_0x327ddf){const _0xd6d43=a119_0x375a38,_0x1d3b9c=_0x327ddf[_0xd6d43(0xa9)](_0xd6d43(0xbe));if(typeof _0x1d3b9c===_0xd6d43(0xc9)&&Number[_0xd6d43(0xb0)](_0x1d3b9c))return _0x1d3b9c;return undefined;}
@@ -1 +1 @@
1
- const a119_0x4f8d48=a119_0x1d91;(function(_0x20eb6c,_0x2be386){const _0x51ed67=a119_0x1d91,_0x2ea520=_0x20eb6c();while(!![]){try{const _0xbc4b44=-parseInt(_0x51ed67(0xf9))/0x1+parseInt(_0x51ed67(0xe9))/0x2+-parseInt(_0x51ed67(0xf4))/0x3+-parseInt(_0x51ed67(0xf1))/0x4*(parseInt(_0x51ed67(0xec))/0x5)+-parseInt(_0x51ed67(0xef))/0x6+-parseInt(_0x51ed67(0xfb))/0x7*(parseInt(_0x51ed67(0xfe))/0x8)+-parseInt(_0x51ed67(0xe5))/0x9*(-parseInt(_0x51ed67(0xe7))/0xa);if(_0xbc4b44===_0x2be386)break;else _0x2ea520['push'](_0x2ea520['shift']());}catch(_0x3bea1f){_0x2ea520['push'](_0x2ea520['shift']());}}}(a119_0x5b1d,0x54406));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';import{CliErrors}from'../../errors.js';function a119_0x1d91(_0x173d30,_0x587123){_0x173d30=_0x173d30-0xdc;const _0x5b1ddf=a119_0x5b1d();let _0x1d91d3=_0x5b1ddf[_0x173d30];return _0x1d91d3;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a119_0x4f8d48(0xfc),'command':a119_0x4f8d48(0xe4),'description':'Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x4f534c){const _0x4c8ba8=a119_0x4f8d48,_0x40b966=loadSqlProjectConfig(_0x4f534c[_0x4c8ba8(0xe2)]),_0x2ab2e6=await readSqlLockFile(_0x40b966['lockFilePath']);if(!_0x2ab2e6)throw CliErrors[_0x4c8ba8(0xeb)](_0x4c8ba8(0xe3));},async 'dryRun'(_0x42ac03){const _0x36c1f0=a119_0x4f8d48,_0x5a5eb0=loadSqlProjectConfig(_0x42ac03[_0x36c1f0(0xe2)]),_0x5a7b0e=await readSqlLockFile(_0x5a5eb0[_0x36c1f0(0xf8)]);if(!_0x5a7b0e)throw CliErrors[_0x36c1f0(0xeb)](_0x36c1f0(0xe3));const {appLock:_0x676349}=ensureSqlLockScope(_0x5a7b0e,_0x42ac03[_0x36c1f0(0xe2)],_0x5a5eb0[_0x36c1f0(0xdd)],_0x36c1f0(0xe4)),_0x15b299=_0x42ac03[_0x36c1f0(0xfa)](_0x36c1f0(0xee)),_0x14e561=_0x676349[_0x36c1f0(0xf6)][_0x15b299];if(!_0x14e561)throw CliErrors[_0x36c1f0(0xeb)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x15b299+'\x22.');return{'method':_0x36c1f0(0xe0),'url':_0x36c1f0(0xde),'body':{'sqlCode':_0x15b299,'id':_0x14e561['remoteId'],'localPath':resolveLocalSqlFilePath(_0x5a5eb0,_0x15b299,_0x14e561)},'description':'Would\x20delete\x20SQL\x20'+_0x15b299+_0x36c1f0(0xdf)+_0x5a5eb0[_0x36c1f0(0xe8)]};},async 'execute'(_0x4d0238){const _0x4b7850=a119_0x4f8d48,_0x3e1532=loadSqlProjectConfig(_0x4d0238[_0x4b7850(0xe2)]),_0xeb96d4=await readSqlLockFile(_0x3e1532[_0x4b7850(0xf8)]);if(!_0xeb96d4)throw CliErrors[_0x4b7850(0xeb)](_0x4b7850(0xf5));const {lockData:_0x516ba1,appLock:_0x45d57f}=ensureSqlLockScope(_0xeb96d4,_0x4d0238[_0x4b7850(0xe2)],_0x3e1532['sqlRoot'],_0x4b7850(0xe4)),_0x4c1fce=_0x4d0238['str'](_0x4b7850(0xee)),_0x134f9b=_0x45d57f[_0x4b7850(0xf6)][_0x4c1fce];if(!_0x134f9b)throw CliErrors['validation']('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x4c1fce+'\x22.');await deleteSqlQuery({'id':_0x134f9b[_0x4b7850(0xea)],'sqlCode':_0x4c1fce}),_0x45d57f[_0x4b7850(0xf6)]=Object[_0x4b7850(0xdc)](Object['entries'](_0x45d57f[_0x4b7850(0xf6)])[_0x4b7850(0xf2)](([_0x5a4501])=>_0x5a4501!==_0x4c1fce)),_0x45d57f[_0x4b7850(0xe6)]=new Date()[_0x4b7850(0xf3)](),await writeSqlLockFile(_0x3e1532[_0x4b7850(0xf8)],_0x516ba1);const _0x5e8616=resolveLocalSqlFilePath(_0x3e1532,_0x4c1fce,_0x134f9b);let _0x11b08d;await fileExists(_0x5e8616)&&(_0x11b08d=await moveToTrash(_0x3e1532[_0x4b7850(0xe1)],_0x3e1532[_0x4b7850(0xe8)],_0x5e8616),await cleanupEmptyDirectories(dirname(_0x5e8616),_0x3e1532[_0x4b7850(0xfd)]));const _0x3b52f8={'deleted':_0x4c1fce,'remoteId':_0x134f9b[_0x4b7850(0xea)]};if(_0x11b08d)_0x3b52f8[_0x4b7850(0xed)]=_0x11b08d;return{'ok':!![],'data':_0x3b52f8,'message':'Deleted\x20'+_0x4c1fce+(_0x11b08d?_0x4b7850(0xf7):'')};}};async function moveToTrash(_0x3248db,_0x2b25a7,_0x4bc8d8){const _0xb983bf=a119_0x4f8d48,_0xc2ee7a=new Date()[_0xb983bf(0xf3)]()['replace'](/[:.]/g,'-'),_0x520f61=relative(_0x3248db,_0x4bc8d8),_0x2b1ba5=join(_0x2b25a7,_0xc2ee7a,_0x520f61);return await mkdir(dirname(_0x2b1ba5),{'recursive':!![]}),await rename(_0x4bc8d8,_0x2b1ba5),_0x2b1ba5;}function a119_0x5b1d(){const _0x4c1357=['447259fDgnTl','str','42oiKrGo','sql','sqlRootDir','720816WyYxVh','fromEntries','sqlRoot','/smartapi/custom/deleteUserCustomSql','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','POST','projectRoot','appCode','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','delete','8010CFlmeh','lastSync','22280zSWuyQ','trashDir','1127910oZaaJq','remoteId','validation','18465CPChTm','trashedTo','sqlcode','3185358Qlrqcs','length','428DwVaVA','filter','toISOString','863598xvKdMK','SQL\x20lock\x20file\x20not\x20found.','sqls','\x20(local\x20file\x20moved\x20to\x20trash)','lockFilePath'];a119_0x5b1d=function(){return _0x4c1357;};return a119_0x5b1d();}async function cleanupEmptyDirectories(_0x507bd5,_0x2519e8){const _0x1db26f=a119_0x4f8d48;let _0x4f01cc=resolve(_0x507bd5);const _0x3069f0=resolve(_0x2519e8);while(_0x4f01cc['startsWith'](''+_0x3069f0+sep)||_0x4f01cc===_0x3069f0){if(_0x4f01cc===_0x3069f0)return;try{const _0x36da11=await readdir(_0x4f01cc);if(_0x36da11[_0x1db26f(0xf0)]>0x0)return;await rmdir(_0x4f01cc);}catch{return;}_0x4f01cc=dirname(_0x4f01cc);}}
1
+ const a120_0x19a0e7=a120_0x2284;(function(_0x51b950,_0x3058bf){const _0x31b7c7=a120_0x2284,_0xfe368d=_0x51b950();while(!![]){try{const _0x5739b2=-parseInt(_0x31b7c7(0x184))/0x1*(parseInt(_0x31b7c7(0x185))/0x2)+parseInt(_0x31b7c7(0x197))/0x3+parseInt(_0x31b7c7(0x19b))/0x4+-parseInt(_0x31b7c7(0x186))/0x5+-parseInt(_0x31b7c7(0x180))/0x6*(-parseInt(_0x31b7c7(0x196))/0x7)+-parseInt(_0x31b7c7(0x198))/0x8+parseInt(_0x31b7c7(0x18c))/0x9*(parseInt(_0x31b7c7(0x1a2))/0xa);if(_0x5739b2===_0x3058bf)break;else _0xfe368d['push'](_0xfe368d['shift']());}catch(_0x71bbb6){_0xfe368d['push'](_0xfe368d['shift']());}}}(a120_0x2207,0x40572));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';function a120_0x2284(_0x30e2e6,_0x131fee){_0x30e2e6=_0x30e2e6-0x180;const _0x22075e=a120_0x2207();let _0x22840b=_0x22075e[_0x30e2e6];return _0x22840b;}import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a120_0x19a0e7(0x191),'command':'delete','description':a120_0x19a0e7(0x199),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x313541){const _0x3bed46=a120_0x19a0e7,_0x211678=loadSqlProjectConfig(_0x313541['appCode']),_0x230360=await readSqlLockFile(_0x211678[_0x3bed46(0x18d)]);if(!_0x230360)throw CliErrors[_0x3bed46(0x190)](_0x3bed46(0x182));},async 'dryRun'(_0x177d5e){const _0x420efc=a120_0x19a0e7,_0x41e01c=loadSqlProjectConfig(_0x177d5e['appCode']),_0x23249c=await readSqlLockFile(_0x41e01c[_0x420efc(0x18d)]);if(!_0x23249c)throw CliErrors[_0x420efc(0x190)](_0x420efc(0x182));const {appLock:_0x1bf5d1}=ensureSqlLockScope(_0x23249c,_0x177d5e[_0x420efc(0x19e)],_0x41e01c['sqlRoot'],_0x420efc(0x193)),_0xfdcee2=_0x177d5e[_0x420efc(0x19d)](_0x420efc(0x19a)),_0x7ebdc5=_0x1bf5d1[_0x420efc(0x1a0)][_0xfdcee2];if(!_0x7ebdc5)throw CliErrors[_0x420efc(0x190)](_0x420efc(0x189)+_0xfdcee2+'\x22.');return{'method':_0x420efc(0x183),'url':_0x420efc(0x19c),'body':{'sqlCode':_0xfdcee2,'id':_0x7ebdc5[_0x420efc(0x195)],'localPath':resolveLocalSqlFilePath(_0x41e01c,_0xfdcee2,_0x7ebdc5)},'description':_0x420efc(0x18a)+_0xfdcee2+_0x420efc(0x18b)+_0x41e01c['trashDir']};},async 'execute'(_0x3601dd){const _0x41da51=a120_0x19a0e7,_0x20d1b7=loadSqlProjectConfig(_0x3601dd[_0x41da51(0x19e)]),_0x6f92c1=await readSqlLockFile(_0x20d1b7['lockFilePath']);if(!_0x6f92c1)throw CliErrors['validation']('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x1bd114,appLock:_0x4bfd61}=ensureSqlLockScope(_0x6f92c1,_0x3601dd[_0x41da51(0x19e)],_0x20d1b7[_0x41da51(0x18e)],'delete'),_0x442400=_0x3601dd['str'](_0x41da51(0x19a)),_0x32332c=_0x4bfd61['sqls'][_0x442400];if(!_0x32332c)throw CliErrors[_0x41da51(0x190)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x442400+'\x22.');await deleteSqlQuery({'id':_0x32332c[_0x41da51(0x195)],'sqlCode':_0x442400}),_0x4bfd61[_0x41da51(0x1a0)]=Object[_0x41da51(0x181)](Object[_0x41da51(0x19f)](_0x4bfd61['sqls'])['filter'](([_0x405bf3])=>_0x405bf3!==_0x442400)),_0x4bfd61['lastSync']=new Date()[_0x41da51(0x194)](),await writeSqlLockFile(_0x20d1b7[_0x41da51(0x18d)],_0x1bd114);const _0x2ae04e=resolveLocalSqlFilePath(_0x20d1b7,_0x442400,_0x32332c);let _0x3c0d8d;await fileExists(_0x2ae04e)&&(_0x3c0d8d=await moveToTrash(_0x20d1b7[_0x41da51(0x192)],_0x20d1b7['trashDir'],_0x2ae04e),await cleanupEmptyDirectories(dirname(_0x2ae04e),_0x20d1b7[_0x41da51(0x1a1)]));const _0x2ab655={'deleted':_0x442400,'remoteId':_0x32332c['remoteId']};if(_0x3c0d8d)_0x2ab655[_0x41da51(0x187)]=_0x3c0d8d;return{'ok':!![],'data':_0x2ab655,'message':_0x41da51(0x1a3)+_0x442400+(_0x3c0d8d?_0x41da51(0x188):'')};}};function a120_0x2207(){const _0x35002c=['1745928PCkTkF','/smartapi/custom/deleteUserCustomSql','str','appCode','entries','sqls','sqlRootDir','450680cTiBHt','Deleted\x20','284574wTWbts','fromEntries','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','POST','5ZogJti','188332rUXSpC','1967065tMAESr','trashedTo','\x20(local\x20file\x20moved\x20to\x20trash)','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','Would\x20delete\x20SQL\x20','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','18FyHYEw','lockFilePath','sqlRoot','startsWith','validation','sql','projectRoot','delete','toISOString','remoteId','42ppzLlC','1083630YrRUJs','356968NjHyiG','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','sqlcode'];a120_0x2207=function(){return _0x35002c;};return a120_0x2207();}async function moveToTrash(_0x1af88c,_0x2ffcea,_0x422fe6){const _0x13082a=a120_0x19a0e7,_0xee80f2=new Date()[_0x13082a(0x194)]()['replace'](/[:.]/g,'-'),_0x2bd805=relative(_0x1af88c,_0x422fe6),_0x529bb0=join(_0x2ffcea,_0xee80f2,_0x2bd805);return await mkdir(dirname(_0x529bb0),{'recursive':!![]}),await rename(_0x422fe6,_0x529bb0),_0x529bb0;}async function cleanupEmptyDirectories(_0x589507,_0x579630){const _0x5c4d03=a120_0x19a0e7;let _0x3ca10c=resolve(_0x589507);const _0x31b796=resolve(_0x579630);while(_0x3ca10c[_0x5c4d03(0x18f)](''+_0x31b796+sep)||_0x3ca10c===_0x31b796){if(_0x3ca10c===_0x31b796)return;try{const _0x3c9956=await readdir(_0x3ca10c);if(_0x3c9956['length']>0x0)return;await rmdir(_0x3ca10c);}catch{return;}_0x3ca10c=dirname(_0x3ca10c);}}
@@ -1 +1 @@
1
- const a120_0x29aaeb=a120_0xb1c9;(function(_0x59adc6,_0x3f9c92){const _0x527496=a120_0xb1c9,_0xb5600=_0x59adc6();while(!![]){try{const _0x3ec36b=parseInt(_0x527496(0x1c5))/0x1+parseInt(_0x527496(0x1d3))/0x2+parseInt(_0x527496(0x1cc))/0x3+parseInt(_0x527496(0x1c8))/0x4*(-parseInt(_0x527496(0x1cb))/0x5)+-parseInt(_0x527496(0x1c6))/0x6*(-parseInt(_0x527496(0x1c7))/0x7)+parseInt(_0x527496(0x1d5))/0x8+parseInt(_0x527496(0x1d2))/0x9*(-parseInt(_0x527496(0x1d0))/0xa);if(_0x3ec36b===_0x3f9c92)break;else _0xb5600['push'](_0xb5600['shift']());}catch(_0x401a3f){_0xb5600['push'](_0xb5600['shift']());}}}(a120_0x46fe,0xa8f10));function a120_0x46fe(){const _0xe5dd6a=['588056bTICbt','dbId','verbose','Return\x20full\x20raw\x20SQL\x20query\x20object','sqlContent','1213634byaExz','19854QvTcaU','973DjKFda','6524wwFFTi','appCode','detail','70BXxtwj','1630974dQKdnn','description','read','sqlcode','51060fKOnLk','str','4491TuEZOW','1943924DNwzka','sql'];a120_0x46fe=function(){return _0xe5dd6a;};return a120_0x46fe();}function a120_0xb1c9(_0x3d8fea,_0x2f663d){_0x3d8fea=_0x3d8fea-0x1c2;const _0x46fed2=a120_0x46fe();let _0xb1c907=_0x46fed2[_0x3d8fea];return _0xb1c907;}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':a120_0x29aaeb(0x1d4),'command':a120_0x29aaeb(0x1ca),'description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':a120_0x29aaeb(0x1ce),'flags':[SQLCODE_FLAG,{'name':a120_0x29aaeb(0x1c2),'type':'boolean','description':a120_0x29aaeb(0x1c3)}],async 'execute'(_0xbc4515){const _0x490f47=a120_0x29aaeb,_0x34e74b=await getSqlQueryInfo(_0xbc4515[_0x490f47(0x1c9)],_0xbc4515[_0x490f47(0x1d1)](_0x490f47(0x1cf))),_0x14b79b=_0xbc4515['bool']('verbose');if(_0x14b79b)return{'ok':!![],'data':_0x34e74b};const _0x51b958=_0x34e74b['dbId']?await getDbName(_0xbc4515[_0x490f47(0x1c9)],_0x34e74b[_0x490f47(0x1d6)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x34e74b['sqlCode'],'sqlName':_0x34e74b['sqlName'],'db':_0x51b958?_0x51b958+'\x20('+_0x34e74b[_0x490f47(0x1d6)]+')':_0x34e74b['dbId']??'','description':_0x34e74b[_0x490f47(0x1cd)]??'','sqlContent':_0x34e74b[_0x490f47(0x1c4)]??''}};}};
1
+ function a121_0x18a4(){const _0x313e10=['37539UgbLdC','sqlName','detail','36UPMUjy','read','3364900vBPCUS','appCode','sqlCode','664onRHpd','4675eBnumy','1252gGCogd','verbose','3AmImLW','11026730PajVVE','85988NVYUqV','sqlcode','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','724622wFTMqT','dbId','246835eAzczg','Return\x20full\x20raw\x20SQL\x20query\x20object','str'];a121_0x18a4=function(){return _0x313e10;};return a121_0x18a4();}function a121_0x2a96(_0x4f90cd,_0x48c267){_0x4f90cd=_0x4f90cd-0xd7;const _0x18a49a=a121_0x18a4();let _0x2a96c8=_0x18a49a[_0x4f90cd];return _0x2a96c8;}const a121_0x40ef3b=a121_0x2a96;(function(_0x47360e,_0x2a27cd){const _0x2fac39=a121_0x2a96,_0x310463=_0x47360e();while(!![]){try{const _0x4a6135=-parseInt(_0x2fac39(0xe8))/0x1+-parseInt(_0x2fac39(0xe6))/0x2*(parseInt(_0x2fac39(0xe1))/0x3)+parseInt(_0x2fac39(0xdf))/0x4*(-parseInt(_0x2fac39(0xde))/0x5)+parseInt(_0x2fac39(0xd8))/0x6*(parseInt(_0x2fac39(0xe3))/0x7)+-parseInt(_0x2fac39(0xdd))/0x8*(-parseInt(_0x2fac39(0xeb))/0x9)+-parseInt(_0x2fac39(0xda))/0xa+parseInt(_0x2fac39(0xe2))/0xb;if(_0x4a6135===_0x2a27cd)break;else _0x310463['push'](_0x310463['shift']());}catch(_0x3d814d){_0x310463['push'](_0x310463['shift']());}}}(a121_0x18a4,0x2cee4));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':a121_0x40ef3b(0xd7),'description':a121_0x40ef3b(0xe5),'risk':a121_0x40ef3b(0xd9),'flags':[SQLCODE_FLAG,{'name':a121_0x40ef3b(0xe0),'type':'boolean','description':a121_0x40ef3b(0xe9)}],async 'execute'(_0x58807a){const _0x29f8f7=a121_0x40ef3b,_0x2c8381=await getSqlQueryInfo(_0x58807a[_0x29f8f7(0xdb)],_0x58807a[_0x29f8f7(0xea)](_0x29f8f7(0xe4))),_0x95306a=_0x58807a['bool'](_0x29f8f7(0xe0));if(_0x95306a)return{'ok':!![],'data':_0x2c8381};const _0x120ebf=_0x2c8381[_0x29f8f7(0xe7)]?await getDbName(_0x58807a['appCode'],_0x2c8381[_0x29f8f7(0xe7)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x2c8381[_0x29f8f7(0xdc)],'sqlName':_0x2c8381[_0x29f8f7(0xec)],'db':_0x120ebf?_0x120ebf+'\x20('+_0x2c8381[_0x29f8f7(0xe7)]+')':_0x2c8381[_0x29f8f7(0xe7)]??'','description':_0x2c8381['description']??'','sqlContent':_0x2c8381['sqlContent']??''}};}};
@@ -1 +1 @@
1
- const a121_0x14e9a4=a121_0x49dd;function a121_0x49dd(_0x446fba,_0x15cad4){_0x446fba=_0x446fba-0x10a;const _0x287449=a121_0x2874();let _0x49dd3f=_0x287449[_0x446fba];return _0x49dd3f;}(function(_0x331862,_0x1b23a0){const _0x31f513=a121_0x49dd,_0x421b12=_0x331862();while(!![]){try{const _0x53b322=-parseInt(_0x31f513(0x111))/0x1*(parseInt(_0x31f513(0x10b))/0x2)+-parseInt(_0x31f513(0x11b))/0x3+-parseInt(_0x31f513(0x121))/0x4+parseInt(_0x31f513(0x11c))/0x5*(-parseInt(_0x31f513(0x10a))/0x6)+parseInt(_0x31f513(0x112))/0x7*(-parseInt(_0x31f513(0x110))/0x8)+-parseInt(_0x31f513(0x120))/0x9*(-parseInt(_0x31f513(0x10f))/0xa)+-parseInt(_0x31f513(0x117))/0xb*(-parseInt(_0x31f513(0x11f))/0xc);if(_0x53b322===_0x1b23a0)break;else _0x421b12['push'](_0x421b12['shift']());}catch(_0x44b474){_0x421b12['push'](_0x421b12['shift']());}}}(a121_0x2874,0x43e01));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a121_0x2874(){const _0x485fbf=['174687Rlxoad','854zDMjHa','read','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','SQL\x20execution\x20failed','now','22456984JCQfgC','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','sqlcode','length','1354155EUBdFC','80705TpKmTJ','execSuccess','appCode','12WGwibq','18wWrkdZ','1385068sUlhRV','132uUvDiS','6HUpkrR','\x20row(s)\x20in\x20','execResult','str','1327510ceDCAI','23096sXersr'];a121_0x2874=function(){return _0x485fbf;};return a121_0x2874();}export const sqlExec={'service':'sql','command':'exec','description':a121_0x14e9a4(0x114),'risk':a121_0x14e9a4(0x113),'flags':[SQLCODE_FLAG,{'name':'params','type':'string','description':a121_0x14e9a4(0x118)}],async 'execute'(_0x5efd76){const _0x155c2f=a121_0x14e9a4,_0x52bf13=parseJsonParams(_0x5efd76[_0x155c2f(0x10e)]('params')),_0x5a1590=Date[_0x155c2f(0x116)](),_0x47f5b6=await executeSql(_0x5efd76[_0x155c2f(0x11e)],_0x5efd76[_0x155c2f(0x10e)](_0x155c2f(0x119)),_0x52bf13),_0x35184d=Date[_0x155c2f(0x116)]()-_0x5a1590,_0x24b633=_0x47f5b6?.[_0x155c2f(0x10d)]??_0x47f5b6,_0xaa0de5=_0x47f5b6?.[_0x155c2f(0x11d)]??!![];if(!_0xaa0de5)return{'ok':![],'data':{'error':_0x47f5b6?.['execError']||_0x155c2f(0x115),'elapsed':_0x35184d},'message':_0x155c2f(0x115)};const _0x3d84c0=Array['isArray'](_0x24b633)?_0x24b633:[];return{'ok':!![],'data':{'rows':_0x3d84c0,'rowCount':_0x3d84c0[_0x155c2f(0x11a)],'elapsed':_0x35184d},'message':'Returned\x20'+_0x3d84c0[_0x155c2f(0x11a)]+_0x155c2f(0x10c)+_0x35184d+'ms'};}};
1
+ const a122_0x4a5c57=a122_0x937e;function a122_0x5a5d(){const _0x626946=['284410ieqrIf','267211TVRYBH','24qWzCBh','\x20row(s)\x20in\x20','execResult','read','execSuccess','string','length','appCode','isArray','SQL\x20execution\x20failed','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','362295Qbswvh','798184DmkKIk','str','sqlcode','84117MRvgNu','exec','36coksmT','Returned\x20','156430FZmLwn','params','22uvkcgr','now','4677exKRmr','352JHqhZM'];a122_0x5a5d=function(){return _0x626946;};return a122_0x5a5d();}(function(_0x5e5c9b,_0x1337a5){const _0x5162f8=a122_0x937e,_0x3a4ee9=_0x5e5c9b();while(!![]){try{const _0x2b5208=parseInt(_0x5162f8(0xd5))/0x1+parseInt(_0x5162f8(0xd3))/0x2*(-parseInt(_0x5162f8(0xcd))/0x3)+-parseInt(_0x5162f8(0xca))/0x4+parseInt(_0x5162f8(0xd7))/0x5+-parseInt(_0x5162f8(0xcf))/0x6*(-parseInt(_0x5162f8(0xd8))/0x7)+parseInt(_0x5162f8(0xd9))/0x8*(-parseInt(_0x5162f8(0xc9))/0x9)+-parseInt(_0x5162f8(0xd1))/0xa*(-parseInt(_0x5162f8(0xd6))/0xb);if(_0x2b5208===_0x1337a5)break;else _0x3a4ee9['push'](_0x3a4ee9['shift']());}catch(_0x5208c2){_0x3a4ee9['push'](_0x3a4ee9['shift']());}}}(a122_0x5a5d,0x27a81));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a122_0x937e(_0x55a5ba,_0x74e4f6){_0x55a5ba=_0x55a5ba-0xc7;const _0x5a5d44=a122_0x5a5d();let _0x937e1a=_0x5a5d44[_0x55a5ba];return _0x937e1a;}export const sqlExec={'service':'sql','command':a122_0x4a5c57(0xce),'description':a122_0x4a5c57(0xc7),'risk':a122_0x4a5c57(0xdc),'flags':[SQLCODE_FLAG,{'name':'params','type':a122_0x4a5c57(0xde),'description':a122_0x4a5c57(0xc8)}],async 'execute'(_0x333130){const _0x3a0ea6=a122_0x4a5c57,_0x356e6b=parseJsonParams(_0x333130[_0x3a0ea6(0xcb)](_0x3a0ea6(0xd2))),_0x51543c=Date[_0x3a0ea6(0xd4)](),_0x494f04=await executeSql(_0x333130[_0x3a0ea6(0xe0)],_0x333130[_0x3a0ea6(0xcb)](_0x3a0ea6(0xcc)),_0x356e6b),_0x29fdc9=Date['now']()-_0x51543c,_0x268716=_0x494f04?.[_0x3a0ea6(0xdb)]??_0x494f04,_0x303dca=_0x494f04?.[_0x3a0ea6(0xdd)]??!![];if(!_0x303dca)return{'ok':![],'data':{'error':_0x494f04?.['execError']||'SQL\x20execution\x20failed','elapsed':_0x29fdc9},'message':_0x3a0ea6(0xe2)};const _0x547dff=Array[_0x3a0ea6(0xe1)](_0x268716)?_0x268716:[];return{'ok':!![],'data':{'rows':_0x547dff,'rowCount':_0x547dff[_0x3a0ea6(0xdf)],'elapsed':_0x29fdc9},'message':_0x3a0ea6(0xd0)+_0x547dff['length']+_0x3a0ea6(0xda)+_0x29fdc9+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x1dca12,_0x3fbfa6){const _0x55d18e=a122_0x41a3,_0x318577=_0x1dca12();while(!![]){try{const _0x1fc5aa=parseInt(_0x55d18e(0x1fd))/0x1*(-parseInt(_0x55d18e(0x1f5))/0x2)+-parseInt(_0x55d18e(0x1f2))/0x3*(parseInt(_0x55d18e(0x1f6))/0x4)+-parseInt(_0x55d18e(0x1fc))/0x5*(parseInt(_0x55d18e(0x1fe))/0x6)+-parseInt(_0x55d18e(0x1f3))/0x7*(parseInt(_0x55d18e(0x1f8))/0x8)+parseInt(_0x55d18e(0x1f4))/0x9*(-parseInt(_0x55d18e(0x1fb))/0xa)+parseInt(_0x55d18e(0x1f7))/0xb*(-parseInt(_0x55d18e(0x1fa))/0xc)+parseInt(_0x55d18e(0x1f9))/0xd;if(_0x1fc5aa===_0x3fbfa6)break;else _0x318577['push'](_0x318577['shift']());}catch(_0x5ae1e7){_0x318577['push'](_0x318577['shift']());}}}(a122_0x2666,0x9e00f));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 a122_0x2666(){const _0x35f99a=['19306tcxZHl','706797edQHSC','2365442qIAmpu','663932iYQfSn','9911dxbCPk','1576xpDoIb','70730530oANRxa','15276aiExuK','130aUDdSs','615wCGhzW','1rRAViB','35790nKRMIc','3mcbFVS'];a122_0x2666=function(){return _0x35f99a;};return a122_0x2666();}import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';function a122_0x41a3(_0x14d6ff,_0x3a5d49){_0x14d6ff=_0x14d6ff-0x1f2;const _0x266629=a122_0x2666();let _0x41a327=_0x266629[_0x14d6ff];return _0x41a327;}export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0x2985eb,_0x5e84e7){const _0x251023=a123_0x2a1e,_0x2263a9=_0x2985eb();while(!![]){try{const _0x5a3638=-parseInt(_0x251023(0x1b0))/0x1+parseInt(_0x251023(0x1b3))/0x2+parseInt(_0x251023(0x1af))/0x3+parseInt(_0x251023(0x1ae))/0x4*(parseInt(_0x251023(0x1b5))/0x5)+-parseInt(_0x251023(0x1b4))/0x6*(-parseInt(_0x251023(0x1b8))/0x7)+parseInt(_0x251023(0x1b2))/0x8*(parseInt(_0x251023(0x1b7))/0x9)+parseInt(_0x251023(0x1b6))/0xa*(-parseInt(_0x251023(0x1b1))/0xb);if(_0x5a3638===_0x5e84e7)break;else _0x2263a9['push'](_0x2263a9['shift']());}catch(_0x2a5958){_0x2263a9['push'](_0x2263a9['shift']());}}}(a123_0x2556,0x957b7));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';function a123_0x2a1e(_0x52955b,_0x1f930f){_0x52955b=_0x52955b-0x1ae;const _0x255622=a123_0x2556();let _0x2a1e43=_0x255622[_0x52955b];return _0x2a1e43;}import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';function a123_0x2556(){const _0x316c8d=['1027545ttijTB','20vxvSzI','2169JUtsad','448kOveuP','12ThpmFV','2793543uisGic','493037XjDTvi','8833913PSanTb','10664SMZaVd','921650aNLTGN','35784lhaNFO'];a123_0x2556=function(){return _0x316c8d;};return a123_0x2556();}export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- const a123_0x5c81b2=a123_0x44ac;(function(_0x1e184c,_0x1ea77f){const _0x5b0c99=a123_0x44ac,_0x2eda70=_0x1e184c();while(!![]){try{const _0x5cf301=-parseInt(_0x5b0c99(0x72))/0x1*(-parseInt(_0x5b0c99(0x7e))/0x2)+parseInt(_0x5b0c99(0x8e))/0x3+parseInt(_0x5b0c99(0x75))/0x4*(parseInt(_0x5b0c99(0x81))/0x5)+-parseInt(_0x5b0c99(0x82))/0x6*(parseInt(_0x5b0c99(0x78))/0x7)+parseInt(_0x5b0c99(0x96))/0x8*(parseInt(_0x5b0c99(0x76))/0x9)+-parseInt(_0x5b0c99(0x8f))/0xa*(-parseInt(_0x5b0c99(0x7d))/0xb)+parseInt(_0x5b0c99(0x86))/0xc*(-parseInt(_0x5b0c99(0x73))/0xd);if(_0x5cf301===_0x1ea77f)break;else _0x2eda70['push'](_0x2eda70['shift']());}catch(_0x2896b8){_0x2eda70['push'](_0x2eda70['shift']());}}}(a123_0x24dd,0x79aea));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a123_0x44ac(_0x55bbf0,_0x472005){_0x55bbf0=_0x55bbf0-0x70;const _0x24dd06=a123_0x24dd();let _0x44acf1=_0x24dd06[_0x55bbf0];return _0x44acf1;}export const sqlList={'service':a123_0x5c81b2(0x88),'command':a123_0x5c81b2(0x95),'description':a123_0x5c81b2(0x92),'risk':a123_0x5c81b2(0x8d),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a123_0x5c81b2(0x87),'type':a123_0x5c81b2(0x8b),'description':'Filter\x20by\x20SQL\x20name'},{'name':a123_0x5c81b2(0x93),'type':'number','description':a123_0x5c81b2(0x74),'default':0x1},{'name':a123_0x5c81b2(0x70),'type':a123_0x5c81b2(0x79),'description':a123_0x5c81b2(0x7a)},{'name':a123_0x5c81b2(0x90),'type':a123_0x5c81b2(0x97),'description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x4a01c2){const _0x3c30e6=a123_0x5c81b2,_0x1470f1=await listSqlQueries(_0x4a01c2['appCode'],{'sqlCode':_0x4a01c2[_0x3c30e6(0x91)](_0x3c30e6(0x71))||undefined,'sqlName':_0x4a01c2[_0x3c30e6(0x91)]('name')||undefined,'currentPage':_0x4a01c2['num'](_0x3c30e6(0x93)),'pageSize':_0x4a01c2[_0x3c30e6(0x7f)](_0x3c30e6(0x70),0x32)}),_0x3d8ae5=_0x4a01c2[_0x3c30e6(0x84)](_0x3c30e6(0x90)),_0x5459ae=_0x1470f1[_0x3c30e6(0x7b)]??[],_0x1865dd=_0x1470f1[_0x3c30e6(0x85)]?.[_0x3c30e6(0x8c)]??_0x5459ae[_0x3c30e6(0x80)];let _0x2d57a6;return _0x3d8ae5?_0x2d57a6=_0x5459ae:_0x2d57a6=await Promise['all'](_0x5459ae[_0x3c30e6(0x94)](async _0x657f70=>{const _0x20b6f5=_0x3c30e6;let _0x41cd4d;try{_0x41cd4d=_0x657f70['dbId']?await getDbName(_0x4a01c2[_0x20b6f5(0x77)],_0x657f70[_0x20b6f5(0x89)]):undefined;}catch{}return{'sqlCode':_0x657f70['sqlCode'],'sqlName':_0x657f70['sqlName'],'description':_0x657f70[_0x20b6f5(0x7c)]??'','db':_0x41cd4d?_0x41cd4d+'\x20('+_0x657f70['dbId']+')':_0x657f70['dbId']??''};})),{'ok':!![],'data':_0x2d57a6,'message':_0x5459ae[_0x3c30e6(0x80)]===0x0?_0x3c30e6(0x83):_0x3c30e6(0x8a)+_0x5459ae['length']+'\x20SQL\x20queries\x20(total:\x20'+_0x1865dd+').'};}};function a123_0x24dd(){const _0x42e778=['Found\x20','string','totalCount','read','1464240oArwFQ','10fCwdve','verbose','str','List\x20custom\x20SQL\x20queries','page','map','list','470848drOKwg','boolean','pagesize','sqlcode','353781SeqtFl','13ffqlCH','Page\x20number','18132mUenfp','18dfYGmN','appCode','84zQYuLG','number','Page\x20size','tableData','description','6100204SirxxJ','2tOtNIE','num','length','695wArBFz','335982EcvapN','No\x20custom\x20SQL\x20queries\x20found.','bool','paging','11686200mDRJKE','name','sql','dbId'];a123_0x24dd=function(){return _0x42e778;};return a123_0x24dd();}
1
+ const a124_0x3848e1=a124_0x5a64;(function(_0x359524,_0x21656b){const _0x18f0e0=a124_0x5a64,_0x1047b1=_0x359524();while(!![]){try{const _0x19dade=parseInt(_0x18f0e0(0x99))/0x1*(-parseInt(_0x18f0e0(0xb7))/0x2)+-parseInt(_0x18f0e0(0xa8))/0x3+-parseInt(_0x18f0e0(0xab))/0x4*(parseInt(_0x18f0e0(0xaa))/0x5)+parseInt(_0x18f0e0(0xaf))/0x6+-parseInt(_0x18f0e0(0xb6))/0x7*(parseInt(_0x18f0e0(0xb8))/0x8)+parseInt(_0x18f0e0(0xb3))/0x9+parseInt(_0x18f0e0(0x9a))/0xa;if(_0x19dade===_0x21656b)break;else _0x1047b1['push'](_0x1047b1['shift']());}catch(_0x4fc545){_0x1047b1['push'](_0x1047b1['shift']());}}}(a124_0x1fb7,0xbf63a));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a124_0x5a64(_0x61bb2e,_0x55b7a9){_0x61bb2e=_0x61bb2e-0x98;const _0x1fb795=a124_0x1fb7();let _0x5a648a=_0x1fb795[_0x61bb2e];return _0x5a648a;}function a124_0x1fb7(){const _0x36c4ce=['sqlName','pagesize','sqlCode','paging','bool','3682218wEhoRq','str','85hFRYoL','53524vkohfh','length','name','page','4112526JQwuqf','verbose','Filter\x20by\x20SQL\x20name','boolean','3635784KDzMTY','num','Page\x20number','7rbPphp','14hvvYIF','6677304lOqqjE','Found\x20','number','145335ssxxCG','30014240kLbXXK','map','dbId','\x20SQL\x20queries\x20(total:\x20','No\x20custom\x20SQL\x20queries\x20found.','appCode','sqlcode','Page\x20size','list'];a124_0x1fb7=function(){return _0x36c4ce;};return a124_0x1fb7();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a124_0x3848e1(0xa2),'description':'List\x20custom\x20SQL\x20queries','risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':a124_0x3848e1(0xb1)},{'name':a124_0x3848e1(0xae),'type':a124_0x3848e1(0x98),'description':a124_0x3848e1(0xb5),'default':0x1},{'name':a124_0x3848e1(0xa4),'type':a124_0x3848e1(0x98),'description':a124_0x3848e1(0xa1)},{'name':'verbose','type':a124_0x3848e1(0xb2),'description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x1b98be){const _0x349ccb=a124_0x3848e1,_0x2cd730=await listSqlQueries(_0x1b98be[_0x349ccb(0x9f)],{'sqlCode':_0x1b98be['str'](_0x349ccb(0xa0))||undefined,'sqlName':_0x1b98be[_0x349ccb(0xa9)](_0x349ccb(0xad))||undefined,'currentPage':_0x1b98be[_0x349ccb(0xb4)](_0x349ccb(0xae)),'pageSize':_0x1b98be[_0x349ccb(0xb4)](_0x349ccb(0xa4),0x32)}),_0x3f3fb4=_0x1b98be[_0x349ccb(0xa7)](_0x349ccb(0xb0)),_0x51f23a=_0x2cd730['tableData']??[],_0x2b0322=_0x2cd730[_0x349ccb(0xa6)]?.['totalCount']??_0x51f23a['length'];let _0x16a92a;return _0x3f3fb4?_0x16a92a=_0x51f23a:_0x16a92a=await Promise['all'](_0x51f23a[_0x349ccb(0x9b)](async _0x29babd=>{const _0x48aef1=_0x349ccb;let _0x3fd921;try{_0x3fd921=_0x29babd[_0x48aef1(0x9c)]?await getDbName(_0x1b98be[_0x48aef1(0x9f)],_0x29babd[_0x48aef1(0x9c)]):undefined;}catch{}return{'sqlCode':_0x29babd[_0x48aef1(0xa5)],'sqlName':_0x29babd[_0x48aef1(0xa3)],'description':_0x29babd['description']??'','db':_0x3fd921?_0x3fd921+'\x20('+_0x29babd[_0x48aef1(0x9c)]+')':_0x29babd[_0x48aef1(0x9c)]??''};})),{'ok':!![],'data':_0x16a92a,'message':_0x51f23a[_0x349ccb(0xac)]===0x0?_0x349ccb(0x9e):_0x349ccb(0xb9)+_0x51f23a[_0x349ccb(0xac)]+_0x349ccb(0x9d)+_0x2b0322+').'};}};
@@ -1 +1 @@
1
- const a124_0x5b7f9a=a124_0x498d;(function(_0x4b831b,_0x19009a){const _0x3660e2=a124_0x498d,_0x1510fd=_0x4b831b();while(!![]){try{const _0x27d016=parseInt(_0x3660e2(0xa8))/0x1+parseInt(_0x3660e2(0xb0))/0x2+parseInt(_0x3660e2(0xac))/0x3+parseInt(_0x3660e2(0x98))/0x4+-parseInt(_0x3660e2(0x8a))/0x5+-parseInt(_0x3660e2(0xaa))/0x6+-parseInt(_0x3660e2(0x91))/0x7*(parseInt(_0x3660e2(0xbc))/0x8);if(_0x27d016===_0x19009a)break;else _0x1510fd['push'](_0x1510fd['shift']());}catch(_0x166cad){_0x1510fd['push'](_0x1510fd['shift']());}}}(a124_0x4a19,0x62b86));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 a124_0x498d(_0x369ac6,_0x32a9c0){_0x369ac6=_0x369ac6-0x8a;const _0x4a1945=a124_0x4a19();let _0x498d14=_0x4a1945[_0x369ac6];return _0x498d14;}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(_0x5a7129,_0x5ad7af){const _0x1413c2=a124_0x498d,_0x37acbe=[];let _0x35ccdf=0x1;while(!![]){const _0x5d847a=await listSqlQueries(_0x5a7129,{'currentPage':_0x35ccdf,'pageSize':PAGE_SIZE,'sqlCode':_0x5ad7af[_0x1413c2(0xb9)],'sqlName':_0x5ad7af[_0x1413c2(0x8e)]}),_0x3ef20f=_0x5d847a[_0x1413c2(0xa9)]??[];_0x37acbe[_0x1413c2(0xc0)](..._0x3ef20f);if(_0x3ef20f[_0x1413c2(0xbe)]===0x0)break;const _0x424bb5=_0x5d847a[_0x1413c2(0x9e)]?.['totalCount'];if(_0x424bb5!=null?_0x37acbe['length']>=_0x424bb5:_0x3ef20f['length']<PAGE_SIZE)break;_0x35ccdf++;}return _0x37acbe;}async function ensureSqlContent(_0x339d30){const _0x3af080=a124_0x498d;if(_0x339d30[_0x3af080(0xb1)]!=null&&String(_0x339d30[_0x3af080(0xb1)])[_0x3af080(0xbe)]>0x0)return _0x339d30;return getSqlQueryDetail(_0x339d30['sqlCode']);}export const sqlPull={'service':a124_0x5b7f9a(0xb7),'command':'pull','description':a124_0x5b7f9a(0xb8),'risk':a124_0x5b7f9a(0xba),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a124_0x5b7f9a(0x9a),'type':a124_0x5b7f9a(0x93),'description':a124_0x5b7f9a(0x9d)},{'name':'force','type':a124_0x5b7f9a(0xa7),'description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x95f0a4){const _0x102489=a124_0x5b7f9a,_0x5bb746=loadSqlProjectConfig(_0x95f0a4[_0x102489(0xa4)]),_0x9bd877=await readSqlLockFile(_0x5bb746['lockFilePath']),{appLock:_0x2162d0}=ensureSqlLockScope(_0x9bd877??createEmptySqlLock(),_0x5bb746['appCode'],_0x5bb746[_0x102489(0xa0)],'pull'),_0xc0f9b7=await fetchAllSqlQueries(_0x95f0a4[_0x102489(0xa4)],{'sqlCode':_0x95f0a4[_0x102489(0xa3)](_0x102489(0xbf))||undefined,'sqlName':_0x95f0a4[_0x102489(0xa3)](_0x102489(0x9a))||undefined}),_0x41cd52=[];for(const _0x373a8b of _0xc0f9b7){const _0x57a556=await ensureSqlContent(_0x373a8b),_0x2b1973=ensureRemoteSqlContent(_0x57a556),_0x3edfd4=detectModeFromSql(_0x57a556),_0x345c9e=_0x57a556[_0x102489(0x97)]?await getDbName(_0x95f0a4[_0x102489(0xa4)],Number(_0x57a556[_0x102489(0x97)]))['catch'](()=>undefined):undefined,_0x57c90f=buildLocalSqlFileContent({'sqlCode':_0x57a556['sqlCode'],'sqlName':_0x57a556[_0x102489(0x8e)],'dbId':_0x57a556['dbId']},_0x2b1973,{'dbName':_0x345c9e,'mode':_0x3edfd4,'syncedAt':new Date()[_0x102489(0xb2)](),'description':_0x57a556[_0x102489(0xc2)]}),_0x19a114=buildSqlLockEntry(_0x57a556,_0x2b1973,'',{'dbName':_0x345c9e}),_0x143366=resolveLocalSqlFilePath(_0x5bb746,_0x57a556['sqlCode'],_0x19a114);let _0x54fde5=_0x102489(0xa6),_0x40621a;if(await fileExists(_0x143366)){const _0x32b588=await readFile(_0x143366,_0x102489(0xae));isEquivalentPulledSqlFile(_0x32b588,_0x57c90f,_0x3edfd4)?(_0x54fde5='skipped',_0x40621a=_0x102489(0x8b)):(_0x54fde5=_0x102489(0x96),_0x40621a='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x41cd52[_0x102489(0xc0)]({'sqlCode':_0x57a556[_0x102489(0xb9)],'sqlName':_0x57a556[_0x102489(0x8e)],'filePath':_0x143366,'status':_0x54fde5,'reason':_0x40621a});}return{'method':_0x102489(0x9f),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x95f0a4[_0x102489(0xa4)],'sqlCode':_0x95f0a4[_0x102489(0xa3)](_0x102489(0xbf))||null,'sqlName':_0x95f0a4[_0x102489(0xa3)](_0x102489(0x9a))||null,'files':_0x41cd52},'description':_0x102489(0xb4)+_0x41cd52[_0x102489(0xbe)]+'\x20SQL\x20file(s)\x20into\x20'+_0x5bb746[_0x102489(0xb6)]};},async 'execute'(_0x3c2d5b){const _0x562d68=a124_0x5b7f9a,_0x50ae74=loadSqlProjectConfig(_0x3c2d5b[_0x562d68(0xa4)]),_0xaf69e9=await readSqlLockFile(_0x50ae74[_0x562d68(0xa5)]),{lockData:_0x3f3e65,appLock:_0x130d7c}=ensureSqlLockScope(_0xaf69e9??createEmptySqlLock(),_0x50ae74[_0x562d68(0xa4)],_0x50ae74[_0x562d68(0xa0)],_0x562d68(0x9b)),_0x36a4a2=_0x3c2d5b[_0x562d68(0x95)](_0x562d68(0x9c)),_0x52bb74=await fetchAllSqlQueries(_0x3c2d5b['appCode'],{'sqlCode':_0x3c2d5b[_0x562d68(0xa3)](_0x562d68(0xbf))||undefined,'sqlName':_0x3c2d5b[_0x562d68(0xa3)]('name')||undefined});if(_0x52bb74[_0x562d68(0xbe)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x562d68(0xbd)};const _0x1449cb=[],_0x217175=[];for(const _0x26a4c3 of _0x52bb74){try{_0x1449cb[_0x562d68(0xc0)](await ensureSqlContent(_0x26a4c3));}catch(_0x539121){_0x217175[_0x562d68(0xc0)]({'sqlCode':_0x26a4c3[_0x562d68(0xb9)],'error':_0x539121 instanceof Error?_0x539121[_0x562d68(0x8c)]:String(_0x539121)});}}if(_0x36a4a2&&!_0x3c2d5b['nonInteractive']){let _0x11a082=![];for(const _0x2eb81a of _0x1449cb){const _0x525f61=detectModeFromSql(_0x2eb81a),_0x5d03b3=_0x2eb81a[_0x562d68(0x97)]?await getDbName(_0x3c2d5b[_0x562d68(0xa4)],Number(_0x2eb81a[_0x562d68(0x97)]))[_0x562d68(0x8d)](()=>undefined):undefined,_0x3a5568=buildLocalSqlFileContent({'sqlCode':_0x2eb81a[_0x562d68(0xb9)],'sqlName':_0x2eb81a[_0x562d68(0x8e)],'dbId':_0x2eb81a[_0x562d68(0x97)]},ensureRemoteSqlContent(_0x2eb81a),{'dbName':_0x5d03b3,'mode':_0x525f61,'syncedAt':new Date()['toISOString'](),'description':_0x2eb81a[_0x562d68(0xc2)]}),_0x14232f=resolveLocalSqlFilePath(_0x50ae74,_0x2eb81a['sqlCode'],buildSqlLockEntry(_0x2eb81a,ensureRemoteSqlContent(_0x2eb81a),'',{'dbName':_0x5d03b3}));if(await fileExists(_0x14232f)){const _0x508e3a=await readFile(_0x14232f,_0x562d68(0xae));if(!isEquivalentPulledSqlFile(_0x508e3a,_0x3a5568,_0x525f61)){_0x11a082=!![];break;}}}if(_0x11a082){const _0x39da73=await confirmForceOverwrite(_0x562d68(0xad));if(!_0x39da73)throw CliErrors['cancelled'](_0x562d68(0xb5));}}const _0x7bf1f0=cloneSqlLockData(_0x3f3e65),_0x1598a3=_0x7bf1f0[_0x562d68(0xab)][_0x50ae74['appCode']],_0x1e909c=[],_0x1608d9=[];for(const _0x413ca9 of _0x1449cb){const _0x16efea=_0x1598a3[_0x562d68(0x94)][_0x413ca9[_0x562d68(0xb9)]],_0x20e13b=ensureRemoteSqlContent(_0x413ca9),_0x39e0db=detectModeFromSql(_0x413ca9),_0x3321bf=_0x413ca9[_0x562d68(0x97)]?await getDbName(_0x3c2d5b['appCode'],Number(_0x413ca9[_0x562d68(0x97)]))[_0x562d68(0x8d)](()=>undefined):undefined,_0x561db7=buildLocalSqlFileContent({'sqlCode':_0x413ca9[_0x562d68(0xb9)],'sqlName':_0x413ca9[_0x562d68(0x8e)],'dbId':_0x413ca9[_0x562d68(0x97)]},_0x20e13b,{'dbName':_0x3321bf,'mode':_0x39e0db,'syncedAt':new Date()[_0x562d68(0xb2)](),'description':_0x413ca9[_0x562d68(0xc2)]}),_0x26050c=buildSqlLockEntry(_0x413ca9,_0x20e13b,computeSqlContentHash(_0x561db7),{'dbName':_0x3321bf}),_0x33f88f=_0x26050c[_0x562d68(0x90)],_0x11dbe6=join(_0x50ae74[_0x562d68(0xb6)],_0x33f88f);try{if(await fileExists(_0x11dbe6)){const _0x1578ba=await readFile(_0x11dbe6,_0x562d68(0xae));if(isEquivalentPulledSqlFile(_0x1578ba,_0x561db7,_0x39e0db)){_0x1608d9[_0x562d68(0xc0)]({'sqlCode':_0x413ca9[_0x562d68(0xb9)],'reason':_0x562d68(0x8b)}),_0x1598a3[_0x562d68(0x94)][_0x413ca9[_0x562d68(0xb9)]]={..._0x26050c,'hash':computeSqlContentHash(_0x1578ba),'path':_0x33f88f};continue;}if(!_0x36a4a2){_0x1608d9[_0x562d68(0xc0)]({'sqlCode':_0x413ca9[_0x562d68(0xb9)],'reason':_0x562d68(0x99)});continue;}}const _0x2c8cdd=_0x16efea?.[_0x562d68(0x90)]?join(_0x50ae74[_0x562d68(0xb6)],_0x16efea['path']):undefined;_0x2c8cdd&&_0x2c8cdd!==_0x11dbe6&&await fileExists(_0x2c8cdd)&&await rm(_0x2c8cdd,{'force':!![]}),await ensureParentDirectory(_0x11dbe6),await writeFile(_0x11dbe6,_0x561db7,_0x562d68(0xae)),_0x1598a3[_0x562d68(0x94)][_0x413ca9['sqlCode']]={..._0x26050c,'path':_0x33f88f},_0x1e909c[_0x562d68(0xc0)]({'sqlCode':_0x413ca9[_0x562d68(0xb9)],'filePath':_0x11dbe6});}catch(_0x4d5ea2){_0x217175[_0x562d68(0xc0)]({'sqlCode':_0x413ca9['sqlCode'],'error':_0x4d5ea2 instanceof Error?_0x4d5ea2[_0x562d68(0x8c)]:String(_0x4d5ea2)});}}return _0x1598a3['lastSync']=new Date()[_0x562d68(0xb2)](),await writeSqlLockFile(_0x50ae74['lockFilePath'],_0x7bf1f0),{'ok':_0x217175[_0x562d68(0xbe)]===0x0,'data':{'pulled':_0x1e909c,'skipped':_0x1608d9,'failed':_0x217175},'message':'Pull\x20complete:\x20'+_0x1e909c[_0x562d68(0xbe)]+_0x562d68(0xbb)+_0x1608d9[_0x562d68(0xbe)]+_0x562d68(0xa2)+_0x217175[_0x562d68(0xbe)]+_0x562d68(0xc1)};}};function detectModeFromSql(_0x4039c2){const _0x57bf13=a124_0x5b7f9a,_0x2ba23c=ensureRemoteSqlContent(_0x4039c2),_0x592adb=stripLocalSqlMetadata(_0x2ba23c,_0x57bf13(0xa1))[_0x57bf13(0x8f)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x592adb))return'mybatisXml';return _0x57bf13(0xb7);}function isEquivalentPulledSqlFile(_0x1ba5dc,_0x3472ca,_0x2d2725){return normalizePullComparableContent(_0x1ba5dc,_0x2d2725)===normalizePullComparableContent(_0x3472ca,_0x2d2725);}function a124_0x4a19(){const _0x74ef49=['str','appCode','lockFilePath','would_pull','boolean','212991DZwIhz','tableData','4484208eHAfiz','apps','2164746FTLfAa','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','utf8','split','1415772gTTUWT','sqlContent','toISOString','replace','Would\x20pull\x20','Force\x20pull\x20cancelled.','sqlRootDir','sql','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','sqlCode','write','\x20written,\x20','7908216PDHPOy','No\x20remote\x20SQL\x20queries\x20matched.','length','sqlcode','push','\x20failed','description','467050IyBcan','unchanged','message','catch','sqlName','trimStart','path','7zTBNFN','test','string','sqls','bool','conflict','dbId','2364816RABbGa','local\x20differs\x20from\x20remote','name','pull','force','Filter\x20by\x20SQL\x20display\x20name','paging','POST','sqlRoot','mybatisXml','\x20skipped,\x20'];a124_0x4a19=function(){return _0x74ef49;};return a124_0x4a19();}function normalizePullComparableContent(_0x36a12f,_0x14e7f9){const _0x11e688=a124_0x5b7f9a,_0x373754=_0x36a12f[_0x11e688(0xb3)](/\r\n/g,'\x0a')[_0x11e688(0xaf)]('\x0a'),_0x497455=_0x373754['filter'](_0x13141f=>!isSyncedAtMetadataLine(_0x13141f,_0x14e7f9));return _0x497455['join']('\x0a');}function isSyncedAtMetadataLine(_0x44425b,_0x2c0c85){const _0x244782=a124_0x5b7f9a;if(_0x2c0c85===_0x244782(0xa1))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x244782(0x92)](_0x44425b);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x244782(0x92)](_0x44425b);}
1
+ const a125_0x3d11ec=a125_0x75d5;(function(_0x3077ba,_0x568b85){const _0x1ebf2f=a125_0x75d5,_0x2aa5c1=_0x3077ba();while(!![]){try{const _0x3d04d2=-parseInt(_0x1ebf2f(0x118))/0x1*(-parseInt(_0x1ebf2f(0x134))/0x2)+parseInt(_0x1ebf2f(0x117))/0x3+parseInt(_0x1ebf2f(0x12f))/0x4*(-parseInt(_0x1ebf2f(0x120))/0x5)+parseInt(_0x1ebf2f(0x144))/0x6+-parseInt(_0x1ebf2f(0x114))/0x7*(-parseInt(_0x1ebf2f(0x11e))/0x8)+-parseInt(_0x1ebf2f(0x123))/0x9+-parseInt(_0x1ebf2f(0x12d))/0xa;if(_0x3d04d2===_0x568b85)break;else _0x2aa5c1['push'](_0x2aa5c1['shift']());}catch(_0x59a0ce){_0x2aa5c1['push'](_0x2aa5c1['shift']());}}}(a125_0x22b3,0x95f03));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';function a125_0x22b3(){const _0xd7f13c=['apps','Pull\x20complete:\x20','Would\x20pull\x20','dbId','totalCount','pull','toISOString','24612xQRdZH','skipped','unchanged','624924JeZsAy','3IOSYkX','sql','lockFilePath','sqls','sqlcode','replace','2408JOUyAI','filter','3062665CVnhha','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','Filter\x20by\x20SQL\x20display\x20name','73134vizhdy','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','str','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','sqlRootDir','\x20failed','conflict','\x20written,\x20','test','appCode','8264100plHIAC','local\x20differs\x20from\x20remote','4VMXrIr','path','catch','trimStart','sqlCode','406622JMNvma','\x20skipped,\x20','name','cancelled','utf8','sqlName','bool','\x20SQL\x20file(s)\x20into\x20','No\x20remote\x20SQL\x20queries\x20matched.','push','write','length','force','paging','sqlRoot','POST','1107954atVeHr','boolean'];a125_0x22b3=function(){return _0xd7f13c;};return a125_0x22b3();}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';function a125_0x75d5(_0x5c4fcc,_0x1538d4){_0x5c4fcc=_0x5c4fcc-0x10d;const _0x22b38f=a125_0x22b3();let _0x75d5e5=_0x22b38f[_0x5c4fcc];return _0x75d5e5;}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(_0x3f3afc,_0x1c44c1){const _0x5adf5a=a125_0x75d5,_0x33f604=[];let _0x158dc8=0x1;while(!![]){const _0x4cbc29=await listSqlQueries(_0x3f3afc,{'currentPage':_0x158dc8,'pageSize':PAGE_SIZE,'sqlCode':_0x1c44c1[_0x5adf5a(0x133)],'sqlName':_0x1c44c1['sqlName']}),_0x1fad07=_0x4cbc29['tableData']??[];_0x33f604[_0x5adf5a(0x13d)](..._0x1fad07);if(_0x1fad07[_0x5adf5a(0x13f)]===0x0)break;const _0x1e7a8f=_0x4cbc29[_0x5adf5a(0x141)]?.[_0x5adf5a(0x111)];if(_0x1e7a8f!=null?_0x33f604['length']>=_0x1e7a8f:_0x1fad07[_0x5adf5a(0x13f)]<PAGE_SIZE)break;_0x158dc8++;}return _0x33f604;}async function ensureSqlContent(_0x13c8a4){const _0xcd9eea=a125_0x75d5;if(_0x13c8a4['sqlContent']!=null&&String(_0x13c8a4['sqlContent'])[_0xcd9eea(0x13f)]>0x0)return _0x13c8a4;return getSqlQueryDetail(_0x13c8a4[_0xcd9eea(0x133)]);}export const sqlPull={'service':a125_0x3d11ec(0x119),'command':a125_0x3d11ec(0x112),'description':a125_0x3d11ec(0x126),'risk':a125_0x3d11ec(0x13e),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':a125_0x3d11ec(0x122)},{'name':a125_0x3d11ec(0x140),'type':a125_0x3d11ec(0x145),'description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x200340){const _0x35d687=a125_0x3d11ec,_0x5ed846=loadSqlProjectConfig(_0x200340[_0x35d687(0x12c)]),_0x3cfba4=await readSqlLockFile(_0x5ed846[_0x35d687(0x11a)]),{appLock:_0x3599b2}=ensureSqlLockScope(_0x3cfba4??createEmptySqlLock(),_0x5ed846[_0x35d687(0x12c)],_0x5ed846[_0x35d687(0x142)],_0x35d687(0x112)),_0x4a21e0=await fetchAllSqlQueries(_0x200340[_0x35d687(0x12c)],{'sqlCode':_0x200340[_0x35d687(0x125)]('sqlcode')||undefined,'sqlName':_0x200340['str'](_0x35d687(0x136))||undefined}),_0x54b1b2=[];for(const _0x2896a3 of _0x4a21e0){const _0x33baed=await ensureSqlContent(_0x2896a3),_0x2598b6=ensureRemoteSqlContent(_0x33baed),_0x13ad04=detectModeFromSql(_0x33baed),_0x5da7bb=_0x33baed[_0x35d687(0x110)]?await getDbName(_0x200340[_0x35d687(0x12c)],Number(_0x33baed['dbId']))[_0x35d687(0x131)](()=>undefined):undefined,_0x34fade=buildLocalSqlFileContent({'sqlCode':_0x33baed[_0x35d687(0x133)],'sqlName':_0x33baed[_0x35d687(0x139)],'dbId':_0x33baed[_0x35d687(0x110)]},_0x2598b6,{'dbName':_0x5da7bb,'mode':_0x13ad04,'syncedAt':new Date()[_0x35d687(0x113)](),'description':_0x33baed['description']}),_0x28511e=buildSqlLockEntry(_0x33baed,_0x2598b6,'',{'dbName':_0x5da7bb}),_0xa58275=resolveLocalSqlFilePath(_0x5ed846,_0x33baed[_0x35d687(0x133)],_0x28511e);let _0x3b9b30='would_pull',_0x1b4aac;if(await fileExists(_0xa58275)){const _0x34487b=await readFile(_0xa58275,_0x35d687(0x138));isEquivalentPulledSqlFile(_0x34487b,_0x34fade,_0x13ad04)?(_0x3b9b30=_0x35d687(0x115),_0x1b4aac=_0x35d687(0x116)):(_0x3b9b30=_0x35d687(0x129),_0x1b4aac=_0x35d687(0x124));}_0x54b1b2['push']({'sqlCode':_0x33baed[_0x35d687(0x133)],'sqlName':_0x33baed[_0x35d687(0x139)],'filePath':_0xa58275,'status':_0x3b9b30,'reason':_0x1b4aac});}return{'method':_0x35d687(0x143),'url':_0x35d687(0x121),'body':{'appCode':_0x200340['appCode'],'sqlCode':_0x200340[_0x35d687(0x125)](_0x35d687(0x11c))||null,'sqlName':_0x200340[_0x35d687(0x125)](_0x35d687(0x136))||null,'files':_0x54b1b2},'description':_0x35d687(0x10f)+_0x54b1b2[_0x35d687(0x13f)]+_0x35d687(0x13b)+_0x5ed846['sqlRootDir']};},async 'execute'(_0x4d45f7){const _0x486853=a125_0x3d11ec,_0x3966bb=loadSqlProjectConfig(_0x4d45f7[_0x486853(0x12c)]),_0x3d75e7=await readSqlLockFile(_0x3966bb[_0x486853(0x11a)]),{lockData:_0x375050,appLock:_0x1efdeb}=ensureSqlLockScope(_0x3d75e7??createEmptySqlLock(),_0x3966bb[_0x486853(0x12c)],_0x3966bb[_0x486853(0x142)],'pull'),_0x1afcc2=_0x4d45f7[_0x486853(0x13a)](_0x486853(0x140)),_0x587f4b=await fetchAllSqlQueries(_0x4d45f7[_0x486853(0x12c)],{'sqlCode':_0x4d45f7[_0x486853(0x125)](_0x486853(0x11c))||undefined,'sqlName':_0x4d45f7[_0x486853(0x125)](_0x486853(0x136))||undefined});if(_0x587f4b[_0x486853(0x13f)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x486853(0x13c)};const _0x16eb06=[],_0x69ab76=[];for(const _0x22cbce of _0x587f4b){try{_0x16eb06['push'](await ensureSqlContent(_0x22cbce));}catch(_0x2c2132){_0x69ab76[_0x486853(0x13d)]({'sqlCode':_0x22cbce[_0x486853(0x133)],'error':_0x2c2132 instanceof Error?_0x2c2132['message']:String(_0x2c2132)});}}if(_0x1afcc2&&!_0x4d45f7['nonInteractive']){let _0x4e7f0e=![];for(const _0x4f88f7 of _0x16eb06){const _0x2d524b=detectModeFromSql(_0x4f88f7),_0x1abad3=_0x4f88f7['dbId']?await getDbName(_0x4d45f7[_0x486853(0x12c)],Number(_0x4f88f7[_0x486853(0x110)]))[_0x486853(0x131)](()=>undefined):undefined,_0x33f7ff=buildLocalSqlFileContent({'sqlCode':_0x4f88f7[_0x486853(0x133)],'sqlName':_0x4f88f7['sqlName'],'dbId':_0x4f88f7[_0x486853(0x110)]},ensureRemoteSqlContent(_0x4f88f7),{'dbName':_0x1abad3,'mode':_0x2d524b,'syncedAt':new Date()[_0x486853(0x113)](),'description':_0x4f88f7['description']}),_0x5568cd=resolveLocalSqlFilePath(_0x3966bb,_0x4f88f7[_0x486853(0x133)],buildSqlLockEntry(_0x4f88f7,ensureRemoteSqlContent(_0x4f88f7),'',{'dbName':_0x1abad3}));if(await fileExists(_0x5568cd)){const _0x581d06=await readFile(_0x5568cd,_0x486853(0x138));if(!isEquivalentPulledSqlFile(_0x581d06,_0x33f7ff,_0x2d524b)){_0x4e7f0e=!![];break;}}}if(_0x4e7f0e){const _0x1486f6=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x1486f6)throw CliErrors[_0x486853(0x137)]('Force\x20pull\x20cancelled.');}}const _0x541bc5=cloneSqlLockData(_0x375050),_0x165141=_0x541bc5[_0x486853(0x10d)][_0x3966bb['appCode']],_0x374f1b=[],_0xe8ee1c=[];for(const _0x5971c6 of _0x16eb06){const _0x1c65e7=_0x165141[_0x486853(0x11b)][_0x5971c6[_0x486853(0x133)]],_0x4cba49=ensureRemoteSqlContent(_0x5971c6),_0x5c4a23=detectModeFromSql(_0x5971c6),_0x24da0e=_0x5971c6[_0x486853(0x110)]?await getDbName(_0x4d45f7['appCode'],Number(_0x5971c6[_0x486853(0x110)]))[_0x486853(0x131)](()=>undefined):undefined,_0x21253f=buildLocalSqlFileContent({'sqlCode':_0x5971c6[_0x486853(0x133)],'sqlName':_0x5971c6['sqlName'],'dbId':_0x5971c6['dbId']},_0x4cba49,{'dbName':_0x24da0e,'mode':_0x5c4a23,'syncedAt':new Date()[_0x486853(0x113)](),'description':_0x5971c6['description']}),_0x31a107=buildSqlLockEntry(_0x5971c6,_0x4cba49,computeSqlContentHash(_0x21253f),{'dbName':_0x24da0e}),_0x4d6bb3=_0x31a107[_0x486853(0x130)],_0x26b600=join(_0x3966bb['sqlRootDir'],_0x4d6bb3);try{if(await fileExists(_0x26b600)){const _0x3c5b8f=await readFile(_0x26b600,_0x486853(0x138));if(isEquivalentPulledSqlFile(_0x3c5b8f,_0x21253f,_0x5c4a23)){_0xe8ee1c[_0x486853(0x13d)]({'sqlCode':_0x5971c6[_0x486853(0x133)],'reason':'unchanged'}),_0x165141['sqls'][_0x5971c6[_0x486853(0x133)]]={..._0x31a107,'hash':computeSqlContentHash(_0x3c5b8f),'path':_0x4d6bb3};continue;}if(!_0x1afcc2){_0xe8ee1c['push']({'sqlCode':_0x5971c6[_0x486853(0x133)],'reason':_0x486853(0x12e)});continue;}}const _0x5a9b45=_0x1c65e7?.[_0x486853(0x130)]?join(_0x3966bb[_0x486853(0x127)],_0x1c65e7['path']):undefined;_0x5a9b45&&_0x5a9b45!==_0x26b600&&await fileExists(_0x5a9b45)&&await rm(_0x5a9b45,{'force':!![]}),await ensureParentDirectory(_0x26b600),await writeFile(_0x26b600,_0x21253f,'utf8'),_0x165141[_0x486853(0x11b)][_0x5971c6['sqlCode']]={..._0x31a107,'path':_0x4d6bb3},_0x374f1b[_0x486853(0x13d)]({'sqlCode':_0x5971c6[_0x486853(0x133)],'filePath':_0x26b600});}catch(_0x8cfeae){_0x69ab76[_0x486853(0x13d)]({'sqlCode':_0x5971c6[_0x486853(0x133)],'error':_0x8cfeae instanceof Error?_0x8cfeae['message']:String(_0x8cfeae)});}}return _0x165141['lastSync']=new Date()[_0x486853(0x113)](),await writeSqlLockFile(_0x3966bb[_0x486853(0x11a)],_0x541bc5),{'ok':_0x69ab76[_0x486853(0x13f)]===0x0,'data':{'pulled':_0x374f1b,'skipped':_0xe8ee1c,'failed':_0x69ab76},'message':_0x486853(0x10e)+_0x374f1b['length']+_0x486853(0x12a)+_0xe8ee1c[_0x486853(0x13f)]+_0x486853(0x135)+_0x69ab76[_0x486853(0x13f)]+_0x486853(0x128)};}};function detectModeFromSql(_0x258993){const _0x1dcef2=a125_0x3d11ec,_0x1906af=ensureRemoteSqlContent(_0x258993),_0x2978a2=stripLocalSqlMetadata(_0x1906af,'mybatisXml')[_0x1dcef2(0x132)]();if(/^<(select|insert|update|delete)\b/i[_0x1dcef2(0x12b)](_0x2978a2))return'mybatisXml';return'sql';}function isEquivalentPulledSqlFile(_0x514b0e,_0x25d8bf,_0x29f727){return normalizePullComparableContent(_0x514b0e,_0x29f727)===normalizePullComparableContent(_0x25d8bf,_0x29f727);}function normalizePullComparableContent(_0x41aaf0,_0x5ec9e3){const _0x150074=a125_0x3d11ec,_0x37f44f=_0x41aaf0[_0x150074(0x11d)](/\r\n/g,'\x0a')['split']('\x0a'),_0x5691c0=_0x37f44f[_0x150074(0x11f)](_0x35e6da=>!isSyncedAtMetadataLine(_0x35e6da,_0x5ec9e3));return _0x5691c0['join']('\x0a');}function isSyncedAtMetadataLine(_0x8ff1af,_0x498416){const _0x4c7fe4=a125_0x3d11ec;if(_0x498416==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x4c7fe4(0x12b)](_0x8ff1af);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x4c7fe4(0x12b)](_0x8ff1af);}
@@ -1 +1 @@
1
- const a125_0x58d645=a125_0x4dec;(function(_0x27678d,_0xe759a6){const _0x23bc49=a125_0x4dec,_0x3893cf=_0x27678d();while(!![]){try{const _0xad8b07=parseInt(_0x23bc49(0x20e))/0x1*(-parseInt(_0x23bc49(0x204))/0x2)+-parseInt(_0x23bc49(0x226))/0x3+parseInt(_0x23bc49(0x20a))/0x4+parseInt(_0x23bc49(0x21b))/0x5+-parseInt(_0x23bc49(0x1f9))/0x6*(parseInt(_0x23bc49(0x21f))/0x7)+-parseInt(_0x23bc49(0x1fc))/0x8*(parseInt(_0x23bc49(0x200))/0x9)+parseInt(_0x23bc49(0x1eb))/0xa*(parseInt(_0x23bc49(0x1f2))/0xb);if(_0xad8b07===_0xe759a6)break;else _0x3893cf['push'](_0x3893cf['shift']());}catch(_0x5c3067){_0x3893cf['push'](_0x3893cf['shift']());}}}(a125_0x2c97,0xc8e13));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';function a125_0x2c97(){const _0x85f3a9=['has','path','bool','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','sqlName','sqlCode','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','dbId','24690eLWTcF','replace','\x20pushed,\x20','map','isFinite','utf8','lockFilePath','99GtsMeZ','force','hash','length','boolean','Local\x20SQL\x20not\x20found:\x20','/smartapi/custom/updateUserCustomSql','32964GxkdQT','Would\x20push\x20','\x22\x20for\x20sqlCode\x20','24dBNzZW','lastSync','appCode','filePath','1601991BucqWT','Local\x20directory\x20\x22','validation','sqlRootDir','3782iuqUnY','remoteId','sqlRoot','Push\x20local\x20SQL\x20files\x20to\x20remote','POST','No\x20database\x20matches\x20local\x20directory\x20\x22','2594364PDfQRs','projectRoot','set','Push\x20complete:\x20','23qUsuWL','\x20skipped,\x20','sqlConfig','sql','version','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','filter','mode','push','join','dbName','exec','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','8102825BoNjxI','catch','message','trashDir','259BdkaeA','relativePath','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','dbDirectory','sqls','sqlcode','2063418AjwgBK'];a125_0x2c97=function(){return _0x85f3a9;};return a125_0x2c97();}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(_0xb2f6a2,_0x975e7,_0x3b8995){const _0xeba412=a125_0x4dec,_0x4fe47c=await scanLocalSqlQueries(_0xb2f6a2),_0x5499e6=new Map();for(const _0x38fca0 of _0x4fe47c){if(_0x3b8995&&_0x38fca0['sqlCode']!==_0x3b8995)continue;const _0x56eb38=_0x5499e6['get'](_0x38fca0['sqlCode'])??[];_0x56eb38['push'](_0x38fca0),_0x5499e6[_0xeba412(0x20c)](_0x38fca0['sqlCode'],_0x56eb38);}if(_0x3b8995&&!_0x5499e6[_0xeba412(0x227)](_0x3b8995))throw CliErrors[_0xeba412(0x202)](_0xeba412(0x1f7)+_0x3b8995);const _0x390f44=[];for(const [_0x5208e8,_0x4ec273]of _0x5499e6['entries']()){if(_0x4ec273['length']===0x1){_0x390f44['push'](_0x4ec273[0x0]);continue;}const _0x487f6c=_0x975e7[_0xeba412(0x224)][_0x5208e8],_0x51d97f=_0x487f6c?.['path'],_0x3a3db1=_0x51d97f?_0x4ec273['filter'](_0xbe2c02=>_0xbe2c02[_0xeba412(0x220)]!==_0x51d97f):_0x4ec273;if(_0x487f6c&&_0x3a3db1[_0xeba412(0x1f5)]===0x1){_0x390f44[_0xeba412(0x216)](_0x3a3db1[0x0]);continue;}throw CliErrors[_0xeba412(0x202)](_0xeba412(0x21a)+_0x5208e8+_0xeba412(0x22a));}return _0x390f44;}export const sqlPush={'service':a125_0x58d645(0x211),'command':a125_0x58d645(0x216),'description':a125_0x58d645(0x207),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a125_0x58d645(0x1f3),'type':a125_0x58d645(0x1f6),'description':a125_0x58d645(0x222)}],async 'dryRun'(_0x163c4c){const _0x5438b5=a125_0x58d645,_0x4c244f=loadSqlProjectConfig(_0x163c4c['appCode']),_0x4e3f27=await readSqlLockFile(_0x4c244f[_0x5438b5(0x1f1)]),{appLock:_0x443a95}=ensureSqlLockScope(_0x4e3f27??createEmptySqlLock(),_0x163c4c[_0x5438b5(0x1fe)],_0x4c244f[_0x5438b5(0x206)],_0x5438b5(0x216)),_0x39faca=await getTargetSqlQueries(_0x4c244f,_0x443a95,_0x163c4c['str'](_0x5438b5(0x225))||undefined),_0x2587ca=[];for(const _0x216c27 of _0x39faca){const _0x5ea894=await computeSqlFileHash(_0x216c27[_0x5438b5(0x1ff)]),_0x467bc6=_0x443a95[_0x5438b5(0x224)][_0x216c27[_0x5438b5(0x22c)]],_0x325670=!!_0x467bc6&&(_0x467bc6[_0x5438b5(0x228)]!==_0x216c27['relativePath']||!!_0x216c27[_0x5438b5(0x22b)]&&_0x467bc6[_0x5438b5(0x22b)]!==_0x216c27[_0x5438b5(0x22b)]);if(!_0x163c4c[_0x5438b5(0x229)](_0x5438b5(0x1f3))&&_0x467bc6&&_0x467bc6[_0x5438b5(0x1f4)]===_0x5ea894&&!_0x325670)continue;_0x2587ca[_0x5438b5(0x216)](_0x216c27['sqlCode']);}return{'method':_0x5438b5(0x208),'url':_0x5438b5(0x1f8),'body':{'sqlCodes':_0x2587ca,'appCode':_0x163c4c[_0x5438b5(0x1fe)]},'description':_0x5438b5(0x1fa)+_0x2587ca[_0x5438b5(0x1f5)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x4485f4){const _0x669578=a125_0x58d645,_0x31a242=loadSqlProjectConfig(_0x4485f4[_0x669578(0x1fe)]),_0x25f281=await readSqlLockFile(_0x31a242['lockFilePath']),{lockData:_0x403328,appLock:_0x8136de}=ensureSqlLockScope(_0x25f281??createEmptySqlLock(),_0x4485f4[_0x669578(0x1fe)],_0x31a242[_0x669578(0x206)],_0x669578(0x216)),_0x3717c3=await getTargetSqlQueries(_0x31a242,_0x8136de,_0x4485f4['str'](_0x669578(0x225))||undefined);if(_0x3717c3['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x234c80=[],_0x5085cc=[],_0x51a672=[];for(const _0x23477d of _0x3717c3){const _0xb4a125=_0x8136de['sqls'][_0x23477d[_0x669578(0x22c)]];if(!_0xb4a125){_0x51a672[_0x669578(0x216)]({'sqlCode':_0x23477d[_0x669578(0x22c)],'error':_0x669578(0x221)});continue;}try{const _0x1c82bf=await computeSqlFileHash(_0x23477d[_0x669578(0x1ff)]),_0xd1d531=_0xb4a125[_0x669578(0x228)]!==_0x23477d[_0x669578(0x220)]||!!_0x23477d['sqlName']&&_0xb4a125['sqlName']!==_0x23477d[_0x669578(0x22b)];if(!_0x4485f4[_0x669578(0x229)](_0x669578(0x1f3))&&_0xb4a125[_0x669578(0x1f4)]===_0x1c82bf&&!_0xd1d531){_0x5085cc[_0x669578(0x216)]({'sqlCode':_0x23477d[_0x669578(0x22c)],'reason':'unchanged'});continue;}if(_0xb4a125[_0x669578(0x212)]==null){_0x51a672[_0x669578(0x216)]({'sqlCode':_0x23477d['sqlCode'],'error':_0x669578(0x213)});continue;}const _0x3d9af7=await readFile(_0x23477d[_0x669578(0x1ff)],_0x669578(0x1f0)),_0x253a45=stripLocalSqlMetadata(_0x3d9af7,_0x23477d[_0x669578(0x215)]),_0xa47c35=_0x23477d[_0x669578(0x22b)]||_0xb4a125[_0x669578(0x22b)],_0x5a4c6e=await resolveTargetDbBinding(_0x4485f4[_0x669578(0x1fe)],_0x23477d,_0xb4a125),_0x1d19a2=await updateSqlQuery({'id':_0xb4a125[_0x669578(0x205)],'appCode':_0x4485f4[_0x669578(0x1fe)],'sqlCode':_0x23477d[_0x669578(0x22c)],'sqlName':_0xa47c35,'dbId':_0x5a4c6e[_0x669578(0x22e)],'version':_0xb4a125[_0x669578(0x212)],'sqlContent':_0x253a45,'sqlConfig':_0xb4a125[_0x669578(0x210)]??undefined}),_0xb86d21=_0x1d19a2['dbId']?await getDbName(_0x4485f4['appCode'],Number(_0x1d19a2[_0x669578(0x22e)]))[_0x669578(0x21c)](()=>_0x5a4c6e[_0x669578(0x218)]):_0x5a4c6e[_0x669578(0x218)];_0x8136de[_0x669578(0x224)][_0x23477d['sqlCode']]={...buildSqlLockEntry(_0x1d19a2,_0x253a45,_0x1c82bf,{'dbName':_0xb86d21}),'path':_0x23477d[_0x669578(0x220)],'mode':_0xb4a125[_0x669578(0x215)]},await archivePreviousSqlFileIfNeeded(_0x31a242,_0xb4a125[_0x669578(0x228)],_0x23477d['relativePath']),_0x234c80[_0x669578(0x216)]({'sqlCode':_0x23477d[_0x669578(0x22c)],'remoteId':_0xb4a125[_0x669578(0x205)]});}catch(_0x2f6536){_0x51a672[_0x669578(0x216)]({'sqlCode':_0x23477d[_0x669578(0x22c)],'error':_0x2f6536 instanceof Error?_0x2f6536[_0x669578(0x21d)]:String(_0x2f6536)});}}return _0x8136de[_0x669578(0x1fd)]=new Date()['toISOString'](),await writeSqlLockFile(_0x31a242[_0x669578(0x1f1)],_0x403328),{'ok':_0x51a672[_0x669578(0x1f5)]===0x0,'data':{'pushed':_0x234c80,'skipped':_0x5085cc,'failed':_0x51a672},'message':_0x669578(0x20d)+_0x234c80['length']+_0x669578(0x1ed)+_0x5085cc['length']+_0x669578(0x20f)+_0x51a672['length']+'\x20failed'};}};function a125_0x4dec(_0x415615,_0xc72b9f){_0x415615=_0x415615-0x1eb;const _0x2c97a2=a125_0x2c97();let _0x4dec54=_0x2c97a2[_0x415615];return _0x4dec54;}async function archivePreviousSqlFileIfNeeded(_0x3727e8,_0x5e8b30,_0x75caaa){const _0xe010ca=a125_0x58d645;if(!_0x5e8b30||_0x5e8b30===_0x75caaa)return;const _0x259c84=join(_0x3727e8[_0xe010ca(0x203)],_0x5e8b30);if(!await fileExists(_0x259c84))return;const _0x543b79=await moveToTrash(_0x3727e8[_0xe010ca(0x20b)],_0x3727e8[_0xe010ca(0x21e)],_0x259c84);await cleanupEmptyDirectories(dirname(_0x259c84),_0x3727e8[_0xe010ca(0x203)]),void _0x543b79;}async function moveToTrash(_0x2b2e6e,_0x3f7b18,_0x2e035){const _0x2ea5e4=a125_0x58d645,_0x31829f=new Date()['toISOString']()[_0x2ea5e4(0x1ec)](/[:.]/g,'-'),_0x3af8b8=relative(_0x2b2e6e,_0x2e035),_0x449fab=join(_0x3f7b18,_0x31829f,_0x3af8b8);return await mkdir(dirname(_0x449fab),{'recursive':!![]}),await rename(_0x2e035,_0x449fab),_0x449fab;}async function cleanupEmptyDirectories(_0x59748c,_0xd31ea8){const _0x3a1ed5=a125_0x58d645;let _0x565298=resolve(_0x59748c);const _0x5904a4=resolve(_0xd31ea8);while(_0x565298['startsWith'](''+_0x5904a4+sep)||_0x565298===_0x5904a4){if(_0x565298===_0x5904a4)return;try{const _0x395c5d=await readdir(_0x565298);if(_0x395c5d[_0x3a1ed5(0x1f5)]>0x0)return;await rmdir(_0x565298);}catch{return;}_0x565298=dirname(_0x565298);}}async function resolveTargetDbBinding(_0x4cfee5,_0x46dbe1,_0x4594e7){const _0x1ee810=a125_0x58d645,_0x1404e3=_0x46dbe1[_0x1ee810(0x223)];if(!_0x1404e3)return{'dbId':_0x4594e7[_0x1ee810(0x22e)],'dbName':_0x4594e7[_0x1ee810(0x218)]};const _0x1a1aab=buildDbDirectoryName(_0x4594e7[_0x1ee810(0x218)],_0x4594e7['dbId']);if(_0x1404e3===_0x1a1aab)return{'dbId':_0x4594e7[_0x1ee810(0x22e)],'dbName':_0x4594e7[_0x1ee810(0x218)]};const _0x4d22ab=parseExplicitDbDirectory(_0x1404e3);if(_0x4d22ab!=null)return{'dbId':_0x4d22ab,'dbName':await getDbName(_0x4cfee5,_0x4d22ab)[_0x1ee810(0x21c)](()=>undefined)};const _0x50dae9=await listDatabases(_0x4cfee5),_0x36fb8e=_0x50dae9[_0x1ee810(0x214)](_0x145b16=>buildDbDirectoryName(_0x145b16['dbName'],_0x145b16['dbId'])===_0x1404e3);if(_0x36fb8e[_0x1ee810(0x1f5)]===0x1)return{'dbId':_0x36fb8e[0x0]['dbId'],'dbName':_0x36fb8e[0x0][_0x1ee810(0x218)]};if(_0x36fb8e['length']===0x0)throw CliErrors[_0x1ee810(0x202)](_0x1ee810(0x209)+_0x1404e3+_0x1ee810(0x1fb)+_0x46dbe1[_0x1ee810(0x22c)]+'.');const _0x10c226=_0x36fb8e[_0x1ee810(0x1ee)](_0x49c88d=>_0x49c88d[_0x1ee810(0x218)]+'\x20('+_0x49c88d[_0x1ee810(0x22e)]+')')[_0x1ee810(0x217)](',\x20');throw CliErrors[_0x1ee810(0x202)](_0x1ee810(0x201)+_0x1404e3+_0x1ee810(0x22d)+_0x46dbe1[_0x1ee810(0x22c)]+':\x20'+_0x10c226);}function parseExplicitDbDirectory(_0x1d904d){const _0x3e88c7=a125_0x58d645,_0x2ebb33=/^db-(\d+)$/[_0x3e88c7(0x219)](_0x1d904d);if(!_0x2ebb33)return null;const _0x2e33ff=Number(_0x2ebb33[0x1]);return Number[_0x3e88c7(0x1ef)](_0x2e33ff)&&_0x2e33ff>0x0?_0x2e33ff:null;}
1
+ const a126_0x5723fd=a126_0x4277;(function(_0x19ca59,_0x3e6d30){const _0x2ff840=a126_0x4277,_0x4d0f2c=_0x19ca59();while(!![]){try{const _0x3d07cc=-parseInt(_0x2ff840(0x118))/0x1+parseInt(_0x2ff840(0xe4))/0x2+parseInt(_0x2ff840(0xf4))/0x3+-parseInt(_0x2ff840(0xf2))/0x4+-parseInt(_0x2ff840(0xf3))/0x5+parseInt(_0x2ff840(0xfb))/0x6*(-parseInt(_0x2ff840(0x108))/0x7)+parseInt(_0x2ff840(0x10f))/0x8;if(_0x3d07cc===_0x3e6d30)break;else _0x4d0f2c['push'](_0x4d0f2c['shift']());}catch(_0x39af15){_0x4d0f2c['push'](_0x4d0f2c['shift']());}}}(a126_0x10ec,0x94a18));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';function a126_0x4277(_0x61b4e1,_0x52f506){_0x61b4e1=_0x61b4e1-0xe1;const _0x10ec57=a126_0x10ec();let _0x4277a3=_0x10ec57[_0x61b4e1];return _0x4277a3;}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(_0x7301bf,_0x18e189,_0x5894e1){const _0x128d53=a126_0x4277,_0x253459=await scanLocalSqlQueries(_0x7301bf),_0xf99b3b=new Map();for(const _0x1df4b3 of _0x253459){if(_0x5894e1&&_0x1df4b3[_0x128d53(0x10c)]!==_0x5894e1)continue;const _0x25d4cc=_0xf99b3b[_0x128d53(0x113)](_0x1df4b3[_0x128d53(0x10c)])??[];_0x25d4cc[_0x128d53(0x107)](_0x1df4b3),_0xf99b3b[_0x128d53(0x117)](_0x1df4b3['sqlCode'],_0x25d4cc);}if(_0x5894e1&&!_0xf99b3b[_0x128d53(0xf0)](_0x5894e1))throw CliErrors[_0x128d53(0x102)](_0x128d53(0x11e)+_0x5894e1);const _0x355886=[];for(const [_0x4abafe,_0xee18b8]of _0xf99b3b['entries']()){if(_0xee18b8[_0x128d53(0xf6)]===0x1){_0x355886[_0x128d53(0x107)](_0xee18b8[0x0]);continue;}const _0x266e98=_0x18e189[_0x128d53(0x122)][_0x4abafe],_0x1505d9=_0x266e98?.[_0x128d53(0xe1)],_0x515183=_0x1505d9?_0xee18b8[_0x128d53(0xed)](_0x1548c9=>_0x1548c9['relativePath']!==_0x1505d9):_0xee18b8;if(_0x266e98&&_0x515183[_0x128d53(0xf6)]===0x1){_0x355886['push'](_0x515183[0x0]);continue;}throw CliErrors[_0x128d53(0x102)]('Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20'+_0x4abafe+_0x128d53(0x104));}return _0x355886;}export const sqlPush={'service':a126_0x5723fd(0xfd),'command':'push','description':a126_0x5723fd(0x106),'risk':a126_0x5723fd(0xe8),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a126_0x5723fd(0xe9),'type':a126_0x5723fd(0x11f),'description':a126_0x5723fd(0x11c)}],async 'dryRun'(_0x4760c3){const _0x33b33d=a126_0x5723fd,_0x23c322=loadSqlProjectConfig(_0x4760c3[_0x33b33d(0x10d)]),_0x4d8fa2=await readSqlLockFile(_0x23c322[_0x33b33d(0xee)]),{appLock:_0x166d60}=ensureSqlLockScope(_0x4d8fa2??createEmptySqlLock(),_0x4760c3[_0x33b33d(0x10d)],_0x23c322[_0x33b33d(0x100)],_0x33b33d(0x107)),_0x16d4a2=await getTargetSqlQueries(_0x23c322,_0x166d60,_0x4760c3['str']('sqlcode')||undefined),_0x3a7165=[];for(const _0x9e5979 of _0x16d4a2){const _0x4522ba=await computeSqlFileHash(_0x9e5979[_0x33b33d(0x116)]),_0x651d1e=_0x166d60[_0x33b33d(0x122)][_0x9e5979[_0x33b33d(0x10c)]],_0x4531f9=!!_0x651d1e&&(_0x651d1e[_0x33b33d(0xe1)]!==_0x9e5979['relativePath']||!!_0x9e5979['sqlName']&&_0x651d1e[_0x33b33d(0xe6)]!==_0x9e5979[_0x33b33d(0xe6)]);if(!_0x4760c3['bool'](_0x33b33d(0xe9))&&_0x651d1e&&_0x651d1e['hash']===_0x4522ba&&!_0x4531f9)continue;_0x3a7165['push'](_0x9e5979['sqlCode']);}return{'method':_0x33b33d(0x112),'url':'/smartapi/custom/updateUserCustomSql','body':{'sqlCodes':_0x3a7165,'appCode':_0x4760c3[_0x33b33d(0x10d)]},'description':_0x33b33d(0xea)+_0x3a7165[_0x33b33d(0xf6)]+_0x33b33d(0x11b)};},async 'execute'(_0x5587a8){const _0x1cb0f7=a126_0x5723fd,_0x5daab6=loadSqlProjectConfig(_0x5587a8[_0x1cb0f7(0x10d)]),_0x13d435=await readSqlLockFile(_0x5daab6[_0x1cb0f7(0xee)]),{lockData:_0x55355f,appLock:_0x2f9f06}=ensureSqlLockScope(_0x13d435??createEmptySqlLock(),_0x5587a8[_0x1cb0f7(0x10d)],_0x5daab6[_0x1cb0f7(0x100)],'push'),_0xce4e58=await getTargetSqlQueries(_0x5daab6,_0x2f9f06,_0x5587a8[_0x1cb0f7(0xfe)](_0x1cb0f7(0xec))||undefined);if(_0xce4e58[_0x1cb0f7(0xf6)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x377e8d=[],_0x5170d6=[],_0x4d3b28=[];for(const _0x539dfb of _0xce4e58){const _0x347235=_0x2f9f06[_0x1cb0f7(0x122)][_0x539dfb['sqlCode']];if(!_0x347235){_0x4d3b28[_0x1cb0f7(0x107)]({'sqlCode':_0x539dfb[_0x1cb0f7(0x10c)],'error':_0x1cb0f7(0xe2)});continue;}try{const _0x506333=await computeSqlFileHash(_0x539dfb[_0x1cb0f7(0x116)]),_0x25dc90=_0x347235[_0x1cb0f7(0xe1)]!==_0x539dfb[_0x1cb0f7(0xff)]||!!_0x539dfb[_0x1cb0f7(0xe6)]&&_0x347235['sqlName']!==_0x539dfb['sqlName'];if(!_0x5587a8[_0x1cb0f7(0x110)](_0x1cb0f7(0xe9))&&_0x347235['hash']===_0x506333&&!_0x25dc90){_0x5170d6[_0x1cb0f7(0x107)]({'sqlCode':_0x539dfb[_0x1cb0f7(0x10c)],'reason':_0x1cb0f7(0x109)});continue;}if(_0x347235[_0x1cb0f7(0x11a)]==null){_0x4d3b28[_0x1cb0f7(0x107)]({'sqlCode':_0x539dfb[_0x1cb0f7(0x10c)],'error':_0x1cb0f7(0x121)});continue;}const _0x2dda41=await readFile(_0x539dfb['filePath'],_0x1cb0f7(0x11d)),_0x573241=stripLocalSqlMetadata(_0x2dda41,_0x539dfb[_0x1cb0f7(0xe5)]),_0x498ba4=_0x539dfb[_0x1cb0f7(0xe6)]||_0x347235[_0x1cb0f7(0xe6)],_0x3eb5b1=await resolveTargetDbBinding(_0x5587a8[_0x1cb0f7(0x10d)],_0x539dfb,_0x347235),_0xe600f8=await updateSqlQuery({'id':_0x347235[_0x1cb0f7(0x114)],'appCode':_0x5587a8[_0x1cb0f7(0x10d)],'sqlCode':_0x539dfb[_0x1cb0f7(0x10c)],'sqlName':_0x498ba4,'dbId':_0x3eb5b1[_0x1cb0f7(0x111)],'version':_0x347235[_0x1cb0f7(0x11a)],'sqlContent':_0x573241,'sqlConfig':_0x347235[_0x1cb0f7(0x103)]??undefined}),_0x46b116=_0xe600f8[_0x1cb0f7(0x111)]?await getDbName(_0x5587a8['appCode'],Number(_0xe600f8[_0x1cb0f7(0x111)]))[_0x1cb0f7(0x115)](()=>_0x3eb5b1[_0x1cb0f7(0xeb)]):_0x3eb5b1[_0x1cb0f7(0xeb)];_0x2f9f06['sqls'][_0x539dfb['sqlCode']]={...buildSqlLockEntry(_0xe600f8,_0x573241,_0x506333,{'dbName':_0x46b116}),'path':_0x539dfb[_0x1cb0f7(0xff)],'mode':_0x347235[_0x1cb0f7(0xe5)]},await archivePreviousSqlFileIfNeeded(_0x5daab6,_0x347235['path'],_0x539dfb[_0x1cb0f7(0xff)]),_0x377e8d['push']({'sqlCode':_0x539dfb['sqlCode'],'remoteId':_0x347235[_0x1cb0f7(0x114)]});}catch(_0x40e580){_0x4d3b28[_0x1cb0f7(0x107)]({'sqlCode':_0x539dfb[_0x1cb0f7(0x10c)],'error':_0x40e580 instanceof Error?_0x40e580[_0x1cb0f7(0x119)]:String(_0x40e580)});}}return _0x2f9f06[_0x1cb0f7(0xfa)]=new Date()[_0x1cb0f7(0x101)](),await writeSqlLockFile(_0x5daab6[_0x1cb0f7(0xee)],_0x55355f),{'ok':_0x4d3b28[_0x1cb0f7(0xf6)]===0x0,'data':{'pushed':_0x377e8d,'skipped':_0x5170d6,'failed':_0x4d3b28},'message':_0x1cb0f7(0xf7)+_0x377e8d['length']+_0x1cb0f7(0xf1)+_0x5170d6[_0x1cb0f7(0xf6)]+'\x20skipped,\x20'+_0x4d3b28[_0x1cb0f7(0xf6)]+_0x1cb0f7(0xf5)};}};async function archivePreviousSqlFileIfNeeded(_0x45894e,_0x57f0e4,_0x1385cb){const _0x5151dc=a126_0x5723fd;if(!_0x57f0e4||_0x57f0e4===_0x1385cb)return;const _0xe32531=join(_0x45894e['sqlRootDir'],_0x57f0e4);if(!await fileExists(_0xe32531))return;const _0x239562=await moveToTrash(_0x45894e['projectRoot'],_0x45894e[_0x5151dc(0x10b)],_0xe32531);await cleanupEmptyDirectories(dirname(_0xe32531),_0x45894e[_0x5151dc(0xf8)]),void _0x239562;}async function moveToTrash(_0x306862,_0x427b55,_0x3eb803){const _0x5078a3=a126_0x5723fd,_0x52f8db=new Date()[_0x5078a3(0x101)]()[_0x5078a3(0x120)](/[:.]/g,'-'),_0x2d754f=relative(_0x306862,_0x3eb803),_0x229032=join(_0x427b55,_0x52f8db,_0x2d754f);return await mkdir(dirname(_0x229032),{'recursive':!![]}),await rename(_0x3eb803,_0x229032),_0x229032;}function a126_0x10ec(){const _0x3b0d7f=['.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','exec','Push\x20local\x20SQL\x20files\x20to\x20remote','push','42QgwpYT','unchanged','No\x20database\x20matches\x20local\x20directory\x20\x22','trashDir','sqlCode','appCode','isFinite','8060888cTdMUQ','bool','dbId','POST','get','remoteId','catch','filePath','set','574695qhPJmC','message','version','\x20SQL\x20file(s)','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','utf8','Local\x20SQL\x20not\x20found:\x20','boolean','replace','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','sqls','path','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','dbDirectory','2073254fOWbAV','mode','sqlName','map','high-risk-write','force','Would\x20push\x20','dbName','sqlcode','filter','lockFilePath','\x22\x20for\x20sqlCode\x20','has','\x20pushed,\x20','2171180IpaycE','918075SMrAZw','1866723vlKMGk','\x20failed','length','Push\x20complete:\x20','sqlRootDir','startsWith','lastSync','756582ICHNYB','join','sql','str','relativePath','sqlRoot','toISOString','validation','sqlConfig'];a126_0x10ec=function(){return _0x3b0d7f;};return a126_0x10ec();}async function cleanupEmptyDirectories(_0x3d4219,_0x3512fe){const _0x2fb236=a126_0x5723fd;let _0x2c023c=resolve(_0x3d4219);const _0x155e72=resolve(_0x3512fe);while(_0x2c023c[_0x2fb236(0xf9)](''+_0x155e72+sep)||_0x2c023c===_0x155e72){if(_0x2c023c===_0x155e72)return;try{const _0x1ee84c=await readdir(_0x2c023c);if(_0x1ee84c['length']>0x0)return;await rmdir(_0x2c023c);}catch{return;}_0x2c023c=dirname(_0x2c023c);}}async function resolveTargetDbBinding(_0x48ead5,_0x37e4dc,_0x15704d){const _0x20a47a=a126_0x5723fd,_0x456e14=_0x37e4dc[_0x20a47a(0xe3)];if(!_0x456e14)return{'dbId':_0x15704d[_0x20a47a(0x111)],'dbName':_0x15704d['dbName']};const _0xd23dc4=buildDbDirectoryName(_0x15704d['dbName'],_0x15704d[_0x20a47a(0x111)]);if(_0x456e14===_0xd23dc4)return{'dbId':_0x15704d[_0x20a47a(0x111)],'dbName':_0x15704d[_0x20a47a(0xeb)]};const _0x5de247=parseExplicitDbDirectory(_0x456e14);if(_0x5de247!=null)return{'dbId':_0x5de247,'dbName':await getDbName(_0x48ead5,_0x5de247)[_0x20a47a(0x115)](()=>undefined)};const _0x3c479d=await listDatabases(_0x48ead5),_0x5f541d=_0x3c479d['filter'](_0x4c02cb=>buildDbDirectoryName(_0x4c02cb[_0x20a47a(0xeb)],_0x4c02cb['dbId'])===_0x456e14);if(_0x5f541d[_0x20a47a(0xf6)]===0x1)return{'dbId':_0x5f541d[0x0][_0x20a47a(0x111)],'dbName':_0x5f541d[0x0][_0x20a47a(0xeb)]};if(_0x5f541d[_0x20a47a(0xf6)]===0x0)throw CliErrors[_0x20a47a(0x102)](_0x20a47a(0x10a)+_0x456e14+_0x20a47a(0xef)+_0x37e4dc['sqlCode']+'.');const _0x464272=_0x5f541d[_0x20a47a(0xe7)](_0x3c74af=>_0x3c74af[_0x20a47a(0xeb)]+'\x20('+_0x3c74af[_0x20a47a(0x111)]+')')[_0x20a47a(0xfc)](',\x20');throw CliErrors[_0x20a47a(0x102)]('Local\x20directory\x20\x22'+_0x456e14+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x37e4dc[_0x20a47a(0x10c)]+':\x20'+_0x464272);}function parseExplicitDbDirectory(_0x1d93ee){const _0x531962=a126_0x5723fd,_0x203f2b=/^db-(\d+)$/[_0x531962(0x105)](_0x1d93ee);if(!_0x203f2b)return null;const _0x43dbc6=Number(_0x203f2b[0x1]);return Number[_0x531962(0x10e)](_0x43dbc6)&&_0x43dbc6>0x0?_0x43dbc6:null;}
@@ -1 +1 @@
1
- const a126_0x55d589=a126_0x42d6;(function(_0x84fbd,_0x1df851){const _0x1e385e=a126_0x42d6,_0x55d6d5=_0x84fbd();while(!![]){try{const _0x58b1dc=-parseInt(_0x1e385e(0x181))/0x1+parseInt(_0x1e385e(0x18c))/0x2*(parseInt(_0x1e385e(0x17a))/0x3)+parseInt(_0x1e385e(0x187))/0x4+-parseInt(_0x1e385e(0x17d))/0x5*(parseInt(_0x1e385e(0x17f))/0x6)+-parseInt(_0x1e385e(0x188))/0x7+-parseInt(_0x1e385e(0x17e))/0x8+parseInt(_0x1e385e(0x185))/0x9;if(_0x58b1dc===_0x1df851)break;else _0x55d6d5['push'](_0x55d6d5['shift']());}catch(_0x521aff){_0x55d6d5['push'](_0x55d6d5['shift']());}}}(a126_0x22a4,0x8cff2));import{CliErrors}from'../../errors.js';function a126_0x42d6(_0x2c0d01,_0x2da794){_0x2c0d01=_0x2c0d01-0x179;const _0x22a492=a126_0x22a4();let _0x42d6b8=_0x22a492[_0x2c0d01];return _0x42d6b8;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a126_0x55d589(0x17b),a126_0x55d589(0x18d),a126_0x55d589(0x18e)][a126_0x55d589(0x182)]('\x0a');function a126_0x22a4(){const _0x5da296=['join','Query\x20description','SQL\x20query\x20display\x20name','11828763CdqAEQ','validation','3506712aIJCtG','1427279HMYyyQ','save','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','file','613914KBSgoF','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`.','Path\x20to\x20the\x20SQL\x20file','6oqUqYe','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','sql','25TKkstJ','1357840qGyrWn','1255860ZMJbEu','string','807200oFjFQT'];a126_0x22a4=function(){return _0x5da296;};return a126_0x22a4();}export const sqlSave={'service':a126_0x55d589(0x17c),'command':a126_0x55d589(0x189),'description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a126_0x55d589(0x18b),'type':a126_0x55d589(0x180),'required':!![],'description':a126_0x55d589(0x179)},SQLCODE_FLAG_OPTIONAL,{'name':'sqlname','type':'string','description':a126_0x55d589(0x184)},{'name':'db','type':a126_0x55d589(0x180),'description':a126_0x55d589(0x18a)},{'name':'description','type':a126_0x55d589(0x180),'description':a126_0x55d589(0x183)}],async 'validate'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x4a979e=a126_0x55d589;throw CliErrors[_0x4a979e(0x186)](SQL_SAVE_DEPRECATED_HINT);}};
1
+ const a127_0x1db5e1=a127_0x54cf;function a127_0x38f6(){const _0x225441=['save','239490qhTHGT','Path\x20to\x20the\x20SQL\x20file','Query\x20description','30084WbZVJm','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','file','917432QJjVxT','validation','28LQIejd','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','join','sqlname','string','sql','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','342685aZqacs','SQL\x20query\x20display\x20name','write','653564dIXVya','2HBOhST','1468227NPyKLS','9423rkkkwq','6700xSGfxi'];a127_0x38f6=function(){return _0x225441;};return a127_0x38f6();}(function(_0x4e9bd8,_0x940f4e){const _0x5b3dc2=a127_0x54cf,_0x5a8b9c=_0x4e9bd8();while(!![]){try{const _0x2733ef=parseInt(_0x5b3dc2(0xf2))/0x1+-parseInt(_0x5b3dc2(0xf6))/0x2*(parseInt(_0x5b3dc2(0xf7))/0x3)+parseInt(_0x5b3dc2(0xf5))/0x4+parseInt(_0x5b3dc2(0xe3))/0x5+-parseInt(_0x5b3dc2(0xe6))/0x6+parseInt(_0x5b3dc2(0xeb))/0x7*(-parseInt(_0x5b3dc2(0xe9))/0x8)+-parseInt(_0x5b3dc2(0xf8))/0x9*(-parseInt(_0x5b3dc2(0xe1))/0xa);if(_0x2733ef===_0x940f4e)break;else _0x5a8b9c['push'](_0x5a8b9c['shift']());}catch(_0xc69989){_0x5a8b9c['push'](_0x5a8b9c['shift']());}}}(a127_0x38f6,0x49cf5));import{CliErrors}from'../../errors.js';function a127_0x54cf(_0x525174,_0x22c521){_0x525174=_0x525174-0xe1;const _0x38f6b3=a127_0x38f6();let _0x54cf78=_0x38f6b3[_0x525174];return _0x54cf78;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.',a127_0x1db5e1(0xec),'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`.'][a127_0x1db5e1(0xed)]('\x0a');export const sqlSave={'service':a127_0x1db5e1(0xf0),'command':a127_0x1db5e1(0xe2),'description':a127_0x1db5e1(0xf1),'risk':a127_0x1db5e1(0xf4),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a127_0x1db5e1(0xe8),'type':a127_0x1db5e1(0xef),'required':!![],'description':a127_0x1db5e1(0xe4)},SQLCODE_FLAG_OPTIONAL,{'name':a127_0x1db5e1(0xee),'type':a127_0x1db5e1(0xef),'description':a127_0x1db5e1(0xf3)},{'name':'db','type':'string','description':a127_0x1db5e1(0xe7)},{'name':'description','type':a127_0x1db5e1(0xef),'description':a127_0x1db5e1(0xe5)}],async 'validate'(){const _0x54dded=a127_0x1db5e1;throw CliErrors[_0x54dded(0xea)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x38b897=a127_0x1db5e1;throw CliErrors[_0x38b897(0xea)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- const a127_0x1fb78b=a127_0x31c5;(function(_0x2634c5,_0x3413c7){const _0x2cd5c6=a127_0x31c5,_0x471d8d=_0x2634c5();while(!![]){try{const _0x454b45=-parseInt(_0x2cd5c6(0x134))/0x1*(-parseInt(_0x2cd5c6(0x12b))/0x2)+parseInt(_0x2cd5c6(0x13c))/0x3*(-parseInt(_0x2cd5c6(0x14c))/0x4)+parseInt(_0x2cd5c6(0x150))/0x5*(parseInt(_0x2cd5c6(0x149))/0x6)+-parseInt(_0x2cd5c6(0x14f))/0x7+parseInt(_0x2cd5c6(0x126))/0x8+-parseInt(_0x2cd5c6(0x13f))/0x9+-parseInt(_0x2cd5c6(0x131))/0xa*(parseInt(_0x2cd5c6(0x14a))/0xb);if(_0x454b45===_0x3413c7)break;else _0x471d8d['push'](_0x471d8d['shift']());}catch(_0x24d351){_0x471d8d['push'](_0x471d8d['shift']());}}}(a127_0x5a29,0xd0bd4));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=a127_0x1fb78b(0x145);export function buildSqlLockEntry(_0x4540a5,_0x416683,_0xb40954,_0x22ff55){const _0x2f8513=a127_0x1fb78b,_0x584cc6=detectSqlMode(_0x416683);return{'path':buildSqlRelativePath(_0x4540a5[_0x2f8513(0x13b)],_0x4540a5[_0x2f8513(0x125)],_0x22ff55?.[_0x2f8513(0x12a)],_0x584cc6,_0x4540a5[_0x2f8513(0x12e)]),'hash':_0xb40954,'remoteId':_0x4540a5['id'],'version':_0x4540a5['version'],'dbId':Number(_0x4540a5['dbId']),'dbName':_0x22ff55?.[_0x2f8513(0x12a)],'sqlName':_0x4540a5['sqlName'],'sqlConfig':_0x4540a5['sqlConfig']??undefined,'mode':_0x584cc6};}function a127_0x31c5(_0x15224b,_0x2b29eb){_0x15224b=_0x15224b-0x125;const _0x5a293a=a127_0x5a29();let _0x31c5b9=_0x5a293a[_0x15224b];return _0x31c5b9;}export function cloneSqlLockData(_0x129afb){const _0x9605d7=a127_0x1fb78b;return{'apps':Object['fromEntries'](Object[_0x9605d7(0x133)](_0x129afb[_0x9605d7(0x129)])[_0x9605d7(0x127)](([_0x2cc55a,_0x50e394])=>[_0x2cc55a,{'sqlRoot':_0x50e394[_0x9605d7(0x146)],'lastSync':_0x50e394[_0x9605d7(0x140)],'sqls':{..._0x50e394[_0x9605d7(0x142)]}}]))};}export function ensureRemoteSqlContent(_0x3b507b){const _0x5f219f=a127_0x1fb78b;return _0x3b507b[_0x5f219f(0x136)]??'';}export function buildLocalSqlFileContent(_0x87b2cf,_0xacd522,_0x145a7e){const _0x6b12d0=a127_0x1fb78b,_0x5b0d8e=_0x145a7e?.[_0x6b12d0(0x147)]??detectSqlMode(_0xacd522),_0x56dbd7=stripLocalSqlMetadata(_0xacd522,_0x5b0d8e)[_0x6b12d0(0x14e)](),_0x2a8107=[...buildMetadataHeaderLines({'sqlCode':_0x87b2cf['sqlCode'],'sqlName':_0x87b2cf[_0x6b12d0(0x125)],'dbId':_0x87b2cf[_0x6b12d0(0x12e)],'dbName':_0x145a7e?.[_0x6b12d0(0x12a)],'mode':_0x5b0d8e,'syncedAt':_0x145a7e?.[_0x6b12d0(0x12c)],'description':_0x145a7e?.[_0x6b12d0(0x13e)]},_0x5b0d8e),'',_0x56dbd7],_0x26f77e=_0x2a8107['join']('\x0a');return _0x26f77e[_0x6b12d0(0x14d)]('\x0a')?_0x26f77e:_0x26f77e+'\x0a';}function a127_0x5a29(){const _0x226cea=['trimStart','sqlCode','1524417mnvVSC','split','description','8686809PTzymD','lastSync','stderr','sqls','close','replace','.rabetbase/sql','sqlRoot','mode','includes','6uWOvve','984038KvWpoC','test','4sLBagd','endsWith','trim','876057GvkdJm','2421145LxcmUr','stdin','sqlName','10942296UtHNKE','map','length','apps','dbName','34OgTxyy','syncedAt','toLowerCase','dbId','question','\x20-->','100ouBbUV','join','entries','88003rAYMIp','mybatisXml','sqlContent','yes','push','filter'];a127_0x5a29=function(){return _0x226cea;};return a127_0x5a29();}export function stripLocalSqlMetadata(_0x1ffc76,_0x5051c8){const _0x6fc195=a127_0x1fb78b,_0x3e7733=_0x1ffc76[_0x6fc195(0x144)](/\r\n/g,'\x0a')[_0x6fc195(0x13d)]('\x0a'),_0x564899=[];let _0x4387a0=0x0;if(_0x5051c8==='mybatisXml')while(_0x4387a0<_0x3e7733[_0x6fc195(0x128)]){const _0x21b93d=_0x3e7733[_0x4387a0]??'';if(/^\s*<!--\s*@lovrabet\./[_0x6fc195(0x14b)](_0x21b93d)){_0x4387a0++;continue;}if(_0x21b93d[_0x6fc195(0x14e)]()===''&&_0x4387a0>0x0){_0x4387a0++;continue;}break;}else while(_0x4387a0<_0x3e7733[_0x6fc195(0x128)]){const _0x268dc0=_0x3e7733[_0x4387a0]??'';if(/^\s*--\s*@lovrabet\./[_0x6fc195(0x14b)](_0x268dc0)){_0x4387a0++;continue;}if(_0x268dc0[_0x6fc195(0x14e)]()===''&&_0x4387a0>0x0){_0x4387a0++;continue;}break;}for(;_0x4387a0<_0x3e7733[_0x6fc195(0x128)];_0x4387a0++){_0x564899[_0x6fc195(0x138)](_0x3e7733[_0x4387a0]);}return _0x564899[_0x6fc195(0x132)]('\x0a')[_0x6fc195(0x13a)]();}export function resolveSqlMode(_0x457b25,_0x3d9772){const _0x288cde=a127_0x1fb78b;if(_0x3d9772?.[_0x288cde(0x147)])return _0x3d9772[_0x288cde(0x147)];return detectSqlMode(_0x457b25);}export function resolveSqlFileName(_0x451105,_0x15b00f,_0x14cd6a){const _0x159a9a=a127_0x1fb78b;if(_0x14cd6a?.['path'])return _0x14cd6a['path'];if(_0x14cd6a?.['sqlName']||_0x14cd6a?.[_0x159a9a(0x12a)])return buildSqlRelativePath(_0x451105,_0x14cd6a?.['sqlName'],_0x14cd6a?.[_0x159a9a(0x12a)],resolveSqlMode(_0x15b00f,_0x14cd6a),_0x14cd6a?.['dbId']);return buildDefaultSqlFileName(_0x451105,resolveSqlMode(_0x15b00f,_0x14cd6a));}export function resolveSqlLocalDir(_0x12df33,_0x3fd2d0){return join(_0x12df33,SQL_LOCAL_REL_DIR,_0x3fd2d0);}export async function confirmForceOverwrite(_0x3817cd){const _0xf79cfe=a127_0x1fb78b,_0x313cbe=createInterface({'input':process[_0xf79cfe(0x151)],'output':process[_0xf79cfe(0x141)]}),_0x1bd428=await new Promise(_0x4abfa4=>{const _0x5d1595=_0xf79cfe;_0x313cbe[_0x5d1595(0x12f)](_0x3817cd+'\x20[y/N]\x20',_0x4abfa4);});return _0x313cbe[_0xf79cfe(0x143)](),['y',_0xf79cfe(0x137)][_0xf79cfe(0x148)](_0x1bd428[_0xf79cfe(0x14e)]()[_0xf79cfe(0x12d)]());}export function findSqlLockScope(_0x462ab2,_0x1d122b){const _0x1595bb=a127_0x1fb78b;return _0x462ab2[_0x1595bb(0x129)][_0x1d122b];}function buildMetadataHeaderLines(_0x4bbdd2,_0x2eac5e){const _0xa6c955=a127_0x1fb78b,_0x9fae04=[['sqlCode',_0x4bbdd2[_0xa6c955(0x13b)]],[_0xa6c955(0x125),_0x4bbdd2['sqlName']],[_0xa6c955(0x12e),_0x4bbdd2[_0xa6c955(0x12e)]],['dbName',_0x4bbdd2[_0xa6c955(0x12a)]],[_0xa6c955(0x147),_0x4bbdd2[_0xa6c955(0x147)]],[_0xa6c955(0x12c),_0x4bbdd2[_0xa6c955(0x12c)]],['description',_0x4bbdd2['description']]];if(_0x2eac5e===_0xa6c955(0x135))return _0x9fae04[_0xa6c955(0x139)](([,_0x39c016])=>_0x39c016!==undefined&&_0x39c016!==null&&String(_0x39c016)[_0xa6c955(0x14e)]()!=='')[_0xa6c955(0x127)](([_0x2b65a0,_0x52a6d8])=>'<!--\x20@lovrabet.'+_0x2b65a0+':\x20'+String(_0x52a6d8)+_0xa6c955(0x130));return _0x9fae04[_0xa6c955(0x139)](([,_0x302be8])=>_0x302be8!==undefined&&_0x302be8!==null&&String(_0x302be8)[_0xa6c955(0x14e)]()!=='')['map'](([_0xa19313,_0x53f170])=>'--\x20@lovrabet.'+_0xa19313+':\x20'+String(_0x53f170));}
1
+ const a128_0x232b9f=a128_0x3184;(function(_0x2da3bb,_0x4dbfd6){const _0x94588e=a128_0x3184,_0x5e5155=_0x2da3bb();while(!![]){try{const _0x4028f4=-parseInt(_0x94588e(0x181))/0x1*(parseInt(_0x94588e(0x18f))/0x2)+parseInt(_0x94588e(0x16b))/0x3+-parseInt(_0x94588e(0x166))/0x4*(-parseInt(_0x94588e(0x17e))/0x5)+parseInt(_0x94588e(0x167))/0x6*(parseInt(_0x94588e(0x178))/0x7)+-parseInt(_0x94588e(0x183))/0x8*(parseInt(_0x94588e(0x170))/0x9)+-parseInt(_0x94588e(0x180))/0xa*(parseInt(_0x94588e(0x18b))/0xb)+parseInt(_0x94588e(0x176))/0xc;if(_0x4028f4===_0x4dbfd6)break;else _0x5e5155['push'](_0x5e5155['shift']());}catch(_0x50d1f1){_0x5e5155['push'](_0x5e5155['shift']());}}}(a128_0x1f79,0x5189c));function a128_0x3184(_0x3e4cf9,_0x4ea038){_0x3e4cf9=_0x3e4cf9-0x163;const _0x1f7905=a128_0x1f79();let _0x31844e=_0x1f7905[_0x3e4cf9];return _0x31844e;}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=a128_0x232b9f(0x182);function a128_0x1f79(){const _0x506009=['4222251CsNnqb','mode','version','--\x20@lovrabet.','dbId','includes','777252fTSqZH','endsWith','859733AmOynA','path','sqlCode','sqlContent','\x20-->','question','15JpPguQ','mybatisXml','738550TxWZcc','13FIidHC','.rabetbase/sql','8RqvSgO','sqlRoot','length','lastSync','sqls','join','stderr','replace','66Wdgwyd','test','sqlName','map','9580JGSqik','\x20[y/N]\x20','filter','split','fromEntries','trimStart','trim','apps','572012ktLDcR','18nPnFbc','description','toLowerCase','dbName','1338846wrGbpP','push','<!--\x20@lovrabet.','syncedAt','yes'];a128_0x1f79=function(){return _0x506009;};return a128_0x1f79();}export function buildSqlLockEntry(_0x4c30be,_0x23e0cc,_0x5f2eaa,_0x30d1b3){const _0x2d9c7b=a128_0x232b9f,_0x39f661=detectSqlMode(_0x23e0cc);return{'path':buildSqlRelativePath(_0x4c30be['sqlCode'],_0x4c30be[_0x2d9c7b(0x18d)],_0x30d1b3?.[_0x2d9c7b(0x16a)],_0x39f661,_0x4c30be[_0x2d9c7b(0x174)]),'hash':_0x5f2eaa,'remoteId':_0x4c30be['id'],'version':_0x4c30be[_0x2d9c7b(0x172)],'dbId':Number(_0x4c30be[_0x2d9c7b(0x174)]),'dbName':_0x30d1b3?.['dbName'],'sqlName':_0x4c30be[_0x2d9c7b(0x18d)],'sqlConfig':_0x4c30be['sqlConfig']??undefined,'mode':_0x39f661};}export function cloneSqlLockData(_0x52b259){const _0x4c2093=a128_0x232b9f;return{'apps':Object[_0x4c2093(0x193)](Object['entries'](_0x52b259[_0x4c2093(0x165)])[_0x4c2093(0x18e)](([_0x4de50f,_0x2bbd8b])=>[_0x4de50f,{'sqlRoot':_0x2bbd8b[_0x4c2093(0x184)],'lastSync':_0x2bbd8b[_0x4c2093(0x186)],'sqls':{..._0x2bbd8b[_0x4c2093(0x187)]}}]))};}export function ensureRemoteSqlContent(_0xd90890){const _0x441493=a128_0x232b9f;return _0xd90890[_0x441493(0x17b)]??'';}export function buildLocalSqlFileContent(_0x31217b,_0x21add1,_0x1f723d){const _0x514abb=a128_0x232b9f,_0x4f3b82=_0x1f723d?.[_0x514abb(0x171)]??detectSqlMode(_0x21add1),_0x472ac6=stripLocalSqlMetadata(_0x21add1,_0x4f3b82)[_0x514abb(0x164)](),_0x38c7bf=[...buildMetadataHeaderLines({'sqlCode':_0x31217b['sqlCode'],'sqlName':_0x31217b[_0x514abb(0x18d)],'dbId':_0x31217b[_0x514abb(0x174)],'dbName':_0x1f723d?.['dbName'],'mode':_0x4f3b82,'syncedAt':_0x1f723d?.[_0x514abb(0x16e)],'description':_0x1f723d?.[_0x514abb(0x168)]},_0x4f3b82),'',_0x472ac6],_0x17d1ff=_0x38c7bf['join']('\x0a');return _0x17d1ff[_0x514abb(0x177)]('\x0a')?_0x17d1ff:_0x17d1ff+'\x0a';}export function stripLocalSqlMetadata(_0x5cbff5,_0x1052ec){const _0x54512a=a128_0x232b9f,_0x282ac1=_0x5cbff5[_0x54512a(0x18a)](/\r\n/g,'\x0a')[_0x54512a(0x192)]('\x0a'),_0x22a328=[];let _0x181246=0x0;if(_0x1052ec===_0x54512a(0x17f))while(_0x181246<_0x282ac1[_0x54512a(0x185)]){const _0xe5896b=_0x282ac1[_0x181246]??'';if(/^\s*<!--\s*@lovrabet\./[_0x54512a(0x18c)](_0xe5896b)){_0x181246++;continue;}if(_0xe5896b[_0x54512a(0x164)]()===''&&_0x181246>0x0){_0x181246++;continue;}break;}else while(_0x181246<_0x282ac1['length']){const _0x268e0f=_0x282ac1[_0x181246]??'';if(/^\s*--\s*@lovrabet\./[_0x54512a(0x18c)](_0x268e0f)){_0x181246++;continue;}if(_0x268e0f[_0x54512a(0x164)]()===''&&_0x181246>0x0){_0x181246++;continue;}break;}for(;_0x181246<_0x282ac1['length'];_0x181246++){_0x22a328[_0x54512a(0x16c)](_0x282ac1[_0x181246]);}return _0x22a328[_0x54512a(0x188)]('\x0a')[_0x54512a(0x163)]();}export function resolveSqlMode(_0x3b0743,_0x36d573){const _0x292785=a128_0x232b9f;if(_0x36d573?.[_0x292785(0x171)])return _0x36d573[_0x292785(0x171)];return detectSqlMode(_0x3b0743);}export function resolveSqlFileName(_0x531310,_0x1658ea,_0x174465){const _0x42ad41=a128_0x232b9f;if(_0x174465?.[_0x42ad41(0x179)])return _0x174465[_0x42ad41(0x179)];if(_0x174465?.[_0x42ad41(0x18d)]||_0x174465?.['dbName'])return buildSqlRelativePath(_0x531310,_0x174465?.['sqlName'],_0x174465?.[_0x42ad41(0x16a)],resolveSqlMode(_0x1658ea,_0x174465),_0x174465?.[_0x42ad41(0x174)]);return buildDefaultSqlFileName(_0x531310,resolveSqlMode(_0x1658ea,_0x174465));}export function resolveSqlLocalDir(_0x1c978d,_0x4f3018){return join(_0x1c978d,SQL_LOCAL_REL_DIR,_0x4f3018);}export async function confirmForceOverwrite(_0x558833){const _0x4b8ec6=a128_0x232b9f,_0x5acbf1=createInterface({'input':process['stdin'],'output':process[_0x4b8ec6(0x189)]}),_0x2a5731=await new Promise(_0x469b6b=>{const _0x5d87da=_0x4b8ec6;_0x5acbf1[_0x5d87da(0x17d)](_0x558833+_0x5d87da(0x190),_0x469b6b);});return _0x5acbf1['close'](),['y',_0x4b8ec6(0x16f)][_0x4b8ec6(0x175)](_0x2a5731['trim']()[_0x4b8ec6(0x169)]());}export function findSqlLockScope(_0xf33e78,_0x292eb6){return _0xf33e78['apps'][_0x292eb6];}function buildMetadataHeaderLines(_0x1280f4,_0x1ddbe4){const _0x3cc869=a128_0x232b9f,_0x3464a4=[[_0x3cc869(0x17a),_0x1280f4[_0x3cc869(0x17a)]],['sqlName',_0x1280f4[_0x3cc869(0x18d)]],[_0x3cc869(0x174),_0x1280f4[_0x3cc869(0x174)]],[_0x3cc869(0x16a),_0x1280f4[_0x3cc869(0x16a)]],['mode',_0x1280f4[_0x3cc869(0x171)]],[_0x3cc869(0x16e),_0x1280f4['syncedAt']],[_0x3cc869(0x168),_0x1280f4[_0x3cc869(0x168)]]];if(_0x1ddbe4===_0x3cc869(0x17f))return _0x3464a4[_0x3cc869(0x191)](([,_0x20571c])=>_0x20571c!==undefined&&_0x20571c!==null&&String(_0x20571c)[_0x3cc869(0x164)]()!=='')[_0x3cc869(0x18e)](([_0x28a5b8,_0x3fc555])=>_0x3cc869(0x16d)+_0x28a5b8+':\x20'+String(_0x3fc555)+_0x3cc869(0x17c));return _0x3464a4['filter'](([,_0x1248bb])=>_0x1248bb!==undefined&&_0x1248bb!==null&&String(_0x1248bb)[_0x3cc869(0x164)]()!=='')[_0x3cc869(0x18e)](([_0x1f7bae,_0x315cd2])=>_0x3cc869(0x173)+_0x1f7bae+':\x20'+String(_0x315cd2));}
@@ -1 +1 @@
1
- const a128_0x3fb1f5=a128_0x1439;(function(_0x4e0827,_0x2e3dbe){const _0x12cbdf=a128_0x1439,_0x47f87d=_0x4e0827();while(!![]){try{const _0x1e9507=parseInt(_0x12cbdf(0xbd))/0x1+-parseInt(_0x12cbdf(0xc6))/0x2*(-parseInt(_0x12cbdf(0xbc))/0x3)+parseInt(_0x12cbdf(0xbf))/0x4+parseInt(_0x12cbdf(0xc0))/0x5+-parseInt(_0x12cbdf(0xca))/0x6*(parseInt(_0x12cbdf(0xc9))/0x7)+parseInt(_0x12cbdf(0xb8))/0x8+-parseInt(_0x12cbdf(0xcf))/0x9;if(_0x1e9507===_0x2e3dbe)break;else _0x47f87d['push'](_0x47f87d['shift']());}catch(_0x32a868){_0x47f87d['push'](_0x47f87d['shift']());}}}(a128_0x5079,0xcfa53));function a128_0x1439(_0x528ad8,_0x517440){_0x528ad8=_0x528ad8-0xb8;const _0x507922=a128_0x5079();let _0x143949=_0x507922[_0x528ad8];return _0x143949;}import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a128_0x5079(){const _0x159cbd=['1472385HHPBpA','push','5278756TAkzWf','3177980wtRGGo','sqlCode','sqlRoot','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','boolean','\x20missing,\x20','3254pGuUVP','map','\x20modified,\x20','148960NbdiyX','456CIyPhl','All\x20SQL\x20queries\x20are\x20in\x20sync.','status','relativePath','\x20unchanged','23025987JJuDZe','keys','lockKey','hash','sql','sqls','filePath','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','appCode','\x20remote-only','bool','read','has','paging','4575448HfWeQG','length','remote','sqlName','1893dLSciY'];a128_0x5079=function(){return _0x159cbd;};return a128_0x5079();}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(_0x5be3f3){const _0x1341f6=a128_0x1439,_0x5c35bc=[];let _0x29df87=0x1;while(!![]){const _0x327544=await listSqlQueries(_0x5be3f3,{'currentPage':_0x29df87,'pageSize':PAGE_SIZE}),_0x346cd4=_0x327544['tableData']??[];_0x5c35bc[_0x1341f6(0xbe)](..._0x346cd4['map'](_0x397d18=>_0x397d18[_0x1341f6(0xc1)]));if(_0x346cd4[_0x1341f6(0xb9)]===0x0)break;const _0x57d3bf=_0x327544[_0x1341f6(0xdc)]?.['totalCount'];if(_0x57d3bf!=null?_0x5c35bc[_0x1341f6(0xb9)]>=_0x57d3bf:_0x346cd4['length']<PAGE_SIZE)break;_0x29df87++;}return _0x5c35bc;}export const sqlStatus={'service':a128_0x3fb1f5(0xd3),'command':a128_0x3fb1f5(0xcc),'description':a128_0x3fb1f5(0xc3),'risk':a128_0x3fb1f5(0xda),'flags':[{'name':a128_0x3fb1f5(0xba),'type':a128_0x3fb1f5(0xc4),'description':a128_0x3fb1f5(0xd6)}],async 'execute'(_0x4dcb05){const _0x473174=a128_0x3fb1f5,_0x62963e=loadSqlProjectConfig(_0x4dcb05[_0x473174(0xd7)]),_0x1d22ee=await readSqlLockFile(_0x62963e['lockFilePath']),{appLock:_0x309d07}=ensureSqlLockScope(_0x1d22ee??createEmptySqlLock(),_0x62963e[_0x473174(0xd7)],_0x62963e[_0x473174(0xc2)],_0x473174(0xcc)),_0x335be8=await scanLocalSqlQueries(_0x62963e),_0xcb82f3=[],_0x1995a9=[],_0xf7da52=[],_0x315094=[],_0x21f9b2=new Set(_0x335be8[_0x473174(0xc7)](_0x2e8502=>_0x2e8502[_0x473174(0xd1)]));for(const _0x462ae8 of _0x335be8){const _0x55dc60=await computeSqlFileHash(_0x462ae8[_0x473174(0xd5)]),_0x222a82=_0x309d07['sqls'][_0x462ae8[_0x473174(0xd1)]],_0x1404ea=!!_0x222a82&&_0x222a82['path']!==_0x462ae8[_0x473174(0xcd)],_0x459c55=!!_0x222a82&&!!_0x462ae8[_0x473174(0xbb)]&&_0x222a82[_0x473174(0xbb)]!==_0x462ae8[_0x473174(0xbb)];if(!_0x222a82)_0xcb82f3['push'](_0x462ae8[_0x473174(0xd1)]);else _0x222a82[_0x473174(0xd2)]!==_0x55dc60||_0x1404ea||_0x459c55?_0x1995a9[_0x473174(0xbe)](_0x462ae8[_0x473174(0xd1)]):_0xf7da52[_0x473174(0xbe)](_0x462ae8[_0x473174(0xd1)]);}for(const _0x22a6bb of Object[_0x473174(0xd0)](_0x309d07[_0x473174(0xd4)])){!_0x21f9b2[_0x473174(0xdb)](_0x22a6bb)&&_0x315094['push'](_0x22a6bb);}const _0x587609=[];if(_0x4dcb05[_0x473174(0xd9)](_0x473174(0xba))){const _0x22aa55=await fetchAllSqlCodes(_0x4dcb05[_0x473174(0xd7)]);for(const _0x4264b6 of _0x22aa55){!_0x21f9b2[_0x473174(0xdb)](_0x4264b6)&&!_0x309d07[_0x473174(0xd4)][_0x4264b6]&&_0x587609['push'](_0x4264b6);}}const _0x64edd4=_0xcb82f3[_0x473174(0xb9)]===0x0&&_0x1995a9[_0x473174(0xb9)]===0x0&&_0x315094[_0x473174(0xb9)]===0x0&&_0x587609[_0x473174(0xb9)]===0x0;return{'ok':!![],'data':{'added':_0xcb82f3,'modified':_0x1995a9,'missing':_0x315094,'unchanged':_0xf7da52,'remoteOnly':_0x587609},'message':_0x64edd4?_0x473174(0xcb):_0xcb82f3[_0x473174(0xb9)]+'\x20added,\x20'+_0x1995a9[_0x473174(0xb9)]+_0x473174(0xc8)+_0x315094['length']+_0x473174(0xc5)+_0xf7da52[_0x473174(0xb9)]+_0x473174(0xce)+(_0x587609[_0x473174(0xb9)]>0x0?',\x20'+_0x587609[_0x473174(0xb9)]+_0x473174(0xd8):'')};}};
1
+ const a129_0x113e32=a129_0x2681;(function(_0x5c6f46,_0x2ac201){const _0x4d24c6=a129_0x2681,_0x4ddf21=_0x5c6f46();while(!![]){try{const _0x548468=-parseInt(_0x4d24c6(0xe2))/0x1*(-parseInt(_0x4d24c6(0xce))/0x2)+-parseInt(_0x4d24c6(0xc3))/0x3*(-parseInt(_0x4d24c6(0xd8))/0x4)+-parseInt(_0x4d24c6(0xe1))/0x5*(parseInt(_0x4d24c6(0xdc))/0x6)+parseInt(_0x4d24c6(0xc1))/0x7*(parseInt(_0x4d24c6(0xdf))/0x8)+parseInt(_0x4d24c6(0xd0))/0x9+parseInt(_0x4d24c6(0xd3))/0xa+-parseInt(_0x4d24c6(0xde))/0xb;if(_0x548468===_0x2ac201)break;else _0x4ddf21['push'](_0x4ddf21['shift']());}catch(_0x137a60){_0x4ddf21['push'](_0x4ddf21['shift']());}}}(a129_0x4350,0xe5ee9));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a129_0x2681(_0x2ce467,_0x31b97a){_0x2ce467=_0x2ce467-0xbf;const _0x435057=a129_0x4350();let _0x268173=_0x435057[_0x2ce467];return _0x268173;}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(_0x1737fb){const _0x458d2e=a129_0x2681,_0x5bd6b4=[];let _0x123220=0x1;while(!![]){const _0x2c9b55=await listSqlQueries(_0x1737fb,{'currentPage':_0x123220,'pageSize':PAGE_SIZE}),_0xed8d38=_0x2c9b55[_0x458d2e(0xd7)]??[];_0x5bd6b4[_0x458d2e(0xc2)](..._0xed8d38['map'](_0x564b00=>_0x564b00[_0x458d2e(0xc6)]));if(_0xed8d38[_0x458d2e(0xd4)]===0x0)break;const _0x52871e=_0x2c9b55[_0x458d2e(0xc7)]?.['totalCount'];if(_0x52871e!=null?_0x5bd6b4[_0x458d2e(0xd4)]>=_0x52871e:_0xed8d38[_0x458d2e(0xd4)]<PAGE_SIZE)break;_0x123220++;}return _0x5bd6b4;}function a129_0x4350(){const _0x43d587=['2IDLepb','hash','2798280FbgFae','\x20modified,\x20','read','5756260XijHmZ','length','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','appCode','tableData','5635180LcZYTo','keys','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','lockFilePath','690BoWvQm','status','16709297rCseqv','16296ozExZW','\x20remote-only','41695oKxnPX','336153piDoGl','sqlName','sql','bool','lockKey','2709fFSUjU','push','3jChRaj','remote','sqls','sqlCode','paging','\x20unchanged','boolean','\x20missing,\x20','has','map','path'];a129_0x4350=function(){return _0x43d587;};return a129_0x4350();}export const sqlStatus={'service':a129_0x113e32(0xe4),'command':a129_0x113e32(0xdd),'description':a129_0x113e32(0xda),'risk':a129_0x113e32(0xd2),'flags':[{'name':a129_0x113e32(0xc4),'type':a129_0x113e32(0xc9),'description':a129_0x113e32(0xd5)}],async 'execute'(_0x5f0900){const _0x4402a9=a129_0x113e32,_0x3efbde=loadSqlProjectConfig(_0x5f0900[_0x4402a9(0xd6)]),_0xb4ce39=await readSqlLockFile(_0x3efbde[_0x4402a9(0xdb)]),{appLock:_0x4a26fd}=ensureSqlLockScope(_0xb4ce39??createEmptySqlLock(),_0x3efbde[_0x4402a9(0xd6)],_0x3efbde['sqlRoot'],_0x4402a9(0xdd)),_0x497d49=await scanLocalSqlQueries(_0x3efbde),_0x245d45=[],_0x2cf851=[],_0x535414=[],_0x581a98=[],_0xb52ac5=new Set(_0x497d49[_0x4402a9(0xcc)](_0xbbe0bb=>_0xbbe0bb[_0x4402a9(0xc0)]));for(const _0xe8bcb5 of _0x497d49){const _0x5e72a9=await computeSqlFileHash(_0xe8bcb5['filePath']),_0x505096=_0x4a26fd['sqls'][_0xe8bcb5[_0x4402a9(0xc0)]],_0x1ad2d1=!!_0x505096&&_0x505096[_0x4402a9(0xcd)]!==_0xe8bcb5['relativePath'],_0x57b4bc=!!_0x505096&&!!_0xe8bcb5[_0x4402a9(0xe3)]&&_0x505096[_0x4402a9(0xe3)]!==_0xe8bcb5['sqlName'];if(!_0x505096)_0x245d45['push'](_0xe8bcb5['lockKey']);else _0x505096[_0x4402a9(0xcf)]!==_0x5e72a9||_0x1ad2d1||_0x57b4bc?_0x2cf851['push'](_0xe8bcb5[_0x4402a9(0xc0)]):_0x535414[_0x4402a9(0xc2)](_0xe8bcb5[_0x4402a9(0xc0)]);}for(const _0x115538 of Object[_0x4402a9(0xd9)](_0x4a26fd[_0x4402a9(0xc5)])){!_0xb52ac5['has'](_0x115538)&&_0x581a98[_0x4402a9(0xc2)](_0x115538);}const _0x217234=[];if(_0x5f0900[_0x4402a9(0xbf)]('remote')){const _0x171dc9=await fetchAllSqlCodes(_0x5f0900[_0x4402a9(0xd6)]);for(const _0x3fe845 of _0x171dc9){!_0xb52ac5[_0x4402a9(0xcb)](_0x3fe845)&&!_0x4a26fd[_0x4402a9(0xc5)][_0x3fe845]&&_0x217234[_0x4402a9(0xc2)](_0x3fe845);}}const _0x9964f5=_0x245d45[_0x4402a9(0xd4)]===0x0&&_0x2cf851[_0x4402a9(0xd4)]===0x0&&_0x581a98['length']===0x0&&_0x217234[_0x4402a9(0xd4)]===0x0;return{'ok':!![],'data':{'added':_0x245d45,'modified':_0x2cf851,'missing':_0x581a98,'unchanged':_0x535414,'remoteOnly':_0x217234},'message':_0x9964f5?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x245d45[_0x4402a9(0xd4)]+'\x20added,\x20'+_0x2cf851[_0x4402a9(0xd4)]+_0x4402a9(0xd1)+_0x581a98[_0x4402a9(0xd4)]+_0x4402a9(0xca)+_0x535414[_0x4402a9(0xd4)]+_0x4402a9(0xc8)+(_0x217234['length']>0x0?',\x20'+_0x217234[_0x4402a9(0xd4)]+_0x4402a9(0xe0):'')};}};
@@ -1 +1 @@
1
- function a129_0x2f8c(){const _0x1125f7=['162054SWHuaj','1834780jtSCWj','length','name','fields','isArray','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','read','6947809nweVJs','string','\x22\x20not\x20found\x20or\x20not\x20accessible','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','map','schemas','35860btdnxX','2123200dCmOgQ','616aKbYeT','from','sqlType','utf-8','reason','flagMissing','trim','parameters','filter','2qgFCYj','Table\x20\x22','6312NatkZX','Provide\x20--file\x20or\x20--sql','File\x20not\x20found:\x20','tableName','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','isDangerous','cwd','2219MBZwpL','8ejbihs','sql','toLowerCase','validate','type','file','size','valid','str','isSelectOnly','message','schemaWarnings','tables','get','681LLnRtV','dbtableConfig','schema:','validation','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','push'];a129_0x2f8c=function(){return _0x1125f7;};return a129_0x2f8c();}const a129_0x29101d=a129_0x2605;(function(_0x362c52,_0x2eeac4){const _0x99df7e=a129_0x2605,_0x3742ae=_0x362c52();while(!![]){try{const _0x390917=-parseInt(_0x99df7e(0x9b))/0x1*(-parseInt(_0x99df7e(0xa6))/0x2)+parseInt(_0x99df7e(0x87))/0x3*(parseInt(_0x99df7e(0x9d))/0x4)+-parseInt(_0x99df7e(0x8e))/0x5+-parseInt(_0x99df7e(0xa8))/0x6*(parseInt(_0x99df7e(0x78))/0x7)+-parseInt(_0x99df7e(0x79))/0x8*(-parseInt(_0x99df7e(0x8d))/0x9)+parseInt(_0x99df7e(0x9c))/0xa+parseInt(_0x99df7e(0x95))/0xb;if(_0x390917===_0x2eeac4)break;else _0x3742ae['push'](_0x3742ae['shift']());}catch(_0x189d17){_0x3742ae['push'](_0x3742ae['shift']());}}}(a129_0x2f8c,0x38b83));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a129_0x2605(_0x5a53ff,_0x4911e3){_0x5a53ff=_0x5a53ff-0x74;const _0x2f8caf=a129_0x2f8c();let _0x260548=_0x2f8caf[_0x5a53ff];return _0x260548;}import{assertDatasetSupportsLocalDevelopment,filterDbBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':'sql','command':a129_0x29101d(0x7c),'description':a129_0x29101d(0x93),'risk':a129_0x29101d(0x94),'flags':[{'name':a129_0x29101d(0x7e),'type':a129_0x29101d(0x96),'description':a129_0x29101d(0x8b)},{'name':a129_0x29101d(0x7a),'type':a129_0x29101d(0x96),'description':a129_0x29101d(0x75)},{'name':a129_0x29101d(0x9a),'type':a129_0x29101d(0x96),'description':a129_0x29101d(0x98)}],async 'execute'(_0x4ed7ca){const _0x11401d=a129_0x29101d,_0x3aacbb=_0x4ed7ca[_0x11401d(0x81)](_0x11401d(0x7e)),_0x1950c9=_0x4ed7ca[_0x11401d(0x81)](_0x11401d(0x7a));if(!_0x3aacbb&&!_0x1950c9)throw CliErrors[_0x11401d(0xa2)](_0x11401d(0x7e),_0x11401d(0xa9));let _0x2644c9;if(_0x3aacbb){const _0x31d274=resolve(process[_0x11401d(0x77)](),_0x3aacbb);if(!existsSync(_0x31d274))throw CliErrors[_0x11401d(0x8a)](_0x11401d(0xaa)+_0x31d274);_0x2644c9=readFileSync(_0x31d274,_0x11401d(0xa0));}else _0x2644c9=_0x1950c9;const _0x5a1ea1=validateSql(_0x2644c9),_0x3fae38={'valid':_0x5a1ea1[_0x11401d(0x80)],'sqlType':_0x5a1ea1[_0x11401d(0x9f)][_0x11401d(0x7d)],'isSelectOnly':_0x5a1ea1[_0x11401d(0x9f)][_0x11401d(0x82)],'isDangerous':_0x5a1ea1[_0x11401d(0x9f)][_0x11401d(0x76)],'tables':_0x5a1ea1[_0x11401d(0x85)],'parameters':_0x5a1ea1[_0x11401d(0xa4)],'message':_0x5a1ea1[_0x11401d(0x83)]};_0x5a1ea1[_0x11401d(0x9f)][_0x11401d(0xa1)]&&(_0x3fae38[_0x11401d(0xa1)]=_0x5a1ea1[_0x11401d(0x9f)][_0x11401d(0xa1)]);const _0x39f637=_0x4ed7ca[_0x11401d(0x81)](_0x11401d(0x9a));if(_0x39f637&&_0x5a1ea1[_0x11401d(0x80)]){const _0x4159ea=_0x39f637['split'](',')[_0x11401d(0x99)](_0x300801=>_0x300801[_0x11401d(0xa3)]())[_0x11401d(0xa5)](Boolean),_0xd51150=[],_0x2eadb7=filterDbBackedDatasets(await listDatasets(_0x4ed7ca['appCode'])),_0x3225c3=new Map(_0x2eadb7[_0x11401d(0x99)](_0x31ce45=>[_0x31ce45[_0x11401d(0x88)]?.['tableName']?.[_0x11401d(0x7b)](),_0x31ce45]));for(const _0x423ad8 of _0x5a1ea1[_0x11401d(0x85)]){const _0x5d25f0=_0x3225c3[_0x11401d(0x86)](_0x423ad8[_0x11401d(0x7b)]());!_0x5d25f0&&_0xd51150[_0x11401d(0x8c)](_0x11401d(0xa7)+_0x423ad8+'\x22\x20not\x20found\x20in\x20any\x20dataset');}for(const _0x5492af of _0x4159ea){let _0x54c15b;try{_0x54c15b=await getDatasetDetail(_0x5492af);}catch{_0xd51150[_0x11401d(0x8c)]('Dataset\x20\x22'+_0x5492af+_0x11401d(0x97));continue;}assertDatasetSupportsLocalDevelopment(_0x54c15b,'SQL\x20schema\x20validation');const _0x218d3d=Array[_0x11401d(0x92)](_0x54c15b['fields'])?_0x54c15b[_0x11401d(0x91)]:[],_0x4ffea9=new Set(_0x218d3d['map'](_0x58707f=>_0x58707f[_0x11401d(0x90)]?.[_0x11401d(0x7b)]())),_0x17060e=_0x54c15b[_0x11401d(0x88)]?.[_0x11401d(0x74)]||_0x54c15b[_0x11401d(0x74)]||_0x5492af;_0x3fae38[_0x11401d(0x89)+_0x17060e]={'code':_0x5492af,'tableName':_0x17060e,'fieldCount':_0x4ffea9[_0x11401d(0x7f)],'fields':Array[_0x11401d(0x9e)](_0x4ffea9)};}_0xd51150[_0x11401d(0x8f)]>0x0&&(_0x3fae38[_0x11401d(0x84)]=_0xd51150);}return{'ok':_0x5a1ea1[_0x11401d(0x80)],'data':_0x3fae38,'message':_0x5a1ea1['message']};}};
1
+ function a130_0xc7cd(){const _0x23411e=['fields','file','trim','filter','valid','38yVLoTw','parameters','validate','dbtableConfig','schemas','appCode','1007280bRblKX','3Oeoynr','558NUOBSI','sqlType','1341361nhJknr','validation','775899ZpDQxI','2968648boFSsa','SQL\x20schema\x20validation','map','sql','41465PcfSqZ','get','str','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','Table\x20\x22','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','read','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','flagMissing','tables','Dataset\x20\x22','134770tkvCyM','schemaWarnings','File\x20not\x20found:\x20','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','isDangerous','reason','toLowerCase','length','isArray','from','tableName','string','21302NkfRUH','cwd','\x22\x20not\x20found\x20or\x20not\x20accessible','1023sVCLgs'];a130_0xc7cd=function(){return _0x23411e;};return a130_0xc7cd();}const a130_0x1aebb0=a130_0x5cb8;(function(_0xb2eb3,_0x5d9d98){const _0x8ce323=a130_0x5cb8,_0x511d45=_0xb2eb3();while(!![]){try{const _0xf41d93=-parseInt(_0x8ce323(0x209))/0x1*(-parseInt(_0x8ce323(0x200))/0x2)+parseInt(_0x8ce323(0x210))/0x3*(parseInt(_0x8ce323(0x216))/0x4)+parseInt(_0x8ce323(0x21a))/0x5*(parseInt(_0x8ce323(0x211))/0x6)+-parseInt(_0x8ce323(0x213))/0x7+-parseInt(_0x8ce323(0x20f))/0x8+parseInt(_0x8ce323(0x215))/0x9+-parseInt(_0x8ce323(0x1f4))/0xa*(parseInt(_0x8ce323(0x203))/0xb);if(_0xf41d93===_0x5d9d98)break;else _0x511d45['push'](_0x511d45['shift']());}catch(_0x2ee4e7){_0x511d45['push'](_0x511d45['shift']());}}}(a130_0xc7cd,0x69d3a));function a130_0x5cb8(_0x343821,_0x20b92c){_0x343821=_0x343821-0x1f3;const _0xc7cd1c=a130_0xc7cd();let _0x5cb8c9=_0xc7cd1c[_0x343821];return _0x5cb8c9;}import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertDatasetSupportsLocalDevelopment,filterDbBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':a130_0x1aebb0(0x219),'command':a130_0x1aebb0(0x20b),'description':a130_0x1aebb0(0x1f7),'risk':a130_0x1aebb0(0x220),'flags':[{'name':'file','type':'string','description':a130_0x1aebb0(0x21f)},{'name':a130_0x1aebb0(0x219),'type':'string','description':a130_0x1aebb0(0x221)},{'name':'schemas','type':a130_0x1aebb0(0x1ff),'description':a130_0x1aebb0(0x21d)}],async 'execute'(_0x456327){const _0x52c4b8=a130_0x1aebb0,_0x5cc6cc=_0x456327[_0x52c4b8(0x21c)]('file'),_0x5c2e75=_0x456327['str'](_0x52c4b8(0x219));if(!_0x5cc6cc&&!_0x5c2e75)throw CliErrors[_0x52c4b8(0x222)](_0x52c4b8(0x205),'Provide\x20--file\x20or\x20--sql');let _0x53f6a6;if(_0x5cc6cc){const _0x324249=resolve(process[_0x52c4b8(0x201)](),_0x5cc6cc);if(!existsSync(_0x324249))throw CliErrors[_0x52c4b8(0x214)](_0x52c4b8(0x1f6)+_0x324249);_0x53f6a6=readFileSync(_0x324249,'utf-8');}else _0x53f6a6=_0x5c2e75;const _0x845b2a=validateSql(_0x53f6a6),_0x1ec52b={'valid':_0x845b2a['valid'],'sqlType':_0x845b2a[_0x52c4b8(0x212)]['type'],'isSelectOnly':_0x845b2a[_0x52c4b8(0x212)]['isSelectOnly'],'isDangerous':_0x845b2a[_0x52c4b8(0x212)][_0x52c4b8(0x1f8)],'tables':_0x845b2a[_0x52c4b8(0x223)],'parameters':_0x845b2a[_0x52c4b8(0x20a)],'message':_0x845b2a['message']};_0x845b2a[_0x52c4b8(0x212)][_0x52c4b8(0x1f9)]&&(_0x1ec52b['reason']=_0x845b2a[_0x52c4b8(0x212)]['reason']);const _0x3e6ce2=_0x456327[_0x52c4b8(0x21c)](_0x52c4b8(0x20d));if(_0x3e6ce2&&_0x845b2a[_0x52c4b8(0x208)]){const _0x57c3b2=_0x3e6ce2['split'](',')[_0x52c4b8(0x218)](_0x5d7df1=>_0x5d7df1[_0x52c4b8(0x206)]())[_0x52c4b8(0x207)](Boolean),_0x606bdf=[],_0x393692=filterDbBackedDatasets(await listDatasets(_0x456327[_0x52c4b8(0x20e)])),_0x4e6b50=new Map(_0x393692['map'](_0x4d291f=>[_0x4d291f[_0x52c4b8(0x20c)]?.[_0x52c4b8(0x1fe)]?.[_0x52c4b8(0x1fa)](),_0x4d291f]));for(const _0x284914 of _0x845b2a[_0x52c4b8(0x223)]){const _0x989770=_0x4e6b50[_0x52c4b8(0x21b)](_0x284914[_0x52c4b8(0x1fa)]());!_0x989770&&_0x606bdf['push'](_0x52c4b8(0x21e)+_0x284914+'\x22\x20not\x20found\x20in\x20any\x20dataset');}for(const _0x2b4a9d of _0x57c3b2){let _0x1d7e21;try{_0x1d7e21=await getDatasetDetail(_0x2b4a9d);}catch{_0x606bdf['push'](_0x52c4b8(0x1f3)+_0x2b4a9d+_0x52c4b8(0x202));continue;}assertDatasetSupportsLocalDevelopment(_0x1d7e21,_0x52c4b8(0x217));const _0x5d484e=Array[_0x52c4b8(0x1fc)](_0x1d7e21[_0x52c4b8(0x204)])?_0x1d7e21['fields']:[],_0x1a2a7b=new Set(_0x5d484e[_0x52c4b8(0x218)](_0xed8371=>_0xed8371['name']?.['toLowerCase']())),_0x30dc3e=_0x1d7e21[_0x52c4b8(0x20c)]?.[_0x52c4b8(0x1fe)]||_0x1d7e21[_0x52c4b8(0x1fe)]||_0x2b4a9d;_0x1ec52b['schema:'+_0x30dc3e]={'code':_0x2b4a9d,'tableName':_0x30dc3e,'fieldCount':_0x1a2a7b['size'],'fields':Array[_0x52c4b8(0x1fd)](_0x1a2a7b)};}_0x606bdf[_0x52c4b8(0x1fb)]>0x0&&(_0x1ec52b[_0x52c4b8(0x1f5)]=_0x606bdf);}return{'ok':_0x845b2a[_0x52c4b8(0x208)],'data':_0x1ec52b,'message':_0x845b2a['message']};}};
@@ -1 +1 @@
1
- const a130_0x33cc51=a130_0x5cbc;(function(_0x280b31,_0x4eae7e){const _0x44b3d1=a130_0x5cbc,_0x5685c2=_0x280b31();while(!![]){try{const _0x1ef0d9=-parseInt(_0x44b3d1(0x1f7))/0x1+parseInt(_0x44b3d1(0x1f6))/0x2+-parseInt(_0x44b3d1(0x1e8))/0x3*(parseInt(_0x44b3d1(0x1e7))/0x4)+-parseInt(_0x44b3d1(0x1dd))/0x5+-parseInt(_0x44b3d1(0x1f3))/0x6+parseInt(_0x44b3d1(0x1e0))/0x7*(parseInt(_0x44b3d1(0x1f0))/0x8)+parseInt(_0x44b3d1(0x1de))/0x9;if(_0x1ef0d9===_0x4eae7e)break;else _0x5685c2['push'](_0x5685c2['shift']());}catch(_0x481c59){_0x5685c2['push'](_0x5685c2['shift']());}}}(a130_0x3b47,0xcd681));import{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';import{RABETBASE_ENV_VALUES}from'../constant/env.js';import{RABETBASE_OUTPUT_FORMAT_VALUES}from'../constant/output.js';import{RISK_LEVEL_VALUES}from'../constant/risk.js';export{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';export const PROJECT_CREATE_INHERITABLE_KEYS=['cookie','accessKey',a130_0x33cc51(0x1f5),'format',a130_0x33cc51(0x1fa)];export const TOP_LEVEL_CONFIG_KEYS=new Set([a130_0x33cc51(0x1e1),'env','locale',a130_0x33cc51(0x1eb),'cookie',a130_0x33cc51(0x1f8),a130_0x33cc51(0x1e2)]);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x5ee73c){const _0x30ab0c=a130_0x33cc51;return[..._0x5ee73c][_0x30ab0c(0x1df)](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}export function isTopLevelConfigKey(_0x5ab12b){return TOP_LEVEL_CONFIG_KEYS['has'](_0x5ab12b);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}function a130_0x3b47(){const _0x59b094=['toLowerCase','apps','map','inherit','keys','en-US','pageSize','length','8170190MMVhjp','24045417FshKjK','join','11872DzLOnY','appcode','apiDir','defaultApp','string','Locale','API\x20directory\x20path','232SeZDEJ','1158byybCi','cookie','filter','format','Risk\x20level','trim','number','app','3832eYOZzN','Target\x20environment','Config\x20key\x20(','8182044ztWLmQ','env','locale','1002128OpeiBV','123716Citywz','accessKey','zh-CN','riskLevel','entries'];a130_0x3b47=function(){return _0x59b094;};return a130_0x3b47();}export function getConfigCommandKeyDescription(){const _0x53f047=a130_0x33cc51;return _0x53f047(0x1f2)+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':a130_0x33cc51(0x1f4),'apiDir':a130_0x33cc51(0x1e2),'cookie':a130_0x33cc51(0x1e9),'accessKey':a130_0x33cc51(0x1f8),'defaultFormat':'format','pageSize':a130_0x33cc51(0x1db),'riskLevel':a130_0x33cc51(0x1fa),'locale':'locale'};export function getAppProfileFlagDefs(){const _0xc64a0d=a130_0x33cc51;return[{'name':_0xc64a0d(0x1f4),'type':_0xc64a0d(0x1e4),'description':_0xc64a0d(0x1f1),'enum':[...RABETBASE_ENV_VALUES]},{'name':_0xc64a0d(0x1e2),'type':_0xc64a0d(0x1e4),'description':_0xc64a0d(0x1e6)},{'name':_0xc64a0d(0x1e9),'type':_0xc64a0d(0x1e4),'description':'Auth\x20cookie','hidden':!![]},{'name':_0xc64a0d(0x1f8),'type':_0xc64a0d(0x1e4),'description':'Access\x20key','hidden':!![]},{'name':'defaultFormat','type':_0xc64a0d(0x1e4),'description':'Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':_0xc64a0d(0x1db),'type':_0xc64a0d(0x1ee),'description':'Default\x20page\x20size'},{'name':_0xc64a0d(0x1fa),'type':'string','description':_0xc64a0d(0x1ec),'enum':[...RISK_LEVEL_VALUES]},{'name':'locale','type':_0xc64a0d(0x1e4),'description':_0xc64a0d(0x1e5)}];}export function collectAppProfileOverrides(_0x3f51b7){const _0x3b943b=a130_0x33cc51,_0x3e696a={};for(const [_0x3390ce,_0x453d12]of Object[_0x3b943b(0x1fb)](APP_PROFILE_FLAG_KEY_MAP)){const _0x266a1=_0x3f51b7(_0x3390ce);if(!_0x266a1)continue;_0x3e696a[_0x453d12]=_0x453d12===_0x3b943b(0x1db)?Number(_0x266a1):_0x266a1;}return _0x3e696a;}function a130_0x5cbc(_0xdab4,_0x4b5c1b){_0xdab4=_0xdab4-0x1da;const _0x3b475f=a130_0x3b47();let _0x5cbc64=_0x3b475f[_0xdab4];return _0x5cbc64;}export function buildAppProfileListFields(_0x2bb506){const _0x2fc82b=a130_0x33cc51;return{'env':_0x2bb506[_0x2fc82b(0x1f4)]??null,'apiDir':_0x2bb506['apiDir']??null,'hasCookie':!!_0x2bb506[_0x2fc82b(0x1e9)],'hasAccessKey':!!_0x2bb506['accessKey'],'format':_0x2bb506[_0x2fc82b(0x1eb)]??null,'pageSize':_0x2bb506['pageSize']??null,'riskLevel':_0x2bb506[_0x2fc82b(0x1fa)]??null,'locale':_0x2bb506[_0x2fc82b(0x1f5)]??null};}export function buildAppDoctorFields(_0x42c2de,_0xd65e39){const _0x5c5f20=a130_0x33cc51;return{'env':{'value':_0x42c2de[_0x5c5f20(0x1f4)]||_0xd65e39[_0x5c5f20(0x1f4)],'source':_0x42c2de['env']?'app':_0x5c5f20(0x1ff)},'apiDir':{'value':_0x42c2de[_0x5c5f20(0x1e2)]||_0xd65e39[_0x5c5f20(0x1e2)],'source':_0x42c2de['apiDir']?_0x5c5f20(0x1ef):_0x5c5f20(0x1ff)},'cookie':{'value':_0x42c2de[_0x5c5f20(0x1e9)]||_0xd65e39[_0x5c5f20(0x1e9)],'source':_0x42c2de[_0x5c5f20(0x1e9)]?_0x5c5f20(0x1ef):_0x5c5f20(0x1ff)},'accessKey':{'value':_0x42c2de[_0x5c5f20(0x1f8)]||_0xd65e39[_0x5c5f20(0x1f8)],'source':_0x42c2de[_0x5c5f20(0x1f8)]?_0x5c5f20(0x1ef):_0x5c5f20(0x1ff)}};}export function buildCanonicalAppConfig(_0x5aef5d,_0x3eddff){const _0x5d24de=a130_0x33cc51,_0x2340d7=_0x5aef5d[_0x5d24de(0x1fe)](_0x52fd77=>String(_0x52fd77||'')[_0x5d24de(0x1ed)]())[_0x5d24de(0x1ea)](Boolean);if(_0x2340d7[_0x5d24de(0x1dc)]===0x0)return{};const _0x299dd4={};for(const _0x472549 of _0x2340d7){_0x299dd4[_0x472549]=_0x3eddff?{'appcode':_0x472549,'env':_0x3eddff}:{'appcode':_0x472549};}return{'apps':_0x299dd4,'defaultApp':_0x2340d7[0x0]};}export function buildCanonicalProjectConfig(_0x22fa7a,_0x41e333){const _0x12c592=a130_0x33cc51,{appCodes:appCodes=[],env:_0x3d7432,metadata:_0x457f3f}=_0x41e333,_0x59739a={..._0x22fa7a,..._0x457f3f||{}};delete _0x59739a[_0x12c592(0x1e1)],delete _0x59739a['app'];if(_0x3d7432)_0x59739a[_0x12c592(0x1f4)]=_0x3d7432;else!_0x59739a[_0x12c592(0x1f4)]&&(_0x59739a[_0x12c592(0x1f4)]=DEFAULT_CONFIG_VALUES[_0x12c592(0x1f4)]);const _0x3f8db7=buildCanonicalAppConfig(appCodes,_0x59739a['env']);return Object[_0x12c592(0x200)](_0x3f8db7)['length']>0x0&&(_0x59739a[_0x12c592(0x1fd)]=_0x3f8db7[_0x12c592(0x1fd)],_0x59739a[_0x12c592(0x1e3)]=_0x3f8db7[_0x12c592(0x1e3)]),_0x59739a;}const LOCALE_MAP={'zh':a130_0x33cc51(0x1f9),'zh-cn':'zh-CN','zh_cn':a130_0x33cc51(0x1f9),'en':'en-US','en-us':a130_0x33cc51(0x1da),'en_us':'en-US'};export function normalizeLocale(_0x1140af){const _0x3ac6be=a130_0x33cc51;if(!_0x1140af)return null;return LOCALE_MAP[_0x1140af[_0x3ac6be(0x1fc)]()]??null;}
1
+ const a131_0x47ef97=a131_0x159c;(function(_0x4c13a7,_0x3458ff){const _0x41a628=a131_0x159c,_0x35ce83=_0x4c13a7();while(!![]){try{const _0x18d8b9=parseInt(_0x41a628(0x12c))/0x1*(parseInt(_0x41a628(0x11d))/0x2)+-parseInt(_0x41a628(0x125))/0x3+parseInt(_0x41a628(0x111))/0x4+parseInt(_0x41a628(0x107))/0x5*(-parseInt(_0x41a628(0x122))/0x6)+-parseInt(_0x41a628(0x121))/0x7+-parseInt(_0x41a628(0x10d))/0x8*(-parseInt(_0x41a628(0x127))/0x9)+-parseInt(_0x41a628(0x11f))/0xa*(-parseInt(_0x41a628(0x131))/0xb);if(_0x18d8b9===_0x3458ff)break;else _0x35ce83['push'](_0x35ce83['shift']());}catch(_0x3af6f3){_0x35ce83['push'](_0x35ce83['shift']());}}}(a131_0x203c,0xef80f));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=[a131_0x47ef97(0x12f),'accessKey','locale',a131_0x47ef97(0x10b),'riskLevel'];export const TOP_LEVEL_CONFIG_KEYS=new Set(['appcode',a131_0x47ef97(0x12e),'locale','format',a131_0x47ef97(0x12f),'accessKey',a131_0x47ef97(0x113)]);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x25c3fe){return[..._0x25c3fe]['join'](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}export function isTopLevelConfigKey(_0x3d4a1b){const _0x5bdf4f=a131_0x47ef97;return TOP_LEVEL_CONFIG_KEYS[_0x5bdf4f(0x11c)](_0x3d4a1b);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}export function getConfigCommandKeyDescription(){const _0x511ab5=a131_0x47ef97;return _0x511ab5(0x11e)+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':a131_0x47ef97(0x12e),'apiDir':'apiDir','cookie':a131_0x47ef97(0x12f),'accessKey':a131_0x47ef97(0x119),'defaultFormat':a131_0x47ef97(0x10b),'pageSize':'pageSize','riskLevel':a131_0x47ef97(0x112),'locale':'locale'};function a131_0x203c(){const _0xf09db9=['cookie','toLowerCase','22xaPlIc','locale','75IcPoLH','Auth\x20cookie','string','appcode','format','keys','282928psLiTD','en-US','number','entries','3071912UMLgmz','riskLevel','apiDir','map','zh-CN','defaultApp','trim','inherit','accessKey','length','apps','has','2hVYxsH','Config\x20key\x20(','22104770VZJjmT','API\x20directory\x20path','10808651XaQRZp','577134ZWyRum','pageSize','filter','5879799vyDGGC','Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','171zCsXct','Access\x20key','Risk\x20level','app','Default\x20page\x20size','66982awSePJ','Locale','env'];a131_0x203c=function(){return _0xf09db9;};return a131_0x203c();}export function getAppProfileFlagDefs(){const _0x962084=a131_0x47ef97;return[{'name':_0x962084(0x12e),'type':'string','description':'Target\x20environment','enum':[...RABETBASE_ENV_VALUES]},{'name':_0x962084(0x113),'type':_0x962084(0x109),'description':_0x962084(0x120)},{'name':_0x962084(0x12f),'type':_0x962084(0x109),'description':_0x962084(0x108),'hidden':!![]},{'name':_0x962084(0x119),'type':_0x962084(0x109),'description':_0x962084(0x128),'hidden':!![]},{'name':'defaultFormat','type':_0x962084(0x109),'description':_0x962084(0x126),'enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':_0x962084(0x123),'type':_0x962084(0x10f),'description':_0x962084(0x12b)},{'name':_0x962084(0x112),'type':_0x962084(0x109),'description':_0x962084(0x129),'enum':[...RISK_LEVEL_VALUES]},{'name':_0x962084(0x106),'type':_0x962084(0x109),'description':_0x962084(0x12d)}];}function a131_0x159c(_0x258cd3,_0x3919bb){_0x258cd3=_0x258cd3-0x106;const _0x203cb7=a131_0x203c();let _0x159cd9=_0x203cb7[_0x258cd3];return _0x159cd9;}export function collectAppProfileOverrides(_0x3b5b2d){const _0x2e8075=a131_0x47ef97,_0x58c6c7={};for(const [_0x4f8bc7,_0x3525e0]of Object[_0x2e8075(0x110)](APP_PROFILE_FLAG_KEY_MAP)){const _0x9254ea=_0x3b5b2d(_0x4f8bc7);if(!_0x9254ea)continue;_0x58c6c7[_0x3525e0]=_0x3525e0==='pageSize'?Number(_0x9254ea):_0x9254ea;}return _0x58c6c7;}export function buildAppProfileListFields(_0x180dcf){const _0x5bb408=a131_0x47ef97;return{'env':_0x180dcf[_0x5bb408(0x12e)]??null,'apiDir':_0x180dcf[_0x5bb408(0x113)]??null,'hasCookie':!!_0x180dcf[_0x5bb408(0x12f)],'hasAccessKey':!!_0x180dcf[_0x5bb408(0x119)],'format':_0x180dcf[_0x5bb408(0x10b)]??null,'pageSize':_0x180dcf['pageSize']??null,'riskLevel':_0x180dcf[_0x5bb408(0x112)]??null,'locale':_0x180dcf[_0x5bb408(0x106)]??null};}export function buildAppDoctorFields(_0x5ad660,_0x5672ae){const _0x3e5028=a131_0x47ef97;return{'env':{'value':_0x5ad660['env']||_0x5672ae[_0x3e5028(0x12e)],'source':_0x5ad660[_0x3e5028(0x12e)]?_0x3e5028(0x12a):_0x3e5028(0x118)},'apiDir':{'value':_0x5ad660[_0x3e5028(0x113)]||_0x5672ae['apiDir'],'source':_0x5ad660['apiDir']?_0x3e5028(0x12a):_0x3e5028(0x118)},'cookie':{'value':_0x5ad660[_0x3e5028(0x12f)]||_0x5672ae['cookie'],'source':_0x5ad660[_0x3e5028(0x12f)]?_0x3e5028(0x12a):_0x3e5028(0x118)},'accessKey':{'value':_0x5ad660[_0x3e5028(0x119)]||_0x5672ae[_0x3e5028(0x119)],'source':_0x5ad660['accessKey']?_0x3e5028(0x12a):_0x3e5028(0x118)}};}export function buildCanonicalAppConfig(_0xc222ef,_0x5cd330){const _0x4b0177=a131_0x47ef97,_0x5058b8=_0xc222ef[_0x4b0177(0x114)](_0x3b90d1=>String(_0x3b90d1||'')[_0x4b0177(0x117)]())[_0x4b0177(0x124)](Boolean);if(_0x5058b8[_0x4b0177(0x11a)]===0x0)return{};const _0x12e2b2={};for(const _0x10965d of _0x5058b8){_0x12e2b2[_0x10965d]=_0x5cd330?{'appcode':_0x10965d,'env':_0x5cd330}:{'appcode':_0x10965d};}return{'apps':_0x12e2b2,'defaultApp':_0x5058b8[0x0]};}export function buildCanonicalProjectConfig(_0x481650,_0x30ebe1){const _0x4d741a=a131_0x47ef97,{appCodes:appCodes=[],env:_0x2376e2,metadata:_0x1ab4b1}=_0x30ebe1,_0x594856={..._0x481650,..._0x1ab4b1||{}};delete _0x594856[_0x4d741a(0x10a)],delete _0x594856['app'];if(_0x2376e2)_0x594856['env']=_0x2376e2;else!_0x594856[_0x4d741a(0x12e)]&&(_0x594856[_0x4d741a(0x12e)]=DEFAULT_CONFIG_VALUES[_0x4d741a(0x12e)]);const _0x536cff=buildCanonicalAppConfig(appCodes,_0x594856[_0x4d741a(0x12e)]);return Object[_0x4d741a(0x10c)](_0x536cff)[_0x4d741a(0x11a)]>0x0&&(_0x594856['apps']=_0x536cff[_0x4d741a(0x11b)],_0x594856[_0x4d741a(0x116)]=_0x536cff['defaultApp']),_0x594856;}const LOCALE_MAP={'zh':a131_0x47ef97(0x115),'zh-cn':a131_0x47ef97(0x115),'zh_cn':a131_0x47ef97(0x115),'en':a131_0x47ef97(0x10e),'en-us':a131_0x47ef97(0x10e),'en_us':a131_0x47ef97(0x10e)};export function normalizeLocale(_0xece9b4){const _0x21e5a0=a131_0x47ef97;if(!_0xece9b4)return null;return LOCALE_MAP[_0xece9b4[_0x21e5a0(0x130)]()]??null;}
@@ -1 +1 @@
1
- function a131_0x4c48(){const _0x3963dd=['16940680myZynw','108IEzYFp','186kmRNIv','1317126CGBqGs','48671JjYcOo','731485PrqTwd','https://g.lovrabet.com/dist/rabetbase-cli/config/index.json','32uYBRIO','492638muiLrk','181074nSywoR','217432HJtuFt'];a131_0x4c48=function(){return _0x3963dd;};return a131_0x4c48();}const a131_0x355b19=a131_0x4912;function a131_0x4912(_0x361e40,_0x4d74d0){_0x361e40=_0x361e40-0x81;const _0x4c480e=a131_0x4c48();let _0x4912fb=_0x4c480e[_0x361e40];return _0x4912fb;}(function(_0x20b1a7,_0x289e0d){const _0x8c018a=a131_0x4912,_0x2ae55e=_0x20b1a7();while(!![]){try{const _0x1f3965=parseInt(_0x8c018a(0x8a))/0x1+-parseInt(_0x8c018a(0x85))/0x2+parseInt(_0x8c018a(0x8b))/0x3*(-parseInt(_0x8c018a(0x89))/0x4)+-parseInt(_0x8c018a(0x87))/0x5+parseInt(_0x8c018a(0x84))/0x6*(-parseInt(_0x8c018a(0x86))/0x7)+-parseInt(_0x8c018a(0x81))/0x8*(parseInt(_0x8c018a(0x83))/0x9)+parseInt(_0x8c018a(0x82))/0xa;if(_0x1f3965===_0x289e0d)break;else _0x2ae55e['push'](_0x2ae55e['shift']());}catch(_0x1741bc){_0x2ae55e['push'](_0x2ae55e['shift']());}}}(a131_0x4c48,0x573ab));export const CLI_VERSION_POLICY_URL=a131_0x355b19(0x88);
1
+ function a132_0x5b23(){const _0xfc212=['2657154mzABdJ','1074642LuZeMH','1585196yvWSxk','945024OUdZIu','48mbkfmj','96874TGIoDa','2339600ZaRgtY','291130guIsXU'];a132_0x5b23=function(){return _0xfc212;};return a132_0x5b23();}(function(_0x6ba46a,_0x4dffce){const _0x43a85a=a132_0x2778,_0x16552e=_0x6ba46a();while(!![]){try{const _0x22d3e4=parseInt(_0x43a85a(0xb2))/0x1+parseInt(_0x43a85a(0xb0))/0x2+parseInt(_0x43a85a(0xb6))/0x3+-parseInt(_0x43a85a(0xaf))/0x4+-parseInt(_0x43a85a(0xb3))/0x5+parseInt(_0x43a85a(0xb5))/0x6+parseInt(_0x43a85a(0xb4))/0x7*(-parseInt(_0x43a85a(0xb1))/0x8);if(_0x22d3e4===_0x4dffce)break;else _0x16552e['push'](_0x16552e['shift']());}catch(_0x466319){_0x16552e['push'](_0x16552e['shift']());}}}(a132_0x5b23,0x3eabc));function a132_0x2778(_0x28fa75,_0x302f7d){_0x28fa75=_0x28fa75-0xaf;const _0x5b234e=a132_0x5b23();let _0x27782b=_0x5b234e[_0x28fa75];return _0x27782b;}export const CLI_VERSION_POLICY_URL='https://g.lovrabet.com/dist/rabetbase-cli/config/index.json';