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

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 (209) hide show
  1. package/lib/api/api-doc.js +1 -1
  2. package/lib/api/fetch-model-list.js +1 -1
  3. package/lib/api/generate-api-file.js +1 -1
  4. package/lib/auth/auth-server-ui.js +1 -1
  5. package/lib/auth/auth-server.js +1 -1
  6. package/lib/auth/constant.js +1 -1
  7. package/lib/auth/get-cookie.js +1 -1
  8. package/lib/auth/get-session-user.js +1 -1
  9. package/lib/auth/is-session-valid.js +1 -1
  10. package/lib/auth/login-success-html.js +1 -1
  11. package/lib/auth/logout.js +1 -1
  12. package/lib/cli-flags.js +1 -1
  13. package/lib/cli.js +1 -1
  14. package/lib/commands/api/generate.js +1 -1
  15. package/lib/commands/api/index.js +1 -1
  16. package/lib/commands/api/list.js +1 -1
  17. package/lib/commands/api/pull.js +1 -1
  18. package/lib/commands/api/shared.js +1 -1
  19. package/lib/commands/app/add.js +1 -1
  20. package/lib/commands/app/discover.js +1 -1
  21. package/lib/commands/app/index.js +1 -1
  22. package/lib/commands/app/list.js +1 -1
  23. package/lib/commands/app/remove.js +1 -1
  24. package/lib/commands/app/shared.js +1 -1
  25. package/lib/commands/app/use.js +1 -1
  26. package/lib/commands/auth/index.js +1 -1
  27. package/lib/commands/bff/create.js +1 -1
  28. package/lib/commands/bff/delete.js +1 -1
  29. package/lib/commands/bff/detail.js +1 -1
  30. package/lib/commands/bff/index.js +1 -1
  31. package/lib/commands/bff/list.js +1 -1
  32. package/lib/commands/bff/pull.js +1 -1
  33. package/lib/commands/bff/push.js +1 -1
  34. package/lib/commands/bff/status.js +1 -1
  35. package/lib/commands/cli-update.js +1 -1
  36. package/lib/commands/codegen/index.js +1 -1
  37. package/lib/commands/codegen/sdk.js +1 -1
  38. package/lib/commands/codegen/sql.js +1 -1
  39. package/lib/commands/common/app-selector.js +1 -1
  40. package/lib/commands/common/flags.js +1 -1
  41. package/lib/commands/common/validate.js +1 -1
  42. package/lib/commands/config/get.js +1 -1
  43. package/lib/commands/config/index.js +1 -1
  44. package/lib/commands/config/list.js +1 -1
  45. package/lib/commands/config/set.js +1 -1
  46. package/lib/commands/config/shared.js +1 -1
  47. package/lib/commands/data/filter.js +1 -1
  48. package/lib/commands/data/getOne.js +1 -1
  49. package/lib/commands/data/index.js +1 -1
  50. package/lib/commands/data/shared.js +1 -1
  51. package/lib/commands/dataset/capability.js +1 -1
  52. package/lib/commands/dataset/delete.js +1 -1
  53. package/lib/commands/dataset/detail.js +1 -1
  54. package/lib/commands/dataset/extend-update.js +1 -1
  55. package/lib/commands/dataset/field-update.js +1 -1
  56. package/lib/commands/dataset/index.js +1 -1
  57. package/lib/commands/dataset/list.js +1 -1
  58. package/lib/commands/dataset/operations.js +1 -1
  59. package/lib/commands/dataset/relation-create.js +1 -1
  60. package/lib/commands/dataset/relation-delete.js +1 -1
  61. package/lib/commands/dataset/relation-shared.js +1 -1
  62. package/lib/commands/dataset/relation-update.js +1 -1
  63. package/lib/commands/dataset/relations.js +1 -1
  64. package/lib/commands/dataset/rename.js +1 -1
  65. package/lib/commands/db/analyze-cancel.js +1 -1
  66. package/lib/commands/db/analyze-start.js +1 -1
  67. package/lib/commands/db/analyze-status.js +1 -1
  68. package/lib/commands/db/create.js +1 -1
  69. package/lib/commands/db/delete.js +1 -1
  70. package/lib/commands/db/detail.js +1 -1
  71. package/lib/commands/db/diff.js +1 -1
  72. package/lib/commands/db/index.js +1 -1
  73. package/lib/commands/db/list.js +1 -1
  74. package/lib/commands/db/shared.js +1 -1
  75. package/lib/commands/db/tables.js +1 -1
  76. package/lib/commands/db/test.js +1 -1
  77. package/lib/commands/db/update.js +1 -1
  78. package/lib/commands/doctor.js +1 -1
  79. package/lib/commands/init/index.js +1 -1
  80. package/lib/commands/issue/index.js +1 -1
  81. package/lib/commands/issue/nudge.js +1 -1
  82. package/lib/commands/issue/report.js +1 -1
  83. package/lib/commands/issue/shared.js +1 -1
  84. package/lib/commands/logs/index.js +1 -1
  85. package/lib/commands/menu/index.js +1 -1
  86. package/lib/commands/menu/list.js +1 -1
  87. package/lib/commands/menu/shared/compare-table.js +1 -1
  88. package/lib/commands/menu/shared/index.js +1 -1
  89. package/lib/commands/menu/shared/inquirer.js +1 -1
  90. package/lib/commands/menu/shared/local-pages.js +1 -1
  91. package/lib/commands/menu/shared/logic.js +1 -1
  92. package/lib/commands/menu/shared/service.js +1 -1
  93. package/lib/commands/menu/shared/sync-core.js +1 -1
  94. package/lib/commands/menu/shared/update-core.js +1 -1
  95. package/lib/commands/menu/shared/valid-url.js +1 -1
  96. package/lib/commands/menu/sync.js +1 -1
  97. package/lib/commands/menu/update.js +1 -1
  98. package/lib/commands/page/generate-start.js +1 -1
  99. package/lib/commands/page/generate-status.js +1 -1
  100. package/lib/commands/page/index.js +1 -1
  101. package/lib/commands/page/pull.js +1 -1
  102. package/lib/commands/page/push.js +1 -1
  103. package/lib/commands/page/relation-audit.js +1 -1
  104. package/lib/commands/page/shared.js +1 -1
  105. package/lib/commands/page/standard-page-status.js +1 -1
  106. package/lib/commands/page/sync.js +1 -1
  107. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  108. package/lib/commands/project/create/format-elapsed.js +1 -1
  109. package/lib/commands/project/create/main.js +1 -1
  110. package/lib/commands/project/create/non-interactive.js +1 -1
  111. package/lib/commands/project/create/project-template-path.js +1 -1
  112. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  113. package/lib/commands/project/create/use-format-code.js +1 -1
  114. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  115. package/lib/commands/project/index.js +1 -1
  116. package/lib/commands/project/init.js +1 -1
  117. package/lib/commands/project/upgrade.js +1 -1
  118. package/lib/commands/registry.js +1 -1
  119. package/lib/commands/run/index.js +1 -1
  120. package/lib/commands/schema.js +1 -1
  121. package/lib/commands/skill/index.js +1 -1
  122. package/lib/commands/sql/create.js +1 -1
  123. package/lib/commands/sql/delete.js +1 -1
  124. package/lib/commands/sql/detail.js +1 -1
  125. package/lib/commands/sql/exec.js +1 -1
  126. package/lib/commands/sql/index.js +1 -1
  127. package/lib/commands/sql/list.js +1 -1
  128. package/lib/commands/sql/pull.js +1 -1
  129. package/lib/commands/sql/push.js +1 -1
  130. package/lib/commands/sql/save.js +1 -1
  131. package/lib/commands/sql/shared.js +1 -1
  132. package/lib/commands/sql/status.js +1 -1
  133. package/lib/commands/sql/validate.js +1 -1
  134. package/lib/commands/workspace/index.js +1 -0
  135. package/lib/config/schema.js +1 -1
  136. package/lib/constant/cdn.js +1 -1
  137. package/lib/constant/cli.js +1 -1
  138. package/lib/constant/defaults.js +1 -1
  139. package/lib/constant/domain.js +1 -1
  140. package/lib/constant/env.js +1 -1
  141. package/lib/constant/output.js +1 -1
  142. package/lib/constant/paths.js +1 -1
  143. package/lib/constant/risk.js +1 -1
  144. package/lib/context/app-resolver.js +1 -1
  145. package/lib/context/auth-resolver.js +1 -1
  146. package/lib/context/config-loader.js +1 -1
  147. package/lib/context.js +1 -1
  148. package/lib/core/alias-resolver.js +1 -1
  149. package/lib/core/api-client.js +1 -1
  150. package/lib/core/bff/config.js +1 -1
  151. package/lib/core/bff/file-system.js +1 -1
  152. package/lib/core/bff/hash.js +1 -1
  153. package/lib/core/bff/lock.js +1 -1
  154. package/lib/core/bff/utils.js +1 -1
  155. package/lib/core/db-resolver.js +1 -1
  156. package/lib/core/page/file-system.js +1 -1
  157. package/lib/core/page/hash.js +1 -1
  158. package/lib/core/page/lock.js +1 -1
  159. package/lib/core/sql-sync/config.js +1 -1
  160. package/lib/core/sql-sync/file-system.js +1 -1
  161. package/lib/core/sql-sync/hash.js +1 -1
  162. package/lib/core/sql-sync/lock.js +1 -1
  163. package/lib/core/sql-sync/utils.js +1 -1
  164. package/lib/core/sql-validator.js +1 -1
  165. package/lib/errors.js +1 -1
  166. package/lib/framework/build-all-flags.js +1 -1
  167. package/lib/framework/flags.js +1 -1
  168. package/lib/framework/help.js +1 -1
  169. package/lib/framework/index.js +1 -1
  170. package/lib/framework/output.js +1 -1
  171. package/lib/framework/response.js +1 -1
  172. package/lib/framework/runner-alias.js +1 -1
  173. package/lib/framework/runner.js +1 -1
  174. package/lib/framework/schema-export.js +1 -1
  175. package/lib/framework/types.js +1 -1
  176. package/lib/generated/build-info.js +1 -1
  177. package/lib/help.js +1 -1
  178. package/lib/skills/main.js +1 -1
  179. package/lib/skills/npx-skills-add.js +1 -1
  180. package/lib/telemetry/cli-command-trace.js +1 -1
  181. package/lib/telemetry/cli-help-trace.js +1 -1
  182. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  183. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  184. package/lib/telemetry/send-cli-trace-log.js +1 -1
  185. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  186. package/lib/utils/ai_config.js +1 -1
  187. package/lib/utils/apply-jq-filter.js +1 -1
  188. package/lib/utils/cdn-config.js +1 -1
  189. package/lib/utils/check-sdk-version.js +1 -1
  190. package/lib/utils/cli-version-check.js +1 -1
  191. package/lib/utils/cli-version-policy.js +1 -1
  192. package/lib/utils/config.js +1 -1
  193. package/lib/utils/copy-directory.js +1 -1
  194. package/lib/utils/entity-with-id.js +1 -1
  195. package/lib/utils/file-utils.js +1 -1
  196. package/lib/utils/guides-cdn.js +1 -1
  197. package/lib/utils/http-client.js +1 -1
  198. package/lib/utils/is-non-interactive.js +1 -1
  199. package/lib/utils/logger.js +1 -1
  200. package/lib/utils/params.js +1 -1
  201. package/lib/utils/platform.js +1 -1
  202. package/lib/utils/rules-cdn.js +1 -1
  203. package/lib/utils/sleep.js +1 -1
  204. package/lib/utils/template-replacer.js +1 -1
  205. package/lib/utils/update-notice.js +1 -1
  206. package/lib/utils/version.js +1 -1
  207. package/lib/utils/with-active-cookie.js +1 -1
  208. package/lib/utils/write-cli-side-channel.js +1 -1
  209. package/package.json +1 -1
