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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/README.md +1 -1
  2. package/lib/api/api-doc.js +1 -1
  3. package/lib/api/fetch-model-list.js +1 -1
  4. package/lib/api/generate-api-file.js +1 -1
  5. package/lib/auth/auth-server-ui.js +1 -1
  6. package/lib/auth/auth-server.js +1 -1
  7. package/lib/auth/constant.js +1 -1
  8. package/lib/auth/get-cookie.js +1 -1
  9. package/lib/auth/get-session-user.js +1 -1
  10. package/lib/auth/is-session-valid.js +1 -1
  11. package/lib/auth/login-success-html.js +1 -1
  12. package/lib/auth/logout.js +1 -1
  13. package/lib/cli-flags.js +1 -1
  14. package/lib/cli.js +1 -1
  15. package/lib/commands/api/generate.js +1 -1
  16. package/lib/commands/api/index.js +1 -1
  17. package/lib/commands/api/list.js +1 -1
  18. package/lib/commands/api/pull.js +1 -1
  19. package/lib/commands/api/shared.js +1 -1
  20. package/lib/commands/app/add.js +1 -1
  21. package/lib/commands/app/discover.js +1 -1
  22. package/lib/commands/app/index.js +1 -1
  23. package/lib/commands/app/list.js +1 -1
  24. package/lib/commands/app/remove.js +1 -1
  25. package/lib/commands/app/shared.js +1 -1
  26. package/lib/commands/app/use.js +1 -1
  27. package/lib/commands/app-config/delete.js +1 -0
  28. package/lib/commands/app-config/get.js +1 -0
  29. package/lib/commands/app-config/index.js +1 -0
  30. package/lib/commands/app-config/list.js +1 -0
  31. package/lib/commands/app-config/set.js +1 -0
  32. package/lib/commands/app-config/shared.js +1 -0
  33. package/lib/commands/auth/index.js +1 -1
  34. package/lib/commands/bff/create.js +1 -1
  35. package/lib/commands/bff/delete.js +1 -1
  36. package/lib/commands/bff/detail.js +1 -1
  37. package/lib/commands/bff/index.js +1 -1
  38. package/lib/commands/bff/list.js +1 -1
  39. package/lib/commands/bff/pull.js +1 -1
  40. package/lib/commands/bff/push.js +1 -1
  41. package/lib/commands/bff/status.js +1 -1
  42. package/lib/commands/cli-update.js +1 -1
  43. package/lib/commands/codegen/index.js +1 -1
  44. package/lib/commands/codegen/sdk.js +1 -1
  45. package/lib/commands/codegen/sql.js +1 -1
  46. package/lib/commands/common/app-selector.js +1 -1
  47. package/lib/commands/common/flags.js +1 -1
  48. package/lib/commands/common/validate.js +1 -1
  49. package/lib/commands/config/get.js +1 -1
  50. package/lib/commands/config/index.js +1 -1
  51. package/lib/commands/config/list.js +1 -1
  52. package/lib/commands/config/set.js +1 -1
  53. package/lib/commands/config/shared.js +1 -1
  54. package/lib/commands/data/filter.js +1 -1
  55. package/lib/commands/data/getOne.js +1 -1
  56. package/lib/commands/data/index.js +1 -1
  57. package/lib/commands/data/shared.js +1 -1
  58. package/lib/commands/dataset/business-group-update.js +1 -0
  59. package/lib/commands/dataset/capability.js +1 -1
  60. package/lib/commands/dataset/delete.js +1 -1
  61. package/lib/commands/dataset/detail.js +1 -1
  62. package/lib/commands/dataset/extend-update.js +1 -1
  63. package/lib/commands/dataset/field-update.js +1 -1
  64. package/lib/commands/dataset/index.js +1 -1
  65. package/lib/commands/dataset/list.js +1 -1
  66. package/lib/commands/dataset/operations.js +1 -1
  67. package/lib/commands/dataset/relation-create.js +1 -1
  68. package/lib/commands/dataset/relation-delete.js +1 -1
  69. package/lib/commands/dataset/relation-shared.js +1 -1
  70. package/lib/commands/dataset/relation-update.js +1 -1
  71. package/lib/commands/dataset/relations.js +1 -1
  72. package/lib/commands/dataset/rename.js +1 -1
  73. package/lib/commands/dataset/restore.js +1 -0
  74. package/lib/commands/db/analyze-cancel.js +1 -1
  75. package/lib/commands/db/analyze-start.js +1 -1
  76. package/lib/commands/db/analyze-status.js +1 -1
  77. package/lib/commands/db/create.js +1 -1
  78. package/lib/commands/db/delete.js +1 -1
  79. package/lib/commands/db/detail.js +1 -1
  80. package/lib/commands/db/diff.js +1 -1
  81. package/lib/commands/db/index.js +1 -1
  82. package/lib/commands/db/list.js +1 -1
  83. package/lib/commands/db/shared.js +1 -1
  84. package/lib/commands/db/tables.js +1 -1
  85. package/lib/commands/db/test.js +1 -1
  86. package/lib/commands/db/update.js +1 -1
  87. package/lib/commands/doctor.js +1 -1
  88. package/lib/commands/init/index.js +1 -1
  89. package/lib/commands/issue/index.js +1 -1
  90. package/lib/commands/issue/nudge.js +1 -1
  91. package/lib/commands/issue/report.js +1 -1
  92. package/lib/commands/issue/shared.js +1 -1
  93. package/lib/commands/logs/index.js +1 -1
  94. package/lib/commands/menu/index.js +1 -1
  95. package/lib/commands/menu/list.js +1 -1
  96. package/lib/commands/menu/shared/compare-table.js +1 -1
  97. package/lib/commands/menu/shared/index.js +1 -1
  98. package/lib/commands/menu/shared/inquirer.js +1 -1
  99. package/lib/commands/menu/shared/local-pages.js +1 -1
  100. package/lib/commands/menu/shared/logic.js +1 -1
  101. package/lib/commands/menu/shared/service.js +1 -1
  102. package/lib/commands/menu/shared/sync-core.js +1 -1
  103. package/lib/commands/menu/shared/update-core.js +1 -1
  104. package/lib/commands/menu/shared/valid-url.js +1 -1
  105. package/lib/commands/menu/sync.js +1 -1
  106. package/lib/commands/menu/update.js +1 -1
  107. package/lib/commands/page/generate-start.js +1 -1
  108. package/lib/commands/page/generate-status.js +1 -1
  109. package/lib/commands/page/index.js +1 -1
  110. package/lib/commands/page/pull.js +1 -1
  111. package/lib/commands/page/push.js +1 -1
  112. package/lib/commands/page/relation-audit.js +1 -1
  113. package/lib/commands/page/shared.js +1 -1
  114. package/lib/commands/page/standard-page-status.js +1 -1
  115. package/lib/commands/page/sync.js +1 -1
  116. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  117. package/lib/commands/project/create/format-elapsed.js +1 -1
  118. package/lib/commands/project/create/main.js +1 -1
  119. package/lib/commands/project/create/non-interactive.js +1 -1
  120. package/lib/commands/project/create/project-template-path.js +1 -1
  121. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  122. package/lib/commands/project/create/use-format-code.js +1 -1
  123. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  124. package/lib/commands/project/index.js +1 -1
  125. package/lib/commands/project/init.js +1 -1
  126. package/lib/commands/project/upgrade.js +1 -1
  127. package/lib/commands/registry.js +1 -1
  128. package/lib/commands/run/index.js +1 -1
  129. package/lib/commands/schema.js +1 -1
  130. package/lib/commands/skill/index.js +1 -1
  131. package/lib/commands/sql/create.js +1 -1
  132. package/lib/commands/sql/delete.js +1 -1
  133. package/lib/commands/sql/detail.js +1 -1
  134. package/lib/commands/sql/exec.js +1 -1
  135. package/lib/commands/sql/index.js +1 -1
  136. package/lib/commands/sql/list.js +1 -1
  137. package/lib/commands/sql/pull.js +1 -1
  138. package/lib/commands/sql/push.js +1 -1
  139. package/lib/commands/sql/save.js +1 -1
  140. package/lib/commands/sql/shared.js +1 -1
  141. package/lib/commands/sql/status.js +1 -1
  142. package/lib/commands/sql/validate.js +1 -1
  143. package/lib/commands/workspace/index.js +1 -1
  144. package/lib/config/schema.js +1 -1
  145. package/lib/constant/cdn.js +1 -1
  146. package/lib/constant/cli.js +1 -1
  147. package/lib/constant/defaults.js +1 -1
  148. package/lib/constant/domain.js +1 -1
  149. package/lib/constant/env.js +1 -1
  150. package/lib/constant/output.js +1 -1
  151. package/lib/constant/paths.js +1 -1
  152. package/lib/constant/risk.js +1 -1
  153. package/lib/context/app-resolver.js +1 -1
  154. package/lib/context/auth-resolver.js +1 -1
  155. package/lib/context/config-loader.js +1 -1
  156. package/lib/context.js +1 -1
  157. package/lib/core/alias-resolver.js +1 -1
  158. package/lib/core/api-client.js +1 -1
  159. package/lib/core/bff/config.js +1 -1
  160. package/lib/core/bff/file-system.js +1 -1
  161. package/lib/core/bff/hash.js +1 -1
  162. package/lib/core/bff/lock.js +1 -1
  163. package/lib/core/bff/utils.js +1 -1
  164. package/lib/core/db-resolver.js +1 -1
  165. package/lib/core/page/file-system.js +1 -1
  166. package/lib/core/page/hash.js +1 -1
  167. package/lib/core/page/lock.js +1 -1
  168. package/lib/core/sql-sync/config.js +1 -1
  169. package/lib/core/sql-sync/file-system.js +1 -1
  170. package/lib/core/sql-sync/hash.js +1 -1
  171. package/lib/core/sql-sync/lock.js +1 -1
  172. package/lib/core/sql-sync/utils.js +1 -1
  173. package/lib/core/sql-validator.js +1 -1
  174. package/lib/errors.js +1 -1
  175. package/lib/framework/build-all-flags.js +1 -1
  176. package/lib/framework/flags.js +1 -1
  177. package/lib/framework/help.js +1 -1
  178. package/lib/framework/index.js +1 -1
  179. package/lib/framework/output.js +1 -1
  180. package/lib/framework/response.js +1 -1
  181. package/lib/framework/runner-alias.js +1 -1
  182. package/lib/framework/runner.js +1 -1
  183. package/lib/framework/schema-export.js +1 -1
  184. package/lib/framework/types.js +1 -1
  185. package/lib/generated/build-info.js +1 -1
  186. package/lib/help.js +1 -1
  187. package/lib/skills/main.js +1 -1
  188. package/lib/skills/npx-skills-add.js +1 -1
  189. package/lib/telemetry/cli-command-trace.js +1 -1
  190. package/lib/telemetry/cli-help-trace.js +1 -1
  191. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  192. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  193. package/lib/telemetry/send-cli-trace-log.js +1 -1
  194. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  195. package/lib/utils/ai_config.js +1 -1
  196. package/lib/utils/apply-jq-filter.js +1 -1
  197. package/lib/utils/cdn-config.js +1 -1
  198. package/lib/utils/check-sdk-version.js +1 -1
  199. package/lib/utils/cli-version-check.js +1 -1
  200. package/lib/utils/cli-version-policy.js +1 -1
  201. package/lib/utils/config.js +1 -1
  202. package/lib/utils/copy-directory.js +1 -1
  203. package/lib/utils/entity-with-id.js +1 -1
  204. package/lib/utils/file-utils.js +1 -1
  205. package/lib/utils/guides-cdn.js +1 -1
  206. package/lib/utils/http-client.js +1 -1
  207. package/lib/utils/is-non-interactive.js +1 -1
  208. package/lib/utils/logger.js +1 -1
  209. package/lib/utils/params.js +1 -1
  210. package/lib/utils/platform.js +1 -1
  211. package/lib/utils/rules-cdn.js +1 -1
  212. package/lib/utils/sleep.js +1 -1
  213. package/lib/utils/template-replacer.js +1 -1
  214. package/lib/utils/update-notice.js +1 -1
  215. package/lib/utils/version.js +1 -1
  216. package/lib/utils/with-active-cookie.js +1 -1
  217. package/lib/utils/write-cli-side-channel.js +1 -1
  218. package/package.json +1 -1
  219. package/templates/README.md +15 -25
  220. package/templates/generate-api/api.ts.tpl +2 -2
  221. package/templates/generate-api/client.ts.tpl +2 -2
  222. package/templates/projects/sub-app-react-demo/CHANGELOG.md +15 -1
  223. package/templates/projects/sub-app-react-demo/README.md +159 -231
  224. package/templates/projects/sub-app-react-demo/docs/quick-start.md +145 -426
  225. package/templates/projects/sub-app-react-demo/src/api/api.ts +8 -65
  226. package/templates/projects/sub-app-react-demo/src/api/client.ts +10 -42
  227. package/templates/projects/sub-app-react-demo/src/components/demo-page-container/DemoPageContainer.module.css +28 -0
  228. package/templates/projects/sub-app-react-demo/src/components/demo-page-container/DemoPageContainer.tsx +55 -0
  229. package/templates/projects/sub-app-react-demo/src/layouts/MainLayout.tsx +6 -9
  230. package/templates/projects/sub-app-react-demo/src/main.tsx +10 -6
  231. package/templates/projects/sub-app-react-demo/src/pages/dashboard/index.tsx +3 -5
  232. package/templates/projects/sub-app-react-demo/src/pages/data-screen/index.tsx +153 -148
  233. package/templates/projects/sub-app-react-demo/src/pages/index.module.css +500 -0
  234. package/templates/projects/sub-app-react-demo/src/pages/index.tsx +517 -343
  235. package/templates/projects/sub-app-react-demo/src/pages/sdk-demo/index.tsx +325 -242
  236. package/templates/projects/sub-app-react-demo/src/pages/workbench/index.module.css +8 -6
  237. package/templates/projects/sub-app-react-demo/src/pages/workbench/index.tsx +174 -87
  238. package/templates/projects/sub-app-react-demo/src/style.css +19 -3
  239. package/templates/projects/sub-app-react-demo/src/vite-env.d.ts +1 -1
  240. package/templates/projects/sub-app-react-demo/docs/API_RULE_CHANGE.md +0 -212