@@ -1 +1 @@
1
- const a122_0x2e795b=a122_0xead1;(function(_0x3e6ce4,_0x2e0311){const _0x236179=a122_0xead1,_0x497f97=_0x3e6ce4();while(!![]){try{const _0x28a596=-parseInt(_0x236179(0x17b))/0x1*(parseInt(_0x236179(0x165))/0x2)+parseInt(_0x236179(0x18f))/0x3*(parseInt(_0x236179(0x19f))/0x4)+parseInt(_0x236179(0x192))/0x5+-parseInt(_0x236179(0x19c))/0x6*(-parseInt(_0x236179(0x171))/0x7)+-parseInt(_0x236179(0x17c))/0x8+parseInt(_0x236179(0x188))/0x9+parseInt(_0x236179(0x16b))/0xa*(-parseInt(_0x236179(0x196))/0xb);if(_0x28a596===_0x2e0311)break;else _0x497f97['push'](_0x497f97['shift']());}catch(_0x3d9576){_0x497f97['push'](_0x497f97['shift']());}}}(a122_0x1db5,0xd502f));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a122_0xead1(_0x3a7bb2,_0x50c06b){_0x3a7bb2=_0x3a7bb2-0x165;const _0x1db5ba=a122_0x1db5();let _0xead158=_0x1db5ba[_0x3a7bb2];return _0xead158;}import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0xb98098){const _0x1d9e33=a122_0xead1;if(_0xb98098===_0x1d9e33(0x1a1))return[_0x1d9e33(0x16a),'\x20\x20SELECT\x201\x20AS\x20id',_0x1d9e33(0x190),''][_0x1d9e33(0x166)]('\x0a');return[_0x1d9e33(0x167),''][_0x1d9e33(0x166)]('\x0a');}export const sqlCreate={'service':a122_0x2e795b(0x181),'command':'create','description':a122_0x2e795b(0x185),'risk':a122_0x2e795b(0x199),'flags':[{'name':'name','type':a122_0x2e795b(0x173),'description':a122_0x2e795b(0x16e)},{'name':a122_0x2e795b(0x19a),'type':'number','description':a122_0x2e795b(0x16f)},{'name':a122_0x2e795b(0x18a),'type':a122_0x2e795b(0x173),'enum':['sql',a122_0x2e795b(0x1a1)],'description':a122_0x2e795b(0x178)}],async 'validate'(_0x42247a){const _0x53d4a8=a122_0x2e795b;if(!_0x42247a[_0x53d4a8(0x18e)])return;if(!_0x42247a[_0x53d4a8(0x194)](_0x53d4a8(0x1a8))[_0x53d4a8(0x169)]())throw CliErrors[_0x53d4a8(0x187)](_0x53d4a8(0x1a8),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x39f85a=resolveProvidedDbId(_0x42247a);if(typeof _0x39f85a!==_0x53d4a8(0x182)||!Number[_0x53d4a8(0x177)](_0x39f85a)||_0x39f85a<=0x0)throw CliErrors[_0x53d4a8(0x187)]('db-id',_0x53d4a8(0x175));if(!_0x42247a[_0x53d4a8(0x194)]('mode')[_0x53d4a8(0x169)]())throw CliErrors[_0x53d4a8(0x187)]('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x218abd){const _0xa3611b=a122_0x2e795b,_0x59ba0f=loadSqlProjectConfig(_0x218abd[_0xa3611b(0x179)]),{sqlName:_0x23d2f3,dbId:_0x31c8c1,dbName:_0x57afd5,mode:_0x4ef9bf}=await resolveSqlNewInputs(_0x218abd),_0x77e5b3=buildSqlRelativePath(_0xa3611b(0x18c),_0x23d2f3,_0x57afd5,_0x4ef9bf,_0x31c8c1),_0x38adbd=_0x59ba0f[_0xa3611b(0x170)]+'/'+_0x77e5b3;return{'method':_0xa3611b(0x1a6),'url':_0xa3611b(0x193),'body':{'appCode':_0x218abd['appCode'],'sqlName':_0x23d2f3,'dbId':_0x31c8c1,'mode':_0x4ef9bf,'localPath':_0x38adbd},'description':_0xa3611b(0x184)+_0x59ba0f[_0xa3611b(0x170)]};},async 'execute'(_0x16bd2c){const _0x2caec9=a122_0x2e795b,_0x11bb82=loadSqlProjectConfig(_0x16bd2c[_0x2caec9(0x179)]),{sqlName:_0x46b991,dbId:_0x18b644,dbName:_0x19ad44,mode:_0x623f6a}=await resolveSqlNewInputs(_0x16bd2c),_0x9aad3=generateSqlTemplate(_0x623f6a),_0x122113=await createSqlQuery({'appCode':_0x16bd2c[_0x2caec9(0x179)],'sqlName':_0x46b991,'dbId':_0x18b644,'sqlContent':_0x9aad3}),_0x78664f=ensureRemoteSqlContent(_0x122113),_0x201a59=_0x19ad44||await getDbName(_0x16bd2c['appCode'],_0x18b644)['catch'](()=>undefined),_0x30ac23=buildSqlRelativePath(_0x122113['sqlCode'],_0x122113[_0x2caec9(0x1a3)],_0x201a59,_0x623f6a,_0x18b644),_0x426f1a=_0x11bb82[_0x2caec9(0x170)]+'/'+_0x30ac23,_0x5d9a8f=buildLocalSqlFileContent({'sqlCode':_0x122113[_0x2caec9(0x1a4)],'sqlName':_0x122113[_0x2caec9(0x1a3)],'dbId':_0x122113[_0x2caec9(0x19d)]},_0x78664f,{'dbName':_0x201a59,'mode':_0x623f6a,'syncedAt':new Date()['toISOString'](),'description':_0x122113[_0x2caec9(0x17d)]});if(await fileExists(_0x426f1a))throw CliErrors[_0x2caec9(0x183)](_0x2caec9(0x180)+_0x426f1a);await ensureParentDirectory(_0x426f1a),await writeFile(_0x426f1a,_0x5d9a8f,_0x2caec9(0x168));const _0x58c7ea=await readSqlLockFile(_0x11bb82['lockFilePath']),{lockData:_0x3ad50c,appLock:_0x7d458c}=ensureSqlLockScope(_0x58c7ea??createEmptySqlLock(),_0x11bb82['appCode'],_0x11bb82[_0x2caec9(0x176)],'new');return _0x7d458c[_0x2caec9(0x17f)][_0x122113['sqlCode']]={...buildSqlLockEntry(_0x122113,_0x78664f,computeSqlContentHash(_0x5d9a8f),{'dbName':_0x201a59}),'path':_0x30ac23,'mode':_0x623f6a},_0x7d458c[_0x2caec9(0x174)]=new Date()[_0x2caec9(0x197)](),await writeSqlLockFile(_0x11bb82['lockFilePath'],_0x3ad50c),{'ok':!![],'data':{'id':_0x122113['id'],'sqlCode':_0x122113['sqlCode'],'sqlName':_0x122113[_0x2caec9(0x1a3)],'dbId':_0x122113[_0x2caec9(0x19d)],'path':_0x426f1a,'mode':_0x623f6a},'message':_0x2caec9(0x1a5)+_0x122113['sqlCode']};}};async function resolveSqlNewInputs(_0x2d66a3){const _0x3b0c45=await resolveSqlNameInput(_0x2d66a3),{dbId:_0x4dfe73,dbName:_0x4bfd07}=await resolveDbSelection(_0x2d66a3),_0x21863a=await resolveSqlModeInput(_0x2d66a3);return{'sqlName':_0x3b0c45,'dbId':_0x4dfe73,'dbName':_0x4bfd07,'mode':_0x21863a};}async function resolveSqlNameInput(_0xbb46ca){const _0xee731d=a122_0x2e795b,_0x3f7424=_0xbb46ca['str'](_0xee731d(0x1a8))[_0xee731d(0x169)]();if(_0x3f7424)return _0x3f7424;if(_0xbb46ca[_0xee731d(0x18e)])throw CliErrors['flagMissing'](_0xee731d(0x1a8),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0xee731d(0x186),'validate':_0x5235ec=>_0x5235ec[_0xee731d(0x169)]()?!![]:_0xee731d(0x1a0)}))[_0xee731d(0x169)]();}function a122_0x1db5(){const _0x94a4b6=['catch','1096DnwKfw','SQL\x20名称不能为空','mybatisXml','✎\x20手动输入\x20dbId','sqlName','sqlCode','Created\x20SQL\x20query\x20','POST','请输入目标数据库\x20dbId:','name','flag','2BVEhnX','join','SELECT\x201\x20AS\x20id;','utf8','trim','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','10OKISTt','dbId\x20不能为空','dbName','SQL\x20query\x20display\x20name','Target\x20database\x20ID','sqlRootDir','4965863WyFcXY','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','string','lastSync','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','sqlRoot','isFinite','Local\x20SQL\x20file\x20mode','appCode','Invalid\x20database\x20selection\x20payload:\x20','707561rhkmDW','5287552jcjJOt','description','length','sqls','File\x20already\x20exists:\x20','sql','number','validation','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','请输入\x20SQL\x20名称:','flagMissing','2033793axdbYU','stringify','mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','<server-generated-sqlCode>','请选择本地\x20SQL\x20模式:','nonInteractive','17301cJakZP','</select>','parse','836940nFbDVW','/smartapi/custom/saveUserCustomSql','str','__manual__','12664751aJgZGI','toISOString','map','high-risk-write','db-id','MyBatis\x20XML(mybatisXml)','12ONteFx','dbId'];a122_0x1db5=function(){return _0x94a4b6;};return a122_0x1db5();}async function resolveDbSelection(_0x320b9f){const _0x3c60d6=a122_0x2e795b,_0x2e068d=resolveProvidedDbId(_0x320b9f);if(typeof _0x2e068d===_0x3c60d6(0x182)&&Number[_0x3c60d6(0x177)](_0x2e068d)&&_0x2e068d>0x0)return{'dbId':_0x2e068d,'dbName':await getDbName(_0x320b9f[_0x3c60d6(0x179)],_0x2e068d)[_0x3c60d6(0x19e)](()=>undefined)};if(_0x320b9f['nonInteractive'])throw CliErrors['flagMissing'](_0x3c60d6(0x19a),_0x3c60d6(0x175));const _0x4bb159=await listDatabases(_0x320b9f[_0x3c60d6(0x179)])[_0x3c60d6(0x19e)](()=>[]);if(_0x4bb159[_0x3c60d6(0x17e)]===0x1)return{'dbId':_0x4bb159[0x0]['dbId'],'dbName':_0x4bb159[0x0][_0x3c60d6(0x16d)]};if(_0x4bb159['length']>0x1){const _0x5e70ed=await select({'message':'请选择目标数据库:','choices':[..._0x4bb159[_0x3c60d6(0x198)](_0x53b69a=>({'name':_0x53b69a[_0x3c60d6(0x16d)]+'\x20('+_0x53b69a[_0x3c60d6(0x19d)]+')','value':serializeDbSelection(_0x53b69a)})),{'name':_0x3c60d6(0x1a2),'value':'__manual__'}]});if(_0x5e70ed!==_0x3c60d6(0x195))return deserializeDbSelection(_0x5e70ed);}const _0x48375f=await input({'message':_0x3c60d6(0x1a7),'validate':_0x234c63=>{const _0x2b20f6=_0x3c60d6,_0x272bad=_0x234c63[_0x2b20f6(0x169)]();if(!_0x272bad)return _0x2b20f6(0x16c);const _0x3076cb=Number(_0x272bad);if(!Number['isInteger'](_0x3076cb)||_0x3076cb<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0x48375f[_0x3c60d6(0x169)]())};}async function resolveSqlModeInput(_0x3323d6){const _0x5a859f=a122_0x2e795b,_0x347dfc=_0x3323d6[_0x5a859f(0x194)](_0x5a859f(0x18a))[_0x5a859f(0x169)]();if(_0x347dfc==='sql'||_0x347dfc==='mybatisXml')return _0x347dfc;if(_0x3323d6['nonInteractive'])throw CliErrors[_0x5a859f(0x187)]('mode',_0x5a859f(0x18b));return await select({'message':_0x5a859f(0x18d),'choices':[{'name':'普通\x20SQL(sql)','value':_0x5a859f(0x181),'description':_0x5a859f(0x172)},{'name':_0x5a859f(0x19b),'value':'mybatisXml','description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x1c4ae2){const _0x1bfc72=a122_0x2e795b;return JSON[_0x1bfc72(0x189)]({'dbId':_0x1c4ae2[_0x1bfc72(0x19d)],'dbName':_0x1c4ae2[_0x1bfc72(0x16d)]});}function deserializeDbSelection(_0x28a60a){const _0x5acb9a=a122_0x2e795b;try{const _0x326606=JSON[_0x5acb9a(0x191)](_0x28a60a);if(typeof _0x326606[_0x5acb9a(0x19d)]==='number'&&Number[_0x5acb9a(0x177)](_0x326606['dbId']))return{'dbId':_0x326606['dbId'],'dbName':_0x326606['dbName']};}catch{}throw CliErrors['validation'](_0x5acb9a(0x17a)+_0x28a60a);}function resolveProvidedDbId(_0x1e2182){const _0x57e014=a122_0x2e795b,_0x17d77d=_0x1e2182[_0x57e014(0x1a9)]('db-id');if(typeof _0x17d77d===_0x57e014(0x182)&&Number[_0x57e014(0x177)](_0x17d77d))return _0x17d77d;return undefined;}
1
+ 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 +1 @@
1
- const a123_0x117a8c=a123_0x1b74;(function(_0x519b41,_0x445372){const _0x3d33eb=a123_0x1b74,_0x103cc6=_0x519b41();while(!![]){try{const _0x1aa19c=parseInt(_0x3d33eb(0x168))/0x1+parseInt(_0x3d33eb(0x17a))/0x2*(-parseInt(_0x3d33eb(0x188))/0x3)+-parseInt(_0x3d33eb(0x16a))/0x4*(-parseInt(_0x3d33eb(0x179))/0x5)+parseInt(_0x3d33eb(0x165))/0x6+-parseInt(_0x3d33eb(0x167))/0x7*(-parseInt(_0x3d33eb(0x187))/0x8)+-parseInt(_0x3d33eb(0x181))/0x9*(parseInt(_0x3d33eb(0x172))/0xa)+-parseInt(_0x3d33eb(0x186))/0xb;if(_0x1aa19c===_0x445372)break;else _0x103cc6['push'](_0x103cc6['shift']());}catch(_0x5d582c){_0x103cc6['push'](_0x103cc6['shift']());}}}(a123_0x2551,0x48831));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';function a123_0x2551(){const _0x2fb287=['532sFaFBX','418574FZkBvE','high-risk-write','44IGelzT','length','filter','toISOString','lockFilePath','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','sqlcode','sql','311670WUykoO','sqlRootDir','trashDir','trashedTo','Would\x20delete\x20SQL\x20','startsWith','sqls','68415cqFAoS','11342ctHVmW','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','str','delete','SQL\x20lock\x20file\x20not\x20found.','entries','\x20(local\x20file\x20moved\x20to\x20trash)','18bujZgL','remoteId','sqlRoot','lastSync','validation','4849812MBouyY','8376sLdHvP','117tLCfCM','POST','replace','2236470xoHIdD','appCode'];a123_0x2551=function(){return _0x2fb287;};return a123_0x2551();}import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a123_0x117a8c(0x171),'command':a123_0x117a8c(0x17d),'description':a123_0x117a8c(0x17b),'risk':a123_0x117a8c(0x169),'flags':[SQLCODE_FLAG],async 'validate'(_0x5c442b){const _0x459fe9=a123_0x117a8c,_0x502376=loadSqlProjectConfig(_0x5c442b[_0x459fe9(0x166)]),_0xa057a1=await readSqlLockFile(_0x502376[_0x459fe9(0x16e)]);if(!_0xa057a1)throw CliErrors[_0x459fe9(0x185)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x2f8f57){const _0x4a1354=a123_0x117a8c,_0x29fa80=loadSqlProjectConfig(_0x2f8f57[_0x4a1354(0x166)]),_0x19c482=await readSqlLockFile(_0x29fa80['lockFilePath']);if(!_0x19c482)throw CliErrors['validation']('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x1e479d}=ensureSqlLockScope(_0x19c482,_0x2f8f57[_0x4a1354(0x166)],_0x29fa80[_0x4a1354(0x183)],_0x4a1354(0x17d)),_0x19786f=_0x2f8f57[_0x4a1354(0x17c)](_0x4a1354(0x170)),_0x525a00=_0x1e479d['sqls'][_0x19786f];if(!_0x525a00)throw CliErrors[_0x4a1354(0x185)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x19786f+'\x22.');return{'method':_0x4a1354(0x189),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x19786f,'id':_0x525a00[_0x4a1354(0x182)],'localPath':resolveLocalSqlFilePath(_0x29fa80,_0x19786f,_0x525a00)},'description':_0x4a1354(0x176)+_0x19786f+_0x4a1354(0x16f)+_0x29fa80[_0x4a1354(0x174)]};},async 'execute'(_0x45877d){const _0xefec2f=a123_0x117a8c,_0x168ceb=loadSqlProjectConfig(_0x45877d[_0xefec2f(0x166)]),_0x20ca7d=await readSqlLockFile(_0x168ceb['lockFilePath']);if(!_0x20ca7d)throw CliErrors[_0xefec2f(0x185)](_0xefec2f(0x17e));const {lockData:_0x4d115a,appLock:_0x144378}=ensureSqlLockScope(_0x20ca7d,_0x45877d[_0xefec2f(0x166)],_0x168ceb['sqlRoot'],_0xefec2f(0x17d)),_0x164566=_0x45877d[_0xefec2f(0x17c)](_0xefec2f(0x170)),_0xad4c2b=_0x144378[_0xefec2f(0x178)][_0x164566];if(!_0xad4c2b)throw CliErrors[_0xefec2f(0x185)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x164566+'\x22.');await deleteSqlQuery({'id':_0xad4c2b['remoteId'],'sqlCode':_0x164566}),_0x144378[_0xefec2f(0x178)]=Object['fromEntries'](Object[_0xefec2f(0x17f)](_0x144378[_0xefec2f(0x178)])[_0xefec2f(0x16c)](([_0x495af2])=>_0x495af2!==_0x164566)),_0x144378[_0xefec2f(0x184)]=new Date()[_0xefec2f(0x16d)](),await writeSqlLockFile(_0x168ceb[_0xefec2f(0x16e)],_0x4d115a);const _0x4cb311=resolveLocalSqlFilePath(_0x168ceb,_0x164566,_0xad4c2b);let _0x446307;await fileExists(_0x4cb311)&&(_0x446307=await moveToTrash(_0x168ceb['projectRoot'],_0x168ceb[_0xefec2f(0x174)],_0x4cb311),await cleanupEmptyDirectories(dirname(_0x4cb311),_0x168ceb[_0xefec2f(0x173)]));const _0x3cb668={'deleted':_0x164566,'remoteId':_0xad4c2b['remoteId']};if(_0x446307)_0x3cb668[_0xefec2f(0x175)]=_0x446307;return{'ok':!![],'data':_0x3cb668,'message':'Deleted\x20'+_0x164566+(_0x446307?_0xefec2f(0x180):'')};}};async function moveToTrash(_0x9cf456,_0x4f9fbf,_0x57b700){const _0x5dd831=a123_0x117a8c,_0x4b350b=new Date()['toISOString']()[_0x5dd831(0x18a)](/[:.]/g,'-'),_0x23dd8a=relative(_0x9cf456,_0x57b700),_0x3dd3c1=join(_0x4f9fbf,_0x4b350b,_0x23dd8a);return await mkdir(dirname(_0x3dd3c1),{'recursive':!![]}),await rename(_0x57b700,_0x3dd3c1),_0x3dd3c1;}function a123_0x1b74(_0x2bdbb8,_0x432e81){_0x2bdbb8=_0x2bdbb8-0x165;const _0x2551d0=a123_0x2551();let _0x1b746e=_0x2551d0[_0x2bdbb8];return _0x1b746e;}async function cleanupEmptyDirectories(_0x3f25d9,_0x2ed108){const _0x2d6734=a123_0x117a8c;let _0x5b3996=resolve(_0x3f25d9);const _0x24fe77=resolve(_0x2ed108);while(_0x5b3996[_0x2d6734(0x177)](''+_0x24fe77+sep)||_0x5b3996===_0x24fe77){if(_0x5b3996===_0x24fe77)return;try{const _0x3dd3d4=await readdir(_0x5b3996);if(_0x3dd3d4[_0x2d6734(0x16b)]>0x0)return;await rmdir(_0x5b3996);}catch{return;}_0x5b3996=dirname(_0x5b3996);}}
1
+ 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 +1 @@
1
- const a124_0x44054d=a124_0x113f;function a124_0x113f(_0x36893a,_0x59ba2e){_0x36893a=_0x36893a-0xf5;const _0x19bd02=a124_0x19bd();let _0x113fa1=_0x19bd02[_0x36893a];return _0x113fa1;}(function(_0x5b32c7,_0x6d5cac){const _0x40637d=a124_0x113f,_0x1a2fd9=_0x5b32c7();while(!![]){try{const _0x25c317=parseInt(_0x40637d(0x107))/0x1+parseInt(_0x40637d(0xf9))/0x2*(-parseInt(_0x40637d(0xfc))/0x3)+parseInt(_0x40637d(0x10b))/0x4*(-parseInt(_0x40637d(0xfe))/0x5)+parseInt(_0x40637d(0xfb))/0x6+-parseInt(_0x40637d(0x10a))/0x7*(-parseInt(_0x40637d(0x106))/0x8)+-parseInt(_0x40637d(0x109))/0x9*(-parseInt(_0x40637d(0xff))/0xa)+-parseInt(_0x40637d(0xfd))/0xb;if(_0x25c317===_0x6d5cac)break;else _0x1a2fd9['push'](_0x1a2fd9['shift']());}catch(_0x10a5c3){_0x1a2fd9['push'](_0x1a2fd9['shift']());}}}(a124_0x19bd,0x2eefb));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a124_0x44054d(0x100),'command':a124_0x44054d(0xf5),'description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':a124_0x44054d(0x103),'flags':[SQLCODE_FLAG,{'name':'verbose','type':a124_0x44054d(0x102),'description':a124_0x44054d(0x104)}],async 'execute'(_0x50de3d){const _0x488cb1=a124_0x44054d,_0x394479=await getSqlQueryInfo(_0x50de3d[_0x488cb1(0xf7)],_0x50de3d[_0x488cb1(0x10c)](_0x488cb1(0x108))),_0x1cb670=_0x50de3d[_0x488cb1(0xfa)](_0x488cb1(0xf8));if(_0x1cb670)return{'ok':!![],'data':_0x394479};const _0x2056ac=_0x394479[_0x488cb1(0xf6)]?await getDbName(_0x50de3d[_0x488cb1(0xf7)],_0x394479[_0x488cb1(0xf6)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x394479['sqlCode'],'sqlName':_0x394479[_0x488cb1(0x10d)],'db':_0x2056ac?_0x2056ac+'\x20('+_0x394479[_0x488cb1(0xf6)]+')':_0x394479[_0x488cb1(0xf6)]??'','description':_0x394479[_0x488cb1(0x105)]??'','sqlContent':_0x394479[_0x488cb1(0x101)]??''}};}};function a124_0x19bd(){const _0x2eec39=['verbose','22gucFcZ','bool','1540788QtRVux','31911ATVZnz','961686opxpwe','850880srYQWx','458270orZIhL','sql','sqlContent','boolean','read','Return\x20full\x20raw\x20SQL\x20query\x20object','description','13656VQaJzG','240599CYyEgs','sqlcode','36VrODOk','231MBbYBx','8OUxbYY','str','sqlName','detail','dbId','appCode'];a124_0x19bd=function(){return _0x2eec39;};return a124_0x19bd();}
1
+ 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 +1 @@
1
- const a125_0x548a5d=a125_0x2d9a;function a125_0x2633(){const _0x49e900=['length','params','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','str','string','8PENmAv','Returned\x20','1887765JsQAyY','execError','2570640IEjPKO','905246hbcjQk','sql','read','1062111pxYxcD','now','4156593ZkQSOc','execResult','332176nlvWFw','sqlcode','isArray','appCode','execSuccess','SQL\x20execution\x20failed','645480PEBGZN'];a125_0x2633=function(){return _0x49e900;};return a125_0x2633();}(function(_0x46dc8a,_0x2aecf5){const _0x54656e=a125_0x2d9a,_0x16c5e5=_0x46dc8a();while(!![]){try{const _0x25c37d=-parseInt(_0x54656e(0xe8))/0x1+-parseInt(_0x54656e(0xf9))/0x2+parseInt(_0x54656e(0xe4))/0x3*(parseInt(_0x54656e(0xf4))/0x4)+-parseInt(_0x54656e(0xf6))/0x5+parseInt(_0x54656e(0xf8))/0x6+parseInt(_0x54656e(0xe6))/0x7+parseInt(_0x54656e(0xee))/0x8;if(_0x25c37d===_0x2aecf5)break;else _0x16c5e5['push'](_0x16c5e5['shift']());}catch(_0xa8fc19){_0x16c5e5['push'](_0x16c5e5['shift']());}}}(a125_0x2633,0x9e5c6));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a125_0x2d9a(_0x56585f,_0x40e063){_0x56585f=_0x56585f-0xe3;const _0x2633db=a125_0x2633();let _0x2d9ae0=_0x2633db[_0x56585f];return _0x2d9ae0;}export const sqlExec={'service':a125_0x548a5d(0xfa),'command':'exec','description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':a125_0x548a5d(0xe3),'flags':[SQLCODE_FLAG,{'name':a125_0x548a5d(0xf0),'type':a125_0x548a5d(0xf3),'description':a125_0x548a5d(0xf1)}],async 'execute'(_0x26aa58){const _0x4ee104=a125_0x548a5d,_0x3a14bf=parseJsonParams(_0x26aa58['str'](_0x4ee104(0xf0))),_0x240fe1=Date[_0x4ee104(0xe5)](),_0x38ff9e=await executeSql(_0x26aa58[_0x4ee104(0xeb)],_0x26aa58[_0x4ee104(0xf2)](_0x4ee104(0xe9)),_0x3a14bf),_0x408822=Date[_0x4ee104(0xe5)]()-_0x240fe1,_0xc6179a=_0x38ff9e?.[_0x4ee104(0xe7)]??_0x38ff9e,_0x325158=_0x38ff9e?.[_0x4ee104(0xec)]??!![];if(!_0x325158)return{'ok':![],'data':{'error':_0x38ff9e?.[_0x4ee104(0xf7)]||_0x4ee104(0xed),'elapsed':_0x408822},'message':'SQL\x20execution\x20failed'};const _0x576051=Array[_0x4ee104(0xea)](_0xc6179a)?_0xc6179a:[];return{'ok':!![],'data':{'rows':_0x576051,'rowCount':_0x576051[_0x4ee104(0xef)],'elapsed':_0x408822},'message':_0x4ee104(0xf5)+_0x576051['length']+'\x20row(s)\x20in\x20'+_0x408822+'ms'};}};
1
+ 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 +1 @@
1
- (function(_0x185afd,_0x59aec0){const _0x4d8f53=a126_0x23c9,_0xf8a1cf=_0x185afd();while(!![]){try{const _0x5627ba=-parseInt(_0x4d8f53(0xd1))/0x1*(-parseInt(_0x4d8f53(0xd5))/0x2)+parseInt(_0x4d8f53(0xcb))/0x3+-parseInt(_0x4d8f53(0xcc))/0x4*(parseInt(_0x4d8f53(0xd4))/0x5)+parseInt(_0x4d8f53(0xd6))/0x6*(-parseInt(_0x4d8f53(0xd3))/0x7)+-parseInt(_0x4d8f53(0xd0))/0x8*(-parseInt(_0x4d8f53(0xcf))/0x9)+-parseInt(_0x4d8f53(0xce))/0xa*(-parseInt(_0x4d8f53(0xd2))/0xb)+parseInt(_0x4d8f53(0xcd))/0xc;if(_0x5627ba===_0x59aec0)break;else _0xf8a1cf['push'](_0xf8a1cf['shift']());}catch(_0x26a990){_0xf8a1cf['push'](_0xf8a1cf['shift']());}}}(a126_0x283c,0x20585));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';function a126_0x23c9(_0x18cf02,_0x534e6b){_0x18cf02=_0x18cf02-0xcb;const _0x283c04=a126_0x283c();let _0x23c9ed=_0x283c04[_0x18cf02];return _0x23c9ed;}import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';function a126_0x283c(){const _0x4e3606=['1542132gntGYa','8aXJsbM','27737yMUTDu','33kFVYRx','91329GLNMgZ','5rUgRoh','6cofIVG','114iykpGH','568281IIYtji','789920bZumMD','653976qRmRNi','264580CIKpAh'];a126_0x283c=function(){return _0x4e3606;};return a126_0x283c();}import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
1
+ (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 +1 @@
1
- const a127_0x239692=a127_0x4561;(function(_0x5a3795,_0x1a5e56){const _0x312133=a127_0x4561,_0x3bfe2c=_0x5a3795();while(!![]){try{const _0x43ea1d=-parseInt(_0x312133(0xa5))/0x1*(parseInt(_0x312133(0x89))/0x2)+-parseInt(_0x312133(0xa9))/0x3*(parseInt(_0x312133(0x98))/0x4)+-parseInt(_0x312133(0x9f))/0x5*(-parseInt(_0x312133(0x8b))/0x6)+-parseInt(_0x312133(0xa7))/0x7+parseInt(_0x312133(0xac))/0x8+-parseInt(_0x312133(0xab))/0x9*(-parseInt(_0x312133(0xa1))/0xa)+-parseInt(_0x312133(0x8c))/0xb*(-parseInt(_0x312133(0x90))/0xc);if(_0x43ea1d===_0x1a5e56)break;else _0x3bfe2c['push'](_0x3bfe2c['shift']());}catch(_0x34b181){_0x3bfe2c['push'](_0x3bfe2c['shift']());}}}(a127_0x56d1,0x5f7d6));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a127_0x56d1(){const _0x4d2b0b=['3685qjfkMJ','No\x20custom\x20SQL\x20queries\x20found.','10cWphia','str','description','appCode','8vshKyw','Page\x20number','3539032CoxatG','sql','141GYIiAR','Page\x20size','609597tGcENj','6251520VQQTcq','List\x20custom\x20SQL\x20queries','read','7014qhxnSk','\x20SQL\x20queries\x20(total:\x20','918bNPFFX','1925wKGFoy','pagesize','sqlCode','number','48156ehuyGG','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','sqlcode','num','verbose','dbId','length','map','62932xBMIyu','page','string','name','sqlName','boolean','paging'];a127_0x56d1=function(){return _0x4d2b0b;};return a127_0x56d1();}function a127_0x4561(_0x1fbfd4,_0x4318e7){_0x1fbfd4=_0x1fbfd4-0x87;const _0x56d1df=a127_0x56d1();let _0x45616b=_0x56d1df[_0x1fbfd4];return _0x45616b;}export const sqlList={'service':a127_0x239692(0xa8),'command':'list','description':a127_0x239692(0x87),'risk':a127_0x239692(0x88),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a127_0x239692(0x9b),'type':a127_0x239692(0x9a),'description':'Filter\x20by\x20SQL\x20name'},{'name':a127_0x239692(0x99),'type':'number','description':a127_0x239692(0xa6),'default':0x1},{'name':a127_0x239692(0x8d),'type':a127_0x239692(0x8f),'description':a127_0x239692(0xaa)},{'name':a127_0x239692(0x94),'type':a127_0x239692(0x9d),'description':a127_0x239692(0x91)}],async 'execute'(_0x3f6c7d){const _0x2964c1=a127_0x239692,_0x294227=await listSqlQueries(_0x3f6c7d[_0x2964c1(0xa4)],{'sqlCode':_0x3f6c7d[_0x2964c1(0xa2)](_0x2964c1(0x92))||undefined,'sqlName':_0x3f6c7d[_0x2964c1(0xa2)](_0x2964c1(0x9b))||undefined,'currentPage':_0x3f6c7d[_0x2964c1(0x93)](_0x2964c1(0x99)),'pageSize':_0x3f6c7d[_0x2964c1(0x93)](_0x2964c1(0x8d),0x32)}),_0x4f704d=_0x3f6c7d['bool']('verbose'),_0x2a37da=_0x294227['tableData']??[],_0x13fb5d=_0x294227[_0x2964c1(0x9e)]?.['totalCount']??_0x2a37da[_0x2964c1(0x96)];let _0x86060;return _0x4f704d?_0x86060=_0x2a37da:_0x86060=await Promise['all'](_0x2a37da[_0x2964c1(0x97)](async _0x201583=>{const _0x27b017=_0x2964c1;let _0x5d0798;try{_0x5d0798=_0x201583[_0x27b017(0x95)]?await getDbName(_0x3f6c7d[_0x27b017(0xa4)],_0x201583[_0x27b017(0x95)]):undefined;}catch{}return{'sqlCode':_0x201583[_0x27b017(0x8e)],'sqlName':_0x201583[_0x27b017(0x9c)],'description':_0x201583[_0x27b017(0xa3)]??'','db':_0x5d0798?_0x5d0798+'\x20('+_0x201583[_0x27b017(0x95)]+')':_0x201583['dbId']??''};})),{'ok':!![],'data':_0x86060,'message':_0x2a37da['length']===0x0?_0x2964c1(0xa0):'Found\x20'+_0x2a37da[_0x2964c1(0x96)]+_0x2964c1(0x8a)+_0x13fb5d+').'};}};
1
+ 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 +1 @@
1
- const a128_0x2590c4=a128_0x5a2b;(function(_0x4bc362,_0x4cdfd8){const _0x441a16=a128_0x5a2b,_0x5942ac=_0x4bc362();while(!![]){try{const _0x4b1848=parseInt(_0x441a16(0xdf))/0x1+parseInt(_0x441a16(0xf8))/0x2*(-parseInt(_0x441a16(0x100))/0x3)+parseInt(_0x441a16(0x101))/0x4*(parseInt(_0x441a16(0x110))/0x5)+parseInt(_0x441a16(0xee))/0x6+-parseInt(_0x441a16(0xf5))/0x7+parseInt(_0x441a16(0xf3))/0x8+-parseInt(_0x441a16(0xd9))/0x9*(parseInt(_0x441a16(0xd3))/0xa);if(_0x4b1848===_0x4cdfd8)break;else _0x5942ac['push'](_0x5942ac['shift']());}catch(_0x5f3828){_0x5942ac['push'](_0x5942ac['shift']());}}}(a128_0x1425,0x42ee5));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;function a128_0x5a2b(_0x49e1f5,_0x4bb810){_0x49e1f5=_0x49e1f5-0xd3;const _0x142584=a128_0x1425();let _0x5a2b69=_0x142584[_0x49e1f5];return _0x5a2b69;}async function fetchAllSqlQueries(_0x36f633,_0x45b3c6){const _0x27d95d=a128_0x5a2b,_0x4c10b0=[];let _0x573af0=0x1;while(!![]){const _0x33d091=await listSqlQueries(_0x36f633,{'currentPage':_0x573af0,'pageSize':PAGE_SIZE,'sqlCode':_0x45b3c6['sqlCode'],'sqlName':_0x45b3c6[_0x27d95d(0xe5)]}),_0x509404=_0x33d091[_0x27d95d(0x10a)]??[];_0x4c10b0[_0x27d95d(0xe3)](..._0x509404);if(_0x509404[_0x27d95d(0x108)]===0x0)break;const _0x4e7642=_0x33d091['paging']?.[_0x27d95d(0xe7)];if(_0x4e7642!=null?_0x4c10b0[_0x27d95d(0x108)]>=_0x4e7642:_0x509404[_0x27d95d(0x108)]<PAGE_SIZE)break;_0x573af0++;}return _0x4c10b0;}async function ensureSqlContent(_0x4385a8){const _0x370cd6=a128_0x5a2b;if(_0x4385a8[_0x370cd6(0xd6)]!=null&&String(_0x4385a8[_0x370cd6(0xd6)])['length']>0x0)return _0x4385a8;return getSqlQueryDetail(_0x4385a8[_0x370cd6(0xf6)]);}function a128_0x1425(){const _0x9d98d3=['Pull\x20complete:\x20','totalCount','test','nonInteractive','sql','filter','sqlcode','path','1645992nmgtmp','trimStart','\x20written,\x20','\x20SQL\x20file(s)\x20into\x20','Filter\x20by\x20SQL\x20display\x20name','2000688skuXXj','message','1297863XXrGEB','sqlCode','name','2Tlhpwq','No\x20remote\x20SQL\x20queries\x20matched.','Force\x20overwrite\x20local\x20unsynced\x20changes','skipped','POST','conflict','str','unchanged','1033761nZYKTt','14244UarwPi','description','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','utf8','bool','boolean','catch','length','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','tableData','toISOString','join','lastSync','\x20failed','dbId','335MkVnzN','lockFilePath','60JbyQpe','string','sqls','sqlContent','appCode','replace','718587rzwalh','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','pull','sqlRoot','sqlRootDir','mybatisXml','520198deEKri','force','split','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','push','would_pull','sqlName'];a128_0x1425=function(){return _0x9d98d3;};return a128_0x1425();}export const sqlPull={'service':a128_0x2590c4(0xea),'command':'pull','description':a128_0x2590c4(0x109),'risk':'write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a128_0x2590c4(0xf7),'type':a128_0x2590c4(0xd4),'description':a128_0x2590c4(0xf2)},{'name':a128_0x2590c4(0xe0),'type':a128_0x2590c4(0x106),'description':a128_0x2590c4(0xfa)}],async 'dryRun'(_0x27245a){const _0x18b4bd=a128_0x2590c4,_0x2a896c=loadSqlProjectConfig(_0x27245a[_0x18b4bd(0xd7)]),_0xf74422=await readSqlLockFile(_0x2a896c[_0x18b4bd(0x111)]),{appLock:_0x3f003f}=ensureSqlLockScope(_0xf74422??createEmptySqlLock(),_0x2a896c[_0x18b4bd(0xd7)],_0x2a896c[_0x18b4bd(0xdc)],'pull'),_0x481de5=await fetchAllSqlQueries(_0x27245a[_0x18b4bd(0xd7)],{'sqlCode':_0x27245a[_0x18b4bd(0xfe)]('sqlcode')||undefined,'sqlName':_0x27245a[_0x18b4bd(0xfe)](_0x18b4bd(0xf7))||undefined}),_0x3eab6a=[];for(const _0x20767b of _0x481de5){const _0x492fd1=await ensureSqlContent(_0x20767b),_0x3f7363=ensureRemoteSqlContent(_0x492fd1),_0x465e5e=detectModeFromSql(_0x492fd1),_0x1f9baf=_0x492fd1['dbId']?await getDbName(_0x27245a['appCode'],Number(_0x492fd1[_0x18b4bd(0x10f)]))['catch'](()=>undefined):undefined,_0x5951d6=buildLocalSqlFileContent({'sqlCode':_0x492fd1[_0x18b4bd(0xf6)],'sqlName':_0x492fd1['sqlName'],'dbId':_0x492fd1[_0x18b4bd(0x10f)]},_0x3f7363,{'dbName':_0x1f9baf,'mode':_0x465e5e,'syncedAt':new Date()[_0x18b4bd(0x10b)](),'description':_0x492fd1[_0x18b4bd(0x102)]}),_0x314c90=buildSqlLockEntry(_0x492fd1,_0x3f7363,'',{'dbName':_0x1f9baf}),_0x239459=resolveLocalSqlFilePath(_0x2a896c,_0x492fd1[_0x18b4bd(0xf6)],_0x314c90);let _0x471c48=_0x18b4bd(0xe4),_0x245efc;if(await fileExists(_0x239459)){const _0x564bef=await readFile(_0x239459,_0x18b4bd(0x104));isEquivalentPulledSqlFile(_0x564bef,_0x5951d6,_0x465e5e)?(_0x471c48=_0x18b4bd(0xfb),_0x245efc=_0x18b4bd(0xff)):(_0x471c48=_0x18b4bd(0xfd),_0x245efc=_0x18b4bd(0xda));}_0x3eab6a[_0x18b4bd(0xe3)]({'sqlCode':_0x492fd1['sqlCode'],'sqlName':_0x492fd1[_0x18b4bd(0xe5)],'filePath':_0x239459,'status':_0x471c48,'reason':_0x245efc});}return{'method':_0x18b4bd(0xfc),'url':_0x18b4bd(0x103),'body':{'appCode':_0x27245a[_0x18b4bd(0xd7)],'sqlCode':_0x27245a[_0x18b4bd(0xfe)](_0x18b4bd(0xec))||null,'sqlName':_0x27245a[_0x18b4bd(0xfe)](_0x18b4bd(0xf7))||null,'files':_0x3eab6a},'description':'Would\x20pull\x20'+_0x3eab6a[_0x18b4bd(0x108)]+_0x18b4bd(0xf1)+_0x2a896c[_0x18b4bd(0xdd)]};},async 'execute'(_0x86186f){const _0x56904b=a128_0x2590c4,_0x13b48b=loadSqlProjectConfig(_0x86186f['appCode']),_0x51791f=await readSqlLockFile(_0x13b48b[_0x56904b(0x111)]),{lockData:_0x598012,appLock:_0x3a4e9e}=ensureSqlLockScope(_0x51791f??createEmptySqlLock(),_0x13b48b[_0x56904b(0xd7)],_0x13b48b[_0x56904b(0xdc)],_0x56904b(0xdb)),_0x5068fb=_0x86186f[_0x56904b(0x105)](_0x56904b(0xe0)),_0x607433=await fetchAllSqlQueries(_0x86186f[_0x56904b(0xd7)],{'sqlCode':_0x86186f['str'](_0x56904b(0xec))||undefined,'sqlName':_0x86186f[_0x56904b(0xfe)]('name')||undefined});if(_0x607433[_0x56904b(0x108)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x56904b(0xf9)};const _0x40bea5=[],_0x39dff5=[];for(const _0x2142fe of _0x607433){try{_0x40bea5[_0x56904b(0xe3)](await ensureSqlContent(_0x2142fe));}catch(_0x2dec84){_0x39dff5[_0x56904b(0xe3)]({'sqlCode':_0x2142fe[_0x56904b(0xf6)],'error':_0x2dec84 instanceof Error?_0x2dec84[_0x56904b(0xf4)]:String(_0x2dec84)});}}if(_0x5068fb&&!_0x86186f[_0x56904b(0xe9)]){let _0xc6936e=![];for(const _0x5abade of _0x40bea5){const _0x395c3f=detectModeFromSql(_0x5abade),_0x11fecd=_0x5abade['dbId']?await getDbName(_0x86186f[_0x56904b(0xd7)],Number(_0x5abade[_0x56904b(0x10f)]))[_0x56904b(0x107)](()=>undefined):undefined,_0x5b2394=buildLocalSqlFileContent({'sqlCode':_0x5abade[_0x56904b(0xf6)],'sqlName':_0x5abade[_0x56904b(0xe5)],'dbId':_0x5abade[_0x56904b(0x10f)]},ensureRemoteSqlContent(_0x5abade),{'dbName':_0x11fecd,'mode':_0x395c3f,'syncedAt':new Date()[_0x56904b(0x10b)](),'description':_0x5abade[_0x56904b(0x102)]}),_0x331850=resolveLocalSqlFilePath(_0x13b48b,_0x5abade[_0x56904b(0xf6)],buildSqlLockEntry(_0x5abade,ensureRemoteSqlContent(_0x5abade),'',{'dbName':_0x11fecd}));if(await fileExists(_0x331850)){const _0x767167=await readFile(_0x331850,_0x56904b(0x104));if(!isEquivalentPulledSqlFile(_0x767167,_0x5b2394,_0x395c3f)){_0xc6936e=!![];break;}}}if(_0xc6936e){const _0x859a6b=await confirmForceOverwrite(_0x56904b(0xe2));if(!_0x859a6b)throw CliErrors['cancelled']('Force\x20pull\x20cancelled.');}}const _0x3cbd07=cloneSqlLockData(_0x598012),_0x831a0e=_0x3cbd07['apps'][_0x13b48b[_0x56904b(0xd7)]],_0x4c2ab5=[],_0x5ce76a=[];for(const _0x52e301 of _0x40bea5){const _0xdd82a3=_0x831a0e['sqls'][_0x52e301[_0x56904b(0xf6)]],_0x11e25d=ensureRemoteSqlContent(_0x52e301),_0x43f0c6=detectModeFromSql(_0x52e301),_0x161352=_0x52e301['dbId']?await getDbName(_0x86186f[_0x56904b(0xd7)],Number(_0x52e301[_0x56904b(0x10f)]))[_0x56904b(0x107)](()=>undefined):undefined,_0x5699db=buildLocalSqlFileContent({'sqlCode':_0x52e301[_0x56904b(0xf6)],'sqlName':_0x52e301[_0x56904b(0xe5)],'dbId':_0x52e301['dbId']},_0x11e25d,{'dbName':_0x161352,'mode':_0x43f0c6,'syncedAt':new Date()[_0x56904b(0x10b)](),'description':_0x52e301[_0x56904b(0x102)]}),_0x47fe97=buildSqlLockEntry(_0x52e301,_0x11e25d,computeSqlContentHash(_0x5699db),{'dbName':_0x161352}),_0x1bd02d=_0x47fe97['path'],_0x42e26d=join(_0x13b48b[_0x56904b(0xdd)],_0x1bd02d);try{if(await fileExists(_0x42e26d)){const _0x5c85be=await readFile(_0x42e26d,_0x56904b(0x104));if(isEquivalentPulledSqlFile(_0x5c85be,_0x5699db,_0x43f0c6)){_0x5ce76a[_0x56904b(0xe3)]({'sqlCode':_0x52e301[_0x56904b(0xf6)],'reason':_0x56904b(0xff)}),_0x831a0e['sqls'][_0x52e301['sqlCode']]={..._0x47fe97,'hash':computeSqlContentHash(_0x5c85be),'path':_0x1bd02d};continue;}if(!_0x5068fb){_0x5ce76a[_0x56904b(0xe3)]({'sqlCode':_0x52e301[_0x56904b(0xf6)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x1ab393=_0xdd82a3?.[_0x56904b(0xed)]?join(_0x13b48b[_0x56904b(0xdd)],_0xdd82a3[_0x56904b(0xed)]):undefined;_0x1ab393&&_0x1ab393!==_0x42e26d&&await fileExists(_0x1ab393)&&await rm(_0x1ab393,{'force':!![]}),await ensureParentDirectory(_0x42e26d),await writeFile(_0x42e26d,_0x5699db,'utf8'),_0x831a0e[_0x56904b(0xd5)][_0x52e301[_0x56904b(0xf6)]]={..._0x47fe97,'path':_0x1bd02d},_0x4c2ab5[_0x56904b(0xe3)]({'sqlCode':_0x52e301[_0x56904b(0xf6)],'filePath':_0x42e26d});}catch(_0x432eab){_0x39dff5['push']({'sqlCode':_0x52e301[_0x56904b(0xf6)],'error':_0x432eab instanceof Error?_0x432eab['message']:String(_0x432eab)});}}return _0x831a0e[_0x56904b(0x10d)]=new Date()['toISOString'](),await writeSqlLockFile(_0x13b48b[_0x56904b(0x111)],_0x3cbd07),{'ok':_0x39dff5[_0x56904b(0x108)]===0x0,'data':{'pulled':_0x4c2ab5,'skipped':_0x5ce76a,'failed':_0x39dff5},'message':_0x56904b(0xe6)+_0x4c2ab5[_0x56904b(0x108)]+_0x56904b(0xf0)+_0x5ce76a[_0x56904b(0x108)]+'\x20skipped,\x20'+_0x39dff5[_0x56904b(0x108)]+_0x56904b(0x10e)};}};function detectModeFromSql(_0xe3aeef){const _0xf11613=a128_0x2590c4,_0x9f905d=ensureRemoteSqlContent(_0xe3aeef),_0x4f4c7e=stripLocalSqlMetadata(_0x9f905d,_0xf11613(0xde))[_0xf11613(0xef)]();if(/^<(select|insert|update|delete)\b/i[_0xf11613(0xe8)](_0x4f4c7e))return'mybatisXml';return'sql';}function isEquivalentPulledSqlFile(_0x4fd151,_0x3acd5c,_0x385487){return normalizePullComparableContent(_0x4fd151,_0x385487)===normalizePullComparableContent(_0x3acd5c,_0x385487);}function normalizePullComparableContent(_0x2e0d18,_0xab60dd){const _0x1a7a82=a128_0x2590c4,_0x21b526=_0x2e0d18[_0x1a7a82(0xd8)](/\r\n/g,'\x0a')[_0x1a7a82(0xe1)]('\x0a'),_0x245586=_0x21b526[_0x1a7a82(0xeb)](_0x2b2c93=>!isSyncedAtMetadataLine(_0x2b2c93,_0xab60dd));return _0x245586[_0x1a7a82(0x10c)]('\x0a');}function isSyncedAtMetadataLine(_0x54acf5,_0x45901d){const _0x33d75c=a128_0x2590c4;if(_0x45901d===_0x33d75c(0xde))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x33d75c(0xe8)](_0x54acf5);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x33d75c(0xe8)](_0x54acf5);}
1
+ 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 +1 @@
1
- const a129_0x2cdf91=a129_0x5b83;(function(_0x1feacb,_0x559003){const _0x24598e=a129_0x5b83,_0x1c4d53=_0x1feacb();while(!![]){try{const _0x411a1e=parseInt(_0x24598e(0x182))/0x1+parseInt(_0x24598e(0x19d))/0x2*(parseInt(_0x24598e(0x193))/0x3)+parseInt(_0x24598e(0x181))/0x4+-parseInt(_0x24598e(0x1a2))/0x5*(-parseInt(_0x24598e(0x17b))/0x6)+-parseInt(_0x24598e(0x17a))/0x7*(parseInt(_0x24598e(0x175))/0x8)+-parseInt(_0x24598e(0x194))/0x9*(parseInt(_0x24598e(0x1a9))/0xa)+-parseInt(_0x24598e(0x17c))/0xb*(parseInt(_0x24598e(0x199))/0xc);if(_0x411a1e===_0x559003)break;else _0x1c4d53['push'](_0x1c4d53['shift']());}catch(_0x49d21a){_0x1c4d53['push'](_0x1c4d53['shift']());}}}(a129_0x50aa,0x52582));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';function a129_0x5b83(_0x580bc5,_0x4f9edb){_0x580bc5=_0x580bc5-0x175;const _0x50aa54=a129_0x50aa();let _0x5b8378=_0x50aa54[_0x580bc5];return _0x5b8378;}async function getTargetSqlQueries(_0x41b7ef,_0x1eff87,_0x250095){const _0x1a067a=a129_0x5b83,_0xb83e71=await scanLocalSqlQueries(_0x41b7ef),_0x5e56b2=new Map();for(const _0x49103c of _0xb83e71){if(_0x250095&&_0x49103c[_0x1a067a(0x1a1)]!==_0x250095)continue;const _0x43c2ea=_0x5e56b2[_0x1a067a(0x179)](_0x49103c[_0x1a067a(0x1a1)])??[];_0x43c2ea[_0x1a067a(0x1af)](_0x49103c),_0x5e56b2['set'](_0x49103c[_0x1a067a(0x1a1)],_0x43c2ea);}if(_0x250095&&!_0x5e56b2[_0x1a067a(0x178)](_0x250095))throw CliErrors[_0x1a067a(0x1ba)](_0x1a067a(0x1ab)+_0x250095);const _0x62f44d=[];for(const [_0x6f5e92,_0x1e64a7]of _0x5e56b2[_0x1a067a(0x18a)]()){if(_0x1e64a7['length']===0x1){_0x62f44d[_0x1a067a(0x1af)](_0x1e64a7[0x0]);continue;}const _0x5f339d=_0x1eff87['sqls'][_0x6f5e92],_0x13edeb=_0x5f339d?.[_0x1a067a(0x190)],_0x5756f1=_0x13edeb?_0x1e64a7[_0x1a067a(0x1ac)](_0x1c089a=>_0x1c089a['relativePath']!==_0x13edeb):_0x1e64a7;if(_0x5f339d&&_0x5756f1[_0x1a067a(0x18c)]===0x1){_0x62f44d['push'](_0x5756f1[0x0]);continue;}throw CliErrors[_0x1a067a(0x1ba)](_0x1a067a(0x192)+_0x6f5e92+_0x1a067a(0x19c));}return _0x62f44d;}export const sqlPush={'service':'sql','command':a129_0x2cdf91(0x1af),'description':a129_0x2cdf91(0x188),'risk':a129_0x2cdf91(0x177),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a129_0x2cdf91(0x18b),'type':a129_0x2cdf91(0x1ae),'description':a129_0x2cdf91(0x1a0)}],async 'dryRun'(_0x186181){const _0x16bfab=a129_0x2cdf91,_0x2b9abf=loadSqlProjectConfig(_0x186181[_0x16bfab(0x1b4)]),_0x520849=await readSqlLockFile(_0x2b9abf[_0x16bfab(0x1b6)]),{appLock:_0x4ca04d}=ensureSqlLockScope(_0x520849??createEmptySqlLock(),_0x186181[_0x16bfab(0x1b4)],_0x2b9abf[_0x16bfab(0x18f)],_0x16bfab(0x1af)),_0xe9dcbc=await getTargetSqlQueries(_0x2b9abf,_0x4ca04d,_0x186181[_0x16bfab(0x1b3)](_0x16bfab(0x18d))||undefined),_0x930814=[];for(const _0x2522fa of _0xe9dcbc){const _0x431ff6=await computeSqlFileHash(_0x2522fa[_0x16bfab(0x17d)]),_0x255810=_0x4ca04d[_0x16bfab(0x1ad)][_0x2522fa[_0x16bfab(0x1a1)]],_0x1ed86b=!!_0x255810&&(_0x255810['path']!==_0x2522fa[_0x16bfab(0x197)]||!!_0x2522fa[_0x16bfab(0x17f)]&&_0x255810['sqlName']!==_0x2522fa[_0x16bfab(0x17f)]);if(!_0x186181[_0x16bfab(0x180)](_0x16bfab(0x18b))&&_0x255810&&_0x255810[_0x16bfab(0x1b5)]===_0x431ff6&&!_0x1ed86b)continue;_0x930814[_0x16bfab(0x1af)](_0x2522fa[_0x16bfab(0x1a1)]);}return{'method':_0x16bfab(0x176),'url':_0x16bfab(0x19a),'body':{'sqlCodes':_0x930814,'appCode':_0x186181[_0x16bfab(0x1b4)]},'description':_0x16bfab(0x19e)+_0x930814[_0x16bfab(0x18c)]+_0x16bfab(0x18e)};},async 'execute'(_0x99d084){const _0x9631d5=a129_0x2cdf91,_0x3f481a=loadSqlProjectConfig(_0x99d084[_0x9631d5(0x1b4)]),_0xef8719=await readSqlLockFile(_0x3f481a[_0x9631d5(0x1b6)]),{lockData:_0x3c394d,appLock:_0x38132b}=ensureSqlLockScope(_0xef8719??createEmptySqlLock(),_0x99d084[_0x9631d5(0x1b4)],_0x3f481a['sqlRoot'],_0x9631d5(0x1af)),_0x4fa5f0=await getTargetSqlQueries(_0x3f481a,_0x38132b,_0x99d084['str'](_0x9631d5(0x18d))||undefined);if(_0x4fa5f0[_0x9631d5(0x18c)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x552bad=[],_0x30bb43=[],_0x4ed446=[];for(const _0x26755c of _0x4fa5f0){const _0x53c967=_0x38132b[_0x9631d5(0x1ad)][_0x26755c[_0x9631d5(0x1a1)]];if(!_0x53c967){_0x4ed446['push']({'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'error':_0x9631d5(0x1b7)});continue;}try{const _0x9f3946=await computeSqlFileHash(_0x26755c[_0x9631d5(0x17d)]),_0xae1c7=_0x53c967['path']!==_0x26755c[_0x9631d5(0x197)]||!!_0x26755c[_0x9631d5(0x17f)]&&_0x53c967['sqlName']!==_0x26755c['sqlName'];if(!_0x99d084['bool'](_0x9631d5(0x18b))&&_0x53c967['hash']===_0x9f3946&&!_0xae1c7){_0x30bb43['push']({'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'reason':_0x9631d5(0x17e)});continue;}if(_0x53c967[_0x9631d5(0x195)]==null){_0x4ed446[_0x9631d5(0x1af)]({'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x375f03=await readFile(_0x26755c[_0x9631d5(0x17d)],_0x9631d5(0x1a5)),_0x444d59=stripLocalSqlMetadata(_0x375f03,_0x26755c[_0x9631d5(0x1b9)]),_0x5af140=_0x26755c['sqlName']||_0x53c967['sqlName'],_0x5624c3=await resolveTargetDbBinding(_0x99d084['appCode'],_0x26755c,_0x53c967),_0x514444=await updateSqlQuery({'id':_0x53c967['remoteId'],'appCode':_0x99d084['appCode'],'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'sqlName':_0x5af140,'dbId':_0x5624c3['dbId'],'version':_0x53c967['version'],'sqlContent':_0x444d59,'sqlConfig':_0x53c967[_0x9631d5(0x1aa)]??undefined}),_0x1a5094=_0x514444[_0x9631d5(0x186)]?await getDbName(_0x99d084['appCode'],Number(_0x514444[_0x9631d5(0x186)]))[_0x9631d5(0x196)](()=>_0x5624c3[_0x9631d5(0x1b0)]):_0x5624c3[_0x9631d5(0x1b0)];_0x38132b['sqls'][_0x26755c[_0x9631d5(0x1a1)]]={...buildSqlLockEntry(_0x514444,_0x444d59,_0x9f3946,{'dbName':_0x1a5094}),'path':_0x26755c['relativePath'],'mode':_0x53c967[_0x9631d5(0x1b9)]},await archivePreviousSqlFileIfNeeded(_0x3f481a,_0x53c967[_0x9631d5(0x190)],_0x26755c['relativePath']),_0x552bad[_0x9631d5(0x1af)]({'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'remoteId':_0x53c967[_0x9631d5(0x1a4)]});}catch(_0x4b23df){_0x4ed446['push']({'sqlCode':_0x26755c[_0x9631d5(0x1a1)],'error':_0x4b23df instanceof Error?_0x4b23df['message']:String(_0x4b23df)});}}return _0x38132b[_0x9631d5(0x19f)]=new Date()['toISOString'](),await writeSqlLockFile(_0x3f481a[_0x9631d5(0x1b6)],_0x3c394d),{'ok':_0x4ed446[_0x9631d5(0x18c)]===0x0,'data':{'pushed':_0x552bad,'skipped':_0x30bb43,'failed':_0x4ed446},'message':_0x9631d5(0x1a6)+_0x552bad[_0x9631d5(0x18c)]+_0x9631d5(0x1b1)+_0x30bb43[_0x9631d5(0x18c)]+_0x9631d5(0x198)+_0x4ed446['length']+_0x9631d5(0x1b2)};}};async function archivePreviousSqlFileIfNeeded(_0x28998b,_0x1f46db,_0x1991da){const _0x4e7dd8=a129_0x2cdf91;if(!_0x1f46db||_0x1f46db===_0x1991da)return;const _0x1c6538=join(_0x28998b[_0x4e7dd8(0x1a7)],_0x1f46db);if(!await fileExists(_0x1c6538))return;const _0x5a77aa=await moveToTrash(_0x28998b[_0x4e7dd8(0x183)],_0x28998b[_0x4e7dd8(0x19b)],_0x1c6538);await cleanupEmptyDirectories(dirname(_0x1c6538),_0x28998b[_0x4e7dd8(0x1a7)]),void _0x5a77aa;}async function moveToTrash(_0x35701c,_0x429111,_0x561c73){const _0x371afe=new Date()['toISOString']()['replace'](/[:.]/g,'-'),_0x2db237=relative(_0x35701c,_0x561c73),_0x1d4bfe=join(_0x429111,_0x371afe,_0x2db237);return await mkdir(dirname(_0x1d4bfe),{'recursive':!![]}),await rename(_0x561c73,_0x1d4bfe),_0x1d4bfe;}function a129_0x50aa(){const _0xcdbcd=['startsWith','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','33SISzJU','873oKCmeW','version','catch','relativePath','\x20skipped,\x20','300fFiWGI','/smartapi/custom/updateUserCustomSql','trashDir','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','92604lErDDo','Would\x20push\x20','lastSync','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','sqlCode','5opndUK','map','remoteId','utf8','Push\x20complete:\x20','sqlRootDir','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','10370iLcgRU','sqlConfig','Local\x20SQL\x20not\x20found:\x20','filter','sqls','boolean','push','dbName','\x20pushed,\x20','\x20failed','str','appCode','hash','lockFilePath','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','exec','mode','validation','3286600manzfu','POST','high-risk-write','has','get','7yaXgwD','2202324SLllBJ','385957biSBzf','filePath','unchanged','sqlName','bool','2182232tJOEFo','303937ekMsew','projectRoot','No\x20database\x20matches\x20local\x20directory\x20\x22','Local\x20directory\x20\x22','dbId','\x22\x20for\x20sqlCode\x20','Push\x20local\x20SQL\x20files\x20to\x20remote','isFinite','entries','force','length','sqlcode','\x20SQL\x20file(s)','sqlRoot','path'];a129_0x50aa=function(){return _0xcdbcd;};return a129_0x50aa();}async function cleanupEmptyDirectories(_0x10da0c,_0x12fb97){const _0x499f19=a129_0x2cdf91;let _0x52f890=resolve(_0x10da0c);const _0x1174cf=resolve(_0x12fb97);while(_0x52f890[_0x499f19(0x191)](''+_0x1174cf+sep)||_0x52f890===_0x1174cf){if(_0x52f890===_0x1174cf)return;try{const _0x48a1fb=await readdir(_0x52f890);if(_0x48a1fb[_0x499f19(0x18c)]>0x0)return;await rmdir(_0x52f890);}catch{return;}_0x52f890=dirname(_0x52f890);}}async function resolveTargetDbBinding(_0xda2a58,_0x395795,_0x47a87c){const _0x33a3c6=a129_0x2cdf91,_0x4c270e=_0x395795['dbDirectory'];if(!_0x4c270e)return{'dbId':_0x47a87c['dbId'],'dbName':_0x47a87c[_0x33a3c6(0x1b0)]};const _0x126bc7=buildDbDirectoryName(_0x47a87c[_0x33a3c6(0x1b0)],_0x47a87c[_0x33a3c6(0x186)]);if(_0x4c270e===_0x126bc7)return{'dbId':_0x47a87c[_0x33a3c6(0x186)],'dbName':_0x47a87c[_0x33a3c6(0x1b0)]};const _0x539754=parseExplicitDbDirectory(_0x4c270e);if(_0x539754!=null)return{'dbId':_0x539754,'dbName':await getDbName(_0xda2a58,_0x539754)['catch'](()=>undefined)};const _0x2b86cf=await listDatabases(_0xda2a58),_0x9eba44=_0x2b86cf[_0x33a3c6(0x1ac)](_0x48dbff=>buildDbDirectoryName(_0x48dbff[_0x33a3c6(0x1b0)],_0x48dbff[_0x33a3c6(0x186)])===_0x4c270e);if(_0x9eba44[_0x33a3c6(0x18c)]===0x1)return{'dbId':_0x9eba44[0x0][_0x33a3c6(0x186)],'dbName':_0x9eba44[0x0][_0x33a3c6(0x1b0)]};if(_0x9eba44['length']===0x0)throw CliErrors[_0x33a3c6(0x1ba)](_0x33a3c6(0x184)+_0x4c270e+_0x33a3c6(0x187)+_0x395795['sqlCode']+'.');const _0x206dd1=_0x9eba44[_0x33a3c6(0x1a3)](_0x2cf331=>_0x2cf331['dbName']+'\x20('+_0x2cf331[_0x33a3c6(0x186)]+')')['join'](',\x20');throw CliErrors[_0x33a3c6(0x1ba)](_0x33a3c6(0x185)+_0x4c270e+_0x33a3c6(0x1a8)+_0x395795[_0x33a3c6(0x1a1)]+':\x20'+_0x206dd1);}function parseExplicitDbDirectory(_0xf18756){const _0x569ea0=a129_0x2cdf91,_0x959229=/^db-(\d+)$/[_0x569ea0(0x1b8)](_0xf18756);if(!_0x959229)return null;const _0x43051e=Number(_0x959229[0x1]);return Number[_0x569ea0(0x189)](_0x43051e)&&_0x43051e>0x0?_0x43051e:null;}
1
+ 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 +1 @@
1
- const a130_0x410c60=a130_0x45f5;function a130_0x45f5(_0x3feb04,_0x22eeb6){_0x3feb04=_0x3feb04-0x126;const _0x54888=a130_0x5488();let _0x45f558=_0x54888[_0x3feb04];return _0x45f558;}function a130_0x5488(){const _0xf88057=['869136eRqGuj','save','5OSzYto','348984BWKHtN','776260curhlq','285573ISKvMA','validation','write','description','3120dMTZfU','sqlname','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','Query\x20description','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','sql','191795wkqTho','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','406XtWVsS','file','318340aGjuwy','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.','join','string','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)'];a130_0x5488=function(){return _0xf88057;};return a130_0x5488();}(function(_0x241a94,_0x509e07){const _0x5ed2ba=a130_0x45f5,_0x3ad031=_0x241a94();while(!![]){try{const _0x46312b=parseInt(_0x5ed2ba(0x12c))/0x1+-parseInt(_0x5ed2ba(0x130))/0x2+parseInt(_0x5ed2ba(0x13a))/0x3+parseInt(_0x5ed2ba(0x139))/0x4*(parseInt(_0x5ed2ba(0x137))/0x5)+-parseInt(_0x5ed2ba(0x135))/0x6+parseInt(_0x5ed2ba(0x12e))/0x7*(-parseInt(_0x5ed2ba(0x126))/0x8)+-parseInt(_0x5ed2ba(0x138))/0x9;if(_0x46312b===_0x509e07)break;else _0x3ad031['push'](_0x3ad031['shift']());}catch(_0x386f54){_0x3ad031['push'](_0x3ad031['shift']());}}}(a130_0x5488,0x1c3ad));import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a130_0x410c60(0x12d),a130_0x410c60(0x128),a130_0x410c60(0x131)][a130_0x410c60(0x132)]('\x0a');export const sqlSave={'service':a130_0x410c60(0x12b),'command':a130_0x410c60(0x136),'description':a130_0x410c60(0x12a),'risk':a130_0x410c60(0x13c),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a130_0x410c60(0x12f),'type':a130_0x410c60(0x133),'required':!![],'description':'Path\x20to\x20the\x20SQL\x20file'},SQLCODE_FLAG_OPTIONAL,{'name':a130_0x410c60(0x127),'type':a130_0x410c60(0x133),'description':'SQL\x20query\x20display\x20name'},{'name':'db','type':a130_0x410c60(0x133),'description':a130_0x410c60(0x134)},{'name':a130_0x410c60(0x13d),'type':'string','description':a130_0x410c60(0x129)}],async 'validate'(){const _0x51fe4e=a130_0x410c60;throw CliErrors[_0x51fe4e(0x13b)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);}};
1
+ 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 +1 @@
1
- function a131_0x3a44(){const _0x9719d0=['3232755nrpcDo','stderr','endsWith','join','6336IrtCLd','8704377hOkqln','8397xIYFLz','sqlConfig','map','10JSANjr','572284HJgflU','push','--\x20@lovrabet.','stdin','entries','7662MOaXHr','trimStart','description','341002qbdfIN','dbId','trim','mode','sqlCode','6JpIljj','.rabetbase/sql','apps','question','syncedAt','\x20[y/N]\x20','test','mybatisXml','includes','path','length','dbName','version','2039700BLAphj','sqlName','5313pUfyNV','filter'];a131_0x3a44=function(){return _0x9719d0;};return a131_0x3a44();}const a131_0x91b36d=a131_0x415b;function a131_0x415b(_0x340713,_0x183b7b){_0x340713=_0x340713-0xba;const _0x3a44eb=a131_0x3a44();let _0x415b1a=_0x3a44eb[_0x340713];return _0x415b1a;}(function(_0x245d20,_0x19db63){const _0x124588=a131_0x415b,_0x398ae5=_0x245d20();while(!![]){try{const _0x231c2f=-parseInt(_0x124588(0xbb))/0x1+parseInt(_0x124588(0xcd))/0x2+-parseInt(_0x124588(0xc0))/0x3*(parseInt(_0x124588(0xdb))/0x4)+-parseInt(_0x124588(0xd1))/0x5+-parseInt(_0x124588(0xe0))/0x6*(-parseInt(_0x124588(0xcf))/0x7)+-parseInt(_0x124588(0xd5))/0x8*(-parseInt(_0x124588(0xd7))/0x9)+-parseInt(_0x124588(0xda))/0xa*(parseInt(_0x124588(0xd6))/0xb);if(_0x231c2f===_0x19db63)break;else _0x398ae5['push'](_0x398ae5['shift']());}catch(_0x2538bd){_0x398ae5['push'](_0x398ae5['shift']());}}}(a131_0x3a44,0xa1df3));import{createInterface}from'node:readline';import{join}from'node:path';import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a131_0x91b36d(0xc1);export function buildSqlLockEntry(_0x40db47,_0x211558,_0x531ba2,_0x14ded){const _0x4fb825=a131_0x91b36d,_0x48a3e7=detectSqlMode(_0x211558);return{'path':buildSqlRelativePath(_0x40db47[_0x4fb825(0xbf)],_0x40db47[_0x4fb825(0xce)],_0x14ded?.[_0x4fb825(0xcb)],_0x48a3e7,_0x40db47['dbId']),'hash':_0x531ba2,'remoteId':_0x40db47['id'],'version':_0x40db47[_0x4fb825(0xcc)],'dbId':Number(_0x40db47['dbId']),'dbName':_0x14ded?.[_0x4fb825(0xcb)],'sqlName':_0x40db47['sqlName'],'sqlConfig':_0x40db47[_0x4fb825(0xd8)]??undefined,'mode':_0x48a3e7};}export function cloneSqlLockData(_0xd036bd){const _0x38aa73=a131_0x91b36d;return{'apps':Object['fromEntries'](Object[_0x38aa73(0xdf)](_0xd036bd[_0x38aa73(0xc2)])['map'](([_0x3117db,_0x152928])=>[_0x3117db,{'sqlRoot':_0x152928['sqlRoot'],'lastSync':_0x152928['lastSync'],'sqls':{..._0x152928['sqls']}}]))};}export function ensureRemoteSqlContent(_0x1da5f2){return _0x1da5f2['sqlContent']??'';}export function buildLocalSqlFileContent(_0x27a509,_0xe7178b,_0x366138){const _0x5b0e46=a131_0x91b36d,_0x39d66c=_0x366138?.[_0x5b0e46(0xbe)]??detectSqlMode(_0xe7178b),_0x425107=stripLocalSqlMetadata(_0xe7178b,_0x39d66c)[_0x5b0e46(0xbd)](),_0x288827=[...buildMetadataHeaderLines({'sqlCode':_0x27a509[_0x5b0e46(0xbf)],'sqlName':_0x27a509[_0x5b0e46(0xce)],'dbId':_0x27a509[_0x5b0e46(0xbc)],'dbName':_0x366138?.['dbName'],'mode':_0x39d66c,'syncedAt':_0x366138?.[_0x5b0e46(0xc4)],'description':_0x366138?.[_0x5b0e46(0xba)]},_0x39d66c),'',_0x425107],_0x9f1519=_0x288827[_0x5b0e46(0xd4)]('\x0a');return _0x9f1519[_0x5b0e46(0xd3)]('\x0a')?_0x9f1519:_0x9f1519+'\x0a';}export function stripLocalSqlMetadata(_0x473833,_0x5a8bc4){const _0x55f289=a131_0x91b36d,_0x405cc8=_0x473833['replace'](/\r\n/g,'\x0a')['split']('\x0a'),_0x4b24f3=[];let _0x2e2a42=0x0;if(_0x5a8bc4===_0x55f289(0xc7))while(_0x2e2a42<_0x405cc8[_0x55f289(0xca)]){const _0x3595ce=_0x405cc8[_0x2e2a42]??'';if(/^\s*<!--\s*@lovrabet\./[_0x55f289(0xc6)](_0x3595ce)){_0x2e2a42++;continue;}if(_0x3595ce[_0x55f289(0xbd)]()===''&&_0x2e2a42>0x0){_0x2e2a42++;continue;}break;}else while(_0x2e2a42<_0x405cc8['length']){const _0x1d24d5=_0x405cc8[_0x2e2a42]??'';if(/^\s*--\s*@lovrabet\./[_0x55f289(0xc6)](_0x1d24d5)){_0x2e2a42++;continue;}if(_0x1d24d5['trim']()===''&&_0x2e2a42>0x0){_0x2e2a42++;continue;}break;}for(;_0x2e2a42<_0x405cc8[_0x55f289(0xca)];_0x2e2a42++){_0x4b24f3[_0x55f289(0xdc)](_0x405cc8[_0x2e2a42]);}return _0x4b24f3[_0x55f289(0xd4)]('\x0a')[_0x55f289(0xe1)]();}export function resolveSqlMode(_0x2dccf3,_0x2c12f7){const _0xcaf27c=a131_0x91b36d;if(_0x2c12f7?.[_0xcaf27c(0xbe)])return _0x2c12f7['mode'];return detectSqlMode(_0x2dccf3);}export function resolveSqlFileName(_0x1a70ea,_0x24c9b4,_0x8d0f9a){const _0x2345b4=a131_0x91b36d;if(_0x8d0f9a?.[_0x2345b4(0xc9)])return _0x8d0f9a[_0x2345b4(0xc9)];if(_0x8d0f9a?.[_0x2345b4(0xce)]||_0x8d0f9a?.[_0x2345b4(0xcb)])return buildSqlRelativePath(_0x1a70ea,_0x8d0f9a?.[_0x2345b4(0xce)],_0x8d0f9a?.[_0x2345b4(0xcb)],resolveSqlMode(_0x24c9b4,_0x8d0f9a),_0x8d0f9a?.['dbId']);return buildDefaultSqlFileName(_0x1a70ea,resolveSqlMode(_0x24c9b4,_0x8d0f9a));}export function resolveSqlLocalDir(_0x384802,_0xdb0c78){return join(_0x384802,SQL_LOCAL_REL_DIR,_0xdb0c78);}export async function confirmForceOverwrite(_0x294352){const _0x19cdf0=a131_0x91b36d,_0x4a3177=createInterface({'input':process[_0x19cdf0(0xde)],'output':process[_0x19cdf0(0xd2)]}),_0xb36d59=await new Promise(_0x232287=>{const _0x50dc69=_0x19cdf0;_0x4a3177[_0x50dc69(0xc3)](_0x294352+_0x50dc69(0xc5),_0x232287);});return _0x4a3177['close'](),['y','yes'][_0x19cdf0(0xc8)](_0xb36d59[_0x19cdf0(0xbd)]()['toLowerCase']());}export function findSqlLockScope(_0x6d43a6,_0x3ec5e5){const _0x21e383=a131_0x91b36d;return _0x6d43a6[_0x21e383(0xc2)][_0x3ec5e5];}function buildMetadataHeaderLines(_0x3a1dd2,_0x30c0f6){const _0x56c6d7=a131_0x91b36d,_0x2d180d=[['sqlCode',_0x3a1dd2['sqlCode']],[_0x56c6d7(0xce),_0x3a1dd2[_0x56c6d7(0xce)]],[_0x56c6d7(0xbc),_0x3a1dd2[_0x56c6d7(0xbc)]],[_0x56c6d7(0xcb),_0x3a1dd2['dbName']],[_0x56c6d7(0xbe),_0x3a1dd2[_0x56c6d7(0xbe)]],['syncedAt',_0x3a1dd2[_0x56c6d7(0xc4)]],[_0x56c6d7(0xba),_0x3a1dd2[_0x56c6d7(0xba)]]];if(_0x30c0f6===_0x56c6d7(0xc7))return _0x2d180d[_0x56c6d7(0xd0)](([,_0x121666])=>_0x121666!==undefined&&_0x121666!==null&&String(_0x121666)['trim']()!=='')[_0x56c6d7(0xd9)](([_0xb7d4f7,_0x1d9250])=>'<!--\x20@lovrabet.'+_0xb7d4f7+':\x20'+String(_0x1d9250)+'\x20-->');return _0x2d180d[_0x56c6d7(0xd0)](([,_0x2d0945])=>_0x2d0945!==undefined&&_0x2d0945!==null&&String(_0x2d0945)['trim']()!=='')['map'](([_0x1a8c85,_0x2e35d9])=>_0x56c6d7(0xdd)+_0x1a8c85+':\x20'+String(_0x2e35d9));}
1
+ (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 +1 @@
1
- const a132_0x76ad84=a132_0x1ddf;function a132_0x5078(){const _0x3151ac=['3031640ZiWYdM','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','\x20added,\x20','relativePath','paging','sql','lockFilePath','27153YoBKYk','filePath','1102548PwveIK','bool','\x20modified,\x20','remote','lockKey','3OEGHBj','sqlCode','totalCount','length','Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','797ZeGPuq','531dFJTed','sqls','517605OzeLSh','22MTSgwW','\x20unchanged','546prhlQr','36336HFcCQP','tableData','appCode','sqlName','map','hash','status','\x20missing,\x20','push','237596EvxrDf','680obnNVU','sqlRoot','keys'];a132_0x5078=function(){return _0x3151ac;};return a132_0x5078();}(function(_0x271fb6,_0x7800ef){const _0x5b4ddc=a132_0x1ddf,_0x1a7890=_0x271fb6();while(!![]){try{const _0x4cddb0=-parseInt(_0x5b4ddc(0x1bd))/0x1*(-parseInt(_0x5b4ddc(0x1ce))/0x2)+-parseInt(_0x5b4ddc(0x1b8))/0x3*(-parseInt(_0x5b4ddc(0x1cd))/0x4)+parseInt(_0x5b4ddc(0x1c0))/0x5+-parseInt(_0x5b4ddc(0x1c3))/0x6*(parseInt(_0x5b4ddc(0x1d8))/0x7)+-parseInt(_0x5b4ddc(0x1c4))/0x8*(-parseInt(_0x5b4ddc(0x1be))/0x9)+-parseInt(_0x5b4ddc(0x1d1))/0xa+-parseInt(_0x5b4ddc(0x1c1))/0xb*(-parseInt(_0x5b4ddc(0x1da))/0xc);if(_0x4cddb0===_0x7800ef)break;else _0x1a7890['push'](_0x1a7890['shift']());}catch(_0x48dca1){_0x1a7890['push'](_0x1a7890['shift']());}}}(a132_0x5078,0x3806b));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';function a132_0x1ddf(_0x3ea74f,_0x5c2975){_0x3ea74f=_0x3ea74f-0x1b8;const _0x507884=a132_0x5078();let _0x1ddf7d=_0x507884[_0x3ea74f];return _0x1ddf7d;}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x48f36e){const _0x5665e3=a132_0x1ddf,_0xecee0f=[];let _0x46b5ab=0x1;while(!![]){const _0x35fbb5=await listSqlQueries(_0x48f36e,{'currentPage':_0x46b5ab,'pageSize':PAGE_SIZE}),_0x25e0cc=_0x35fbb5[_0x5665e3(0x1c5)]??[];_0xecee0f['push'](..._0x25e0cc[_0x5665e3(0x1c8)](_0xeb73eb=>_0xeb73eb[_0x5665e3(0x1b9)]));if(_0x25e0cc[_0x5665e3(0x1bb)]===0x0)break;const _0x2a671b=_0x35fbb5[_0x5665e3(0x1d5)]?.[_0x5665e3(0x1ba)];if(_0x2a671b!=null?_0xecee0f[_0x5665e3(0x1bb)]>=_0x2a671b:_0x25e0cc['length']<PAGE_SIZE)break;_0x46b5ab++;}return _0xecee0f;}export const sqlStatus={'service':a132_0x76ad84(0x1d6),'command':a132_0x76ad84(0x1ca),'description':a132_0x76ad84(0x1bc),'risk':'read','flags':[{'name':a132_0x76ad84(0x1dd),'type':'boolean','description':a132_0x76ad84(0x1d2)}],async 'execute'(_0x557094){const _0x34b345=a132_0x76ad84,_0x230f01=loadSqlProjectConfig(_0x557094[_0x34b345(0x1c6)]),_0x4880ae=await readSqlLockFile(_0x230f01[_0x34b345(0x1d7)]),{appLock:_0x9a992c}=ensureSqlLockScope(_0x4880ae??createEmptySqlLock(),_0x230f01['appCode'],_0x230f01[_0x34b345(0x1cf)],_0x34b345(0x1ca)),_0x5b4435=await scanLocalSqlQueries(_0x230f01),_0x541dda=[],_0xa83b4c=[],_0x5e7781=[],_0x39a2ac=[],_0x31a68e=new Set(_0x5b4435[_0x34b345(0x1c8)](_0xba1775=>_0xba1775[_0x34b345(0x1de)]));for(const _0x3a02e4 of _0x5b4435){const _0x1f3ec6=await computeSqlFileHash(_0x3a02e4[_0x34b345(0x1d9)]),_0x590cb8=_0x9a992c[_0x34b345(0x1bf)][_0x3a02e4[_0x34b345(0x1de)]],_0x11c9de=!!_0x590cb8&&_0x590cb8['path']!==_0x3a02e4[_0x34b345(0x1d4)],_0x4cea75=!!_0x590cb8&&!!_0x3a02e4[_0x34b345(0x1c7)]&&_0x590cb8['sqlName']!==_0x3a02e4[_0x34b345(0x1c7)];if(!_0x590cb8)_0x541dda['push'](_0x3a02e4[_0x34b345(0x1de)]);else _0x590cb8[_0x34b345(0x1c9)]!==_0x1f3ec6||_0x11c9de||_0x4cea75?_0xa83b4c[_0x34b345(0x1cc)](_0x3a02e4['lockKey']):_0x5e7781[_0x34b345(0x1cc)](_0x3a02e4[_0x34b345(0x1de)]);}for(const _0x22de37 of Object[_0x34b345(0x1d0)](_0x9a992c[_0x34b345(0x1bf)])){!_0x31a68e['has'](_0x22de37)&&_0x39a2ac[_0x34b345(0x1cc)](_0x22de37);}const _0x2dd6ed=[];if(_0x557094[_0x34b345(0x1db)](_0x34b345(0x1dd))){const _0x2e56d4=await fetchAllSqlCodes(_0x557094['appCode']);for(const _0x2911ed of _0x2e56d4){!_0x31a68e['has'](_0x2911ed)&&!_0x9a992c['sqls'][_0x2911ed]&&_0x2dd6ed[_0x34b345(0x1cc)](_0x2911ed);}}const _0x1dd5cb=_0x541dda[_0x34b345(0x1bb)]===0x0&&_0xa83b4c[_0x34b345(0x1bb)]===0x0&&_0x39a2ac[_0x34b345(0x1bb)]===0x0&&_0x2dd6ed[_0x34b345(0x1bb)]===0x0;return{'ok':!![],'data':{'added':_0x541dda,'modified':_0xa83b4c,'missing':_0x39a2ac,'unchanged':_0x5e7781,'remoteOnly':_0x2dd6ed},'message':_0x1dd5cb?'All\x20SQL\x20queries\x20are\x20in\x20sync.':_0x541dda['length']+_0x34b345(0x1d3)+_0xa83b4c[_0x34b345(0x1bb)]+_0x34b345(0x1dc)+_0x39a2ac[_0x34b345(0x1bb)]+_0x34b345(0x1cb)+_0x5e7781[_0x34b345(0x1bb)]+_0x34b345(0x1c2)+(_0x2dd6ed[_0x34b345(0x1bb)]>0x0?',\x20'+_0x2dd6ed['length']+'\x20remote-only':'')};}};
1
+ 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 +1 @@
1
- const a133_0x11d929=a133_0xd071;(function(_0x1a0079,_0x181bd1){const _0x347dc2=a133_0xd071,_0x440f26=_0x1a0079();while(!![]){try{const _0x3732bb=-parseInt(_0x347dc2(0x1d9))/0x1+parseInt(_0x347dc2(0x203))/0x2+-parseInt(_0x347dc2(0x202))/0x3+-parseInt(_0x347dc2(0x1d8))/0x4*(parseInt(_0x347dc2(0x1ff))/0x5)+-parseInt(_0x347dc2(0x200))/0x6+parseInt(_0x347dc2(0x1fa))/0x7*(-parseInt(_0x347dc2(0x1de))/0x8)+-parseInt(_0x347dc2(0x1d3))/0x9*(-parseInt(_0x347dc2(0x1dd))/0xa);if(_0x3732bb===_0x181bd1)break;else _0x440f26['push'](_0x440f26['shift']());}catch(_0x3b2326){_0x440f26['push'](_0x440f26['shift']());}}}(a133_0x44ec,0x4e893));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';function a133_0x44ec(){const _0x462612=['schemaWarnings','Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','message','2155qlSWhU','1969056uccRCi','flagMissing','1571601jLlcfA','1025514hEFwWB','file','name','2043xzZgqH','filter','from','toLowerCase','isArray','5672LzIdXv','147627kVzgQI','dbtableConfig','map','SQL\x20schema\x20validation','78220XLCdcu','320WIwJvz','valid','validate','length','push','isDangerous','trim','Table\x20\x22','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','isSelectOnly','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','sql','fields','str','string','\x22\x20not\x20found\x20or\x20not\x20accessible','tables','Provide\x20--file\x20or\x20--sql','type','Dataset\x20\x22','reason','File\x20not\x20found:\x20','sqlType','schemas','tableName','cwd','\x22\x20not\x20found\x20in\x20any\x20dataset','parameters','62272fmqLyu','validation'];a133_0x44ec=function(){return _0x462612;};return a133_0x44ec();}function a133_0xd071(_0x5ac3da,_0x181f72){_0x5ac3da=_0x5ac3da-0x1d3;const _0x44ece8=a133_0x44ec();let _0xd07162=_0x44ece8[_0x5ac3da];return _0xd07162;}export const sqlValidate={'service':a133_0x11d929(0x1e9),'command':a133_0x11d929(0x1e0),'description':a133_0x11d929(0x1fd),'risk':'read','flags':[{'name':a133_0x11d929(0x204),'type':a133_0x11d929(0x1ec),'description':a133_0x11d929(0x1e6)},{'name':a133_0x11d929(0x1e9),'type':a133_0x11d929(0x1ec),'description':a133_0x11d929(0x1e8)},{'name':'schemas','type':'string','description':'Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against'}],async 'execute'(_0x5b4808){const _0x334957=a133_0x11d929,_0x138333=_0x5b4808[_0x334957(0x1eb)](_0x334957(0x204)),_0xe70a1d=_0x5b4808[_0x334957(0x1eb)](_0x334957(0x1e9));if(!_0x138333&&!_0xe70a1d)throw CliErrors[_0x334957(0x201)](_0x334957(0x204),_0x334957(0x1ef));let _0x102197;if(_0x138333){const _0x3b3c4c=resolve(process[_0x334957(0x1f7)](),_0x138333);if(!existsSync(_0x3b3c4c))throw CliErrors[_0x334957(0x1fb)](_0x334957(0x1f3)+_0x3b3c4c);_0x102197=readFileSync(_0x3b3c4c,'utf-8');}else _0x102197=_0xe70a1d;const _0x522ad7=validateSql(_0x102197),_0x2b8d34={'valid':_0x522ad7[_0x334957(0x1df)],'sqlType':_0x522ad7['sqlType'][_0x334957(0x1f0)],'isSelectOnly':_0x522ad7['sqlType'][_0x334957(0x1e7)],'isDangerous':_0x522ad7[_0x334957(0x1f4)][_0x334957(0x1e3)],'tables':_0x522ad7[_0x334957(0x1ee)],'parameters':_0x522ad7[_0x334957(0x1f9)],'message':_0x522ad7[_0x334957(0x1fe)]};_0x522ad7[_0x334957(0x1f4)][_0x334957(0x1f2)]&&(_0x2b8d34[_0x334957(0x1f2)]=_0x522ad7[_0x334957(0x1f4)][_0x334957(0x1f2)]);const _0x3d5b4a=_0x5b4808[_0x334957(0x1eb)](_0x334957(0x1f5));if(_0x3d5b4a&&_0x522ad7['valid']){const _0x34a686=_0x3d5b4a['split'](',')[_0x334957(0x1db)](_0x4662a8=>_0x4662a8[_0x334957(0x1e4)]())[_0x334957(0x1d4)](Boolean),_0x6cd47d=[],_0x4fd4e7=filterDbTableBackedDatasets(await listDatasets(_0x5b4808['appCode'])),_0x1f7d8f=new Map(_0x4fd4e7[_0x334957(0x1db)](_0x313fe8=>[_0x313fe8[_0x334957(0x1da)]?.[_0x334957(0x1f6)]?.[_0x334957(0x1d6)](),_0x313fe8]));for(const _0x4dbc37 of _0x522ad7[_0x334957(0x1ee)]){const _0x1ce944=_0x1f7d8f['get'](_0x4dbc37[_0x334957(0x1d6)]());!_0x1ce944&&_0x6cd47d[_0x334957(0x1e2)](_0x334957(0x1e5)+_0x4dbc37+_0x334957(0x1f8));}for(const _0x3322d4 of _0x34a686){let _0x21daf0;try{_0x21daf0=await getDatasetDetail(_0x3322d4);}catch{_0x6cd47d[_0x334957(0x1e2)](_0x334957(0x1f1)+_0x3322d4+_0x334957(0x1ed));continue;}assertDatasetIsDbTableBacked(_0x21daf0,_0x334957(0x1dc));const _0x503381=Array[_0x334957(0x1d7)](_0x21daf0[_0x334957(0x1ea)])?_0x21daf0[_0x334957(0x1ea)]:[],_0x286d3e=new Set(_0x503381[_0x334957(0x1db)](_0x38ba9d=>_0x38ba9d[_0x334957(0x205)]?.[_0x334957(0x1d6)]())),_0x49a7e6=_0x21daf0[_0x334957(0x1da)]?.[_0x334957(0x1f6)]||_0x21daf0[_0x334957(0x1f6)]||_0x3322d4;_0x2b8d34['schema:'+_0x49a7e6]={'code':_0x3322d4,'tableName':_0x49a7e6,'fieldCount':_0x286d3e['size'],'fields':Array[_0x334957(0x1d5)](_0x286d3e)};}_0x6cd47d[_0x334957(0x1e1)]>0x0&&(_0x2b8d34[_0x334957(0x1fc)]=_0x6cd47d);}return{'ok':_0x522ad7[_0x334957(0x1df)],'data':_0x2b8d34,'message':_0x522ad7['message']};}};
1
+ 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)]};}};
@@ -0,0 +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};