@@ -1 +1 @@
1
- const a122_0xaab268=a122_0x1338;(function(_0x46b47d,_0x5b307c){const _0x232568=a122_0x1338,_0x341793=_0x46b47d();while(!![]){try{const _0x6cf855=-parseInt(_0x232568(0x1d6))/0x1*(parseInt(_0x232568(0x1f2))/0x2)+parseInt(_0x232568(0x209))/0x3*(parseInt(_0x232568(0x201))/0x4)+-parseInt(_0x232568(0x1f8))/0x5+parseInt(_0x232568(0x1f7))/0x6+-parseInt(_0x232568(0x1f0))/0x7*(parseInt(_0x232568(0x206))/0x8)+parseInt(_0x232568(0x1ed))/0x9+parseInt(_0x232568(0x1de))/0xa;if(_0x6cf855===_0x5b307c)break;else _0x341793['push'](_0x341793['shift']());}catch(_0x2e22eb){_0x341793['push'](_0x341793['shift']());}}}(a122_0x1046,0xa52c6));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x1e219d){const _0x4dc349=a122_0x1338;if(_0x1e219d===_0x4dc349(0x1d4))return[_0x4dc349(0x1fe),_0x4dc349(0x1dd),'</select>','']['join']('\x0a');return[_0x4dc349(0x1e5),''][_0x4dc349(0x1e2)]('\x0a');}export const sqlCreate={'service':a122_0xaab268(0x1d8),'command':a122_0xaab268(0x1f4),'description':a122_0xaab268(0x1db),'risk':a122_0xaab268(0x1f9),'flags':[{'name':'name','type':a122_0xaab268(0x20f),'description':a122_0xaab268(0x1d7)},{'name':a122_0xaab268(0x1df),'type':'number','description':a122_0xaab268(0x210)},{'name':a122_0xaab268(0x1e0),'type':a122_0xaab268(0x20f),'enum':[a122_0xaab268(0x1d8),a122_0xaab268(0x1d4)],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x5191db){const _0x4140fe=a122_0xaab268;if(!_0x5191db[_0x4140fe(0x1e7)])return;if(!_0x5191db[_0x4140fe(0x20c)](_0x4140fe(0x1d0))[_0x4140fe(0x1fc)]())throw CliErrors[_0x4140fe(0x204)](_0x4140fe(0x1d0),_0x4140fe(0x207));const _0x303e92=resolveProvidedDbId(_0x5191db);if(typeof _0x303e92!=='number'||!Number[_0x4140fe(0x20e)](_0x303e92)||_0x303e92<=0x0)throw CliErrors[_0x4140fe(0x204)](_0x4140fe(0x1df),_0x4140fe(0x205));if(!_0x5191db[_0x4140fe(0x20c)](_0x4140fe(0x1e0))[_0x4140fe(0x1fc)]())throw CliErrors['flagMissing']('mode',_0x4140fe(0x1d2));},async 'dryRun'(_0x4a1457){const _0x157fd7=a122_0xaab268,_0x1f3504=loadSqlProjectConfig(_0x4a1457[_0x157fd7(0x1fa)]),{sqlName:_0x247753,dbId:_0x2dc072,dbName:_0x28ae3b,mode:_0x5d4014}=await resolveSqlNewInputs(_0x4a1457),_0x39c5e2=buildSqlRelativePath(_0x157fd7(0x1da),_0x247753,_0x28ae3b,_0x5d4014,_0x2dc072),_0x22ee4d=_0x1f3504['sqlRootDir']+'/'+_0x39c5e2;return{'method':_0x157fd7(0x211),'url':_0x157fd7(0x20d),'body':{'appCode':_0x4a1457['appCode'],'sqlName':_0x247753,'dbId':_0x2dc072,'mode':_0x5d4014,'localPath':_0x22ee4d},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x1f3504['sqlRootDir']};},async 'execute'(_0x36bc93){const _0x8e0c=a122_0xaab268,_0x533e55=loadSqlProjectConfig(_0x36bc93[_0x8e0c(0x1fa)]),{sqlName:_0x18833c,dbId:_0x2b19ee,dbName:_0x8f9e6e,mode:_0x118655}=await resolveSqlNewInputs(_0x36bc93),_0x5780af=generateSqlTemplate(_0x118655),_0x5154a3=await createSqlQuery({'appCode':_0x36bc93[_0x8e0c(0x1fa)],'sqlName':_0x18833c,'dbId':_0x2b19ee,'sqlContent':_0x5780af}),_0x227f1c=ensureRemoteSqlContent(_0x5154a3),_0x5ada54=_0x8f9e6e||await getDbName(_0x36bc93[_0x8e0c(0x1fa)],_0x2b19ee)[_0x8e0c(0x1ef)](()=>undefined),_0x5ed799=buildSqlRelativePath(_0x5154a3[_0x8e0c(0x1f5)],_0x5154a3[_0x8e0c(0x20b)],_0x5ada54,_0x118655,_0x2b19ee),_0x2eff06=_0x533e55[_0x8e0c(0x1e9)]+'/'+_0x5ed799,_0xaba8aa=buildLocalSqlFileContent({'sqlCode':_0x5154a3[_0x8e0c(0x1f5)],'sqlName':_0x5154a3[_0x8e0c(0x20b)],'dbId':_0x5154a3['dbId']},_0x227f1c,{'dbName':_0x5ada54,'mode':_0x118655,'syncedAt':new Date()[_0x8e0c(0x1e4)](),'description':_0x5154a3[_0x8e0c(0x1d9)]});if(await fileExists(_0x2eff06))throw CliErrors['validation']('File\x20already\x20exists:\x20'+_0x2eff06);await ensureParentDirectory(_0x2eff06),await writeFile(_0x2eff06,_0xaba8aa,_0x8e0c(0x1d5));const _0x5c253c=await readSqlLockFile(_0x533e55['lockFilePath']),{lockData:_0x3d4e64,appLock:_0x294410}=ensureSqlLockScope(_0x5c253c??createEmptySqlLock(),_0x533e55[_0x8e0c(0x1fa)],_0x533e55[_0x8e0c(0x1d3)],_0x8e0c(0x212));return _0x294410[_0x8e0c(0x1dc)][_0x5154a3[_0x8e0c(0x1f5)]]={...buildSqlLockEntry(_0x5154a3,_0x227f1c,computeSqlContentHash(_0xaba8aa),{'dbName':_0x5ada54}),'path':_0x5ed799,'mode':_0x118655},_0x294410[_0x8e0c(0x1e1)]=new Date()['toISOString'](),await writeSqlLockFile(_0x533e55['lockFilePath'],_0x3d4e64),{'ok':!![],'data':{'id':_0x5154a3['id'],'sqlCode':_0x5154a3[_0x8e0c(0x1f5)],'sqlName':_0x5154a3[_0x8e0c(0x20b)],'dbId':_0x5154a3[_0x8e0c(0x1f6)],'path':_0x2eff06,'mode':_0x118655},'message':_0x8e0c(0x20a)+_0x5154a3[_0x8e0c(0x1f5)]};}};async function resolveSqlNewInputs(_0x40e628){const _0x188c0e=await resolveSqlNameInput(_0x40e628),{dbId:_0xa8e10c,dbName:_0x5873db}=await resolveDbSelection(_0x40e628),_0x500c81=await resolveSqlModeInput(_0x40e628);return{'sqlName':_0x188c0e,'dbId':_0xa8e10c,'dbName':_0x5873db,'mode':_0x500c81};}function a122_0x1046(){const _0x43bc80=['name','MyBatis\x20XML(mybatisXml)','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','sqlRoot','mybatisXml','utf8','860126ksMdvW','SQL\x20query\x20display\x20name','sql','description','<server-generated-sqlCode>','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','sqls','\x20\x20SELECT\x201\x20AS\x20id','7685510NbESJR','db-id','mode','lastSync','join','stringify','toISOString','SELECT\x201\x20AS\x20id;','length','nonInteractive','普通\x20SQL(sql)','sqlRootDir','flag','✎\x20手动输入\x20dbId','parse','5634747HurUQq','validation','catch','2414202hKXGRy','__manual__','2OXPytl','dbName','create','sqlCode','dbId','5935818AfslVO','4695485YstCxd','high-risk-write','appCode','number','trim','请选择本地\x20SQL\x20模式:','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','请输入目标数据库\x20dbId:','dbId\x20必须为正整数','12AfKWAe','适合带动态标签的\x20MyBatis\x20XML\x20SQL','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','flagMissing','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','16WHSUmO','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','请输入\x20SQL\x20名称:','781608QkjcZm','Created\x20SQL\x20query\x20','sqlName','str','/smartapi/custom/saveUserCustomSql','isFinite','string','Target\x20database\x20ID','POST','new','dbId\x20不能为空','isInteger','map'];a122_0x1046=function(){return _0x43bc80;};return a122_0x1046();}async function resolveSqlNameInput(_0x1241d7){const _0x20fddb=a122_0xaab268,_0x12d032=_0x1241d7['str'](_0x20fddb(0x1d0))[_0x20fddb(0x1fc)]();if(_0x12d032)return _0x12d032;if(_0x1241d7[_0x20fddb(0x1e7)])throw CliErrors[_0x20fddb(0x204)](_0x20fddb(0x1d0),_0x20fddb(0x207));return(await input({'message':_0x20fddb(0x208),'validate':_0x30317a=>_0x30317a[_0x20fddb(0x1fc)]()?!![]:'SQL\x20名称不能为空'}))[_0x20fddb(0x1fc)]();}async function resolveDbSelection(_0x1db77b){const _0x11cb36=a122_0xaab268,_0x15f584=resolveProvidedDbId(_0x1db77b);if(typeof _0x15f584===_0x11cb36(0x1fb)&&Number[_0x11cb36(0x20e)](_0x15f584)&&_0x15f584>0x0)return{'dbId':_0x15f584,'dbName':await getDbName(_0x1db77b[_0x11cb36(0x1fa)],_0x15f584)[_0x11cb36(0x1ef)](()=>undefined)};if(_0x1db77b[_0x11cb36(0x1e7)])throw CliErrors[_0x11cb36(0x204)]('db-id',_0x11cb36(0x205));const _0x1076a4=await listDatabases(_0x1db77b[_0x11cb36(0x1fa)])[_0x11cb36(0x1ef)](()=>[]);if(_0x1076a4[_0x11cb36(0x1e6)]===0x1)return{'dbId':_0x1076a4[0x0][_0x11cb36(0x1f6)],'dbName':_0x1076a4[0x0][_0x11cb36(0x1f3)]};if(_0x1076a4['length']>0x1){const _0x263908=await select({'message':'请选择目标数据库:','choices':[..._0x1076a4[_0x11cb36(0x1cf)](_0x3f067a=>({'name':_0x3f067a[_0x11cb36(0x1f3)]+'\x20('+_0x3f067a[_0x11cb36(0x1f6)]+')','value':serializeDbSelection(_0x3f067a)})),{'name':_0x11cb36(0x1eb),'value':'__manual__'}]});if(_0x263908!==_0x11cb36(0x1f1))return deserializeDbSelection(_0x263908);}const _0x2b0af7=await input({'message':_0x11cb36(0x1ff),'validate':_0x18ee5d=>{const _0x4eccf2=_0x11cb36,_0x329a52=_0x18ee5d[_0x4eccf2(0x1fc)]();if(!_0x329a52)return _0x4eccf2(0x213);const _0x30de44=Number(_0x329a52);if(!Number[_0x4eccf2(0x1ce)](_0x30de44)||_0x30de44<=0x0)return _0x4eccf2(0x200);return!![];}});return{'dbId':Number(_0x2b0af7[_0x11cb36(0x1fc)]())};}async function resolveSqlModeInput(_0x1d9b2b){const _0x33a589=a122_0xaab268,_0x2b6d83=_0x1d9b2b['str']('mode')[_0x33a589(0x1fc)]();if(_0x2b6d83===_0x33a589(0x1d8)||_0x2b6d83===_0x33a589(0x1d4))return _0x2b6d83;if(_0x1d9b2b[_0x33a589(0x1e7)])throw CliErrors['flagMissing']('mode',_0x33a589(0x1d2));return await select({'message':_0x33a589(0x1fd),'choices':[{'name':_0x33a589(0x1e8),'value':_0x33a589(0x1d8),'description':_0x33a589(0x203)},{'name':_0x33a589(0x1d1),'value':_0x33a589(0x1d4),'description':_0x33a589(0x202)}]});}function serializeDbSelection(_0x1d95b4){const _0x247970=a122_0xaab268;return JSON[_0x247970(0x1e3)]({'dbId':_0x1d95b4[_0x247970(0x1f6)],'dbName':_0x1d95b4[_0x247970(0x1f3)]});}function a122_0x1338(_0x439fb9,_0x3db664){_0x439fb9=_0x439fb9-0x1ce;const _0x10462b=a122_0x1046();let _0x1338c0=_0x10462b[_0x439fb9];return _0x1338c0;}function deserializeDbSelection(_0x188b78){const _0x1c0f43=a122_0xaab268;try{const _0x34573d=JSON[_0x1c0f43(0x1ec)](_0x188b78);if(typeof _0x34573d[_0x1c0f43(0x1f6)]===_0x1c0f43(0x1fb)&&Number['isFinite'](_0x34573d[_0x1c0f43(0x1f6)]))return{'dbId':_0x34573d[_0x1c0f43(0x1f6)],'dbName':_0x34573d[_0x1c0f43(0x1f3)]};}catch{}throw CliErrors[_0x1c0f43(0x1ee)]('Invalid\x20database\x20selection\x20payload:\x20'+_0x188b78);}function resolveProvidedDbId(_0x2054ff){const _0x1c93b8=a122_0xaab268,_0x32773a=_0x2054ff[_0x1c93b8(0x1ea)](_0x1c93b8(0x1df));if(typeof _0x32773a==='number'&&Number[_0x1c93b8(0x20e)](_0x32773a))return _0x32773a;return undefined;}
1
+ const a130_0x73739=a130_0x290c;(function(_0x56903f,_0x224ac1){const _0x4be092=a130_0x290c,_0x2523b1=_0x56903f();while(!![]){try{const _0x2a7b40=-parseInt(_0x4be092(0xb6))/0x1+parseInt(_0x4be092(0x93))/0x2*(parseInt(_0x4be092(0xd0))/0x3)+-parseInt(_0x4be092(0xb4))/0x4+parseInt(_0x4be092(0xae))/0x5*(parseInt(_0x4be092(0xcc))/0x6)+parseInt(_0x4be092(0xb7))/0x7*(parseInt(_0x4be092(0xce))/0x8)+-parseInt(_0x4be092(0x94))/0x9*(parseInt(_0x4be092(0xc7))/0xa)+parseInt(_0x4be092(0xa6))/0xb*(parseInt(_0x4be092(0xa7))/0xc);if(_0x2a7b40===_0x224ac1)break;else _0x2523b1['push'](_0x2523b1['shift']());}catch(_0x1b718f){_0x2523b1['push'](_0x2523b1['shift']());}}}(a130_0x2e8a,0x46994));import{writeFile}from'node:fs/promises';function a130_0x290c(_0x33a630,_0x2c398e){_0x33a630=_0x33a630-0x8e;const _0x2e8a9=a130_0x2e8a();let _0x290c45=_0x2e8a9[_0x33a630];return _0x290c45;}import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a130_0x2e8a(){const _0x497ab8=['<server-generated-sqlCode>','Created\x20SQL\x20query\x20','isInteger','534uoPpuY','dbName','16WvOXpm','nonInteractive','451155IPCpqM','string','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','适合带动态标签的\x20MyBatis\x20XML\x20SQL','name','number','2TLyQtV','225MSqrhT','mode','sqls','请选择目标数据库:','appCode','validation','请选择本地\x20SQL\x20模式:','sqlRootDir','Target\x20database\x20ID','db-id','请输入\x20SQL\x20名称:','MyBatis\x20XML(mybatisXml)','sqlName','sql','</select>','flagMissing','请输入目标数据库\x20dbId:','dbId','77pzLTzq','879864OCWAoP','__manual__','high-risk-write','toISOString','SQL\x20query\x20display\x20name','catch','str','8660SjZvIT','utf8','new','isFinite','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','普通\x20SQL(sql)','1295820eKitkH','mybatisXml','172146JLVcze','856226bBhVxI','parse','lockFilePath','trim','create','Local\x20SQL\x20file\x20mode','Invalid\x20database\x20selection\x20payload:\x20','length','stringify','POST','/smartapi/custom/saveUserCustomSql','\x20\x20SELECT\x201\x20AS\x20id','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','File\x20already\x20exists:\x20','110860RgxqSa','sqlCode'];a130_0x2e8a=function(){return _0x497ab8;};return a130_0x2e8a();}import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x51fdc8){const _0x30d644=a130_0x290c;if(_0x51fdc8===_0x30d644(0xb5))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x30d644(0xc2),_0x30d644(0xa2),'']['join']('\x0a');return['SELECT\x201\x20AS\x20id;','']['join']('\x0a');}export const sqlCreate={'service':a130_0x73739(0xa1),'command':a130_0x73739(0xbb),'description':a130_0x73739(0x8f),'risk':a130_0x73739(0xa9),'flags':[{'name':'name','type':a130_0x73739(0x8e),'description':a130_0x73739(0xab)},{'name':a130_0x73739(0x9d),'type':'number','description':a130_0x73739(0x9c)},{'name':'mode','type':a130_0x73739(0x8e),'enum':['sql','mybatisXml'],'description':a130_0x73739(0xbc)}],async 'validate'(_0x5d398c){const _0x1ceb08=a130_0x73739;if(!_0x5d398c[_0x1ceb08(0xcf)])return;if(!_0x5d398c[_0x1ceb08(0xad)](_0x1ceb08(0x91))['trim']())throw CliErrors[_0x1ceb08(0xa3)](_0x1ceb08(0x91),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x540a8d=resolveProvidedDbId(_0x5d398c);if(typeof _0x540a8d!==_0x1ceb08(0x92)||!Number[_0x1ceb08(0xb1)](_0x540a8d)||_0x540a8d<=0x0)throw CliErrors['flagMissing'](_0x1ceb08(0x9d),_0x1ceb08(0xb2));if(!_0x5d398c[_0x1ceb08(0xad)](_0x1ceb08(0x95))[_0x1ceb08(0xba)]())throw CliErrors[_0x1ceb08(0xa3)](_0x1ceb08(0x95),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x11a83a){const _0x58c34d=a130_0x73739,_0x48eac8=loadSqlProjectConfig(_0x11a83a[_0x58c34d(0x98)]),{sqlName:_0x47b3a9,dbId:_0x375807,dbName:_0x36a42b,mode:_0x4d42a5}=await resolveSqlNewInputs(_0x11a83a),_0x4f7422=buildSqlRelativePath(_0x58c34d(0xc9),_0x47b3a9,_0x36a42b,_0x4d42a5,_0x375807),_0x5836bb=_0x48eac8[_0x58c34d(0x9b)]+'/'+_0x4f7422;return{'method':_0x58c34d(0xc0),'url':_0x58c34d(0xc1),'body':{'appCode':_0x11a83a[_0x58c34d(0x98)],'sqlName':_0x47b3a9,'dbId':_0x375807,'mode':_0x4d42a5,'localPath':_0x5836bb},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x48eac8['sqlRootDir']};},async 'execute'(_0x3bdb35){const _0x43a04c=a130_0x73739,_0x42d5cd=loadSqlProjectConfig(_0x3bdb35['appCode']),{sqlName:_0x2f6414,dbId:_0x563be7,dbName:_0xca2da3,mode:_0x510c27}=await resolveSqlNewInputs(_0x3bdb35),_0x5a1ace=generateSqlTemplate(_0x510c27),_0x1d505b=await createSqlQuery({'appCode':_0x3bdb35[_0x43a04c(0x98)],'sqlName':_0x2f6414,'dbId':_0x563be7,'sqlContent':_0x5a1ace}),_0x321968=ensureRemoteSqlContent(_0x1d505b),_0x539f67=_0xca2da3||await getDbName(_0x3bdb35[_0x43a04c(0x98)],_0x563be7)[_0x43a04c(0xac)](()=>undefined),_0x4731e7=buildSqlRelativePath(_0x1d505b['sqlCode'],_0x1d505b[_0x43a04c(0xa0)],_0x539f67,_0x510c27,_0x563be7),_0x3bc737=_0x42d5cd[_0x43a04c(0x9b)]+'/'+_0x4731e7,_0x1a1855=buildLocalSqlFileContent({'sqlCode':_0x1d505b['sqlCode'],'sqlName':_0x1d505b['sqlName'],'dbId':_0x1d505b[_0x43a04c(0xa5)]},_0x321968,{'dbName':_0x539f67,'mode':_0x510c27,'syncedAt':new Date()[_0x43a04c(0xaa)](),'description':_0x1d505b['description']});if(await fileExists(_0x3bc737))throw CliErrors[_0x43a04c(0x99)](_0x43a04c(0xc6)+_0x3bc737);await ensureParentDirectory(_0x3bc737),await writeFile(_0x3bc737,_0x1a1855,_0x43a04c(0xaf));const _0x570063=await readSqlLockFile(_0x42d5cd[_0x43a04c(0xb9)]),{lockData:_0x119d96,appLock:_0xe83796}=ensureSqlLockScope(_0x570063??createEmptySqlLock(),_0x42d5cd[_0x43a04c(0x98)],_0x42d5cd['sqlRoot'],_0x43a04c(0xb0));return _0xe83796[_0x43a04c(0x96)][_0x1d505b['sqlCode']]={...buildSqlLockEntry(_0x1d505b,_0x321968,computeSqlContentHash(_0x1a1855),{'dbName':_0x539f67}),'path':_0x4731e7,'mode':_0x510c27},_0xe83796['lastSync']=new Date()[_0x43a04c(0xaa)](),await writeSqlLockFile(_0x42d5cd[_0x43a04c(0xb9)],_0x119d96),{'ok':!![],'data':{'id':_0x1d505b['id'],'sqlCode':_0x1d505b[_0x43a04c(0xc8)],'sqlName':_0x1d505b['sqlName'],'dbId':_0x1d505b[_0x43a04c(0xa5)],'path':_0x3bc737,'mode':_0x510c27},'message':_0x43a04c(0xca)+_0x1d505b[_0x43a04c(0xc8)]};}};async function resolveSqlNewInputs(_0x4a9a95){const _0x4318f3=await resolveSqlNameInput(_0x4a9a95),{dbId:_0xa63dbe,dbName:_0x4d04e8}=await resolveDbSelection(_0x4a9a95),_0x476307=await resolveSqlModeInput(_0x4a9a95);return{'sqlName':_0x4318f3,'dbId':_0xa63dbe,'dbName':_0x4d04e8,'mode':_0x476307};}async function resolveSqlNameInput(_0x1229cc){const _0x2f2693=a130_0x73739,_0x5fd8b=_0x1229cc['str'](_0x2f2693(0x91))[_0x2f2693(0xba)]();if(_0x5fd8b)return _0x5fd8b;if(_0x1229cc[_0x2f2693(0xcf)])throw CliErrors[_0x2f2693(0xa3)]('name',_0x2f2693(0xc5));return(await input({'message':_0x2f2693(0x9e),'validate':_0x3560f4=>_0x3560f4[_0x2f2693(0xba)]()?!![]:'SQL\x20名称不能为空'}))[_0x2f2693(0xba)]();}async function resolveDbSelection(_0x8af65b){const _0x46ec53=a130_0x73739,_0x5b570e=resolveProvidedDbId(_0x8af65b);if(typeof _0x5b570e===_0x46ec53(0x92)&&Number[_0x46ec53(0xb1)](_0x5b570e)&&_0x5b570e>0x0)return{'dbId':_0x5b570e,'dbName':await getDbName(_0x8af65b['appCode'],_0x5b570e)[_0x46ec53(0xac)](()=>undefined)};if(_0x8af65b[_0x46ec53(0xcf)])throw CliErrors['flagMissing'](_0x46ec53(0x9d),_0x46ec53(0xb2));const _0x28fe98=await listDatabases(_0x8af65b['appCode'])[_0x46ec53(0xac)](()=>[]);if(_0x28fe98[_0x46ec53(0xbe)]===0x1)return{'dbId':_0x28fe98[0x0][_0x46ec53(0xa5)],'dbName':_0x28fe98[0x0][_0x46ec53(0xcd)]};if(_0x28fe98[_0x46ec53(0xbe)]>0x1){const _0xe83c1b=await select({'message':_0x46ec53(0x97),'choices':[..._0x28fe98['map'](_0x37e563=>({'name':_0x37e563[_0x46ec53(0xcd)]+'\x20('+_0x37e563[_0x46ec53(0xa5)]+')','value':serializeDbSelection(_0x37e563)})),{'name':'✎\x20手动输入\x20dbId','value':_0x46ec53(0xa8)}]});if(_0xe83c1b!=='__manual__')return deserializeDbSelection(_0xe83c1b);}const _0x34fce4=await input({'message':_0x46ec53(0xa4),'validate':_0x153d42=>{const _0x4c1161=_0x46ec53,_0x3c4169=_0x153d42['trim']();if(!_0x3c4169)return'dbId\x20不能为空';const _0x32d537=Number(_0x3c4169);if(!Number[_0x4c1161(0xcb)](_0x32d537)||_0x32d537<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0x34fce4[_0x46ec53(0xba)]())};}async function resolveSqlModeInput(_0x33beac){const _0x249fe7=a130_0x73739,_0x11dac2=_0x33beac['str']('mode')[_0x249fe7(0xba)]();if(_0x11dac2==='sql'||_0x11dac2==='mybatisXml')return _0x11dac2;if(_0x33beac[_0x249fe7(0xcf)])throw CliErrors[_0x249fe7(0xa3)](_0x249fe7(0x95),_0x249fe7(0xc3));return await select({'message':_0x249fe7(0x9a),'choices':[{'name':_0x249fe7(0xb3),'value':_0x249fe7(0xa1),'description':_0x249fe7(0xc4)},{'name':_0x249fe7(0x9f),'value':_0x249fe7(0xb5),'description':_0x249fe7(0x90)}]});}function serializeDbSelection(_0x171d6f){const _0x210f03=a130_0x73739;return JSON[_0x210f03(0xbf)]({'dbId':_0x171d6f[_0x210f03(0xa5)],'dbName':_0x171d6f['dbName']});}function deserializeDbSelection(_0x3cb83a){const _0x129068=a130_0x73739;try{const _0x5e7cfa=JSON[_0x129068(0xb8)](_0x3cb83a);if(typeof _0x5e7cfa['dbId']===_0x129068(0x92)&&Number['isFinite'](_0x5e7cfa[_0x129068(0xa5)]))return{'dbId':_0x5e7cfa[_0x129068(0xa5)],'dbName':_0x5e7cfa['dbName']};}catch{}throw CliErrors['validation'](_0x129068(0xbd)+_0x3cb83a);}function resolveProvidedDbId(_0x4bfe02){const _0x39a6c5=a130_0x73739,_0xb846e2=_0x4bfe02['flag'](_0x39a6c5(0x9d));if(typeof _0xb846e2==='number'&&Number[_0x39a6c5(0xb1)](_0xb846e2))return _0xb846e2;return undefined;}
@@ -1 +1 @@
1
- const a123_0x5db85f=a123_0xec69;(function(_0x51018a,_0x15b059){const _0x4aa8c2=a123_0xec69,_0x5b3e00=_0x51018a();while(!![]){try{const _0x659f7f=parseInt(_0x4aa8c2(0x78))/0x1+parseInt(_0x4aa8c2(0x85))/0x2*(-parseInt(_0x4aa8c2(0x7e))/0x3)+parseInt(_0x4aa8c2(0x93))/0x4*(-parseInt(_0x4aa8c2(0x94))/0x5)+-parseInt(_0x4aa8c2(0x92))/0x6*(-parseInt(_0x4aa8c2(0x8c))/0x7)+parseInt(_0x4aa8c2(0x88))/0x8*(parseInt(_0x4aa8c2(0x77))/0x9)+-parseInt(_0x4aa8c2(0x8f))/0xa+parseInt(_0x4aa8c2(0x79))/0xb;if(_0x659f7f===_0x15b059)break;else _0x5b3e00['push'](_0x5b3e00['shift']());}catch(_0x5d8ea7){_0x5b3e00['push'](_0x5b3e00['shift']());}}}(a123_0x5615,0x452e2));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';function a123_0xec69(_0xf1e66c,_0x2f44c1){_0xf1e66c=_0xf1e66c-0x77;const _0x5615db=a123_0x5615();let _0xec6988=_0x5615db[_0xf1e66c];return _0xec6988;}import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':'sql','command':a123_0x5db85f(0x97),'description':a123_0x5db85f(0x80),'risk':a123_0x5db85f(0x89),'flags':[SQLCODE_FLAG],async 'validate'(_0x29d754){const _0x5361d4=a123_0x5db85f,_0x1a76ca=loadSqlProjectConfig(_0x29d754[_0x5361d4(0x84)]),_0x240777=await readSqlLockFile(_0x1a76ca[_0x5361d4(0x7a)]);if(!_0x240777)throw CliErrors[_0x5361d4(0x90)](_0x5361d4(0x82));},async 'dryRun'(_0x4aa7ee){const _0x8d9d5d=a123_0x5db85f,_0x55cce1=loadSqlProjectConfig(_0x4aa7ee[_0x8d9d5d(0x84)]),_0x4677d9=await readSqlLockFile(_0x55cce1[_0x8d9d5d(0x7a)]);if(!_0x4677d9)throw CliErrors[_0x8d9d5d(0x90)](_0x8d9d5d(0x82));const {appLock:_0x4e089d}=ensureSqlLockScope(_0x4677d9,_0x4aa7ee[_0x8d9d5d(0x84)],_0x55cce1[_0x8d9d5d(0x7f)],_0x8d9d5d(0x97)),_0x58f5d6=_0x4aa7ee[_0x8d9d5d(0x98)](_0x8d9d5d(0x95)),_0x4e683b=_0x4e089d[_0x8d9d5d(0x7b)][_0x58f5d6];if(!_0x4e683b)throw CliErrors['validation'](_0x8d9d5d(0x99)+_0x58f5d6+'\x22.');return{'method':_0x8d9d5d(0x8e),'url':_0x8d9d5d(0x8b),'body':{'sqlCode':_0x58f5d6,'id':_0x4e683b[_0x8d9d5d(0x96)],'localPath':resolveLocalSqlFilePath(_0x55cce1,_0x58f5d6,_0x4e683b)},'description':'Would\x20delete\x20SQL\x20'+_0x58f5d6+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0x55cce1['trashDir']};},async 'execute'(_0x38609d){const _0x515e5b=a123_0x5db85f,_0x31b5bf=loadSqlProjectConfig(_0x38609d[_0x515e5b(0x84)]),_0x290b9f=await readSqlLockFile(_0x31b5bf[_0x515e5b(0x7a)]);if(!_0x290b9f)throw CliErrors['validation'](_0x515e5b(0x83));const {lockData:_0x25d830,appLock:_0x43fa96}=ensureSqlLockScope(_0x290b9f,_0x38609d[_0x515e5b(0x84)],_0x31b5bf[_0x515e5b(0x7f)],_0x515e5b(0x97)),_0x2c8906=_0x38609d[_0x515e5b(0x98)](_0x515e5b(0x95)),_0x2692f1=_0x43fa96[_0x515e5b(0x7b)][_0x2c8906];if(!_0x2692f1)throw CliErrors['validation'](_0x515e5b(0x99)+_0x2c8906+'\x22.');await deleteSqlQuery({'id':_0x2692f1[_0x515e5b(0x96)],'sqlCode':_0x2c8906}),_0x43fa96[_0x515e5b(0x7b)]=Object['fromEntries'](Object['entries'](_0x43fa96['sqls'])[_0x515e5b(0x7d)](([_0x26b9af])=>_0x26b9af!==_0x2c8906)),_0x43fa96['lastSync']=new Date()[_0x515e5b(0x86)](),await writeSqlLockFile(_0x31b5bf['lockFilePath'],_0x25d830);const _0x751598=resolveLocalSqlFilePath(_0x31b5bf,_0x2c8906,_0x2692f1);let _0x5ebc23;await fileExists(_0x751598)&&(_0x5ebc23=await moveToTrash(_0x31b5bf[_0x515e5b(0x87)],_0x31b5bf['trashDir'],_0x751598),await cleanupEmptyDirectories(dirname(_0x751598),_0x31b5bf['sqlRootDir']));const _0x4b8102={'deleted':_0x2c8906,'remoteId':_0x2692f1['remoteId']};if(_0x5ebc23)_0x4b8102['trashedTo']=_0x5ebc23;return{'ok':!![],'data':_0x4b8102,'message':_0x515e5b(0x8d)+_0x2c8906+(_0x5ebc23?_0x515e5b(0x81):'')};}};async function moveToTrash(_0x147fdc,_0x4292b9,_0x591431){const _0x3a3e46=a123_0x5db85f,_0x49e511=new Date()['toISOString']()[_0x3a3e46(0x8a)](/[:.]/g,'-'),_0x2006a6=relative(_0x147fdc,_0x591431),_0x15e080=join(_0x4292b9,_0x49e511,_0x2006a6);return await mkdir(dirname(_0x15e080),{'recursive':!![]}),await rename(_0x591431,_0x15e080),_0x15e080;}function a123_0x5615(){const _0x1d6f4e=['Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','\x20(local\x20file\x20moved\x20to\x20trash)','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','SQL\x20lock\x20file\x20not\x20found.','appCode','484810bCDsEC','toISOString','projectRoot','2924504FvfOjh','high-risk-write','replace','/smartapi/custom/deleteUserCustomSql','1871737BtuLoG','Deleted\x20','POST','3209070iZmozy','validation','length','6CyWRPo','968684pDSeyY','5PctOkd','sqlcode','remoteId','delete','str','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','9CWEqom','65894NFWQlP','6956422fSKEvL','lockFilePath','sqls','startsWith','filter','6mwLAQR','sqlRoot'];a123_0x5615=function(){return _0x1d6f4e;};return a123_0x5615();}async function cleanupEmptyDirectories(_0x24a91f,_0x5c4f4e){const _0x463344=a123_0x5db85f;let _0x1c7f80=resolve(_0x24a91f);const _0xcb65ab=resolve(_0x5c4f4e);while(_0x1c7f80[_0x463344(0x7c)](''+_0xcb65ab+sep)||_0x1c7f80===_0xcb65ab){if(_0x1c7f80===_0xcb65ab)return;try{const _0x282dcc=await readdir(_0x1c7f80);if(_0x282dcc[_0x463344(0x91)]>0x0)return;await rmdir(_0x1c7f80);}catch{return;}_0x1c7f80=dirname(_0x1c7f80);}}
1
+ const a131_0x13bc97=a131_0x2fb9;(function(_0x9909a2,_0x3b70e5){const _0x1e0f66=a131_0x2fb9,_0x4b457d=_0x9909a2();while(!![]){try{const _0x4be0f5=parseInt(_0x1e0f66(0xdd))/0x1*(-parseInt(_0x1e0f66(0xe3))/0x2)+-parseInt(_0x1e0f66(0xcc))/0x3*(parseInt(_0x1e0f66(0xec))/0x4)+-parseInt(_0x1e0f66(0xcf))/0x5*(-parseInt(_0x1e0f66(0xd2))/0x6)+-parseInt(_0x1e0f66(0xc9))/0x7*(-parseInt(_0x1e0f66(0xde))/0x8)+-parseInt(_0x1e0f66(0xe4))/0x9*(-parseInt(_0x1e0f66(0xda))/0xa)+parseInt(_0x1e0f66(0xcb))/0xb*(parseInt(_0x1e0f66(0xca))/0xc)+parseInt(_0x1e0f66(0xe5))/0xd*(-parseInt(_0x1e0f66(0xe7))/0xe);if(_0x4be0f5===_0x3b70e5)break;else _0x4b457d['push'](_0x4b457d['shift']());}catch(_0x253731){_0x4b457d['push'](_0x4b457d['shift']());}}}(a131_0x273e,0xcc2f6));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a131_0x273e(){const _0x4ea78d=['1160685nJIcTu','91rHjdDo','trashedTo','3482962BERGKe','lockFilePath','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','toISOString','remoteId','76qoWUTj','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','4417gKuIwe','804SVxIzq','159511TywlJv','147084ZqvrCj','sql','length','480ZKfsNJ','sqlRootDir','high-risk-write','89100KKTrru','projectRoot','validation','sqlcode','filter','/smartapi/custom/deleteUserCustomSql','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','trashDir','110FfiYiN','sqls','fromEntries','269jCXbbz','8952mJszrF','entries','delete','appCode','Deleted\x20','7528budecN'];a131_0x273e=function(){return _0x4ea78d;};return a131_0x273e();}function a131_0x2fb9(_0xd2ad94,_0xceb012){_0xd2ad94=_0xd2ad94-0xc8;const _0x273e54=a131_0x273e();let _0x2fb95b=_0x273e54[_0xd2ad94];return _0x2fb95b;}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a131_0x13bc97(0xcd),'command':a131_0x13bc97(0xe0),'description':'Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','risk':a131_0x13bc97(0xd1),'flags':[SQLCODE_FLAG],async 'validate'(_0x48b82c){const _0x5d9ce5=a131_0x13bc97,_0x8acce8=loadSqlProjectConfig(_0x48b82c['appCode']),_0x546aad=await readSqlLockFile(_0x8acce8[_0x5d9ce5(0xe8)]);if(!_0x546aad)throw CliErrors[_0x5d9ce5(0xd4)](_0x5d9ce5(0xc8));},async 'dryRun'(_0x1f0e42){const _0x3df9f3=a131_0x13bc97,_0x44b4b8=loadSqlProjectConfig(_0x1f0e42[_0x3df9f3(0xe1)]),_0x4e9c1c=await readSqlLockFile(_0x44b4b8[_0x3df9f3(0xe8)]);if(!_0x4e9c1c)throw CliErrors[_0x3df9f3(0xd4)](_0x3df9f3(0xc8));const {appLock:_0x2bd8d9}=ensureSqlLockScope(_0x4e9c1c,_0x1f0e42[_0x3df9f3(0xe1)],_0x44b4b8['sqlRoot'],_0x3df9f3(0xe0)),_0x1cde0d=_0x1f0e42['str'](_0x3df9f3(0xd5)),_0x27796b=_0x2bd8d9[_0x3df9f3(0xdb)][_0x1cde0d];if(!_0x27796b)throw CliErrors['validation'](_0x3df9f3(0xd8)+_0x1cde0d+'\x22.');return{'method':'POST','url':_0x3df9f3(0xd7),'body':{'sqlCode':_0x1cde0d,'id':_0x27796b['remoteId'],'localPath':resolveLocalSqlFilePath(_0x44b4b8,_0x1cde0d,_0x27796b)},'description':'Would\x20delete\x20SQL\x20'+_0x1cde0d+_0x3df9f3(0xe9)+_0x44b4b8[_0x3df9f3(0xd9)]};},async 'execute'(_0x178855){const _0x391561=a131_0x13bc97,_0x245c61=loadSqlProjectConfig(_0x178855[_0x391561(0xe1)]),_0x438ca5=await readSqlLockFile(_0x245c61[_0x391561(0xe8)]);if(!_0x438ca5)throw CliErrors['validation']('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x2b8515,appLock:_0x18b7a6}=ensureSqlLockScope(_0x438ca5,_0x178855[_0x391561(0xe1)],_0x245c61['sqlRoot'],_0x391561(0xe0)),_0x535faf=_0x178855['str'](_0x391561(0xd5)),_0x45ba7b=_0x18b7a6['sqls'][_0x535faf];if(!_0x45ba7b)throw CliErrors[_0x391561(0xd4)](_0x391561(0xd8)+_0x535faf+'\x22.');await deleteSqlQuery({'id':_0x45ba7b['remoteId'],'sqlCode':_0x535faf}),_0x18b7a6[_0x391561(0xdb)]=Object[_0x391561(0xdc)](Object[_0x391561(0xdf)](_0x18b7a6[_0x391561(0xdb)])[_0x391561(0xd6)](([_0x35b28c])=>_0x35b28c!==_0x535faf)),_0x18b7a6['lastSync']=new Date()[_0x391561(0xea)](),await writeSqlLockFile(_0x245c61[_0x391561(0xe8)],_0x2b8515);const _0xe23551=resolveLocalSqlFilePath(_0x245c61,_0x535faf,_0x45ba7b);let _0xbbf735;await fileExists(_0xe23551)&&(_0xbbf735=await moveToTrash(_0x245c61[_0x391561(0xd3)],_0x245c61[_0x391561(0xd9)],_0xe23551),await cleanupEmptyDirectories(dirname(_0xe23551),_0x245c61[_0x391561(0xd0)]));const _0x4c631f={'deleted':_0x535faf,'remoteId':_0x45ba7b[_0x391561(0xeb)]};if(_0xbbf735)_0x4c631f[_0x391561(0xe6)]=_0xbbf735;return{'ok':!![],'data':_0x4c631f,'message':_0x391561(0xe2)+_0x535faf+(_0xbbf735?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x52024f,_0x24bd4c,_0xdec060){const _0x1b9062=a131_0x13bc97,_0x348382=new Date()[_0x1b9062(0xea)]()['replace'](/[:.]/g,'-'),_0x285357=relative(_0x52024f,_0xdec060),_0x3be802=join(_0x24bd4c,_0x348382,_0x285357);return await mkdir(dirname(_0x3be802),{'recursive':!![]}),await rename(_0xdec060,_0x3be802),_0x3be802;}async function cleanupEmptyDirectories(_0xc9fcbc,_0x2e4c3e){const _0x3c7d88=a131_0x13bc97;let _0x4e9641=resolve(_0xc9fcbc);const _0x5e52c7=resolve(_0x2e4c3e);while(_0x4e9641['startsWith'](''+_0x5e52c7+sep)||_0x4e9641===_0x5e52c7){if(_0x4e9641===_0x5e52c7)return;try{const _0x4a8d89=await readdir(_0x4e9641);if(_0x4a8d89[_0x3c7d88(0xce)]>0x0)return;await rmdir(_0x4e9641);}catch{return;}_0x4e9641=dirname(_0x4e9641);}}
@@ -1 +1 @@
1
- function a124_0x3204(_0x592267,_0x281528){_0x592267=_0x592267-0x68;const _0x29ba36=a124_0x29ba();let _0x32045c=_0x29ba36[_0x592267];return _0x32045c;}const a124_0x4e0f49=a124_0x3204;function a124_0x29ba(){const _0x5d92f9=['344256NzQHzp','1253veAHfw','dbId','2171rffynN','305685sjNypr','sqlContent','103128JQmWcn','1722084gtnttO','detail','2xPcuSy','5yfDrce','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','boolean','2406dzQRWb','verbose','str','5753FMmtwL','description','694576ejYGQA','appCode','1190RqAqRj','8ACHVcO'];a124_0x29ba=function(){return _0x5d92f9;};return a124_0x29ba();}(function(_0x520d9d,_0x30bf86){const _0x1346e4=a124_0x3204,_0x1349ee=_0x520d9d();while(!![]){try{const _0x3c0d43=parseInt(_0x1346e4(0x6d))/0x1*(-parseInt(_0x1346e4(0x7a))/0x2)+-parseInt(_0x1346e4(0x6b))/0x3+parseInt(_0x1346e4(0x76))/0x4*(-parseInt(_0x1346e4(0x6e))/0x5)+-parseInt(_0x1346e4(0x71))/0x6*(parseInt(_0x1346e4(0x7b))/0x7)+parseInt(_0x1346e4(0x79))/0x8*(parseInt(_0x1346e4(0x68))/0x9)+parseInt(_0x1346e4(0x78))/0xa*(parseInt(_0x1346e4(0x74))/0xb)+-parseInt(_0x1346e4(0x6a))/0xc*(-parseInt(_0x1346e4(0x7d))/0xd);if(_0x3c0d43===_0x30bf86)break;else _0x1349ee['push'](_0x1349ee['shift']());}catch(_0x53c5ee){_0x1349ee['push'](_0x1349ee['shift']());}}}(a124_0x29ba,0x59c4d));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':a124_0x4e0f49(0x6c),'description':a124_0x4e0f49(0x6f),'risk':'read','flags':[SQLCODE_FLAG,{'name':a124_0x4e0f49(0x72),'type':a124_0x4e0f49(0x70),'description':'Return\x20full\x20raw\x20SQL\x20query\x20object'}],async 'execute'(_0xdf00f6){const _0x35054c=a124_0x4e0f49,_0x31f537=await getSqlQueryInfo(_0xdf00f6[_0x35054c(0x77)],_0xdf00f6[_0x35054c(0x73)]('sqlcode')),_0x1bab02=_0xdf00f6['bool'](_0x35054c(0x72));if(_0x1bab02)return{'ok':!![],'data':_0x31f537};const _0x479bc5=_0x31f537[_0x35054c(0x7c)]?await getDbName(_0xdf00f6[_0x35054c(0x77)],_0x31f537[_0x35054c(0x7c)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x31f537['sqlCode'],'sqlName':_0x31f537['sqlName'],'db':_0x479bc5?_0x479bc5+'\x20('+_0x31f537[_0x35054c(0x7c)]+')':_0x31f537[_0x35054c(0x7c)]??'','description':_0x31f537[_0x35054c(0x75)]??'','sqlContent':_0x31f537[_0x35054c(0x69)]??''}};}};
1
+ const a132_0x56406e=a132_0x2c3d;(function(_0x383a59,_0x2a3047){const _0x426a82=a132_0x2c3d,_0x19c6b6=_0x383a59();while(!![]){try{const _0xd7867e=-parseInt(_0x426a82(0x111))/0x1*(parseInt(_0x426a82(0x103))/0x2)+-parseInt(_0x426a82(0x108))/0x3*(-parseInt(_0x426a82(0x11a))/0x4)+parseInt(_0x426a82(0x11b))/0x5+-parseInt(_0x426a82(0x10f))/0x6+parseInt(_0x426a82(0x107))/0x7+parseInt(_0x426a82(0x118))/0x8*(-parseInt(_0x426a82(0x117))/0x9)+parseInt(_0x426a82(0x114))/0xa*(parseInt(_0x426a82(0x110))/0xb);if(_0xd7867e===_0x2a3047)break;else _0x19c6b6['push'](_0x19c6b6['shift']());}catch(_0x32b3ee){_0x19c6b6['push'](_0x19c6b6['shift']());}}}(a132_0xf7d3,0xe0b5e));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a132_0x2c3d(_0x1384a1,_0x37f60d){_0x1384a1=_0x1384a1-0x103;const _0xf7d3b9=a132_0xf7d3();let _0x2c3d27=_0xf7d3b9[_0x1384a1];return _0x2c3d27;}function a132_0xf7d3(){const _0x92503d=['1918132zMKnCR','sqlContent','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','bool','10047282QlxXaM','498ADtfeP','dbId','verbose','sqlCode','sqlName','detail','boolean','3709506WOZOnh','11hjFnEu','1TtjzOU','description','appCode','6952350qQUvvX','sqlcode','read','5190228VbYNaL','8pINrmi','str','6316zIIfGW','3408740VeTCXm'];a132_0xf7d3=function(){return _0x92503d;};return a132_0xf7d3();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':a132_0x56406e(0x10d),'description':a132_0x56406e(0x105),'risk':a132_0x56406e(0x116),'flags':[SQLCODE_FLAG,{'name':a132_0x56406e(0x10a),'type':a132_0x56406e(0x10e),'description':'Return\x20full\x20raw\x20SQL\x20query\x20object'}],async 'execute'(_0x4fb00d){const _0x509e4e=a132_0x56406e,_0xbf432c=await getSqlQueryInfo(_0x4fb00d[_0x509e4e(0x113)],_0x4fb00d[_0x509e4e(0x119)](_0x509e4e(0x115))),_0x2dc1d5=_0x4fb00d[_0x509e4e(0x106)](_0x509e4e(0x10a));if(_0x2dc1d5)return{'ok':!![],'data':_0xbf432c};const _0x17d65f=_0xbf432c[_0x509e4e(0x109)]?await getDbName(_0x4fb00d[_0x509e4e(0x113)],_0xbf432c['dbId']):undefined;return{'ok':!![],'data':{'sqlCode':_0xbf432c[_0x509e4e(0x10b)],'sqlName':_0xbf432c[_0x509e4e(0x10c)],'db':_0x17d65f?_0x17d65f+'\x20('+_0xbf432c[_0x509e4e(0x109)]+')':_0xbf432c[_0x509e4e(0x109)]??'','description':_0xbf432c[_0x509e4e(0x112)]??'','sqlContent':_0xbf432c[_0x509e4e(0x104)]??''}};}};
@@ -1 +1 @@
1
- const a125_0xa318e0=a125_0x470e;function a125_0x1ec2(){const _0x55d206=['str','isArray','1078560WcjPWy','2262570obNFVI','5864166EMBBoh','params','2527415XFgxbi','read','2781BfmBul','9030290dJAUcl','exec','SQL\x20execution\x20failed','147262XZLihY','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','Returned\x20','length','3992VlPIqe','2zPMMNZ','execResult','4UyvAYm','sql'];a125_0x1ec2=function(){return _0x55d206;};return a125_0x1ec2();}function a125_0x470e(_0x2d1999,_0x189071){_0x2d1999=_0x2d1999-0x193;const _0x1ec2f6=a125_0x1ec2();let _0x470ed4=_0x1ec2f6[_0x2d1999];return _0x470ed4;}(function(_0x2c40ca,_0x1a1c8c){const _0x13acd3=a125_0x470e,_0x3c4002=_0x2c40ca();while(!![]){try{const _0x4f5f87=parseInt(_0x13acd3(0x1a6))/0x1*(parseInt(_0x13acd3(0x196))/0x2)+parseInt(_0x13acd3(0x19d))/0x3+-parseInt(_0x13acd3(0x198))/0x4*(parseInt(_0x13acd3(0x1a0))/0x5)+-parseInt(_0x13acd3(0x19c))/0x6+-parseInt(_0x13acd3(0x19e))/0x7+-parseInt(_0x13acd3(0x195))/0x8*(-parseInt(_0x13acd3(0x1a2))/0x9)+parseInt(_0x13acd3(0x1a3))/0xa;if(_0x4f5f87===_0x1a1c8c)break;else _0x3c4002['push'](_0x3c4002['shift']());}catch(_0x28b3ae){_0x3c4002['push'](_0x3c4002['shift']());}}}(a125_0x1ec2,0x6a5eb));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a125_0xa318e0(0x199),'command':a125_0xa318e0(0x1a4),'description':a125_0xa318e0(0x1a7),'risk':a125_0xa318e0(0x1a1),'flags':[SQLCODE_FLAG,{'name':a125_0xa318e0(0x19f),'type':'string','description':'SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)'}],async 'execute'(_0x459a7f){const _0x23fc6a=a125_0xa318e0,_0x491bf6=parseJsonParams(_0x459a7f['str'](_0x23fc6a(0x19f))),_0x402c02=Date['now'](),_0x21aae4=await executeSql(_0x459a7f['appCode'],_0x459a7f[_0x23fc6a(0x19a)]('sqlcode'),_0x491bf6),_0x24f79a=Date['now']()-_0x402c02,_0x2698d5=_0x21aae4?.[_0x23fc6a(0x197)]??_0x21aae4,_0x56fd95=_0x21aae4?.['execSuccess']??!![];if(!_0x56fd95)return{'ok':![],'data':{'error':_0x21aae4?.['execError']||_0x23fc6a(0x1a5),'elapsed':_0x24f79a},'message':_0x23fc6a(0x1a5)};const _0x5de147=Array[_0x23fc6a(0x19b)](_0x2698d5)?_0x2698d5:[];return{'ok':!![],'data':{'rows':_0x5de147,'rowCount':_0x5de147['length'],'elapsed':_0x24f79a},'message':_0x23fc6a(0x193)+_0x5de147[_0x23fc6a(0x194)]+'\x20row(s)\x20in\x20'+_0x24f79a+'ms'};}};
1
+ const a133_0x257a50=a133_0x5050;(function(_0x3035e5,_0x221ed3){const _0x3944ad=a133_0x5050,_0x58bc80=_0x3035e5();while(!![]){try{const _0x142fdb=parseInt(_0x3944ad(0x107))/0x1*(parseInt(_0x3944ad(0x111))/0x2)+parseInt(_0x3944ad(0x113))/0x3+parseInt(_0x3944ad(0x115))/0x4*(-parseInt(_0x3944ad(0x103))/0x5)+-parseInt(_0x3944ad(0x10b))/0x6+-parseInt(_0x3944ad(0x112))/0x7+-parseInt(_0x3944ad(0x109))/0x8+parseInt(_0x3944ad(0x10f))/0x9;if(_0x142fdb===_0x221ed3)break;else _0x58bc80['push'](_0x58bc80['shift']());}catch(_0x18bfa8){_0x58bc80['push'](_0x58bc80['shift']());}}}(a133_0x47a8,0x959d0));function a133_0x5050(_0x5ac7ff,_0x2d5b91){_0x5ac7ff=_0x5ac7ff-0xfe;const _0x47a80d=a133_0x47a8();let _0x50506f=_0x47a80d[_0x5ac7ff];return _0x50506f;}function a133_0x47a8(){const _0x3e7dc5=['read','Returned\x20','sql','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','isArray','9155YbTsBH','str','execError','execSuccess','6436LBvWea','params','8478352PAToxB','exec','4119246DpnSYq','now','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','length','20261718WFnqkz','sqlcode','362axadOg','731094PyFVgx','284121IOXNmD','SQL\x20execution\x20failed','2288duSqwr'];a133_0x47a8=function(){return _0x3e7dc5;};return a133_0x47a8();}import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a133_0x257a50(0x100),'command':a133_0x257a50(0x10a),'description':a133_0x257a50(0x10d),'risk':a133_0x257a50(0xfe),'flags':[SQLCODE_FLAG,{'name':'params','type':'string','description':a133_0x257a50(0x101)}],async 'execute'(_0x3a2e88){const _0x29331b=a133_0x257a50,_0x11efab=parseJsonParams(_0x3a2e88[_0x29331b(0x104)](_0x29331b(0x108))),_0x2f004b=Date['now'](),_0x492c5f=await executeSql(_0x3a2e88['appCode'],_0x3a2e88[_0x29331b(0x104)](_0x29331b(0x110)),_0x11efab),_0x26a394=Date[_0x29331b(0x10c)]()-_0x2f004b,_0x39d9ea=_0x492c5f?.['execResult']??_0x492c5f,_0x5b3004=_0x492c5f?.[_0x29331b(0x106)]??!![];if(!_0x5b3004)return{'ok':![],'data':{'error':_0x492c5f?.[_0x29331b(0x105)]||_0x29331b(0x114),'elapsed':_0x26a394},'message':_0x29331b(0x114)};const _0x4ec871=Array[_0x29331b(0x102)](_0x39d9ea)?_0x39d9ea:[];return{'ok':!![],'data':{'rows':_0x4ec871,'rowCount':_0x4ec871['length'],'elapsed':_0x26a394},'message':_0x29331b(0xff)+_0x4ec871[_0x29331b(0x10e)]+'\x20row(s)\x20in\x20'+_0x26a394+'ms'};}};
@@ -1 +1 @@
1
- (function(_0x1fefc4,_0x15d68d){const _0x81b429=a126_0x24f6,_0x43f07f=_0x1fefc4();while(!![]){try{const _0x58ee5f=-parseInt(_0x81b429(0x122))/0x1*(parseInt(_0x81b429(0x123))/0x2)+-parseInt(_0x81b429(0x124))/0x3+parseInt(_0x81b429(0x120))/0x4+-parseInt(_0x81b429(0x125))/0x5*(-parseInt(_0x81b429(0x126))/0x6)+parseInt(_0x81b429(0x121))/0x7*(-parseInt(_0x81b429(0x11f))/0x8)+-parseInt(_0x81b429(0x127))/0x9+parseInt(_0x81b429(0x128))/0xa;if(_0x58ee5f===_0x15d68d)break;else _0x43f07f['push'](_0x43f07f['shift']());}catch(_0x125188){_0x43f07f['push'](_0x43f07f['shift']());}}}(a126_0x7234,0xd8fa9));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';function a126_0x7234(){const _0xf399cf=['198235ybRtcZ','6LypelO','7483617kGUIlA','45489160sgsjtb','11063752OauxzX','2508064QkDllW','7bkorRZ','179rWgqjN','4862gTupUK','5031609gJTOpq'];a126_0x7234=function(){return _0xf399cf;};return a126_0x7234();}import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';function a126_0x24f6(_0x31ddad,_0x2155a7){_0x31ddad=_0x31ddad-0x11f;const _0x72347b=a126_0x7234();let _0x24f6e5=_0x72347b[_0x31ddad];return _0x24f6e5;}import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (function(_0xdf1e0b,_0x32ba21){const _0x2066c4=a134_0x3237,_0x570364=_0xdf1e0b();while(!![]){try{const _0x164129=-parseInt(_0x2066c4(0x10d))/0x1*(parseInt(_0x2066c4(0x108))/0x2)+-parseInt(_0x2066c4(0x106))/0x3*(parseInt(_0x2066c4(0x107))/0x4)+parseInt(_0x2066c4(0x10c))/0x5*(-parseInt(_0x2066c4(0x105))/0x6)+-parseInt(_0x2066c4(0x104))/0x7+parseInt(_0x2066c4(0x10a))/0x8*(parseInt(_0x2066c4(0x10b))/0x9)+parseInt(_0x2066c4(0x109))/0xa+parseInt(_0x2066c4(0x10e))/0xb;if(_0x164129===_0x32ba21)break;else _0x570364['push'](_0x570364['shift']());}catch(_0x4a9242){_0x570364['push'](_0x570364['shift']());}}}(a134_0x4ac0,0x4c758));import{sqlList}from'../../commands/sql/list.js';function a134_0x3237(_0x15cea6,_0x58af31){_0x15cea6=_0x15cea6-0x104;const _0x4ac0d9=a134_0x4ac0();let _0x32373d=_0x4ac0d9[_0x15cea6];return _0x32373d;}import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';function a134_0x4ac0(){const _0x2f8ab3=['1395624oswNiI','41361rdxwax','104ptvTGb','298rRhjjC','1933730fCkUAL','6520NymymO','4005uIdEEZ','5UCYfUS','739lAuNnD','5086026JCqAtS','28427xQBuSk'];a134_0x4ac0=function(){return _0x2f8ab3;};return a134_0x4ac0();}import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
@@ -1 +1 @@
1
- function a127_0x20c2(_0x26610e,_0x433cde){_0x26610e=_0x26610e-0x114;const _0x6c21c5=a127_0x6c21();let _0x20c2f6=_0x6c21c5[_0x26610e];return _0x20c2f6;}const a127_0x6fefab=a127_0x20c2;function a127_0x6c21(){const _0x146aee=['read','list','2654852uJiXFO','appCode','dbId','1130499VunwOn','name','pagesize','sqlcode','paging','sql','144GeNeIK','length','number','Found\x20','51822VqLVvy','page','No\x20custom\x20SQL\x20queries\x20found.','2UQlPVW','Filter\x20by\x20SQL\x20name','totalCount','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','List\x20custom\x20SQL\x20queries','3036411zUQZUI','Page\x20number','map','174313RlaNrX','5085700XtGnTk','all','num','\x20SQL\x20queries\x20(total:\x20','Page\x20size','string','5IpaORv','str','boolean','333300RZdsqu','verbose'];a127_0x6c21=function(){return _0x146aee;};return a127_0x6c21();}(function(_0x3e1144,_0x3565c0){const _0x48dd8a=a127_0x20c2,_0x5a3303=_0x3e1144();while(!![]){try{const _0x332697=-parseInt(_0x48dd8a(0x128))/0x1*(parseInt(_0x48dd8a(0x120))/0x2)+-parseInt(_0x48dd8a(0x139))/0x3+-parseInt(_0x48dd8a(0x136))/0x4*(-parseInt(_0x48dd8a(0x12f))/0x5)+parseInt(_0x48dd8a(0x132))/0x6+-parseInt(_0x48dd8a(0x125))/0x7+-parseInt(_0x48dd8a(0x119))/0x8*(-parseInt(_0x48dd8a(0x11d))/0x9)+parseInt(_0x48dd8a(0x129))/0xa;if(_0x332697===_0x3565c0)break;else _0x5a3303['push'](_0x5a3303['shift']());}catch(_0x3d921c){_0x5a3303['push'](_0x5a3303['shift']());}}}(a127_0x6c21,0x549be));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a127_0x6fefab(0x118),'command':a127_0x6fefab(0x135),'description':a127_0x6fefab(0x124),'risk':a127_0x6fefab(0x134),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a127_0x6fefab(0x114),'type':a127_0x6fefab(0x12e),'description':a127_0x6fefab(0x121)},{'name':a127_0x6fefab(0x11e),'type':a127_0x6fefab(0x11b),'description':a127_0x6fefab(0x126),'default':0x1},{'name':a127_0x6fefab(0x115),'type':a127_0x6fefab(0x11b),'description':a127_0x6fefab(0x12d)},{'name':a127_0x6fefab(0x133),'type':a127_0x6fefab(0x131),'description':a127_0x6fefab(0x123)}],async 'execute'(_0xdf465e){const _0x50fb49=a127_0x6fefab,_0x15d729=await listSqlQueries(_0xdf465e['appCode'],{'sqlCode':_0xdf465e['str'](_0x50fb49(0x116))||undefined,'sqlName':_0xdf465e[_0x50fb49(0x130)](_0x50fb49(0x114))||undefined,'currentPage':_0xdf465e[_0x50fb49(0x12b)](_0x50fb49(0x11e)),'pageSize':_0xdf465e[_0x50fb49(0x12b)](_0x50fb49(0x115),0x32)}),_0x1c9554=_0xdf465e['bool']('verbose'),_0x17cd98=_0x15d729['tableData']??[],_0x2e2545=_0x15d729[_0x50fb49(0x117)]?.[_0x50fb49(0x122)]??_0x17cd98[_0x50fb49(0x11a)];let _0x263c30;return _0x1c9554?_0x263c30=_0x17cd98:_0x263c30=await Promise[_0x50fb49(0x12a)](_0x17cd98[_0x50fb49(0x127)](async _0x4d1119=>{const _0x1451d7=_0x50fb49;let _0xc09b4f;try{_0xc09b4f=_0x4d1119[_0x1451d7(0x138)]?await getDbName(_0xdf465e[_0x1451d7(0x137)],_0x4d1119[_0x1451d7(0x138)]):undefined;}catch{}return{'sqlCode':_0x4d1119['sqlCode'],'sqlName':_0x4d1119['sqlName'],'description':_0x4d1119['description']??'','db':_0xc09b4f?_0xc09b4f+'\x20('+_0x4d1119[_0x1451d7(0x138)]+')':_0x4d1119[_0x1451d7(0x138)]??''};})),{'ok':!![],'data':_0x263c30,'message':_0x17cd98[_0x50fb49(0x11a)]===0x0?_0x50fb49(0x11f):_0x50fb49(0x11c)+_0x17cd98[_0x50fb49(0x11a)]+_0x50fb49(0x12c)+_0x2e2545+').'};}};
1
+ const a135_0x22e7b1=a135_0xd60f;function a135_0x27e9(){const _0x261820=['length','Found\x20','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','all','List\x20custom\x20SQL\x20queries','name','pagesize','1196888ynRZiB','1012370mkKvuZ','paging','4829032EANsQE','\x20SQL\x20queries\x20(total:\x20','dbId','string','num','appCode','map','Filter\x20by\x20SQL\x20name','105632qgWTky','2752692xBaEWZ','27OipEIa','195727aQgDCp','Page\x20size','verbose','39gKNgnB','bool','number','No\x20custom\x20SQL\x20queries\x20found.','boolean','page','sql','tableData','94458chrAaS','sqlCode','Page\x20number','str','list'];a135_0x27e9=function(){return _0x261820;};return a135_0x27e9();}(function(_0x68c5c5,_0x1a9dd8){const _0x4fb87e=a135_0xd60f,_0xe8898=_0x68c5c5();while(!![]){try{const _0x4392ae=parseInt(_0x4fb87e(0x15c))/0x1+parseInt(_0x4fb87e(0x16a))/0x2*(-parseInt(_0x4fb87e(0x162))/0x3)+-parseInt(_0x4fb87e(0x176))/0x4+-parseInt(_0x4fb87e(0x177))/0x5+-parseInt(_0x4fb87e(0x15d))/0x6+-parseInt(_0x4fb87e(0x15f))/0x7+parseInt(_0x4fb87e(0x179))/0x8*(parseInt(_0x4fb87e(0x15e))/0x9);if(_0x4392ae===_0x1a9dd8)break;else _0xe8898['push'](_0xe8898['shift']());}catch(_0x2292d9){_0xe8898['push'](_0xe8898['shift']());}}}(a135_0x27e9,0x4caf7));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a135_0xd60f(_0x4c2ee3,_0x34326d){_0x4c2ee3=_0x4c2ee3-0x15a;const _0x27e9d=a135_0x27e9();let _0xd60fdb=_0x27e9d[_0x4c2ee3];return _0xd60fdb;}export const sqlList={'service':a135_0x22e7b1(0x168),'command':a135_0x22e7b1(0x16e),'description':a135_0x22e7b1(0x173),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a135_0x22e7b1(0x17c),'description':a135_0x22e7b1(0x15b)},{'name':a135_0x22e7b1(0x167),'type':a135_0x22e7b1(0x164),'description':a135_0x22e7b1(0x16c),'default':0x1},{'name':a135_0x22e7b1(0x175),'type':a135_0x22e7b1(0x164),'description':a135_0x22e7b1(0x160)},{'name':a135_0x22e7b1(0x161),'type':a135_0x22e7b1(0x166),'description':a135_0x22e7b1(0x171)}],async 'execute'(_0x6918e8){const _0x4dac52=a135_0x22e7b1,_0x53e533=await listSqlQueries(_0x6918e8['appCode'],{'sqlCode':_0x6918e8[_0x4dac52(0x16d)]('sqlcode')||undefined,'sqlName':_0x6918e8[_0x4dac52(0x16d)](_0x4dac52(0x174))||undefined,'currentPage':_0x6918e8[_0x4dac52(0x17d)]('page'),'pageSize':_0x6918e8[_0x4dac52(0x17d)](_0x4dac52(0x175),0x32)}),_0x75dc03=_0x6918e8[_0x4dac52(0x163)](_0x4dac52(0x161)),_0x2ade09=_0x53e533[_0x4dac52(0x169)]??[],_0x4d7acf=_0x53e533[_0x4dac52(0x178)]?.['totalCount']??_0x2ade09[_0x4dac52(0x16f)];let _0xc714bf;return _0x75dc03?_0xc714bf=_0x2ade09:_0xc714bf=await Promise[_0x4dac52(0x172)](_0x2ade09[_0x4dac52(0x15a)](async _0x5c8a50=>{const _0x2fd531=_0x4dac52;let _0x385cb4;try{_0x385cb4=_0x5c8a50[_0x2fd531(0x17b)]?await getDbName(_0x6918e8[_0x2fd531(0x17e)],_0x5c8a50[_0x2fd531(0x17b)]):undefined;}catch{}return{'sqlCode':_0x5c8a50[_0x2fd531(0x16b)],'sqlName':_0x5c8a50['sqlName'],'description':_0x5c8a50['description']??'','db':_0x385cb4?_0x385cb4+'\x20('+_0x5c8a50[_0x2fd531(0x17b)]+')':_0x5c8a50['dbId']??''};})),{'ok':!![],'data':_0xc714bf,'message':_0x2ade09[_0x4dac52(0x16f)]===0x0?_0x4dac52(0x165):_0x4dac52(0x170)+_0x2ade09[_0x4dac52(0x16f)]+_0x4dac52(0x17a)+_0x4d7acf+').'};}};
@@ -1 +1 @@
1
- const a128_0x502a99=a128_0x4fd2;(function(_0xced82d,_0xbfed10){const _0xffff1=a128_0x4fd2,_0xaedd0=_0xced82d();while(!![]){try{const _0x46876e=parseInt(_0xffff1(0x1b9))/0x1*(-parseInt(_0xffff1(0x1a0))/0x2)+parseInt(_0xffff1(0x1b1))/0x3*(parseInt(_0xffff1(0x1c1))/0x4)+-parseInt(_0xffff1(0x1a2))/0x5*(parseInt(_0xffff1(0x1a9))/0x6)+parseInt(_0xffff1(0x19d))/0x7*(parseInt(_0xffff1(0x195))/0x8)+-parseInt(_0xffff1(0x1a3))/0x9+-parseInt(_0xffff1(0x1b3))/0xa*(parseInt(_0xffff1(0x199))/0xb)+-parseInt(_0xffff1(0x1bb))/0xc*(-parseInt(_0xffff1(0x189))/0xd);if(_0x46876e===_0xbfed10)break;else _0xaedd0['push'](_0xaedd0['shift']());}catch(_0x380986){_0xaedd0['push'](_0xaedd0['shift']());}}}(a128_0x3fc7,0x9d078));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 a128_0x3fc7(){const _0x185f0b=['sqlContent','push','paging','18175924hxLdHX','\x20failed','replace','sqlRootDir','local\x20differs\x20from\x20remote','\x20skipped,\x20','sqlName','write','unchanged','force','skipped','tableData','1945880TKUJUJ','test','Force\x20overwrite\x20local\x20unsynced\x20changes','str','641047YccjjZ','trimStart','Pull\x20complete:\x20','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','7gDLhCx','totalCount','string','118dmsMyV','pull','1814810ipvJqQ','6007365ckbADy','sqls','sqlRoot','filter','path','description','18ANUYkN','message','lockFilePath','Would\x20pull\x20','sqlCode','conflict','utf8','length','24glgXwk','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','10EJwlJw','sql','cancelled','No\x20remote\x20SQL\x20queries\x20matched.','catch','\x20written,\x20','18169kSPdQc','toISOString','24LiyVoN','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','bool','mybatisXml','appCode','name','245140aaDxNd','sqlcode','apps','dbId'];a128_0x3fc7=function(){return _0x185f0b;};return a128_0x3fc7();}import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a128_0x4fd2(_0xd611dd,_0x194b7c){_0xd611dd=_0xd611dd-0x189;const _0x3fc7a7=a128_0x3fc7();let _0x4fd26e=_0x3fc7a7[_0xd611dd];return _0x4fd26e;}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(_0xeea167,_0x2bfb13){const _0x8cec10=a128_0x4fd2,_0x114ba1=[];let _0x4368d4=0x1;while(!![]){const _0x247fc3=await listSqlQueries(_0xeea167,{'currentPage':_0x4368d4,'pageSize':PAGE_SIZE,'sqlCode':_0x2bfb13[_0x8cec10(0x1ad)],'sqlName':_0x2bfb13[_0x8cec10(0x18f)]}),_0x4bbce6=_0x247fc3[_0x8cec10(0x194)]??[];_0x114ba1[_0x8cec10(0x1c6)](..._0x4bbce6);if(_0x4bbce6['length']===0x0)break;const _0x41288f=_0x247fc3[_0x8cec10(0x1c7)]?.[_0x8cec10(0x19e)];if(_0x41288f!=null?_0x114ba1['length']>=_0x41288f:_0x4bbce6[_0x8cec10(0x1b0)]<PAGE_SIZE)break;_0x4368d4++;}return _0x114ba1;}async function ensureSqlContent(_0x44b23c){const _0xc1b5b1=a128_0x4fd2;if(_0x44b23c[_0xc1b5b1(0x1c5)]!=null&&String(_0x44b23c['sqlContent'])['length']>0x0)return _0x44b23c;return getSqlQueryDetail(_0x44b23c[_0xc1b5b1(0x1ad)]);}export const sqlPull={'service':a128_0x502a99(0x1b4),'command':a128_0x502a99(0x1a1),'description':a128_0x502a99(0x1b2),'risk':a128_0x502a99(0x190),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a128_0x502a99(0x1c0),'type':a128_0x502a99(0x19f),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':a128_0x502a99(0x192),'type':'boolean','description':a128_0x502a99(0x197)}],async 'dryRun'(_0x453d38){const _0x3b25c5=a128_0x502a99,_0x5ca6ad=loadSqlProjectConfig(_0x453d38[_0x3b25c5(0x1bf)]),_0x2c27d1=await readSqlLockFile(_0x5ca6ad[_0x3b25c5(0x1ab)]),{appLock:_0x4454a6}=ensureSqlLockScope(_0x2c27d1??createEmptySqlLock(),_0x5ca6ad[_0x3b25c5(0x1bf)],_0x5ca6ad[_0x3b25c5(0x1a5)],_0x3b25c5(0x1a1)),_0x5864a7=await fetchAllSqlQueries(_0x453d38[_0x3b25c5(0x1bf)],{'sqlCode':_0x453d38[_0x3b25c5(0x198)](_0x3b25c5(0x1c2))||undefined,'sqlName':_0x453d38[_0x3b25c5(0x198)](_0x3b25c5(0x1c0))||undefined}),_0x589d59=[];for(const _0x350b66 of _0x5864a7){const _0x515bf3=await ensureSqlContent(_0x350b66),_0x49a7d9=ensureRemoteSqlContent(_0x515bf3),_0x5e1197=detectModeFromSql(_0x515bf3),_0x20abe3=_0x515bf3[_0x3b25c5(0x1c4)]?await getDbName(_0x453d38[_0x3b25c5(0x1bf)],Number(_0x515bf3[_0x3b25c5(0x1c4)]))['catch'](()=>undefined):undefined,_0x245731=buildLocalSqlFileContent({'sqlCode':_0x515bf3['sqlCode'],'sqlName':_0x515bf3[_0x3b25c5(0x18f)],'dbId':_0x515bf3[_0x3b25c5(0x1c4)]},_0x49a7d9,{'dbName':_0x20abe3,'mode':_0x5e1197,'syncedAt':new Date()[_0x3b25c5(0x1ba)](),'description':_0x515bf3[_0x3b25c5(0x1a8)]}),_0x2eea43=buildSqlLockEntry(_0x515bf3,_0x49a7d9,'',{'dbName':_0x20abe3}),_0x1f2d2a=resolveLocalSqlFilePath(_0x5ca6ad,_0x515bf3[_0x3b25c5(0x1ad)],_0x2eea43);let _0x2ea36f='would_pull',_0x520318;if(await fileExists(_0x1f2d2a)){const _0x48e857=await readFile(_0x1f2d2a,_0x3b25c5(0x1af));isEquivalentPulledSqlFile(_0x48e857,_0x245731,_0x5e1197)?(_0x2ea36f=_0x3b25c5(0x193),_0x520318=_0x3b25c5(0x191)):(_0x2ea36f=_0x3b25c5(0x1ae),_0x520318='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x589d59['push']({'sqlCode':_0x515bf3['sqlCode'],'sqlName':_0x515bf3[_0x3b25c5(0x18f)],'filePath':_0x1f2d2a,'status':_0x2ea36f,'reason':_0x520318});}return{'method':'POST','url':_0x3b25c5(0x1bc),'body':{'appCode':_0x453d38[_0x3b25c5(0x1bf)],'sqlCode':_0x453d38[_0x3b25c5(0x198)](_0x3b25c5(0x1c2))||null,'sqlName':_0x453d38[_0x3b25c5(0x198)](_0x3b25c5(0x1c0))||null,'files':_0x589d59},'description':_0x3b25c5(0x1ac)+_0x589d59[_0x3b25c5(0x1b0)]+'\x20SQL\x20file(s)\x20into\x20'+_0x5ca6ad[_0x3b25c5(0x18c)]};},async 'execute'(_0x2ac672){const _0x5a5b54=a128_0x502a99,_0x398fe1=loadSqlProjectConfig(_0x2ac672['appCode']),_0x48f54f=await readSqlLockFile(_0x398fe1[_0x5a5b54(0x1ab)]),{lockData:_0x354cc0,appLock:_0x1bea14}=ensureSqlLockScope(_0x48f54f??createEmptySqlLock(),_0x398fe1[_0x5a5b54(0x1bf)],_0x398fe1[_0x5a5b54(0x1a5)],'pull'),_0x384e4e=_0x2ac672[_0x5a5b54(0x1bd)](_0x5a5b54(0x192)),_0x17c2af=await fetchAllSqlQueries(_0x2ac672['appCode'],{'sqlCode':_0x2ac672['str'](_0x5a5b54(0x1c2))||undefined,'sqlName':_0x2ac672[_0x5a5b54(0x198)](_0x5a5b54(0x1c0))||undefined});if(_0x17c2af['length']===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x5a5b54(0x1b6)};const _0x58cc62=[],_0x17a0a5=[];for(const _0x4ec77f of _0x17c2af){try{_0x58cc62[_0x5a5b54(0x1c6)](await ensureSqlContent(_0x4ec77f));}catch(_0x4aedc2){_0x17a0a5['push']({'sqlCode':_0x4ec77f['sqlCode'],'error':_0x4aedc2 instanceof Error?_0x4aedc2[_0x5a5b54(0x1aa)]:String(_0x4aedc2)});}}if(_0x384e4e&&!_0x2ac672['nonInteractive']){let _0x27bd46=![];for(const _0x444926 of _0x58cc62){const _0x4ac6aa=detectModeFromSql(_0x444926),_0x67ddfa=_0x444926[_0x5a5b54(0x1c4)]?await getDbName(_0x2ac672['appCode'],Number(_0x444926[_0x5a5b54(0x1c4)]))[_0x5a5b54(0x1b7)](()=>undefined):undefined,_0x131d4c=buildLocalSqlFileContent({'sqlCode':_0x444926[_0x5a5b54(0x1ad)],'sqlName':_0x444926[_0x5a5b54(0x18f)],'dbId':_0x444926[_0x5a5b54(0x1c4)]},ensureRemoteSqlContent(_0x444926),{'dbName':_0x67ddfa,'mode':_0x4ac6aa,'syncedAt':new Date()[_0x5a5b54(0x1ba)](),'description':_0x444926[_0x5a5b54(0x1a8)]}),_0x185a86=resolveLocalSqlFilePath(_0x398fe1,_0x444926[_0x5a5b54(0x1ad)],buildSqlLockEntry(_0x444926,ensureRemoteSqlContent(_0x444926),'',{'dbName':_0x67ddfa}));if(await fileExists(_0x185a86)){const _0x406d66=await readFile(_0x185a86,'utf8');if(!isEquivalentPulledSqlFile(_0x406d66,_0x131d4c,_0x4ac6aa)){_0x27bd46=!![];break;}}}if(_0x27bd46){const _0x53f03e=await confirmForceOverwrite(_0x5a5b54(0x19c));if(!_0x53f03e)throw CliErrors[_0x5a5b54(0x1b5)]('Force\x20pull\x20cancelled.');}}const _0x2268b6=cloneSqlLockData(_0x354cc0),_0x3cacc9=_0x2268b6[_0x5a5b54(0x1c3)][_0x398fe1[_0x5a5b54(0x1bf)]],_0x466b39=[],_0x5e44e3=[];for(const _0x5190e3 of _0x58cc62){const _0x227c72=_0x3cacc9[_0x5a5b54(0x1a4)][_0x5190e3[_0x5a5b54(0x1ad)]],_0x235fcb=ensureRemoteSqlContent(_0x5190e3),_0x1599bd=detectModeFromSql(_0x5190e3),_0x3c513c=_0x5190e3[_0x5a5b54(0x1c4)]?await getDbName(_0x2ac672['appCode'],Number(_0x5190e3[_0x5a5b54(0x1c4)]))[_0x5a5b54(0x1b7)](()=>undefined):undefined,_0x13b697=buildLocalSqlFileContent({'sqlCode':_0x5190e3['sqlCode'],'sqlName':_0x5190e3[_0x5a5b54(0x18f)],'dbId':_0x5190e3['dbId']},_0x235fcb,{'dbName':_0x3c513c,'mode':_0x1599bd,'syncedAt':new Date()['toISOString'](),'description':_0x5190e3[_0x5a5b54(0x1a8)]}),_0x1aa682=buildSqlLockEntry(_0x5190e3,_0x235fcb,computeSqlContentHash(_0x13b697),{'dbName':_0x3c513c}),_0x2ee7a0=_0x1aa682[_0x5a5b54(0x1a7)],_0x1bd7c9=join(_0x398fe1[_0x5a5b54(0x18c)],_0x2ee7a0);try{if(await fileExists(_0x1bd7c9)){const _0x3ecfab=await readFile(_0x1bd7c9,_0x5a5b54(0x1af));if(isEquivalentPulledSqlFile(_0x3ecfab,_0x13b697,_0x1599bd)){_0x5e44e3[_0x5a5b54(0x1c6)]({'sqlCode':_0x5190e3[_0x5a5b54(0x1ad)],'reason':_0x5a5b54(0x191)}),_0x3cacc9['sqls'][_0x5190e3['sqlCode']]={..._0x1aa682,'hash':computeSqlContentHash(_0x3ecfab),'path':_0x2ee7a0};continue;}if(!_0x384e4e){_0x5e44e3['push']({'sqlCode':_0x5190e3['sqlCode'],'reason':_0x5a5b54(0x18d)});continue;}}const _0x5e9aff=_0x227c72?.[_0x5a5b54(0x1a7)]?join(_0x398fe1['sqlRootDir'],_0x227c72[_0x5a5b54(0x1a7)]):undefined;_0x5e9aff&&_0x5e9aff!==_0x1bd7c9&&await fileExists(_0x5e9aff)&&await rm(_0x5e9aff,{'force':!![]}),await ensureParentDirectory(_0x1bd7c9),await writeFile(_0x1bd7c9,_0x13b697,'utf8'),_0x3cacc9[_0x5a5b54(0x1a4)][_0x5190e3[_0x5a5b54(0x1ad)]]={..._0x1aa682,'path':_0x2ee7a0},_0x466b39[_0x5a5b54(0x1c6)]({'sqlCode':_0x5190e3[_0x5a5b54(0x1ad)],'filePath':_0x1bd7c9});}catch(_0x2c125f){_0x17a0a5['push']({'sqlCode':_0x5190e3[_0x5a5b54(0x1ad)],'error':_0x2c125f instanceof Error?_0x2c125f[_0x5a5b54(0x1aa)]:String(_0x2c125f)});}}return _0x3cacc9['lastSync']=new Date()[_0x5a5b54(0x1ba)](),await writeSqlLockFile(_0x398fe1[_0x5a5b54(0x1ab)],_0x2268b6),{'ok':_0x17a0a5['length']===0x0,'data':{'pulled':_0x466b39,'skipped':_0x5e44e3,'failed':_0x17a0a5},'message':_0x5a5b54(0x19b)+_0x466b39[_0x5a5b54(0x1b0)]+_0x5a5b54(0x1b8)+_0x5e44e3[_0x5a5b54(0x1b0)]+_0x5a5b54(0x18e)+_0x17a0a5[_0x5a5b54(0x1b0)]+_0x5a5b54(0x18a)};}};function detectModeFromSql(_0x23ffee){const _0x148e71=a128_0x502a99,_0x3ce1e7=ensureRemoteSqlContent(_0x23ffee),_0x4d86d1=stripLocalSqlMetadata(_0x3ce1e7,'mybatisXml')[_0x148e71(0x19a)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x4d86d1))return _0x148e71(0x1be);return _0x148e71(0x1b4);}function isEquivalentPulledSqlFile(_0x459ee8,_0x3eef5f,_0x2d5c2c){return normalizePullComparableContent(_0x459ee8,_0x2d5c2c)===normalizePullComparableContent(_0x3eef5f,_0x2d5c2c);}function normalizePullComparableContent(_0x4e0971,_0xf17d06){const _0xae92c1=a128_0x502a99,_0x3abde3=_0x4e0971[_0xae92c1(0x18b)](/\r\n/g,'\x0a')['split']('\x0a'),_0x16b5c2=_0x3abde3[_0xae92c1(0x1a6)](_0x1dd6a9=>!isSyncedAtMetadataLine(_0x1dd6a9,_0xf17d06));return _0x16b5c2['join']('\x0a');}function isSyncedAtMetadataLine(_0x43b6bf,_0x49d2bc){const _0x65ffbc=a128_0x502a99;if(_0x49d2bc===_0x65ffbc(0x1be))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x43b6bf);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x65ffbc(0x196)](_0x43b6bf);}
1
+ const a136_0x5d1988=a136_0x3b1a;(function(_0x3d9300,_0x1460e4){const _0x399001=a136_0x3b1a,_0x3962ed=_0x3d9300();while(!![]){try{const _0x115aa5=-parseInt(_0x399001(0x1e6))/0x1+-parseInt(_0x399001(0x1f4))/0x2*(parseInt(_0x399001(0x1ff))/0x3)+parseInt(_0x399001(0x1db))/0x4+-parseInt(_0x399001(0x1e0))/0x5+parseInt(_0x399001(0x201))/0x6*(-parseInt(_0x399001(0x202))/0x7)+parseInt(_0x399001(0x1de))/0x8*(parseInt(_0x399001(0x1d6))/0x9)+-parseInt(_0x399001(0x1df))/0xa*(-parseInt(_0x399001(0x1fb))/0xb);if(_0x115aa5===_0x1460e4)break;else _0x3962ed['push'](_0x3962ed['shift']());}catch(_0x148d28){_0x3962ed['push'](_0x3962ed['shift']());}}}(a136_0x2079,0x3503f));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';function a136_0x2079(){const _0x87e51=['171KLEWbc','sqlcode','\x20SQL\x20file(s)\x20into\x20','sqlCode','sql','382732WHEKmf','POST','\x20failed','75128LvDydQ','10XNcSbJ','1818930yZgkco','Filter\x20by\x20SQL\x20display\x20name','sqls','write','Force\x20pull\x20cancelled.','force','250535uNfpqM','appCode','Force\x20overwrite\x20local\x20unsynced\x20changes','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','str','sqlRoot','skipped','length','cancelled','bool','\x20written,\x20','message','join','push','54bOhOFx','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','filter','paging','pull','apps','description','7635881Urvsrd','totalCount','mybatisXml','catch','13251VEfzlv','string','6TIZvkt','122864dBoHBr','Would\x20pull\x20','No\x20remote\x20SQL\x20queries\x20matched.','sqlRootDir','toISOString','dbId','sqlContent','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','test','unchanged','lockFilePath','trimStart','utf8','sqlName','conflict','name'];a136_0x2079=function(){return _0x87e51;};return a136_0x2079();}import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';function a136_0x3b1a(_0x5a8ce4,_0x1f2793){_0x5a8ce4=_0x5a8ce4-0x1d3;const _0x2079be=a136_0x2079();let _0x3b1a63=_0x2079be[_0x5a8ce4];return _0x3b1a63;}const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x2834f7,_0x32bd00){const _0x2630f9=a136_0x3b1a,_0x23ce9c=[];let _0x1fbe6f=0x1;while(!![]){const _0x90c549=await listSqlQueries(_0x2834f7,{'currentPage':_0x1fbe6f,'pageSize':PAGE_SIZE,'sqlCode':_0x32bd00['sqlCode'],'sqlName':_0x32bd00[_0x2630f9(0x1d3)]}),_0x28bc7b=_0x90c549['tableData']??[];_0x23ce9c[_0x2630f9(0x1f3)](..._0x28bc7b);if(_0x28bc7b['length']===0x0)break;const _0x5053d1=_0x90c549[_0x2630f9(0x1f7)]?.[_0x2630f9(0x1fc)];if(_0x5053d1!=null?_0x23ce9c[_0x2630f9(0x1ed)]>=_0x5053d1:_0x28bc7b[_0x2630f9(0x1ed)]<PAGE_SIZE)break;_0x1fbe6f++;}return _0x23ce9c;}async function ensureSqlContent(_0x16fcf9){const _0x4977c6=a136_0x3b1a;if(_0x16fcf9[_0x4977c6(0x208)]!=null&&String(_0x16fcf9[_0x4977c6(0x208)])['length']>0x0)return _0x16fcf9;return getSqlQueryDetail(_0x16fcf9['sqlCode']);}export const sqlPull={'service':'sql','command':a136_0x5d1988(0x1f8),'description':a136_0x5d1988(0x1f5),'risk':a136_0x5d1988(0x1e3),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a136_0x5d1988(0x1d5),'type':a136_0x5d1988(0x200),'description':a136_0x5d1988(0x1e1)},{'name':a136_0x5d1988(0x1e5),'type':'boolean','description':a136_0x5d1988(0x1e8)}],async 'dryRun'(_0x236426){const _0x5c43e8=a136_0x5d1988,_0x167f6e=loadSqlProjectConfig(_0x236426[_0x5c43e8(0x1e7)]),_0x2215d6=await readSqlLockFile(_0x167f6e['lockFilePath']),{appLock:_0x5516bb}=ensureSqlLockScope(_0x2215d6??createEmptySqlLock(),_0x167f6e[_0x5c43e8(0x1e7)],_0x167f6e[_0x5c43e8(0x1eb)],_0x5c43e8(0x1f8)),_0x1eb484=await fetchAllSqlQueries(_0x236426['appCode'],{'sqlCode':_0x236426[_0x5c43e8(0x1ea)](_0x5c43e8(0x1d7))||undefined,'sqlName':_0x236426[_0x5c43e8(0x1ea)](_0x5c43e8(0x1d5))||undefined}),_0x3c6af3=[];for(const _0x549077 of _0x1eb484){const _0xbb9d27=await ensureSqlContent(_0x549077),_0x262839=ensureRemoteSqlContent(_0xbb9d27),_0x423b31=detectModeFromSql(_0xbb9d27),_0x575396=_0xbb9d27[_0x5c43e8(0x207)]?await getDbName(_0x236426['appCode'],Number(_0xbb9d27[_0x5c43e8(0x207)]))[_0x5c43e8(0x1fe)](()=>undefined):undefined,_0x4f1e3b=buildLocalSqlFileContent({'sqlCode':_0xbb9d27[_0x5c43e8(0x1d9)],'sqlName':_0xbb9d27[_0x5c43e8(0x1d3)],'dbId':_0xbb9d27[_0x5c43e8(0x207)]},_0x262839,{'dbName':_0x575396,'mode':_0x423b31,'syncedAt':new Date()[_0x5c43e8(0x206)](),'description':_0xbb9d27[_0x5c43e8(0x1fa)]}),_0x10842c=buildSqlLockEntry(_0xbb9d27,_0x262839,'',{'dbName':_0x575396}),_0x50e3cf=resolveLocalSqlFilePath(_0x167f6e,_0xbb9d27['sqlCode'],_0x10842c);let _0x4f4884='would_pull',_0x4dfa28;if(await fileExists(_0x50e3cf)){const _0x29e864=await readFile(_0x50e3cf,_0x5c43e8(0x20e));isEquivalentPulledSqlFile(_0x29e864,_0x4f1e3b,_0x423b31)?(_0x4f4884=_0x5c43e8(0x1ec),_0x4dfa28=_0x5c43e8(0x20b)):(_0x4f4884=_0x5c43e8(0x1d4),_0x4dfa28=_0x5c43e8(0x209));}_0x3c6af3[_0x5c43e8(0x1f3)]({'sqlCode':_0xbb9d27[_0x5c43e8(0x1d9)],'sqlName':_0xbb9d27['sqlName'],'filePath':_0x50e3cf,'status':_0x4f4884,'reason':_0x4dfa28});}return{'method':_0x5c43e8(0x1dc),'url':_0x5c43e8(0x1e9),'body':{'appCode':_0x236426[_0x5c43e8(0x1e7)],'sqlCode':_0x236426['str'](_0x5c43e8(0x1d7))||null,'sqlName':_0x236426[_0x5c43e8(0x1ea)](_0x5c43e8(0x1d5))||null,'files':_0x3c6af3},'description':_0x5c43e8(0x203)+_0x3c6af3[_0x5c43e8(0x1ed)]+_0x5c43e8(0x1d8)+_0x167f6e[_0x5c43e8(0x205)]};},async 'execute'(_0x1df416){const _0x237ca5=a136_0x5d1988,_0x520176=loadSqlProjectConfig(_0x1df416['appCode']),_0xe1433f=await readSqlLockFile(_0x520176[_0x237ca5(0x20c)]),{lockData:_0x31d62d,appLock:_0x1de536}=ensureSqlLockScope(_0xe1433f??createEmptySqlLock(),_0x520176['appCode'],_0x520176[_0x237ca5(0x1eb)],_0x237ca5(0x1f8)),_0x34070d=_0x1df416[_0x237ca5(0x1ef)]('force'),_0x5c6cfc=await fetchAllSqlQueries(_0x1df416[_0x237ca5(0x1e7)],{'sqlCode':_0x1df416['str'](_0x237ca5(0x1d7))||undefined,'sqlName':_0x1df416[_0x237ca5(0x1ea)](_0x237ca5(0x1d5))||undefined});if(_0x5c6cfc[_0x237ca5(0x1ed)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x237ca5(0x204)};const _0x36965d=[],_0x390e10=[];for(const _0x40a68a of _0x5c6cfc){try{_0x36965d[_0x237ca5(0x1f3)](await ensureSqlContent(_0x40a68a));}catch(_0x13a4ed){_0x390e10[_0x237ca5(0x1f3)]({'sqlCode':_0x40a68a[_0x237ca5(0x1d9)],'error':_0x13a4ed instanceof Error?_0x13a4ed[_0x237ca5(0x1f1)]:String(_0x13a4ed)});}}if(_0x34070d&&!_0x1df416['nonInteractive']){let _0x1189f6=![];for(const _0x4ddbb0 of _0x36965d){const _0x50844b=detectModeFromSql(_0x4ddbb0),_0x5df2f0=_0x4ddbb0[_0x237ca5(0x207)]?await getDbName(_0x1df416[_0x237ca5(0x1e7)],Number(_0x4ddbb0[_0x237ca5(0x207)]))['catch'](()=>undefined):undefined,_0x5bd6c8=buildLocalSqlFileContent({'sqlCode':_0x4ddbb0[_0x237ca5(0x1d9)],'sqlName':_0x4ddbb0[_0x237ca5(0x1d3)],'dbId':_0x4ddbb0['dbId']},ensureRemoteSqlContent(_0x4ddbb0),{'dbName':_0x5df2f0,'mode':_0x50844b,'syncedAt':new Date()[_0x237ca5(0x206)](),'description':_0x4ddbb0[_0x237ca5(0x1fa)]}),_0x1fbe9d=resolveLocalSqlFilePath(_0x520176,_0x4ddbb0[_0x237ca5(0x1d9)],buildSqlLockEntry(_0x4ddbb0,ensureRemoteSqlContent(_0x4ddbb0),'',{'dbName':_0x5df2f0}));if(await fileExists(_0x1fbe9d)){const _0x1f7158=await readFile(_0x1fbe9d,'utf8');if(!isEquivalentPulledSqlFile(_0x1f7158,_0x5bd6c8,_0x50844b)){_0x1189f6=!![];break;}}}if(_0x1189f6){const _0x2eb0ae=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x2eb0ae)throw CliErrors[_0x237ca5(0x1ee)](_0x237ca5(0x1e4));}}const _0x5964cc=cloneSqlLockData(_0x31d62d),_0x58bb0c=_0x5964cc[_0x237ca5(0x1f9)][_0x520176[_0x237ca5(0x1e7)]],_0x1f0c5a=[],_0x1ab6e5=[];for(const _0x1b92a9 of _0x36965d){const _0x5eb431=_0x58bb0c[_0x237ca5(0x1e2)][_0x1b92a9[_0x237ca5(0x1d9)]],_0x4ad6b1=ensureRemoteSqlContent(_0x1b92a9),_0x39fc46=detectModeFromSql(_0x1b92a9),_0x329ecf=_0x1b92a9[_0x237ca5(0x207)]?await getDbName(_0x1df416['appCode'],Number(_0x1b92a9[_0x237ca5(0x207)]))[_0x237ca5(0x1fe)](()=>undefined):undefined,_0x67fb2e=buildLocalSqlFileContent({'sqlCode':_0x1b92a9['sqlCode'],'sqlName':_0x1b92a9[_0x237ca5(0x1d3)],'dbId':_0x1b92a9['dbId']},_0x4ad6b1,{'dbName':_0x329ecf,'mode':_0x39fc46,'syncedAt':new Date()[_0x237ca5(0x206)](),'description':_0x1b92a9['description']}),_0x96ac62=buildSqlLockEntry(_0x1b92a9,_0x4ad6b1,computeSqlContentHash(_0x67fb2e),{'dbName':_0x329ecf}),_0x5e3768=_0x96ac62['path'],_0x5f86db=join(_0x520176[_0x237ca5(0x205)],_0x5e3768);try{if(await fileExists(_0x5f86db)){const _0x44967b=await readFile(_0x5f86db,_0x237ca5(0x20e));if(isEquivalentPulledSqlFile(_0x44967b,_0x67fb2e,_0x39fc46)){_0x1ab6e5[_0x237ca5(0x1f3)]({'sqlCode':_0x1b92a9['sqlCode'],'reason':'unchanged'}),_0x58bb0c[_0x237ca5(0x1e2)][_0x1b92a9[_0x237ca5(0x1d9)]]={..._0x96ac62,'hash':computeSqlContentHash(_0x44967b),'path':_0x5e3768};continue;}if(!_0x34070d){_0x1ab6e5[_0x237ca5(0x1f3)]({'sqlCode':_0x1b92a9[_0x237ca5(0x1d9)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x56a34b=_0x5eb431?.['path']?join(_0x520176[_0x237ca5(0x205)],_0x5eb431['path']):undefined;_0x56a34b&&_0x56a34b!==_0x5f86db&&await fileExists(_0x56a34b)&&await rm(_0x56a34b,{'force':!![]}),await ensureParentDirectory(_0x5f86db),await writeFile(_0x5f86db,_0x67fb2e,'utf8'),_0x58bb0c[_0x237ca5(0x1e2)][_0x1b92a9[_0x237ca5(0x1d9)]]={..._0x96ac62,'path':_0x5e3768},_0x1f0c5a[_0x237ca5(0x1f3)]({'sqlCode':_0x1b92a9[_0x237ca5(0x1d9)],'filePath':_0x5f86db});}catch(_0x1b0cba){_0x390e10[_0x237ca5(0x1f3)]({'sqlCode':_0x1b92a9['sqlCode'],'error':_0x1b0cba instanceof Error?_0x1b0cba[_0x237ca5(0x1f1)]:String(_0x1b0cba)});}}return _0x58bb0c['lastSync']=new Date()[_0x237ca5(0x206)](),await writeSqlLockFile(_0x520176[_0x237ca5(0x20c)],_0x5964cc),{'ok':_0x390e10[_0x237ca5(0x1ed)]===0x0,'data':{'pulled':_0x1f0c5a,'skipped':_0x1ab6e5,'failed':_0x390e10},'message':'Pull\x20complete:\x20'+_0x1f0c5a[_0x237ca5(0x1ed)]+_0x237ca5(0x1f0)+_0x1ab6e5[_0x237ca5(0x1ed)]+'\x20skipped,\x20'+_0x390e10[_0x237ca5(0x1ed)]+_0x237ca5(0x1dd)};}};function detectModeFromSql(_0x17cb49){const _0x20a7be=a136_0x5d1988,_0x44f16e=ensureRemoteSqlContent(_0x17cb49),_0x3b2320=stripLocalSqlMetadata(_0x44f16e,_0x20a7be(0x1fd))[_0x20a7be(0x20d)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x3b2320))return _0x20a7be(0x1fd);return _0x20a7be(0x1da);}function isEquivalentPulledSqlFile(_0x59870c,_0x264b66,_0x33d78f){return normalizePullComparableContent(_0x59870c,_0x33d78f)===normalizePullComparableContent(_0x264b66,_0x33d78f);}function normalizePullComparableContent(_0x5c9be2,_0x448d23){const _0x53619b=a136_0x5d1988,_0x41c641=_0x5c9be2['replace'](/\r\n/g,'\x0a')['split']('\x0a'),_0x4d216b=_0x41c641[_0x53619b(0x1f6)](_0x1091ec=>!isSyncedAtMetadataLine(_0x1091ec,_0x448d23));return _0x4d216b[_0x53619b(0x1f2)]('\x0a');}function isSyncedAtMetadataLine(_0x1fa0ed,_0x5b234d){const _0xdb7eb1=a136_0x5d1988;if(_0x5b234d==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x1fa0ed);return/^\s*--\s*@lovrabet\.syncedAt:/[_0xdb7eb1(0x20a)](_0x1fa0ed);}
@@ -1 +1 @@
1
- const a129_0x37df42=a129_0x2c91;(function(_0x222d4d,_0x560e8e){const _0x4a7502=a129_0x2c91,_0x323722=_0x222d4d();while(!![]){try{const _0x1acb38=parseInt(_0x4a7502(0x186))/0x1*(parseInt(_0x4a7502(0x1b4))/0x2)+parseInt(_0x4a7502(0x1b1))/0x3+parseInt(_0x4a7502(0x1b6))/0x4*(parseInt(_0x4a7502(0x1af))/0x5)+parseInt(_0x4a7502(0x1c4))/0x6+-parseInt(_0x4a7502(0x198))/0x7+parseInt(_0x4a7502(0x192))/0x8+-parseInt(_0x4a7502(0x1aa))/0x9;if(_0x1acb38===_0x560e8e)break;else _0x323722['push'](_0x323722['shift']());}catch(_0x2e4e77){_0x323722['push'](_0x323722['shift']());}}}(a129_0x3ccb,0x6b3d4));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';function a129_0x3ccb(){const _0x4b2246=['sqlConfig','\x20pushed,\x20','trashDir','hash','filter','No\x20database\x20matches\x20local\x20directory\x20\x22','POST','\x22\x20for\x20sqlCode\x20','dbName','str','2737716ZBNKGH','catch','utf8','319446WUetRv','bool','map','lockFilePath','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','sqlCode','sqlRootDir','sqls','set','appCode','mode','push','5111448cURDYK','sqlcode','version','remoteId','unchanged','dbDirectory','436037IsMRaV','filePath','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','dbId','sqlRoot','has','/smartapi/custom/updateUserCustomSql','sqlName','validation','length','projectRoot','Push\x20local\x20SQL\x20files\x20to\x20remote','\x20SQL\x20file(s)','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','boolean','lastSync','startsWith','\x20failed','17817957lMavRF','Would\x20push\x20','toISOString','path','No\x20local\x20SQL\x20files\x20found.','70TpNBZr','replace','1419219BSlalm','relativePath','Push\x20complete:\x20','4CWmpJz','Local\x20SQL\x20not\x20found:\x20','78324ppXMvn','force','Local\x20directory\x20\x22','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'];a129_0x3ccb=function(){return _0x4b2246;};return a129_0x3ccb();}import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x4cea6e,_0x4ae7e5,_0x2c6362){const _0x5712da=a129_0x2c91,_0x418714=await scanLocalSqlQueries(_0x4cea6e),_0x158d7b=new Map();for(const _0x46bc84 of _0x418714){if(_0x2c6362&&_0x46bc84[_0x5712da(0x18b)]!==_0x2c6362)continue;const _0x5f5667=_0x158d7b['get'](_0x46bc84[_0x5712da(0x18b)])??[];_0x5f5667[_0x5712da(0x191)](_0x46bc84),_0x158d7b[_0x5712da(0x18e)](_0x46bc84[_0x5712da(0x18b)],_0x5f5667);}if(_0x2c6362&&!_0x158d7b[_0x5712da(0x19d)](_0x2c6362))throw CliErrors[_0x5712da(0x1a0)](_0x5712da(0x1b5)+_0x2c6362);const _0x8b6d35=[];for(const [_0x21a580,_0x2cc42e]of _0x158d7b['entries']()){if(_0x2cc42e[_0x5712da(0x1a1)]===0x1){_0x8b6d35[_0x5712da(0x191)](_0x2cc42e[0x0]);continue;}const _0x44aacb=_0x4ae7e5[_0x5712da(0x18d)][_0x21a580],_0x3e80ae=_0x44aacb?.[_0x5712da(0x1ad)],_0x322cbf=_0x3e80ae?_0x2cc42e[_0x5712da(0x1be)](_0x13df90=>_0x13df90[_0x5712da(0x1b2)]!==_0x3e80ae):_0x2cc42e;if(_0x44aacb&&_0x322cbf['length']===0x1){_0x8b6d35[_0x5712da(0x191)](_0x322cbf[0x0]);continue;}throw CliErrors[_0x5712da(0x1a0)]('Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20'+_0x21a580+_0x5712da(0x18a));}return _0x8b6d35;}export const sqlPush={'service':'sql','command':a129_0x37df42(0x191),'description':a129_0x37df42(0x1a3),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a129_0x37df42(0x1b7),'type':a129_0x37df42(0x1a6),'description':a129_0x37df42(0x1b9)}],async 'dryRun'(_0x23687b){const _0xc95dfb=a129_0x37df42,_0x405acd=loadSqlProjectConfig(_0x23687b[_0xc95dfb(0x18f)]),_0x435e9a=await readSqlLockFile(_0x405acd['lockFilePath']),{appLock:_0xb47ab0}=ensureSqlLockScope(_0x435e9a??createEmptySqlLock(),_0x23687b[_0xc95dfb(0x18f)],_0x405acd[_0xc95dfb(0x19c)],_0xc95dfb(0x191)),_0x26bf27=await getTargetSqlQueries(_0x405acd,_0xb47ab0,_0x23687b[_0xc95dfb(0x1c3)](_0xc95dfb(0x193))||undefined),_0x504761=[];for(const _0x2e522d of _0x26bf27){const _0x5073f7=await computeSqlFileHash(_0x2e522d[_0xc95dfb(0x199)]),_0x23cb59=_0xb47ab0[_0xc95dfb(0x18d)][_0x2e522d[_0xc95dfb(0x18b)]],_0x2e7cb3=!!_0x23cb59&&(_0x23cb59[_0xc95dfb(0x1ad)]!==_0x2e522d[_0xc95dfb(0x1b2)]||!!_0x2e522d[_0xc95dfb(0x19f)]&&_0x23cb59['sqlName']!==_0x2e522d[_0xc95dfb(0x19f)]);if(!_0x23687b[_0xc95dfb(0x187)](_0xc95dfb(0x1b7))&&_0x23cb59&&_0x23cb59[_0xc95dfb(0x1bd)]===_0x5073f7&&!_0x2e7cb3)continue;_0x504761[_0xc95dfb(0x191)](_0x2e522d['sqlCode']);}return{'method':_0xc95dfb(0x1c0),'url':_0xc95dfb(0x19e),'body':{'sqlCodes':_0x504761,'appCode':_0x23687b[_0xc95dfb(0x18f)]},'description':_0xc95dfb(0x1ab)+_0x504761['length']+_0xc95dfb(0x1a4)};},async 'execute'(_0x11275d){const _0x41da90=a129_0x37df42,_0x149c9d=loadSqlProjectConfig(_0x11275d[_0x41da90(0x18f)]),_0x27b44f=await readSqlLockFile(_0x149c9d[_0x41da90(0x189)]),{lockData:_0x373969,appLock:_0x27a4ce}=ensureSqlLockScope(_0x27b44f??createEmptySqlLock(),_0x11275d['appCode'],_0x149c9d[_0x41da90(0x19c)],_0x41da90(0x191)),_0x485c79=await getTargetSqlQueries(_0x149c9d,_0x27a4ce,_0x11275d[_0x41da90(0x1c3)]('sqlcode')||undefined);if(_0x485c79[_0x41da90(0x1a1)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x41da90(0x1ae)};const _0x5d83c7=[],_0x3b34b8=[],_0x51491a=[];for(const _0x4dd4db of _0x485c79){const _0x577e97=_0x27a4ce[_0x41da90(0x18d)][_0x4dd4db[_0x41da90(0x18b)]];if(!_0x577e97){_0x51491a[_0x41da90(0x191)]({'sqlCode':_0x4dd4db[_0x41da90(0x18b)],'error':_0x41da90(0x1a5)});continue;}try{const _0x1c4850=await computeSqlFileHash(_0x4dd4db[_0x41da90(0x199)]),_0x513bd8=_0x577e97[_0x41da90(0x1ad)]!==_0x4dd4db[_0x41da90(0x1b2)]||!!_0x4dd4db[_0x41da90(0x19f)]&&_0x577e97[_0x41da90(0x19f)]!==_0x4dd4db['sqlName'];if(!_0x11275d[_0x41da90(0x187)](_0x41da90(0x1b7))&&_0x577e97[_0x41da90(0x1bd)]===_0x1c4850&&!_0x513bd8){_0x3b34b8[_0x41da90(0x191)]({'sqlCode':_0x4dd4db[_0x41da90(0x18b)],'reason':_0x41da90(0x196)});continue;}if(_0x577e97['version']==null){_0x51491a[_0x41da90(0x191)]({'sqlCode':_0x4dd4db[_0x41da90(0x18b)],'error':_0x41da90(0x19a)});continue;}const _0x171850=await readFile(_0x4dd4db[_0x41da90(0x199)],_0x41da90(0x1c6)),_0x587805=stripLocalSqlMetadata(_0x171850,_0x4dd4db[_0x41da90(0x190)]),_0x1ab1f6=_0x4dd4db[_0x41da90(0x19f)]||_0x577e97[_0x41da90(0x19f)],_0x1cbd37=await resolveTargetDbBinding(_0x11275d[_0x41da90(0x18f)],_0x4dd4db,_0x577e97),_0x3b07c=await updateSqlQuery({'id':_0x577e97[_0x41da90(0x195)],'appCode':_0x11275d['appCode'],'sqlCode':_0x4dd4db[_0x41da90(0x18b)],'sqlName':_0x1ab1f6,'dbId':_0x1cbd37[_0x41da90(0x19b)],'version':_0x577e97[_0x41da90(0x194)],'sqlContent':_0x587805,'sqlConfig':_0x577e97[_0x41da90(0x1ba)]??undefined}),_0x587842=_0x3b07c[_0x41da90(0x19b)]?await getDbName(_0x11275d[_0x41da90(0x18f)],Number(_0x3b07c['dbId']))[_0x41da90(0x1c5)](()=>_0x1cbd37[_0x41da90(0x1c2)]):_0x1cbd37[_0x41da90(0x1c2)];_0x27a4ce['sqls'][_0x4dd4db[_0x41da90(0x18b)]]={...buildSqlLockEntry(_0x3b07c,_0x587805,_0x1c4850,{'dbName':_0x587842}),'path':_0x4dd4db[_0x41da90(0x1b2)],'mode':_0x577e97[_0x41da90(0x190)]},await archivePreviousSqlFileIfNeeded(_0x149c9d,_0x577e97['path'],_0x4dd4db['relativePath']),_0x5d83c7[_0x41da90(0x191)]({'sqlCode':_0x4dd4db[_0x41da90(0x18b)],'remoteId':_0x577e97[_0x41da90(0x195)]});}catch(_0xa795a9){_0x51491a['push']({'sqlCode':_0x4dd4db[_0x41da90(0x18b)],'error':_0xa795a9 instanceof Error?_0xa795a9['message']:String(_0xa795a9)});}}return _0x27a4ce[_0x41da90(0x1a7)]=new Date()[_0x41da90(0x1ac)](),await writeSqlLockFile(_0x149c9d['lockFilePath'],_0x373969),{'ok':_0x51491a[_0x41da90(0x1a1)]===0x0,'data':{'pushed':_0x5d83c7,'skipped':_0x3b34b8,'failed':_0x51491a},'message':_0x41da90(0x1b3)+_0x5d83c7[_0x41da90(0x1a1)]+_0x41da90(0x1bb)+_0x3b34b8[_0x41da90(0x1a1)]+'\x20skipped,\x20'+_0x51491a[_0x41da90(0x1a1)]+_0x41da90(0x1a9)};}};function a129_0x2c91(_0xe5e22b,_0x384f49){_0xe5e22b=_0xe5e22b-0x186;const _0x3ccb9d=a129_0x3ccb();let _0x2c91df=_0x3ccb9d[_0xe5e22b];return _0x2c91df;}async function archivePreviousSqlFileIfNeeded(_0x142573,_0x22ca69,_0x5a4782){const _0x4ae474=a129_0x37df42;if(!_0x22ca69||_0x22ca69===_0x5a4782)return;const _0x585352=join(_0x142573['sqlRootDir'],_0x22ca69);if(!await fileExists(_0x585352))return;const _0x5b7099=await moveToTrash(_0x142573[_0x4ae474(0x1a2)],_0x142573[_0x4ae474(0x1bc)],_0x585352);await cleanupEmptyDirectories(dirname(_0x585352),_0x142573[_0x4ae474(0x18c)]),void _0x5b7099;}async function moveToTrash(_0x2d26e5,_0x4abc73,_0x1c9bc6){const _0x4eb668=a129_0x37df42,_0x3e1a5e=new Date()['toISOString']()[_0x4eb668(0x1b0)](/[:.]/g,'-'),_0x1b8563=relative(_0x2d26e5,_0x1c9bc6),_0x1e2ec2=join(_0x4abc73,_0x3e1a5e,_0x1b8563);return await mkdir(dirname(_0x1e2ec2),{'recursive':!![]}),await rename(_0x1c9bc6,_0x1e2ec2),_0x1e2ec2;}async function cleanupEmptyDirectories(_0x4e82a4,_0x51ca07){const _0x327121=a129_0x37df42;let _0x3e5f92=resolve(_0x4e82a4);const _0x50dbc2=resolve(_0x51ca07);while(_0x3e5f92[_0x327121(0x1a8)](''+_0x50dbc2+sep)||_0x3e5f92===_0x50dbc2){if(_0x3e5f92===_0x50dbc2)return;try{const _0x23dad0=await readdir(_0x3e5f92);if(_0x23dad0[_0x327121(0x1a1)]>0x0)return;await rmdir(_0x3e5f92);}catch{return;}_0x3e5f92=dirname(_0x3e5f92);}}async function resolveTargetDbBinding(_0x5e3a56,_0x47dfd8,_0xa3c261){const _0x2fd8f7=a129_0x37df42,_0x400da5=_0x47dfd8[_0x2fd8f7(0x197)];if(!_0x400da5)return{'dbId':_0xa3c261[_0x2fd8f7(0x19b)],'dbName':_0xa3c261[_0x2fd8f7(0x1c2)]};const _0x5effb1=buildDbDirectoryName(_0xa3c261['dbName'],_0xa3c261[_0x2fd8f7(0x19b)]);if(_0x400da5===_0x5effb1)return{'dbId':_0xa3c261[_0x2fd8f7(0x19b)],'dbName':_0xa3c261[_0x2fd8f7(0x1c2)]};const _0x4c5572=parseExplicitDbDirectory(_0x400da5);if(_0x4c5572!=null)return{'dbId':_0x4c5572,'dbName':await getDbName(_0x5e3a56,_0x4c5572)['catch'](()=>undefined)};const _0x2c13bf=await listDatabases(_0x5e3a56),_0x49348a=_0x2c13bf[_0x2fd8f7(0x1be)](_0x50c975=>buildDbDirectoryName(_0x50c975['dbName'],_0x50c975[_0x2fd8f7(0x19b)])===_0x400da5);if(_0x49348a[_0x2fd8f7(0x1a1)]===0x1)return{'dbId':_0x49348a[0x0]['dbId'],'dbName':_0x49348a[0x0][_0x2fd8f7(0x1c2)]};if(_0x49348a['length']===0x0)throw CliErrors[_0x2fd8f7(0x1a0)](_0x2fd8f7(0x1bf)+_0x400da5+_0x2fd8f7(0x1c1)+_0x47dfd8[_0x2fd8f7(0x18b)]+'.');const _0x5caa82=_0x49348a[_0x2fd8f7(0x188)](_0x2253d9=>_0x2253d9[_0x2fd8f7(0x1c2)]+'\x20('+_0x2253d9[_0x2fd8f7(0x19b)]+')')['join'](',\x20');throw CliErrors[_0x2fd8f7(0x1a0)](_0x2fd8f7(0x1b8)+_0x400da5+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x47dfd8[_0x2fd8f7(0x18b)]+':\x20'+_0x5caa82);}function parseExplicitDbDirectory(_0x1d1655){const _0x10bd84=/^db-(\d+)$/['exec'](_0x1d1655);if(!_0x10bd84)return null;const _0x3dcf56=Number(_0x10bd84[0x1]);return Number['isFinite'](_0x3dcf56)&&_0x3dcf56>0x0?_0x3dcf56:null;}
1
+ const a137_0x1e275d=a137_0x18f6;(function(_0x446b28,_0x346a35){const _0x146790=a137_0x18f6,_0x502d40=_0x446b28();while(!![]){try{const _0x11c982=parseInt(_0x146790(0x145))/0x1*(parseInt(_0x146790(0x11f))/0x2)+parseInt(_0x146790(0x12c))/0x3+parseInt(_0x146790(0x12f))/0x4+-parseInt(_0x146790(0x130))/0x5*(parseInt(_0x146790(0x151))/0x6)+parseInt(_0x146790(0x154))/0x7*(-parseInt(_0x146790(0x125))/0x8)+parseInt(_0x146790(0x11c))/0x9*(-parseInt(_0x146790(0x15a))/0xa)+parseInt(_0x146790(0x136))/0xb;if(_0x11c982===_0x346a35)break;else _0x502d40['push'](_0x502d40['shift']());}catch(_0x4b94c1){_0x502d40['push'](_0x502d40['shift']());}}}(a137_0x1afd,0xdc675));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';function a137_0x18f6(_0xc9869a,_0x4508da){_0xc9869a=_0xc9869a-0x11a;const _0x1afd4b=a137_0x1afd();let _0x18f6a3=_0x1afd4b[_0xc9869a];return _0x18f6a3;}import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x311a28,_0x581f12,_0x36c0a3){const _0x3c897b=a137_0x18f6,_0x19dc63=await scanLocalSqlQueries(_0x311a28),_0x351910=new Map();for(const _0x185b94 of _0x19dc63){if(_0x36c0a3&&_0x185b94[_0x3c897b(0x146)]!==_0x36c0a3)continue;const _0x308c15=_0x351910[_0x3c897b(0x12e)](_0x185b94[_0x3c897b(0x146)])??[];_0x308c15[_0x3c897b(0x123)](_0x185b94),_0x351910[_0x3c897b(0x140)](_0x185b94[_0x3c897b(0x146)],_0x308c15);}if(_0x36c0a3&&!_0x351910[_0x3c897b(0x13d)](_0x36c0a3))throw CliErrors[_0x3c897b(0x12d)](_0x3c897b(0x11a)+_0x36c0a3);const _0x35b6ac=[];for(const [_0x4c6eb6,_0x5f5c6f]of _0x351910['entries']()){if(_0x5f5c6f[_0x3c897b(0x12a)]===0x1){_0x35b6ac[_0x3c897b(0x123)](_0x5f5c6f[0x0]);continue;}const _0x2dbbe8=_0x581f12['sqls'][_0x4c6eb6],_0x2087e9=_0x2dbbe8?.[_0x3c897b(0x135)],_0xda9667=_0x2087e9?_0x5f5c6f[_0x3c897b(0x132)](_0x3f5fa3=>_0x3f5fa3[_0x3c897b(0x155)]!==_0x2087e9):_0x5f5c6f;if(_0x2dbbe8&&_0xda9667[_0x3c897b(0x12a)]===0x1){_0x35b6ac[_0x3c897b(0x123)](_0xda9667[0x0]);continue;}throw CliErrors[_0x3c897b(0x12d)](_0x3c897b(0x137)+_0x4c6eb6+_0x3c897b(0x14c));}return _0x35b6ac;}export const sqlPush={'service':'sql','command':'push','description':a137_0x1e275d(0x14a),'risk':a137_0x1e275d(0x11e),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a137_0x1e275d(0x152),'type':a137_0x1e275d(0x11b),'description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0x131abf){const _0x4e986b=a137_0x1e275d,_0x4c6bc3=loadSqlProjectConfig(_0x131abf['appCode']),_0x13be78=await readSqlLockFile(_0x4c6bc3[_0x4e986b(0x120)]),{appLock:_0x51a054}=ensureSqlLockScope(_0x13be78??createEmptySqlLock(),_0x131abf[_0x4e986b(0x126)],_0x4c6bc3['sqlRoot'],_0x4e986b(0x123)),_0x55c13c=await getTargetSqlQueries(_0x4c6bc3,_0x51a054,_0x131abf[_0x4e986b(0x13a)](_0x4e986b(0x134))||undefined),_0x4d4b86=[];for(const _0x37b992 of _0x55c13c){const _0x3a3874=await computeSqlFileHash(_0x37b992['filePath']),_0x3e4c5f=_0x51a054[_0x4e986b(0x14b)][_0x37b992[_0x4e986b(0x146)]],_0x55c944=!!_0x3e4c5f&&(_0x3e4c5f['path']!==_0x37b992['relativePath']||!!_0x37b992[_0x4e986b(0x129)]&&_0x3e4c5f[_0x4e986b(0x129)]!==_0x37b992['sqlName']);if(!_0x131abf[_0x4e986b(0x131)]('force')&&_0x3e4c5f&&_0x3e4c5f[_0x4e986b(0x15b)]===_0x3a3874&&!_0x55c944)continue;_0x4d4b86[_0x4e986b(0x123)](_0x37b992[_0x4e986b(0x146)]);}return{'method':_0x4e986b(0x138),'url':_0x4e986b(0x150),'body':{'sqlCodes':_0x4d4b86,'appCode':_0x131abf[_0x4e986b(0x126)]},'description':'Would\x20push\x20'+_0x4d4b86[_0x4e986b(0x12a)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x377cf4){const _0x289db9=a137_0x1e275d,_0x17f0ac=loadSqlProjectConfig(_0x377cf4[_0x289db9(0x126)]),_0x386f04=await readSqlLockFile(_0x17f0ac['lockFilePath']),{lockData:_0x5b8be4,appLock:_0x508e68}=ensureSqlLockScope(_0x386f04??createEmptySqlLock(),_0x377cf4[_0x289db9(0x126)],_0x17f0ac[_0x289db9(0x13c)],_0x289db9(0x123)),_0x56426c=await getTargetSqlQueries(_0x17f0ac,_0x508e68,_0x377cf4[_0x289db9(0x13a)](_0x289db9(0x134))||undefined);if(_0x56426c[_0x289db9(0x12a)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x289db9(0x159)};const _0x55ca82=[],_0x4c9e5a=[],_0x5a14ae=[];for(const _0x487952 of _0x56426c){const _0x250c1d=_0x508e68[_0x289db9(0x14b)][_0x487952[_0x289db9(0x146)]];if(!_0x250c1d){_0x5a14ae['push']({'sqlCode':_0x487952[_0x289db9(0x146)],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x2fb946=await computeSqlFileHash(_0x487952['filePath']),_0x158705=_0x250c1d['path']!==_0x487952[_0x289db9(0x155)]||!!_0x487952['sqlName']&&_0x250c1d['sqlName']!==_0x487952[_0x289db9(0x129)];if(!_0x377cf4[_0x289db9(0x131)](_0x289db9(0x152))&&_0x250c1d[_0x289db9(0x15b)]===_0x2fb946&&!_0x158705){_0x4c9e5a[_0x289db9(0x123)]({'sqlCode':_0x487952['sqlCode'],'reason':_0x289db9(0x121)});continue;}if(_0x250c1d['version']==null){_0x5a14ae[_0x289db9(0x123)]({'sqlCode':_0x487952[_0x289db9(0x146)],'error':_0x289db9(0x156)});continue;}const _0x514e26=await readFile(_0x487952[_0x289db9(0x139)],'utf8'),_0x5abeb7=stripLocalSqlMetadata(_0x514e26,_0x487952[_0x289db9(0x148)]),_0x3284d0=_0x487952[_0x289db9(0x129)]||_0x250c1d['sqlName'],_0x109363=await resolveTargetDbBinding(_0x377cf4[_0x289db9(0x126)],_0x487952,_0x250c1d),_0x401c5d=await updateSqlQuery({'id':_0x250c1d[_0x289db9(0x13e)],'appCode':_0x377cf4[_0x289db9(0x126)],'sqlCode':_0x487952['sqlCode'],'sqlName':_0x3284d0,'dbId':_0x109363[_0x289db9(0x127)],'version':_0x250c1d[_0x289db9(0x124)],'sqlContent':_0x5abeb7,'sqlConfig':_0x250c1d[_0x289db9(0x11d)]??undefined}),_0xea510b=_0x401c5d[_0x289db9(0x127)]?await getDbName(_0x377cf4[_0x289db9(0x126)],Number(_0x401c5d['dbId']))['catch'](()=>_0x109363['dbName']):_0x109363[_0x289db9(0x14e)];_0x508e68['sqls'][_0x487952[_0x289db9(0x146)]]={...buildSqlLockEntry(_0x401c5d,_0x5abeb7,_0x2fb946,{'dbName':_0xea510b}),'path':_0x487952[_0x289db9(0x155)],'mode':_0x250c1d[_0x289db9(0x148)]},await archivePreviousSqlFileIfNeeded(_0x17f0ac,_0x250c1d['path'],_0x487952['relativePath']),_0x55ca82[_0x289db9(0x123)]({'sqlCode':_0x487952[_0x289db9(0x146)],'remoteId':_0x250c1d['remoteId']});}catch(_0x3f6e18){_0x5a14ae[_0x289db9(0x123)]({'sqlCode':_0x487952[_0x289db9(0x146)],'error':_0x3f6e18 instanceof Error?_0x3f6e18[_0x289db9(0x142)]:String(_0x3f6e18)});}}return _0x508e68[_0x289db9(0x143)]=new Date()[_0x289db9(0x12b)](),await writeSqlLockFile(_0x17f0ac[_0x289db9(0x120)],_0x5b8be4),{'ok':_0x5a14ae['length']===0x0,'data':{'pushed':_0x55ca82,'skipped':_0x4c9e5a,'failed':_0x5a14ae},'message':_0x289db9(0x144)+_0x55ca82[_0x289db9(0x12a)]+_0x289db9(0x14d)+_0x4c9e5a[_0x289db9(0x12a)]+_0x289db9(0x14f)+_0x5a14ae['length']+_0x289db9(0x133)};}};async function archivePreviousSqlFileIfNeeded(_0x165cb5,_0x28bc5e,_0x1a881a){const _0x564450=a137_0x1e275d;if(!_0x28bc5e||_0x28bc5e===_0x1a881a)return;const _0x42bd81=join(_0x165cb5['sqlRootDir'],_0x28bc5e);if(!await fileExists(_0x42bd81))return;const _0x1704c3=await moveToTrash(_0x165cb5[_0x564450(0x158)],_0x165cb5[_0x564450(0x122)],_0x42bd81);await cleanupEmptyDirectories(dirname(_0x42bd81),_0x165cb5[_0x564450(0x147)]),void _0x1704c3;}async function moveToTrash(_0x2184ea,_0xae2a0e,_0x3fd33d){const _0x3b5ae2=a137_0x1e275d,_0x5b9197=new Date()[_0x3b5ae2(0x12b)]()['replace'](/[:.]/g,'-'),_0x4128e3=relative(_0x2184ea,_0x3fd33d),_0x2418ea=join(_0xae2a0e,_0x5b9197,_0x4128e3);return await mkdir(dirname(_0x2418ea),{'recursive':!![]}),await rename(_0x3fd33d,_0x2418ea),_0x2418ea;}async function cleanupEmptyDirectories(_0x34c4ed,_0x9072d3){const _0x386e76=a137_0x1e275d;let _0xbd766f=resolve(_0x34c4ed);const _0x4a7d12=resolve(_0x9072d3);while(_0xbd766f['startsWith'](''+_0x4a7d12+sep)||_0xbd766f===_0x4a7d12){if(_0xbd766f===_0x4a7d12)return;try{const _0x45e45e=await readdir(_0xbd766f);if(_0x45e45e[_0x386e76(0x12a)]>0x0)return;await rmdir(_0xbd766f);}catch{return;}_0xbd766f=dirname(_0xbd766f);}}async function resolveTargetDbBinding(_0x10418c,_0x2a7aa0,_0x21a9a9){const _0x381697=a137_0x1e275d,_0xab7d26=_0x2a7aa0[_0x381697(0x149)];if(!_0xab7d26)return{'dbId':_0x21a9a9[_0x381697(0x127)],'dbName':_0x21a9a9['dbName']};const _0xb89573=buildDbDirectoryName(_0x21a9a9[_0x381697(0x14e)],_0x21a9a9[_0x381697(0x127)]);if(_0xab7d26===_0xb89573)return{'dbId':_0x21a9a9[_0x381697(0x127)],'dbName':_0x21a9a9[_0x381697(0x14e)]};const _0x4c7aee=parseExplicitDbDirectory(_0xab7d26);if(_0x4c7aee!=null)return{'dbId':_0x4c7aee,'dbName':await getDbName(_0x10418c,_0x4c7aee)['catch'](()=>undefined)};const _0x3da0e8=await listDatabases(_0x10418c),_0x3de22f=_0x3da0e8['filter'](_0x36e049=>buildDbDirectoryName(_0x36e049[_0x381697(0x14e)],_0x36e049[_0x381697(0x127)])===_0xab7d26);if(_0x3de22f[_0x381697(0x12a)]===0x1)return{'dbId':_0x3de22f[0x0][_0x381697(0x127)],'dbName':_0x3de22f[0x0][_0x381697(0x14e)]};if(_0x3de22f[_0x381697(0x12a)]===0x0)throw CliErrors[_0x381697(0x12d)](_0x381697(0x13b)+_0xab7d26+_0x381697(0x141)+_0x2a7aa0[_0x381697(0x146)]+'.');const _0x53d06a=_0x3de22f[_0x381697(0x128)](_0x89e2bc=>_0x89e2bc[_0x381697(0x14e)]+'\x20('+_0x89e2bc['dbId']+')')[_0x381697(0x157)](',\x20');throw CliErrors[_0x381697(0x12d)]('Local\x20directory\x20\x22'+_0xab7d26+_0x381697(0x13f)+_0x2a7aa0[_0x381697(0x146)]+':\x20'+_0x53d06a);}function parseExplicitDbDirectory(_0x579613){const _0x451650=a137_0x1e275d,_0x375bd1=/^db-(\d+)$/[_0x451650(0x153)](_0x579613);if(!_0x375bd1)return null;const _0x4331d7=Number(_0x375bd1[0x1]);return Number['isFinite'](_0x4331d7)&&_0x4331d7>0x0?_0x4331d7:null;}function a137_0x1afd(){const _0x57ff4f=['Local\x20SQL\x20not\x20found:\x20','boolean','91431DJrTUs','sqlConfig','high-risk-write','12156YujucD','lockFilePath','unchanged','trashDir','push','version','56ZKHQic','appCode','dbId','map','sqlName','length','toISOString','267051mKNeNK','validation','get','3131324yLdlUK','406040IqbfHD','bool','filter','\x20failed','sqlcode','path','29736806OOYYEK','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','POST','filePath','str','No\x20database\x20matches\x20local\x20directory\x20\x22','sqlRoot','has','remoteId','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','set','\x22\x20for\x20sqlCode\x20','message','lastSync','Push\x20complete:\x20','23kTPjsZ','sqlCode','sqlRootDir','mode','dbDirectory','Push\x20local\x20SQL\x20files\x20to\x20remote','sqls','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','\x20pushed,\x20','dbName','\x20skipped,\x20','/smartapi/custom/updateUserCustomSql','6KbFvOW','force','exec','1562722mMOTZY','relativePath','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','join','projectRoot','No\x20local\x20SQL\x20files\x20found.','1150JNoXmL','hash'];a137_0x1afd=function(){return _0x57ff4f;};return a137_0x1afd();}
@@ -1 +1 @@
1
- const a130_0xe161e2=a130_0x3718;(function(_0x40f558,_0x36f097){const _0x47dd09=a130_0x3718,_0x1685aa=_0x40f558();while(!![]){try{const _0x375a69=parseInt(_0x47dd09(0x111))/0x1+parseInt(_0x47dd09(0x115))/0x2*(parseInt(_0x47dd09(0x114))/0x3)+parseInt(_0x47dd09(0x126))/0x4+parseInt(_0x47dd09(0x121))/0x5*(parseInt(_0x47dd09(0x11f))/0x6)+parseInt(_0x47dd09(0x11b))/0x7*(-parseInt(_0x47dd09(0x116))/0x8)+parseInt(_0x47dd09(0x11c))/0x9+-parseInt(_0x47dd09(0x112))/0xa*(parseInt(_0x47dd09(0x117))/0xb);if(_0x375a69===_0x36f097)break;else _0x1685aa['push'](_0x1685aa['shift']());}catch(_0x4869f8){_0x1685aa['push'](_0x1685aa['shift']());}}}(a130_0x46e6,0x6c0cd));import{CliErrors}from'../../errors.js';function a130_0x3718(_0x5cd501,_0x226924){_0x5cd501=_0x5cd501-0x10e;const _0x46e698=a130_0x46e6();let _0x3718e4=_0x46e698[_0x5cd501];return _0x3718e4;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.',a130_0xe161e2(0x122),a130_0xe161e2(0x11e)][a130_0xe161e2(0x113)]('\x0a');export const sqlSave={'service':a130_0xe161e2(0x124),'command':a130_0xe161e2(0x110),'description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':a130_0xe161e2(0x123),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a130_0xe161e2(0x120),'type':a130_0xe161e2(0x125),'required':!![],'description':a130_0xe161e2(0x10e)},SQLCODE_FLAG_OPTIONAL,{'name':a130_0xe161e2(0x10f),'type':a130_0xe161e2(0x125),'description':'SQL\x20query\x20display\x20name'},{'name':'db','type':'string','description':a130_0xe161e2(0x11d)},{'name':a130_0xe161e2(0x118),'type':a130_0xe161e2(0x125),'description':a130_0xe161e2(0x119)}],async 'validate'(){const _0x3440ed=a130_0xe161e2;throw CliErrors[_0x3440ed(0x11a)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x1f89c6=a130_0xe161e2;throw CliErrors[_0x1f89c6(0x11a)](SQL_SAVE_DEPRECATED_HINT);}};function a130_0x46e6(){const _0x414f37=['3126462DdEIKz','file','5UTXApF','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','write','sql','string','1015912RQISRl','Path\x20to\x20the\x20SQL\x20file','sqlname','save','482612DfFzDK','40bYQWfM','join','2107299hyWnIK','2OuXazm','316688CwbSVt','5499351hpjLxA','description','Query\x20description','validation','7qqHqPU','4696407LraWJu','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.'];a130_0x46e6=function(){return _0x414f37;};return a130_0x46e6();}
1
+ function a138_0x4ebb(_0x29e9ff,_0x2a141f){_0x29e9ff=_0x29e9ff-0xc3;const _0x27ad29=a138_0x27ad();let _0x4ebbb4=_0x27ad29[_0x29e9ff];return _0x4ebbb4;}function a138_0x27ad(){const _0x155022=['1691862hdAFLp','10mzQNsh','save','validation','18187763knwJLd','65070sVfPps','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','804YwAckk','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','86927lnOtDp','write','26ZwqkZH','909448oTRxou','join','8785944wtDmyd','Path\x20to\x20the\x20SQL\x20file','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','18780HAhAHY','sql','file','Query\x20description','string','7poTVib','SQL\x20query\x20display\x20name','sqlname'];a138_0x27ad=function(){return _0x155022;};return a138_0x27ad();}const a138_0x24e003=a138_0x4ebb;(function(_0x1c8a7b,_0x3bcb5a){const _0x2ac3b0=a138_0x4ebb,_0x2e233d=_0x1c8a7b();while(!![]){try{const _0x2a9356=-parseInt(_0x2ac3b0(0xca))/0x1*(-parseInt(_0x2ac3b0(0xcc))/0x2)+-parseInt(_0x2ac3b0(0xda))/0x3+-parseInt(_0x2ac3b0(0xc8))/0x4*(parseInt(_0x2ac3b0(0xd2))/0x5)+parseInt(_0x2ac3b0(0xc6))/0x6+-parseInt(_0x2ac3b0(0xd7))/0x7*(-parseInt(_0x2ac3b0(0xcd))/0x8)+-parseInt(_0x2ac3b0(0xcf))/0x9+parseInt(_0x2ac3b0(0xdb))/0xa*(parseInt(_0x2ac3b0(0xc5))/0xb);if(_0x2a9356===_0x3bcb5a)break;else _0x2e233d['push'](_0x2e233d['shift']());}catch(_0x471d78){_0x2e233d['push'](_0x2e233d['shift']());}}}(a138_0x27ad,0x95a14));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a138_0x24e003(0xd1),'Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.'][a138_0x24e003(0xce)]('\x0a');export const sqlSave={'service':a138_0x24e003(0xd3),'command':a138_0x24e003(0xc3),'description':a138_0x24e003(0xc9),'risk':a138_0x24e003(0xcb),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a138_0x24e003(0xd4),'type':'string','required':!![],'description':a138_0x24e003(0xd0)},SQLCODE_FLAG_OPTIONAL,{'name':a138_0x24e003(0xd9),'type':a138_0x24e003(0xd6),'description':a138_0x24e003(0xd8)},{'name':'db','type':a138_0x24e003(0xd6),'description':a138_0x24e003(0xc7)},{'name':'description','type':a138_0x24e003(0xd6),'description':a138_0x24e003(0xd5)}],async 'validate'(){const _0x1d9608=a138_0x24e003;throw CliErrors[_0x1d9608(0xc4)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x150847=a138_0x24e003;throw CliErrors[_0x150847(0xc4)](SQL_SAVE_DEPRECATED_HINT);}};
@@ -1 +1 @@
1
- (function(_0x2590f7,_0x24da7d){const _0x5b9996=a131_0xe9c8,_0x4f1e01=_0x2590f7();while(!![]){try{const _0x5b476b=parseInt(_0x5b9996(0x10e))/0x1+-parseInt(_0x5b9996(0x100))/0x2*(parseInt(_0x5b9996(0x108))/0x3)+-parseInt(_0x5b9996(0x101))/0x4*(-parseInt(_0x5b9996(0x122))/0x5)+-parseInt(_0x5b9996(0x119))/0x6*(parseInt(_0x5b9996(0xff))/0x7)+-parseInt(_0x5b9996(0x107))/0x8*(-parseInt(_0x5b9996(0x104))/0x9)+-parseInt(_0x5b9996(0x11f))/0xa*(-parseInt(_0x5b9996(0xfa))/0xb)+-parseInt(_0x5b9996(0x109))/0xc*(parseInt(_0x5b9996(0x11a))/0xd);if(_0x5b476b===_0x24da7d)break;else _0x4f1e01['push'](_0x4f1e01['shift']());}catch(_0x546c4f){_0x4f1e01['push'](_0x4f1e01['shift']());}}}(a131_0x3ed0,0x6bc79));import{createInterface}from'node:readline';function a131_0x3ed0(){const _0x13a556=['81680tpJnAT','6IBjNBk','12uGQfVO','question','trimStart','sqlName','map','293374HwdxIM','description','sqlCode','<!--\x20@lovrabet.','filter','trim','path','join','version','\x20-->','dbName','2653062WqvFSb','1973101sFJNwz','syncedAt','mybatisXml','apps','dbId','107650MMEZFx','toLowerCase','replace','27130flfEqp','lastSync','121SAOJdP','test','entries','mode','--\x20@lovrabet.','7PCJbRA','790092BOpgCR','568xVmYmC','endsWith','yes','567tHyckK','sqlRoot','length'];a131_0x3ed0=function(){return _0x13a556;};return a131_0x3ed0();}import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR='.rabetbase/sql';function a131_0xe9c8(_0x3ab77b,_0x1f3c0e){_0x3ab77b=_0x3ab77b-0xf9;const _0x3ed047=a131_0x3ed0();let _0xe9c820=_0x3ed047[_0x3ab77b];return _0xe9c820;}export function buildSqlLockEntry(_0x43b0a7,_0x22c1a9,_0x4f4ada,_0x181363){const _0xf8bcf7=a131_0xe9c8,_0x57c885=detectSqlMode(_0x22c1a9);return{'path':buildSqlRelativePath(_0x43b0a7[_0xf8bcf7(0x110)],_0x43b0a7[_0xf8bcf7(0x10c)],_0x181363?.['dbName'],_0x57c885,_0x43b0a7['dbId']),'hash':_0x4f4ada,'remoteId':_0x43b0a7['id'],'version':_0x43b0a7[_0xf8bcf7(0x116)],'dbId':Number(_0x43b0a7[_0xf8bcf7(0x11e)]),'dbName':_0x181363?.['dbName'],'sqlName':_0x43b0a7[_0xf8bcf7(0x10c)],'sqlConfig':_0x43b0a7['sqlConfig']??undefined,'mode':_0x57c885};}export function cloneSqlLockData(_0x4b3cef){const _0x178996=a131_0xe9c8;return{'apps':Object['fromEntries'](Object[_0x178996(0xfc)](_0x4b3cef[_0x178996(0x11d)])['map'](([_0x85ad0d,_0x42eeb1])=>[_0x85ad0d,{'sqlRoot':_0x42eeb1[_0x178996(0x105)],'lastSync':_0x42eeb1[_0x178996(0xf9)],'sqls':{..._0x42eeb1['sqls']}}]))};}export function ensureRemoteSqlContent(_0x5445a5){return _0x5445a5['sqlContent']??'';}export function buildLocalSqlFileContent(_0x183f6e,_0x27bc7b,_0x37a6be){const _0x16357a=a131_0xe9c8,_0x5ce60b=_0x37a6be?.[_0x16357a(0xfd)]??detectSqlMode(_0x27bc7b),_0x19c6b3=stripLocalSqlMetadata(_0x27bc7b,_0x5ce60b)['trim'](),_0x32b653=[...buildMetadataHeaderLines({'sqlCode':_0x183f6e[_0x16357a(0x110)],'sqlName':_0x183f6e['sqlName'],'dbId':_0x183f6e[_0x16357a(0x11e)],'dbName':_0x37a6be?.[_0x16357a(0x118)],'mode':_0x5ce60b,'syncedAt':_0x37a6be?.['syncedAt'],'description':_0x37a6be?.[_0x16357a(0x10f)]},_0x5ce60b),'',_0x19c6b3],_0x6a5d67=_0x32b653[_0x16357a(0x115)]('\x0a');return _0x6a5d67[_0x16357a(0x102)]('\x0a')?_0x6a5d67:_0x6a5d67+'\x0a';}export function stripLocalSqlMetadata(_0x1bb418,_0x1df56c){const _0x4757cd=a131_0xe9c8,_0x4d2c9c=_0x1bb418[_0x4757cd(0x121)](/\r\n/g,'\x0a')['split']('\x0a'),_0x52b53d=[];let _0x4ce070=0x0;if(_0x1df56c===_0x4757cd(0x11c))while(_0x4ce070<_0x4d2c9c[_0x4757cd(0x106)]){const _0x498e9b=_0x4d2c9c[_0x4ce070]??'';if(/^\s*<!--\s*@lovrabet\./[_0x4757cd(0xfb)](_0x498e9b)){_0x4ce070++;continue;}if(_0x498e9b['trim']()===''&&_0x4ce070>0x0){_0x4ce070++;continue;}break;}else while(_0x4ce070<_0x4d2c9c[_0x4757cd(0x106)]){const _0x26d5ff=_0x4d2c9c[_0x4ce070]??'';if(/^\s*--\s*@lovrabet\./[_0x4757cd(0xfb)](_0x26d5ff)){_0x4ce070++;continue;}if(_0x26d5ff[_0x4757cd(0x113)]()===''&&_0x4ce070>0x0){_0x4ce070++;continue;}break;}for(;_0x4ce070<_0x4d2c9c[_0x4757cd(0x106)];_0x4ce070++){_0x52b53d['push'](_0x4d2c9c[_0x4ce070]);}return _0x52b53d['join']('\x0a')[_0x4757cd(0x10b)]();}export function resolveSqlMode(_0x145a9b,_0xdee8f1){const _0x23295b=a131_0xe9c8;if(_0xdee8f1?.[_0x23295b(0xfd)])return _0xdee8f1['mode'];return detectSqlMode(_0x145a9b);}export function resolveSqlFileName(_0x554647,_0x1feb12,_0x24104e){const _0x57b2e2=a131_0xe9c8;if(_0x24104e?.['path'])return _0x24104e[_0x57b2e2(0x114)];if(_0x24104e?.[_0x57b2e2(0x10c)]||_0x24104e?.[_0x57b2e2(0x118)])return buildSqlRelativePath(_0x554647,_0x24104e?.['sqlName'],_0x24104e?.[_0x57b2e2(0x118)],resolveSqlMode(_0x1feb12,_0x24104e),_0x24104e?.[_0x57b2e2(0x11e)]);return buildDefaultSqlFileName(_0x554647,resolveSqlMode(_0x1feb12,_0x24104e));}export function resolveSqlLocalDir(_0x42c14c,_0x574fcc){return join(_0x42c14c,SQL_LOCAL_REL_DIR,_0x574fcc);}export async function confirmForceOverwrite(_0xae989c){const _0x31662b=a131_0xe9c8,_0x95d026=createInterface({'input':process['stdin'],'output':process['stderr']}),_0x191d72=await new Promise(_0x3f2bc5=>{const _0xb45c06=a131_0xe9c8;_0x95d026[_0xb45c06(0x10a)](_0xae989c+'\x20[y/N]\x20',_0x3f2bc5);});return _0x95d026['close'](),['y',_0x31662b(0x103)]['includes'](_0x191d72[_0x31662b(0x113)]()[_0x31662b(0x120)]());}export function findSqlLockScope(_0x359930,_0x546a93){const _0x5759df=a131_0xe9c8;return _0x359930[_0x5759df(0x11d)][_0x546a93];}function buildMetadataHeaderLines(_0x15b418,_0x211ded){const _0xc0582=a131_0xe9c8,_0x59d28d=[['sqlCode',_0x15b418['sqlCode']],[_0xc0582(0x10c),_0x15b418[_0xc0582(0x10c)]],['dbId',_0x15b418['dbId']],[_0xc0582(0x118),_0x15b418[_0xc0582(0x118)]],[_0xc0582(0xfd),_0x15b418['mode']],[_0xc0582(0x11b),_0x15b418['syncedAt']],[_0xc0582(0x10f),_0x15b418['description']]];if(_0x211ded===_0xc0582(0x11c))return _0x59d28d['filter'](([,_0x1101be])=>_0x1101be!==undefined&&_0x1101be!==null&&String(_0x1101be)[_0xc0582(0x113)]()!=='')[_0xc0582(0x10d)](([_0x18ac45,_0x482324])=>_0xc0582(0x111)+_0x18ac45+':\x20'+String(_0x482324)+_0xc0582(0x117));return _0x59d28d[_0xc0582(0x112)](([,_0x11db6a])=>_0x11db6a!==undefined&&_0x11db6a!==null&&String(_0x11db6a)['trim']()!=='')[_0xc0582(0x10d)](([_0x2f24a1,_0x111dd6])=>_0xc0582(0xfe)+_0x2f24a1+':\x20'+String(_0x111dd6));}
1
+ const a139_0x7762f=a139_0x1fcb;(function(_0x4a41ee,_0x5307d6){const _0x567134=a139_0x1fcb,_0x2fdd9b=_0x4a41ee();while(!![]){try{const _0x587d6a=-parseInt(_0x567134(0xce))/0x1+parseInt(_0x567134(0xdc))/0x2+-parseInt(_0x567134(0xe5))/0x3+parseInt(_0x567134(0xd7))/0x4+parseInt(_0x567134(0xc6))/0x5+-parseInt(_0x567134(0xd4))/0x6*(parseInt(_0x567134(0xd8))/0x7)+parseInt(_0x567134(0xda))/0x8;if(_0x587d6a===_0x5307d6)break;else _0x2fdd9b['push'](_0x2fdd9b['shift']());}catch(_0x2db4f6){_0x2fdd9b['push'](_0x2fdd9b['shift']());}}}(a139_0x1d88,0x8d54a));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a139_0x7762f(0xe7);export function buildSqlLockEntry(_0x2398fe,_0x5a1ac9,_0x22e2f7,_0x1a0956){const _0x2e9964=a139_0x7762f,_0x5bf685=detectSqlMode(_0x5a1ac9);return{'path':buildSqlRelativePath(_0x2398fe[_0x2e9964(0xdb)],_0x2398fe[_0x2e9964(0xc8)],_0x1a0956?.[_0x2e9964(0xe1)],_0x5bf685,_0x2398fe['dbId']),'hash':_0x22e2f7,'remoteId':_0x2398fe['id'],'version':_0x2398fe[_0x2e9964(0xe0)],'dbId':Number(_0x2398fe['dbId']),'dbName':_0x1a0956?.[_0x2e9964(0xe1)],'sqlName':_0x2398fe[_0x2e9964(0xc8)],'sqlConfig':_0x2398fe[_0x2e9964(0xe4)]??undefined,'mode':_0x5bf685};}export function cloneSqlLockData(_0x45d6ea){const _0x4e9f5b=a139_0x7762f;return{'apps':Object['fromEntries'](Object['entries'](_0x45d6ea['apps'])[_0x4e9f5b(0xe3)](([_0x302247,_0x5f1166])=>[_0x302247,{'sqlRoot':_0x5f1166[_0x4e9f5b(0xea)],'lastSync':_0x5f1166[_0x4e9f5b(0xed)],'sqls':{..._0x5f1166[_0x4e9f5b(0xec)]}}]))};}export function ensureRemoteSqlContent(_0x5b5c30){const _0x28f896=a139_0x7762f;return _0x5b5c30[_0x28f896(0xd3)]??'';}export function buildLocalSqlFileContent(_0x486a70,_0x5b1644,_0x161c51){const _0x2637ae=a139_0x7762f,_0x44a5ac=_0x161c51?.[_0x2637ae(0xd0)]??detectSqlMode(_0x5b1644),_0xf86499=stripLocalSqlMetadata(_0x5b1644,_0x44a5ac)[_0x2637ae(0xd1)](),_0x416865=[...buildMetadataHeaderLines({'sqlCode':_0x486a70[_0x2637ae(0xdb)],'sqlName':_0x486a70[_0x2637ae(0xc8)],'dbId':_0x486a70[_0x2637ae(0xdd)],'dbName':_0x161c51?.[_0x2637ae(0xe1)],'mode':_0x44a5ac,'syncedAt':_0x161c51?.['syncedAt'],'description':_0x161c51?.[_0x2637ae(0xcb)]},_0x44a5ac),'',_0xf86499],_0x47c217=_0x416865[_0x2637ae(0xc9)]('\x0a');return _0x47c217[_0x2637ae(0xd6)]('\x0a')?_0x47c217:_0x47c217+'\x0a';}export function stripLocalSqlMetadata(_0x50332a,_0x251ce1){const _0x34d747=a139_0x7762f,_0xe7e123=_0x50332a[_0x34d747(0xc7)](/\r\n/g,'\x0a')['split']('\x0a'),_0x27e4a7=[];let _0x27443d=0x0;if(_0x251ce1===_0x34d747(0xe9))while(_0x27443d<_0xe7e123[_0x34d747(0xca)]){const _0x484825=_0xe7e123[_0x27443d]??'';if(/^\s*<!--\s*@lovrabet\./[_0x34d747(0xe8)](_0x484825)){_0x27443d++;continue;}if(_0x484825['trim']()===''&&_0x27443d>0x0){_0x27443d++;continue;}break;}else while(_0x27443d<_0xe7e123[_0x34d747(0xca)]){const _0x330767=_0xe7e123[_0x27443d]??'';if(/^\s*--\s*@lovrabet\./['test'](_0x330767)){_0x27443d++;continue;}if(_0x330767[_0x34d747(0xd1)]()===''&&_0x27443d>0x0){_0x27443d++;continue;}break;}for(;_0x27443d<_0xe7e123[_0x34d747(0xca)];_0x27443d++){_0x27e4a7[_0x34d747(0xd2)](_0xe7e123[_0x27443d]);}return _0x27e4a7[_0x34d747(0xc9)]('\x0a')[_0x34d747(0xdf)]();}export function resolveSqlMode(_0x374ff,_0xddd471){const _0x4fad28=a139_0x7762f;if(_0xddd471?.['mode'])return _0xddd471[_0x4fad28(0xd0)];return detectSqlMode(_0x374ff);}export function resolveSqlFileName(_0x1ca3f4,_0x4b4152,_0xfc56fa){const _0x5be2e1=a139_0x7762f;if(_0xfc56fa?.['path'])return _0xfc56fa[_0x5be2e1(0xe6)];if(_0xfc56fa?.[_0x5be2e1(0xc8)]||_0xfc56fa?.[_0x5be2e1(0xe1)])return buildSqlRelativePath(_0x1ca3f4,_0xfc56fa?.[_0x5be2e1(0xc8)],_0xfc56fa?.[_0x5be2e1(0xe1)],resolveSqlMode(_0x4b4152,_0xfc56fa),_0xfc56fa?.[_0x5be2e1(0xdd)]);return buildDefaultSqlFileName(_0x1ca3f4,resolveSqlMode(_0x4b4152,_0xfc56fa));}export function resolveSqlLocalDir(_0x7043ce,_0x2036f3){return join(_0x7043ce,SQL_LOCAL_REL_DIR,_0x2036f3);}export async function confirmForceOverwrite(_0x447e0a){const _0x52a985=a139_0x7762f,_0x55ce6b=createInterface({'input':process[_0x52a985(0xee)],'output':process['stderr']}),_0x21497a=await new Promise(_0x2115f7=>{const _0x4d3c21=_0x52a985;_0x55ce6b['question'](_0x447e0a+_0x4d3c21(0xeb),_0x2115f7);});return _0x55ce6b['close'](),['y',_0x52a985(0xcc)][_0x52a985(0xcf)](_0x21497a[_0x52a985(0xd1)]()['toLowerCase']());}export function findSqlLockScope(_0xe54859,_0x33d245){const _0x51c808=a139_0x7762f;return _0xe54859[_0x51c808(0xcd)][_0x33d245];}function a139_0x1d88(){const _0x4201b8=['filter','endsWith','2866140Fpvqrp','329PWfycc','syncedAt','5230072izORmR','sqlCode','521796wdHdld','dbId','--\x20@lovrabet.','trimStart','version','dbName','<!--\x20@lovrabet.','map','sqlConfig','620361LWjbxC','path','.rabetbase/sql','test','mybatisXml','sqlRoot','\x20[y/N]\x20','sqls','lastSync','stdin','1271215JiRmam','replace','sqlName','join','length','description','yes','apps','251643RtfKVh','includes','mode','trim','push','sqlContent','108270eXpopa'];a139_0x1d88=function(){return _0x4201b8;};return a139_0x1d88();}function a139_0x1fcb(_0xb2ebf0,_0x7fdb4b){_0xb2ebf0=_0xb2ebf0-0xc6;const _0x1d887d=a139_0x1d88();let _0x1fcb96=_0x1d887d[_0xb2ebf0];return _0x1fcb96;}function buildMetadataHeaderLines(_0x1cf35b,_0x1302a8){const _0x153cf3=a139_0x7762f,_0x539256=[['sqlCode',_0x1cf35b[_0x153cf3(0xdb)]],[_0x153cf3(0xc8),_0x1cf35b['sqlName']],[_0x153cf3(0xdd),_0x1cf35b['dbId']],[_0x153cf3(0xe1),_0x1cf35b[_0x153cf3(0xe1)]],[_0x153cf3(0xd0),_0x1cf35b['mode']],[_0x153cf3(0xd9),_0x1cf35b[_0x153cf3(0xd9)]],[_0x153cf3(0xcb),_0x1cf35b[_0x153cf3(0xcb)]]];if(_0x1302a8===_0x153cf3(0xe9))return _0x539256[_0x153cf3(0xd5)](([,_0x4326e8])=>_0x4326e8!==undefined&&_0x4326e8!==null&&String(_0x4326e8)[_0x153cf3(0xd1)]()!=='')[_0x153cf3(0xe3)](([_0x4634ba,_0x2b8788])=>_0x153cf3(0xe2)+_0x4634ba+':\x20'+String(_0x2b8788)+'\x20-->');return _0x539256[_0x153cf3(0xd5)](([,_0x3d0309])=>_0x3d0309!==undefined&&_0x3d0309!==null&&String(_0x3d0309)[_0x153cf3(0xd1)]()!=='')[_0x153cf3(0xe3)](([_0x42864e,_0x549683])=>_0x153cf3(0xde)+_0x42864e+':\x20'+String(_0x549683));}
@@ -1 +1 @@
1
- const a132_0x4feee1=a132_0x4345;(function(_0x470b70,_0xc7ef87){const _0x3db3ee=a132_0x4345,_0xe57793=_0x470b70();while(!![]){try{const _0x47ebdc=-parseInt(_0x3db3ee(0x1b2))/0x1+-parseInt(_0x3db3ee(0x1a8))/0x2*(-parseInt(_0x3db3ee(0x19a))/0x3)+parseInt(_0x3db3ee(0x1b6))/0x4*(parseInt(_0x3db3ee(0x1bd))/0x5)+parseInt(_0x3db3ee(0x1ad))/0x6*(-parseInt(_0x3db3ee(0x1ae))/0x7)+-parseInt(_0x3db3ee(0x1a5))/0x8+-parseInt(_0x3db3ee(0x19d))/0x9+parseInt(_0x3db3ee(0x1a0))/0xa;if(_0x47ebdc===_0xc7ef87)break;else _0xe57793['push'](_0xe57793['shift']());}catch(_0xb29f99){_0xe57793['push'](_0xe57793['shift']());}}}(a132_0x3dfb,0x42e72));function a132_0x4345(_0xce7cf4,_0xcb2b22){_0xce7cf4=_0xce7cf4-0x19a;const _0x3dfb08=a132_0x3dfb();let _0x434547=_0x3dfb08[_0xce7cf4];return _0x434547;}import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;function a132_0x3dfb(){const _0x15d5ac=['10477290WIEYYK','keys','filePath','lockFilePath','length','2414560dIMJzW','\x20added,\x20','sqlRoot','33512jCTGRb','\x20missing,\x20','remote','appCode','\x20unchanged','102LIOAVK','161861vKRAEs','sqls','\x20modified,\x20','relativePath','289970PjmUyM','sql','tableData','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','4LjCiFS','\x20remote-only','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','totalCount','lockKey','bool','hash','786695viiIna','boolean','sqlName','63VhynzH','status','push','2682261BzjVeM','map','read'];a132_0x3dfb=function(){return _0x15d5ac;};return a132_0x3dfb();}async function fetchAllSqlCodes(_0x30756e){const _0xeef66a=a132_0x4345,_0x40cd83=[];let _0xe3e1ec=0x1;while(!![]){const _0x26be85=await listSqlQueries(_0x30756e,{'currentPage':_0xe3e1ec,'pageSize':PAGE_SIZE}),_0x21712e=_0x26be85[_0xeef66a(0x1b4)]??[];_0x40cd83['push'](..._0x21712e[_0xeef66a(0x19e)](_0x2c0b8a=>_0x2c0b8a['sqlCode']));if(_0x21712e[_0xeef66a(0x1a4)]===0x0)break;const _0x107e70=_0x26be85['paging']?.[_0xeef66a(0x1b9)];if(_0x107e70!=null?_0x40cd83[_0xeef66a(0x1a4)]>=_0x107e70:_0x21712e[_0xeef66a(0x1a4)]<PAGE_SIZE)break;_0xe3e1ec++;}return _0x40cd83;}export const sqlStatus={'service':a132_0x4feee1(0x1b3),'command':'status','description':a132_0x4feee1(0x1b5),'risk':a132_0x4feee1(0x19f),'flags':[{'name':'remote','type':a132_0x4feee1(0x1be),'description':a132_0x4feee1(0x1b8)}],async 'execute'(_0x1ff00c){const _0x57dd8a=a132_0x4feee1,_0x541f2f=loadSqlProjectConfig(_0x1ff00c[_0x57dd8a(0x1ab)]),_0x472109=await readSqlLockFile(_0x541f2f[_0x57dd8a(0x1a3)]),{appLock:_0x5e08d9}=ensureSqlLockScope(_0x472109??createEmptySqlLock(),_0x541f2f['appCode'],_0x541f2f[_0x57dd8a(0x1a7)],_0x57dd8a(0x19b)),_0x45d698=await scanLocalSqlQueries(_0x541f2f),_0x2752b6=[],_0x2b2435=[],_0x29faa6=[],_0x58ad59=[],_0x331b9f=new Set(_0x45d698[_0x57dd8a(0x19e)](_0x362bf4=>_0x362bf4[_0x57dd8a(0x1ba)]));for(const _0x44277f of _0x45d698){const _0x555dee=await computeSqlFileHash(_0x44277f[_0x57dd8a(0x1a2)]),_0x30cbfe=_0x5e08d9[_0x57dd8a(0x1af)][_0x44277f['lockKey']],_0x3cd807=!!_0x30cbfe&&_0x30cbfe['path']!==_0x44277f[_0x57dd8a(0x1b1)],_0x28c963=!!_0x30cbfe&&!!_0x44277f[_0x57dd8a(0x1bf)]&&_0x30cbfe['sqlName']!==_0x44277f['sqlName'];if(!_0x30cbfe)_0x2752b6[_0x57dd8a(0x19c)](_0x44277f[_0x57dd8a(0x1ba)]);else _0x30cbfe[_0x57dd8a(0x1bc)]!==_0x555dee||_0x3cd807||_0x28c963?_0x2b2435['push'](_0x44277f[_0x57dd8a(0x1ba)]):_0x29faa6[_0x57dd8a(0x19c)](_0x44277f['lockKey']);}for(const _0x13a499 of Object[_0x57dd8a(0x1a1)](_0x5e08d9['sqls'])){!_0x331b9f['has'](_0x13a499)&&_0x58ad59['push'](_0x13a499);}const _0x52b576=[];if(_0x1ff00c[_0x57dd8a(0x1bb)](_0x57dd8a(0x1aa))){const _0xb0ddff=await fetchAllSqlCodes(_0x1ff00c[_0x57dd8a(0x1ab)]);for(const _0xa5d6d6 of _0xb0ddff){!_0x331b9f['has'](_0xa5d6d6)&&!_0x5e08d9[_0x57dd8a(0x1af)][_0xa5d6d6]&&_0x52b576[_0x57dd8a(0x19c)](_0xa5d6d6);}}const _0x3f1932=_0x2752b6[_0x57dd8a(0x1a4)]===0x0&&_0x2b2435[_0x57dd8a(0x1a4)]===0x0&&_0x58ad59[_0x57dd8a(0x1a4)]===0x0&&_0x52b576[_0x57dd8a(0x1a4)]===0x0;return{'ok':!![],'data':{'added':_0x2752b6,'modified':_0x2b2435,'missing':_0x58ad59,'unchanged':_0x29faa6,'remoteOnly':_0x52b576},'message':_0x3f1932?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x2752b6[_0x57dd8a(0x1a4)]+_0x57dd8a(0x1a6)+_0x2b2435['length']+_0x57dd8a(0x1b0)+_0x58ad59['length']+_0x57dd8a(0x1a9)+_0x29faa6[_0x57dd8a(0x1a4)]+_0x57dd8a(0x1ac)+(_0x52b576[_0x57dd8a(0x1a4)]>0x0?',\x20'+_0x52b576['length']+_0x57dd8a(0x1b7):'')};}};
1
+ const a140_0x559aef=a140_0x378b;(function(_0x197116,_0x22409a){const _0x195584=a140_0x378b,_0x58c299=_0x197116();while(!![]){try{const _0x57cdd4=-parseInt(_0x195584(0x148))/0x1+-parseInt(_0x195584(0x135))/0x2*(-parseInt(_0x195584(0x145))/0x3)+parseInt(_0x195584(0x139))/0x4+parseInt(_0x195584(0x133))/0x5+-parseInt(_0x195584(0x138))/0x6+-parseInt(_0x195584(0x13b))/0x7+parseInt(_0x195584(0x132))/0x8;if(_0x57cdd4===_0x22409a)break;else _0x58c299['push'](_0x58c299['shift']());}catch(_0x542f76){_0x58c299['push'](_0x58c299['shift']());}}}(a140_0x50af,0x3698d));import{listSqlQueries}from'../../core/api-client.js';function a140_0x378b(_0x4de4a0,_0x4f4512){_0x4de4a0=_0x4de4a0-0x127;const _0x50af45=a140_0x50af();let _0x378bc8=_0x50af45[_0x4de4a0];return _0x378bc8;}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;function a140_0x50af(){const _0x3ad850=['length','\x20remote-only','sqlCode','lockKey','bool','push','totalCount','\x20modified,\x20','relativePath','372942hcznmu','remote','paging','207357BOcHGE','keys','hash','filePath','appCode','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','read','status','\x20added,\x20','has','sqls','path','tableData','4061360pbJogU','286435lHRFkO','\x20unchanged','4HKQeFS','map','All\x20SQL\x20queries\x20are\x20in\x20sync.','805104IKDBNB','655340itWMLO','sqlName','2885750BAWNVD'];a140_0x50af=function(){return _0x3ad850;};return a140_0x50af();}async function fetchAllSqlCodes(_0x34e136){const _0x2dd561=a140_0x378b,_0x34e6f0=[];let _0x33b6c6=0x1;while(!![]){const _0x298cf1=await listSqlQueries(_0x34e136,{'currentPage':_0x33b6c6,'pageSize':PAGE_SIZE}),_0x16318f=_0x298cf1[_0x2dd561(0x131)]??[];_0x34e6f0[_0x2dd561(0x141)](..._0x16318f['map'](_0x2222d4=>_0x2222d4[_0x2dd561(0x13e)]));if(_0x16318f['length']===0x0)break;const _0x289a8f=_0x298cf1[_0x2dd561(0x147)]?.[_0x2dd561(0x142)];if(_0x289a8f!=null?_0x34e6f0[_0x2dd561(0x13c)]>=_0x289a8f:_0x16318f[_0x2dd561(0x13c)]<PAGE_SIZE)break;_0x33b6c6++;}return _0x34e6f0;}export const sqlStatus={'service':'sql','command':a140_0x559aef(0x12c),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':a140_0x559aef(0x12b),'flags':[{'name':a140_0x559aef(0x146),'type':'boolean','description':a140_0x559aef(0x12a)}],async 'execute'(_0x1eee68){const _0x766ac1=a140_0x559aef,_0x26fdf5=loadSqlProjectConfig(_0x1eee68[_0x766ac1(0x129)]),_0x5adb30=await readSqlLockFile(_0x26fdf5['lockFilePath']),{appLock:_0xcd6b32}=ensureSqlLockScope(_0x5adb30??createEmptySqlLock(),_0x26fdf5[_0x766ac1(0x129)],_0x26fdf5['sqlRoot'],_0x766ac1(0x12c)),_0x26893d=await scanLocalSqlQueries(_0x26fdf5),_0x8aa4ba=[],_0x4f1572=[],_0x3321e4=[],_0x525cfc=[],_0x3b9292=new Set(_0x26893d[_0x766ac1(0x136)](_0x3d5907=>_0x3d5907[_0x766ac1(0x13f)]));for(const _0x4370ea of _0x26893d){const _0x37f437=await computeSqlFileHash(_0x4370ea[_0x766ac1(0x128)]),_0x16238a=_0xcd6b32[_0x766ac1(0x12f)][_0x4370ea[_0x766ac1(0x13f)]],_0x4cf02d=!!_0x16238a&&_0x16238a[_0x766ac1(0x130)]!==_0x4370ea[_0x766ac1(0x144)],_0x8ba31d=!!_0x16238a&&!!_0x4370ea[_0x766ac1(0x13a)]&&_0x16238a['sqlName']!==_0x4370ea['sqlName'];if(!_0x16238a)_0x8aa4ba[_0x766ac1(0x141)](_0x4370ea['lockKey']);else _0x16238a[_0x766ac1(0x127)]!==_0x37f437||_0x4cf02d||_0x8ba31d?_0x4f1572['push'](_0x4370ea[_0x766ac1(0x13f)]):_0x3321e4[_0x766ac1(0x141)](_0x4370ea[_0x766ac1(0x13f)]);}for(const _0x407193 of Object[_0x766ac1(0x149)](_0xcd6b32[_0x766ac1(0x12f)])){!_0x3b9292[_0x766ac1(0x12e)](_0x407193)&&_0x525cfc[_0x766ac1(0x141)](_0x407193);}const _0x5d25a5=[];if(_0x1eee68[_0x766ac1(0x140)]('remote')){const _0x3ba5c4=await fetchAllSqlCodes(_0x1eee68['appCode']);for(const _0x28596f of _0x3ba5c4){!_0x3b9292['has'](_0x28596f)&&!_0xcd6b32[_0x766ac1(0x12f)][_0x28596f]&&_0x5d25a5[_0x766ac1(0x141)](_0x28596f);}}const _0x5012fa=_0x8aa4ba['length']===0x0&&_0x4f1572[_0x766ac1(0x13c)]===0x0&&_0x525cfc[_0x766ac1(0x13c)]===0x0&&_0x5d25a5['length']===0x0;return{'ok':!![],'data':{'added':_0x8aa4ba,'modified':_0x4f1572,'missing':_0x525cfc,'unchanged':_0x3321e4,'remoteOnly':_0x5d25a5},'message':_0x5012fa?_0x766ac1(0x137):_0x8aa4ba[_0x766ac1(0x13c)]+_0x766ac1(0x12d)+_0x4f1572['length']+_0x766ac1(0x143)+_0x525cfc[_0x766ac1(0x13c)]+'\x20missing,\x20'+_0x3321e4[_0x766ac1(0x13c)]+_0x766ac1(0x134)+(_0x5d25a5[_0x766ac1(0x13c)]>0x0?',\x20'+_0x5d25a5[_0x766ac1(0x13c)]+_0x766ac1(0x13d):'')};}};
@@ -1 +1 @@
1
- const a133_0x3894b3=a133_0x21dc;(function(_0x2bb2b6,_0x1520b1){const _0x3f4c51=a133_0x21dc,_0x1d8adc=_0x2bb2b6();while(!![]){try{const _0xaa406a=-parseInt(_0x3f4c51(0x113))/0x1*(parseInt(_0x3f4c51(0xed))/0x2)+-parseInt(_0x3f4c51(0x108))/0x3+parseInt(_0x3f4c51(0xef))/0x4*(-parseInt(_0x3f4c51(0x10b))/0x5)+-parseInt(_0x3f4c51(0x102))/0x6+parseInt(_0x3f4c51(0x10e))/0x7+parseInt(_0x3f4c51(0xf7))/0x8*(-parseInt(_0x3f4c51(0x10c))/0x9)+-parseInt(_0x3f4c51(0xff))/0xa*(-parseInt(_0x3f4c51(0xf1))/0xb);if(_0xaa406a===_0x1520b1)break;else _0x1d8adc['push'](_0x1d8adc['shift']());}catch(_0x263460){_0x1d8adc['push'](_0x1d8adc['shift']());}}}(a133_0x5116,0x85f92));function a133_0x5116(){const _0x120ff7=['Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','map','toLowerCase','appCode','read','from','2BPlibi','fields','4231868qnchKV','tables','4639129niTxwJ','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','Provide\x20--file\x20or\x20--sql','filter','Table\x20\x22','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','41608QIlBsV','File\x20not\x20found:\x20','get','\x22\x20not\x20found\x20in\x20any\x20dataset','push','Dataset\x20\x22','reason','sqlType','100HhXZWR','type','schemaWarnings','6136914avcIkH','name','message','tableName','file','string','383676swVjbf','isArray','utf-8','5tMZSBr','1179TiorjT','validation','1474263aEHADl','dbtableConfig','size','split','str','989236NFBdft','trim','isDangerous','schema:','sql','\x22\x20not\x20found\x20or\x20not\x20accessible'];a133_0x5116=function(){return _0x120ff7;};return a133_0x5116();}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 a133_0x21dc(_0x1e0418,_0x43d87c){_0x1e0418=_0x1e0418-0xeb;const _0x5116e4=a133_0x5116();let _0x21dcc8=_0x5116e4[_0x1e0418];return _0x21dcc8;}import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':a133_0x3894b3(0x117),'command':'validate','description':a133_0x3894b3(0x119),'risk':a133_0x3894b3(0xeb),'flags':[{'name':a133_0x3894b3(0x106),'type':a133_0x3894b3(0x107),'description':a133_0x3894b3(0xf2)},{'name':a133_0x3894b3(0x117),'type':a133_0x3894b3(0x107),'description':a133_0x3894b3(0xf6)},{'name':'schemas','type':a133_0x3894b3(0x107),'description':'Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against'}],async 'execute'(_0x3f1654){const _0x3d9d8b=a133_0x3894b3,_0x54a3e4=_0x3f1654['str']('file'),_0x45732d=_0x3f1654[_0x3d9d8b(0x112)](_0x3d9d8b(0x117));if(!_0x54a3e4&&!_0x45732d)throw CliErrors['flagMissing'](_0x3d9d8b(0x106),_0x3d9d8b(0xf3));let _0x135de5;if(_0x54a3e4){const _0x5553e2=resolve(process['cwd'](),_0x54a3e4);if(!existsSync(_0x5553e2))throw CliErrors[_0x3d9d8b(0x10d)](_0x3d9d8b(0xf8)+_0x5553e2);_0x135de5=readFileSync(_0x5553e2,_0x3d9d8b(0x10a));}else _0x135de5=_0x45732d;const _0x2bde47=validateSql(_0x135de5),_0x44f5b5={'valid':_0x2bde47['valid'],'sqlType':_0x2bde47[_0x3d9d8b(0xfe)][_0x3d9d8b(0x100)],'isSelectOnly':_0x2bde47[_0x3d9d8b(0xfe)]['isSelectOnly'],'isDangerous':_0x2bde47[_0x3d9d8b(0xfe)][_0x3d9d8b(0x115)],'tables':_0x2bde47[_0x3d9d8b(0xf0)],'parameters':_0x2bde47['parameters'],'message':_0x2bde47[_0x3d9d8b(0x104)]};_0x2bde47['sqlType']['reason']&&(_0x44f5b5[_0x3d9d8b(0xfd)]=_0x2bde47[_0x3d9d8b(0xfe)][_0x3d9d8b(0xfd)]);const _0x157353=_0x3f1654[_0x3d9d8b(0x112)]('schemas');if(_0x157353&&_0x2bde47['valid']){const _0x4eda90=_0x157353[_0x3d9d8b(0x111)](',')[_0x3d9d8b(0x11a)](_0x3d0304=>_0x3d0304[_0x3d9d8b(0x114)]())[_0x3d9d8b(0xf4)](Boolean),_0xb7274a=[],_0x1092eb=filterDbTableBackedDatasets(await listDatasets(_0x3f1654[_0x3d9d8b(0x11c)])),_0x39aea0=new Map(_0x1092eb[_0x3d9d8b(0x11a)](_0x1cce92=>[_0x1cce92[_0x3d9d8b(0x10f)]?.['tableName']?.[_0x3d9d8b(0x11b)](),_0x1cce92]));for(const _0x280dad of _0x2bde47[_0x3d9d8b(0xf0)]){const _0x158d4c=_0x39aea0[_0x3d9d8b(0xf9)](_0x280dad['toLowerCase']());!_0x158d4c&&_0xb7274a['push'](_0x3d9d8b(0xf5)+_0x280dad+_0x3d9d8b(0xfa));}for(const _0x4eebb6 of _0x4eda90){let _0x5d0f29;try{_0x5d0f29=await getDatasetDetail(_0x4eebb6);}catch{_0xb7274a[_0x3d9d8b(0xfb)](_0x3d9d8b(0xfc)+_0x4eebb6+_0x3d9d8b(0x118));continue;}assertDatasetIsDbTableBacked(_0x5d0f29,'SQL\x20schema\x20validation');const _0x2f4f2e=Array[_0x3d9d8b(0x109)](_0x5d0f29[_0x3d9d8b(0xee)])?_0x5d0f29['fields']:[],_0x5837f3=new Set(_0x2f4f2e[_0x3d9d8b(0x11a)](_0x1891a1=>_0x1891a1[_0x3d9d8b(0x103)]?.[_0x3d9d8b(0x11b)]())),_0x4f5dcf=_0x5d0f29[_0x3d9d8b(0x10f)]?.[_0x3d9d8b(0x105)]||_0x5d0f29[_0x3d9d8b(0x105)]||_0x4eebb6;_0x44f5b5[_0x3d9d8b(0x116)+_0x4f5dcf]={'code':_0x4eebb6,'tableName':_0x4f5dcf,'fieldCount':_0x5837f3[_0x3d9d8b(0x110)],'fields':Array[_0x3d9d8b(0xec)](_0x5837f3)};}_0xb7274a['length']>0x0&&(_0x44f5b5[_0x3d9d8b(0x101)]=_0xb7274a);}return{'ok':_0x2bde47['valid'],'data':_0x44f5b5,'message':_0x2bde47[_0x3d9d8b(0x104)]};}};
1
+ const a141_0x15c071=a141_0x13da;(function(_0x34f2da,_0x59efb2){const _0x57200b=a141_0x13da,_0xc4415d=_0x34f2da();while(!![]){try{const _0x23fa4d=-parseInt(_0x57200b(0x1aa))/0x1+parseInt(_0x57200b(0x1ca))/0x2+parseInt(_0x57200b(0x1ba))/0x3*(-parseInt(_0x57200b(0x1a5))/0x4)+-parseInt(_0x57200b(0x1cb))/0x5*(parseInt(_0x57200b(0x1bd))/0x6)+parseInt(_0x57200b(0x1ce))/0x7+parseInt(_0x57200b(0x1b3))/0x8*(-parseInt(_0x57200b(0x1b1))/0x9)+parseInt(_0x57200b(0x1b5))/0xa;if(_0x23fa4d===_0x59efb2)break;else _0xc4415d['push'](_0xc4415d['shift']());}catch(_0x5d4575){_0xc4415d['push'](_0xc4415d['shift']());}}}(a141_0x58f2,0x3ebb7));import{readFileSync,existsSync}from'node:fs';function a141_0x58f2(){const _0xc9f0f1=['name','tables','file','map','appCode','Provide\x20--file\x20or\x20--sql','parameters','reason','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','604992rzQMEE','15qiAJYe','get','validate','2713557AGdgsy','Dataset\x20\x22','schemas','\x22\x20not\x20found\x20in\x20any\x20dataset','filter','trim','fields','tableName','sqlType','toLowerCase','164cvjiaF','push','from','dbtableConfig','flagMissing','4413yLxyAB','length','string','SQL\x20schema\x20validation','validation','type','utf-8','2007FLximh','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','12440Ruztzk','sql','4109710hfeNdt','isSelectOnly','str','isDangerous','read','28209XwVKGL','size','cwd','214932wMSzmH','valid','message','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'];a141_0x58f2=function(){return _0xc9f0f1;};return a141_0x58f2();}import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';function a141_0x13da(_0x4897cd,_0x5042d0){_0x4897cd=_0x4897cd-0x1a3;const _0x58f23e=a141_0x58f2();let _0x13da9b=_0x58f23e[_0x4897cd];return _0x13da9b;}import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':'sql','command':a141_0x15c071(0x1cd),'description':a141_0x15c071(0x1b2),'risk':a141_0x15c071(0x1b9),'flags':[{'name':a141_0x15c071(0x1c3),'type':a141_0x15c071(0x1ac),'description':'Path\x20to\x20the\x20SQL\x20file\x20to\x20validate'},{'name':'sql','type':'string','description':a141_0x15c071(0x1c0)},{'name':a141_0x15c071(0x1d0),'type':'string','description':a141_0x15c071(0x1c9)}],async 'execute'(_0x5bf8c1){const _0x16359f=a141_0x15c071,_0x3bfeef=_0x5bf8c1[_0x16359f(0x1b7)](_0x16359f(0x1c3)),_0x333bb4=_0x5bf8c1[_0x16359f(0x1b7)](_0x16359f(0x1b4));if(!_0x3bfeef&&!_0x333bb4)throw CliErrors[_0x16359f(0x1a9)](_0x16359f(0x1c3),_0x16359f(0x1c6));let _0x18872a;if(_0x3bfeef){const _0x5aee38=resolve(process[_0x16359f(0x1bc)](),_0x3bfeef);if(!existsSync(_0x5aee38))throw CliErrors[_0x16359f(0x1ae)]('File\x20not\x20found:\x20'+_0x5aee38);_0x18872a=readFileSync(_0x5aee38,_0x16359f(0x1b0));}else _0x18872a=_0x333bb4;const _0x20c214=validateSql(_0x18872a),_0xec992b={'valid':_0x20c214[_0x16359f(0x1be)],'sqlType':_0x20c214[_0x16359f(0x1a3)][_0x16359f(0x1af)],'isSelectOnly':_0x20c214[_0x16359f(0x1a3)][_0x16359f(0x1b6)],'isDangerous':_0x20c214[_0x16359f(0x1a3)][_0x16359f(0x1b8)],'tables':_0x20c214[_0x16359f(0x1c2)],'parameters':_0x20c214[_0x16359f(0x1c7)],'message':_0x20c214[_0x16359f(0x1bf)]};_0x20c214[_0x16359f(0x1a3)][_0x16359f(0x1c8)]&&(_0xec992b[_0x16359f(0x1c8)]=_0x20c214[_0x16359f(0x1a3)]['reason']);const _0x1c5fba=_0x5bf8c1[_0x16359f(0x1b7)]('schemas');if(_0x1c5fba&&_0x20c214[_0x16359f(0x1be)]){const _0xb31585=_0x1c5fba['split'](',')[_0x16359f(0x1c4)](_0x1fdf2a=>_0x1fdf2a[_0x16359f(0x1d3)]())[_0x16359f(0x1d2)](Boolean),_0x5930d7=[],_0x4b01c1=filterDbTableBackedDatasets(await listDatasets(_0x5bf8c1[_0x16359f(0x1c5)])),_0x4b1191=new Map(_0x4b01c1[_0x16359f(0x1c4)](_0x58a9c5=>[_0x58a9c5[_0x16359f(0x1a8)]?.[_0x16359f(0x1d5)]?.[_0x16359f(0x1a4)](),_0x58a9c5]));for(const _0x340cda of _0x20c214['tables']){const _0x253d48=_0x4b1191[_0x16359f(0x1cc)](_0x340cda[_0x16359f(0x1a4)]());!_0x253d48&&_0x5930d7[_0x16359f(0x1a6)]('Table\x20\x22'+_0x340cda+_0x16359f(0x1d1));}for(const _0x3e63ca of _0xb31585){let _0x6bbae1;try{_0x6bbae1=await getDatasetDetail(_0x3e63ca);}catch{_0x5930d7[_0x16359f(0x1a6)](_0x16359f(0x1cf)+_0x3e63ca+'\x22\x20not\x20found\x20or\x20not\x20accessible');continue;}assertDatasetIsDbTableBacked(_0x6bbae1,_0x16359f(0x1ad));const _0x278e48=Array['isArray'](_0x6bbae1[_0x16359f(0x1d4)])?_0x6bbae1['fields']:[],_0x3843a2=new Set(_0x278e48[_0x16359f(0x1c4)](_0x1918b7=>_0x1918b7[_0x16359f(0x1c1)]?.[_0x16359f(0x1a4)]())),_0x2b38af=_0x6bbae1[_0x16359f(0x1a8)]?.['tableName']||_0x6bbae1['tableName']||_0x3e63ca;_0xec992b['schema:'+_0x2b38af]={'code':_0x3e63ca,'tableName':_0x2b38af,'fieldCount':_0x3843a2[_0x16359f(0x1bb)],'fields':Array[_0x16359f(0x1a7)](_0x3843a2)};}_0x5930d7[_0x16359f(0x1ab)]>0x0&&(_0xec992b['schemaWarnings']=_0x5930d7);}return{'ok':_0x20c214[_0x16359f(0x1be)],'data':_0xec992b,'message':_0x20c214[_0x16359f(0x1bf)]};}};
@@ -1 +1 @@
1
- const a134_0x284cab=a134_0x1235;(function(_0x1d12f2,_0x367d04){const _0x1c8091=a134_0x1235,_0x19a787=_0x1d12f2();while(!![]){try{const _0x272ae1=-parseInt(_0x1c8091(0x116))/0x1*(-parseInt(_0x1c8091(0xf7))/0x2)+parseInt(_0x1c8091(0x11c))/0x3*(-parseInt(_0x1c8091(0x106))/0x4)+parseInt(_0x1c8091(0x10c))/0x5*(-parseInt(_0x1c8091(0x10f))/0x6)+parseInt(_0x1c8091(0xeb))/0x7*(-parseInt(_0x1c8091(0x117))/0x8)+parseInt(_0x1c8091(0x11e))/0x9+-parseInt(_0x1c8091(0x101))/0xa*(-parseInt(_0x1c8091(0x120))/0xb)+-parseInt(_0x1c8091(0x10d))/0xc*(-parseInt(_0x1c8091(0x115))/0xd);if(_0x272ae1===_0x367d04)break;else _0x19a787['push'](_0x19a787['shift']());}catch(_0x40e343){_0x19a787['push'](_0x19a787['shift']());}}}(a134_0x1a40,0xb2fa0));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.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';import{validateAppcode}from'../../commands/common/validate.js';import{readConfigFile,readRawConfigWithLayers,resolveWriteConfigPath,writeConfigFile}from'../../context.js';const WORKSPACE_USAGE=CLI_BIN_NAME+'\x20workspace\x20<init|use>\x20--app\x20<name>\x20[--appcode\x20<code>]',SAFE_PROFILE_KEYS=[a134_0x284cab(0x103),a134_0x284cab(0xff),a134_0x284cab(0xf1),a134_0x284cab(0x107),a134_0x284cab(0xfc),a134_0x284cab(0x109),a134_0x284cab(0x10b)],workspaceFlags=[{'name':'app','type':a134_0x284cab(0x105),'description':'App\x20profile\x20name\x20to\x20use\x20in\x20this\x20workspace'},{'name':a134_0x284cab(0x103),'type':a134_0x284cab(0x105),'description':'App\x20code\x20to\x20bind\x20to\x20this\x20workspace'},{'name':'env','type':a134_0x284cab(0x105),'description':a134_0x284cab(0xf0),'enum':[...RABETBASE_ENV_VALUES]},{'name':'apiDir','type':'string','description':a134_0x284cab(0xf4)},{'name':a134_0x284cab(0x121),'type':a134_0x284cab(0x105),'description':'Default\x20output\x20format\x20for\x20this\x20workspace\x20app\x20profile','enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':a134_0x284cab(0xfc),'type':'number','description':'Default\x20page\x20size\x20for\x20this\x20workspace\x20app\x20profile'},{'name':a134_0x284cab(0x109),'type':a134_0x284cab(0x105),'description':a134_0x284cab(0xf9),'enum':[...RISK_LEVEL_VALUES]},{'name':a134_0x284cab(0x10b),'type':a134_0x284cab(0x105),'description':a134_0x284cab(0x11d)}];function isRecord(_0x4e5c35){const _0x5cb0e9=a134_0x284cab;return!!_0x4e5c35&&typeof _0x4e5c35===_0x5cb0e9(0x108)&&!Array[_0x5cb0e9(0xf5)](_0x4e5c35);}function assertValidAppcode(_0xc31ab4){const _0x121bbb=a134_0x284cab,{valid:_0x5b7982,message:_0xecdf97}=validateAppcode(_0xc31ab4);if(!_0x5b7982)throw CliErrors[_0x121bbb(0xee)](_0x121bbb(0xf8)+_0xc31ab4,_0xecdf97);}function a134_0x1235(_0xf7e792,_0x97e446){_0xf7e792=_0xf7e792-0xeb;const _0x1a401d=a134_0x1a40();let _0x12356d=_0x1a401d[_0xf7e792];return _0x12356d;}function sanitizeProfile(_0x5a529d){if(!isRecord(_0x5a529d))return{};const _0x256e3e={};for(const _0x70fd46 of SAFE_PROFILE_KEYS){if(_0x5a529d[_0x70fd46]!==undefined)_0x256e3e[_0x70fd46]=_0x5a529d[_0x70fd46];}return _0x256e3e;}function cloneProfile(_0x3515a9){return isRecord(_0x3515a9)?{..._0x3515a9}:{};}function a134_0x1a40(){const _0x528da8=['190yzPKbQ','12LQuhgn','flag','163194jSNBpE','app','Workspace\x20','globalConfig','Missing\x20workspace\x20app\x20selector.','apps','4908709TtPeTV','4kdMXdL','6036704JHxWDc','\x20--app\x20','\x20workspace\x20','Switch\x20the\x20current\x20workspace\x20app\x20binding','project','1542351Nnynbf','Locale\x20for\x20this\x20workspace\x20app\x20profile','8277606QjPCiy','length','510554hYskil','defaultFormat','7nzNSOp','\x20workspace\x20use\x20--app\x20<name>`.','trim','validation',').\x20Config:\x20','Target\x20environment','apiDir','join','workspace','API\x20directory\x20path\x20for\x20this\x20workspace\x20app\x20profile','isArray','str','219218cBzslP','Invalid\x20appcode:\x20','Risk\x20level\x20for\x20this\x20workspace\x20app\x20profile','init','Use\x20`','pageSize','write','workspace.','env','defaultApp','280PLUsBC','App\x20\x22','appcode','\x20workspace\x20init\x20--appcode\x20<code>`\x20or\x20`','string','4nkFSMs','format','object','riskLevel','Initialize\x20the\x20current\x20workspace\x20app\x20binding','locale'];a134_0x1a40=function(){return _0x528da8;};return a134_0x1a40();}function collectWorkspaceProfileOverrides(_0x4f0dc1){const _0x14c929=a134_0x284cab,_0x4cd3d8={},_0x355a52=_0x4f0dc1[_0x14c929(0xf6)]('env'),_0xb7f7c7=_0x4f0dc1[_0x14c929(0xf6)]('apiDir'),_0x4e3d7b=_0x4f0dc1[_0x14c929(0xf6)]('defaultFormat'),_0x468f6b=_0x4f0dc1[_0x14c929(0x10e)](_0x14c929(0xfc)),_0x4fca6c=_0x4f0dc1[_0x14c929(0xf6)](_0x14c929(0x109)),_0xf46212=_0x4f0dc1[_0x14c929(0xf6)]('locale');if(_0x355a52)_0x4cd3d8['env']=_0x355a52;if(_0xb7f7c7)_0x4cd3d8[_0x14c929(0xf1)]=_0xb7f7c7;if(_0x4e3d7b)_0x4cd3d8[_0x14c929(0x107)]=_0x4e3d7b;if(_0x468f6b!==undefined&&_0x468f6b!=='')_0x4cd3d8['pageSize']=Number(_0x468f6b);if(_0x4fca6c)_0x4cd3d8[_0x14c929(0x109)]=_0x4fca6c;if(_0xf46212)_0x4cd3d8[_0x14c929(0x10b)]=_0xf46212;return _0x4cd3d8;}async function validateWorkspaceArgs(_0xb52ce4){const _0x35fce9=a134_0x284cab,_0x2a344e=_0xb52ce4[_0x35fce9(0xf6)](_0x35fce9(0x110))[_0x35fce9(0xed)](),_0x12f3a7=_0xb52ce4['str'](_0x35fce9(0x103))['trim']();if(!_0x2a344e&&!_0x12f3a7)throw CliErrors[_0x35fce9(0xee)](_0x35fce9(0x113),_0x35fce9(0xfb)+CLI_BIN_NAME+'\x20workspace\x20init\x20--appcode\x20<code>`\x20or\x20`'+CLI_BIN_NAME+_0x35fce9(0xec));if(_0x12f3a7)assertValidAppcode(_0x12f3a7);}function resolveKnownApps(){const _0x21fb64=a134_0x284cab,{config:_0x5777b1,layers:_0x2bdb86}=readRawConfigWithLayers(),_0x52d05c=isRecord(_0x5777b1[_0x21fb64(0x114)])?_0x5777b1[_0x21fb64(0x114)]:{},_0xebce30=isRecord(_0x2bdb86[_0x21fb64(0x112)][_0x21fb64(0x114)])?_0x2bdb86['globalConfig'][_0x21fb64(0x114)]:{};return{..._0xebce30,..._0x52d05c};}async function configureWorkspace(_0x25dfef,_0x45d203){const _0x3b932f=a134_0x284cab,_0x24c79b=_0x25dfef['str'](_0x3b932f(0x110))[_0x3b932f(0xed)](),_0x3bcd86=_0x25dfef[_0x3b932f(0xf6)](_0x3b932f(0x103))[_0x3b932f(0xed)](),_0x5bbc77=_0x24c79b||_0x3bcd86;if(!_0x5bbc77)throw CliErrors[_0x3b932f(0xee)](_0x3b932f(0x113),_0x3b932f(0xfb)+CLI_BIN_NAME+_0x3b932f(0x104)+CLI_BIN_NAME+_0x3b932f(0xec));if(_0x3bcd86)assertValidAppcode(_0x3bcd86);const _0x530b65=resolveWriteConfigPath(_0x3b932f(0x11b)),_0x37c499=readConfigFile(_0x530b65),_0x29ac32=resolveKnownApps(),_0x4d44c0=isRecord(_0x37c499[_0x3b932f(0x114)])?{..._0x37c499[_0x3b932f(0x114)]}:{},_0x2ac4de=cloneProfile(_0x4d44c0[_0x5bbc77]),_0x31763e=sanitizeProfile(_0x29ac32[_0x5bbc77]),_0x5d8a1d=_0x3bcd86?{}:_0x31763e,_0x209387=_0x3bcd86||_0x5d8a1d['appcode'];if(!_0x209387){const _0x26f0b1=Object['keys'](_0x29ac32),_0x5f0c64=_0x26f0b1[_0x3b932f(0x11f)]===0x0?'Use\x20`'+CLI_BIN_NAME+_0x3b932f(0x119)+_0x45d203+_0x3b932f(0x118)+_0x5bbc77+'\x20--appcode\x20<code>`.':'Pass\x20--appcode\x20<code>,\x20or\x20choose\x20one\x20of:\x20'+_0x26f0b1[_0x3b932f(0xf2)](',\x20');throw CliErrors['validation'](_0x3b932f(0x102)+_0x5bbc77+'\x22\x20not\x20found.',_0x5f0c64);}assertValidAppcode(String(_0x209387));const _0x135ba5={..._0x5d8a1d,..._0x2ac4de,'appcode':String(_0x209387),...collectWorkspaceProfileOverrides(_0x25dfef)};return _0x4d44c0[_0x5bbc77]=_0x135ba5,_0x37c499['apps']=_0x4d44c0,_0x37c499[_0x3b932f(0x100)]=_0x5bbc77,delete _0x37c499[_0x3b932f(0x103)],delete _0x37c499[_0x3b932f(0x110)],_0x135ba5[_0x3b932f(0xff)]&&(_0x37c499[_0x3b932f(0xff)]=_0x135ba5[_0x3b932f(0xff)]),writeConfigFile(_0x530b65,_0x37c499),{'ok':!![],'message':_0x3b932f(0x111)+(_0x45d203===_0x3b932f(0xfa)?'initialized':'updated')+':\x20'+_0x5bbc77+'\x20(appcode:\x20'+_0x135ba5[_0x3b932f(0x103)]+_0x3b932f(0xef)+_0x530b65+'.\x20Credentials:\x20not\x20written.','data':{'operation':_0x3b932f(0xfe)+_0x45d203,'configPath':_0x530b65,'app':_0x5bbc77,'appcode':_0x135ba5[_0x3b932f(0x103)],'env':_0x135ba5[_0x3b932f(0xff)]??null,'credentialsWritten':![]}};}const workspaceInitDefinition={'service':a134_0x284cab(0xf3),'command':a134_0x284cab(0xfa),'description':a134_0x284cab(0x10a),'risk':a134_0x284cab(0xfd),'requiresAuth':![],'requiresAppCode':![],'args':[],'flags':workspaceFlags,'validate':validateWorkspaceArgs,'execute':_0x1f1bbe=>configureWorkspace(_0x1f1bbe,a134_0x284cab(0xfa))},workspaceUseDefinition={'service':a134_0x284cab(0xf3),'command':'use','description':a134_0x284cab(0x11a),'risk':a134_0x284cab(0xfd),'requiresAuth':![],'requiresAppCode':![],'args':[],'flags':workspaceFlags,'validate':validateWorkspaceArgs,'execute':_0xb9b1d7=>configureWorkspace(_0xb9b1d7,'use')};export const workspaceDefinitions=[workspaceInitDefinition,workspaceUseDefinition];export{WORKSPACE_USAGE};
1
+ const a142_0x57ef23=a142_0x4a3f;(function(_0x2f90f0,_0x172328){const _0x3a7d02=a142_0x4a3f,_0x20c4ce=_0x2f90f0();while(!![]){try{const _0x46e57d=parseInt(_0x3a7d02(0x21e))/0x1*(-parseInt(_0x3a7d02(0x1ef))/0x2)+parseInt(_0x3a7d02(0x1f5))/0x3*(parseInt(_0x3a7d02(0x1e3))/0x4)+-parseInt(_0x3a7d02(0x201))/0x5*(parseInt(_0x3a7d02(0x211))/0x6)+parseInt(_0x3a7d02(0x20f))/0x7+parseInt(_0x3a7d02(0x1e1))/0x8*(parseInt(_0x3a7d02(0x21d))/0x9)+-parseInt(_0x3a7d02(0x203))/0xa+parseInt(_0x3a7d02(0x1fc))/0xb*(parseInt(_0x3a7d02(0x216))/0xc);if(_0x46e57d===_0x172328)break;else _0x20c4ce['push'](_0x20c4ce['shift']());}catch(_0x39bbc9){_0x20c4ce['push'](_0x20c4ce['shift']());}}}(a142_0x3caa,0x9a532));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.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';import{validateAppcode}from'../../commands/common/validate.js';import{readConfigFile,readRawConfigWithLayers,resolveWriteConfigPath,writeConfigFile}from'../../context.js';const WORKSPACE_USAGE=CLI_BIN_NAME+a142_0x57ef23(0x1e6),SAFE_PROFILE_KEYS=[a142_0x57ef23(0x213),a142_0x57ef23(0x1eb),'apiDir',a142_0x57ef23(0x1e4),a142_0x57ef23(0x1f0),a142_0x57ef23(0x1f9),a142_0x57ef23(0x1f8)],workspaceFlags=[{'name':'app','type':a142_0x57ef23(0x1e9),'description':'App\x20profile\x20name\x20to\x20use\x20in\x20this\x20workspace'},{'name':'appcode','type':'string','description':a142_0x57ef23(0x20c)},{'name':'env','type':a142_0x57ef23(0x1e9),'description':a142_0x57ef23(0x205),'enum':[...RABETBASE_ENV_VALUES]},{'name':a142_0x57ef23(0x218),'type':'string','description':a142_0x57ef23(0x1ed)},{'name':a142_0x57ef23(0x1f3),'type':'string','description':'Default\x20output\x20format\x20for\x20this\x20workspace\x20app\x20profile','enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':a142_0x57ef23(0x1f0),'type':a142_0x57ef23(0x219),'description':a142_0x57ef23(0x212)},{'name':'riskLevel','type':a142_0x57ef23(0x1e9),'description':a142_0x57ef23(0x20e),'enum':[...RISK_LEVEL_VALUES]},{'name':a142_0x57ef23(0x1f8),'type':'string','description':a142_0x57ef23(0x217)}];function isRecord(_0x5cf2f9){const _0x23473e=a142_0x57ef23;return!!_0x5cf2f9&&typeof _0x5cf2f9===_0x23473e(0x1f2)&&!Array[_0x23473e(0x1fa)](_0x5cf2f9);}function assertValidAppcode(_0x1ed3d8){const _0x35e60a=a142_0x57ef23,{valid:_0xcc44f4,message:_0x334586}=validateAppcode(_0x1ed3d8);if(!_0xcc44f4)throw CliErrors['validation'](_0x35e60a(0x202)+_0x1ed3d8,_0x334586);}function sanitizeProfile(_0x2fe367){if(!isRecord(_0x2fe367))return{};const _0x445bac={};for(const _0x52a614 of SAFE_PROFILE_KEYS){if(_0x2fe367[_0x52a614]!==undefined)_0x445bac[_0x52a614]=_0x2fe367[_0x52a614];}return _0x445bac;}function cloneProfile(_0x357e84){return isRecord(_0x357e84)?{..._0x357e84}:{};}function a142_0x3caa(){const _0x3375fb=['apps','Risk\x20level\x20for\x20this\x20workspace\x20app\x20profile','1674701ISVBiC','str','121842OfrMgy','Default\x20page\x20size\x20for\x20this\x20workspace\x20app\x20profile','appcode','Initialize\x20the\x20current\x20workspace\x20app\x20binding','Use\x20`','18300FSgrGB','Locale\x20for\x20this\x20workspace\x20app\x20profile','apiDir','number','\x20workspace\x20use\x20--app\x20<name>`.','Pass\x20--appcode\x20<code>,\x20or\x20choose\x20one\x20of:\x20','initialized','4536423YoesTY','1ghsyIV','16MXElnR','write','2960wManLI','format','\x20--app\x20','\x20workspace\x20<init|use>\x20--app\x20<name>\x20[--appcode\x20<code>]','join','\x22\x20not\x20found.','string',').\x20Config:\x20','env','init','API\x20directory\x20path\x20for\x20this\x20workspace\x20app\x20profile','project','747038TzEokJ','pageSize','Switch\x20the\x20current\x20workspace\x20app\x20binding','object','defaultFormat','trim','1527oXZBij','globalConfig','validation','locale','riskLevel','isArray','Workspace\x20','4147zCcnhk','\x20workspace\x20','\x20--appcode\x20<code>`.','workspace','\x20workspace\x20init\x20--appcode\x20<code>`\x20or\x20`','35UKiTVg','Invalid\x20appcode:\x20','10511400ZwrJju','Missing\x20workspace\x20app\x20selector.','Target\x20environment','app','use','defaultApp','updated','workspace.','flag','App\x20code\x20to\x20bind\x20to\x20this\x20workspace'];a142_0x3caa=function(){return _0x3375fb;};return a142_0x3caa();}function collectWorkspaceProfileOverrides(_0x19e6ef){const _0x4c4e8e=a142_0x57ef23,_0x5140d7={},_0xa5478e=_0x19e6ef[_0x4c4e8e(0x210)]('env'),_0x5ebb11=_0x19e6ef[_0x4c4e8e(0x210)](_0x4c4e8e(0x218)),_0x150a80=_0x19e6ef[_0x4c4e8e(0x210)]('defaultFormat'),_0x483386=_0x19e6ef[_0x4c4e8e(0x20b)](_0x4c4e8e(0x1f0)),_0x4861ff=_0x19e6ef['str']('riskLevel'),_0x1b7406=_0x19e6ef[_0x4c4e8e(0x210)]('locale');if(_0xa5478e)_0x5140d7[_0x4c4e8e(0x1eb)]=_0xa5478e;if(_0x5ebb11)_0x5140d7['apiDir']=_0x5ebb11;if(_0x150a80)_0x5140d7[_0x4c4e8e(0x1e4)]=_0x150a80;if(_0x483386!==undefined&&_0x483386!=='')_0x5140d7[_0x4c4e8e(0x1f0)]=Number(_0x483386);if(_0x4861ff)_0x5140d7[_0x4c4e8e(0x1f9)]=_0x4861ff;if(_0x1b7406)_0x5140d7[_0x4c4e8e(0x1f8)]=_0x1b7406;return _0x5140d7;}async function validateWorkspaceArgs(_0x3bf734){const _0x5c3d7d=a142_0x57ef23,_0x2a5926=_0x3bf734[_0x5c3d7d(0x210)](_0x5c3d7d(0x206))[_0x5c3d7d(0x1f4)](),_0x391c44=_0x3bf734['str'](_0x5c3d7d(0x213))[_0x5c3d7d(0x1f4)]();if(!_0x2a5926&&!_0x391c44)throw CliErrors[_0x5c3d7d(0x1f7)]('Missing\x20workspace\x20app\x20selector.','Use\x20`'+CLI_BIN_NAME+_0x5c3d7d(0x200)+CLI_BIN_NAME+'\x20workspace\x20use\x20--app\x20<name>`.');if(_0x391c44)assertValidAppcode(_0x391c44);}function a142_0x4a3f(_0x580e91,_0x13eaee){_0x580e91=_0x580e91-0x1e1;const _0x3caa7d=a142_0x3caa();let _0x4a3fea=_0x3caa7d[_0x580e91];return _0x4a3fea;}function resolveKnownApps(){const _0x2a2a5b=a142_0x57ef23,{config:_0x9071f,layers:_0x114c36}=readRawConfigWithLayers(),_0x1ff8fe=isRecord(_0x9071f[_0x2a2a5b(0x20d)])?_0x9071f[_0x2a2a5b(0x20d)]:{},_0x33999b=isRecord(_0x114c36[_0x2a2a5b(0x1f6)][_0x2a2a5b(0x20d)])?_0x114c36[_0x2a2a5b(0x1f6)]['apps']:{};return{..._0x33999b,..._0x1ff8fe};}async function configureWorkspace(_0x16b07e,_0x22d1c6){const _0x574425=a142_0x57ef23,_0x37f9b9=_0x16b07e[_0x574425(0x210)](_0x574425(0x206))[_0x574425(0x1f4)](),_0x1eb282=_0x16b07e[_0x574425(0x210)](_0x574425(0x213))[_0x574425(0x1f4)](),_0x42077a=_0x37f9b9||_0x1eb282;if(!_0x42077a)throw CliErrors['validation'](_0x574425(0x204),_0x574425(0x215)+CLI_BIN_NAME+_0x574425(0x200)+CLI_BIN_NAME+_0x574425(0x21a));if(_0x1eb282)assertValidAppcode(_0x1eb282);const _0x116120=resolveWriteConfigPath(_0x574425(0x1ee)),_0x5f3f1d=readConfigFile(_0x116120),_0x7d72a3=resolveKnownApps(),_0x21843f=isRecord(_0x5f3f1d[_0x574425(0x20d)])?{..._0x5f3f1d['apps']}:{},_0x456e8c=cloneProfile(_0x21843f[_0x42077a]),_0x186e29=sanitizeProfile(_0x7d72a3[_0x42077a]),_0x545f14=_0x1eb282?{}:_0x186e29,_0x356ea1=_0x1eb282||_0x545f14['appcode'];if(!_0x356ea1){const _0xf1c4e=Object['keys'](_0x7d72a3),_0x5a06a=_0xf1c4e['length']===0x0?_0x574425(0x215)+CLI_BIN_NAME+_0x574425(0x1fd)+_0x22d1c6+_0x574425(0x1e5)+_0x42077a+_0x574425(0x1fe):_0x574425(0x21b)+_0xf1c4e[_0x574425(0x1e7)](',\x20');throw CliErrors[_0x574425(0x1f7)]('App\x20\x22'+_0x42077a+_0x574425(0x1e8),_0x5a06a);}assertValidAppcode(String(_0x356ea1));const _0x1998f0={..._0x545f14,..._0x456e8c,'appcode':String(_0x356ea1),...collectWorkspaceProfileOverrides(_0x16b07e)};return _0x21843f[_0x42077a]=_0x1998f0,_0x5f3f1d[_0x574425(0x20d)]=_0x21843f,_0x5f3f1d[_0x574425(0x208)]=_0x42077a,delete _0x5f3f1d[_0x574425(0x213)],delete _0x5f3f1d[_0x574425(0x206)],_0x1998f0[_0x574425(0x1eb)]&&(_0x5f3f1d[_0x574425(0x1eb)]=_0x1998f0[_0x574425(0x1eb)]),writeConfigFile(_0x116120,_0x5f3f1d),{'ok':!![],'message':_0x574425(0x1fb)+(_0x22d1c6===_0x574425(0x1ec)?_0x574425(0x21c):_0x574425(0x209))+':\x20'+_0x42077a+'\x20(appcode:\x20'+_0x1998f0['appcode']+_0x574425(0x1ea)+_0x116120+'.\x20Credentials:\x20not\x20written.','data':{'operation':_0x574425(0x20a)+_0x22d1c6,'configPath':_0x116120,'app':_0x42077a,'appcode':_0x1998f0[_0x574425(0x213)],'env':_0x1998f0['env']??null,'credentialsWritten':![]}};}const workspaceInitDefinition={'service':a142_0x57ef23(0x1ff),'command':a142_0x57ef23(0x1ec),'description':a142_0x57ef23(0x214),'risk':a142_0x57ef23(0x1e2),'requiresAuth':![],'requiresAppCode':![],'args':[],'flags':workspaceFlags,'validate':validateWorkspaceArgs,'execute':_0x308971=>configureWorkspace(_0x308971,a142_0x57ef23(0x1ec))},workspaceUseDefinition={'service':'workspace','command':'use','description':a142_0x57ef23(0x1f1),'risk':'write','requiresAuth':![],'requiresAppCode':![],'args':[],'flags':workspaceFlags,'validate':validateWorkspaceArgs,'execute':_0x1e889d=>configureWorkspace(_0x1e889d,a142_0x57ef23(0x207))};export const workspaceDefinitions=[workspaceInitDefinition,workspaceUseDefinition];export{WORKSPACE_USAGE};