@lovrabet/rabetbase-cli 2.4.2 → 2.4.3-beta.1
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.
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/members-list.js +1 -1
- package/lib/commands/app/remote-directory.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/delete.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/list.js +1 -1
- package/lib/commands/app-config/set.js +1 -1
- package/lib/commands/app-config/shared.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-registry.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/async-task.js +1 -1
- package/lib/commands/common/dry-run.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/filter.js +1 -1
- package/lib/commands/data/getOne.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/data/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/generate.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-audit.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/dataset/restore.js +1 -1
- package/lib/commands/db/analysis-batching.js +1 -1
- package/lib/commands/db/analyze-batch-plan.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/kb/create.js +1 -1
- package/lib/commands/kb/delete.js +1 -1
- package/lib/commands/kb/detail.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/kb/list.js +1 -1
- package/lib/commands/kb/shared.js +1 -1
- package/lib/commands/kb/update.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/asset-update.js +1 -1
- package/lib/commands/menu/delete.js +1 -1
- package/lib/commands/menu/external-link-create.js +1 -1
- package/lib/commands/menu/external-link-update.js +1 -1
- package/lib/commands/menu/group-create.js +1 -1
- package/lib/commands/menu/group-update.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/move.js +1 -1
- package/lib/commands/menu/regroup-start.js +1 -1
- package/lib/commands/menu/rename.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/delete-plan.js +1 -1
- package/lib/commands/menu/shared/facts.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/mutations.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/react/create.js +1 -1
- package/lib/commands/page/react/detail.js +1 -1
- package/lib/commands/page/react/list.js +1 -1
- package/lib/commands/page/react/publish.js +1 -1
- package/lib/commands/page/react/shared.js +1 -1
- package/lib/commands/page/react/syntax.js +1 -1
- package/lib/commands/page/react/template.js +1 -1
- package/lib/commands/page/react/update.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/restore.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/standard-page-status.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-apis-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/project/create/enhanced-guided-create.js +1 -1
- package/lib/commands/project/create/format-elapsed.js +1 -1
- package/lib/commands/project/create/main.js +1 -1
- package/lib/commands/project/create/non-interactive.js +1 -1
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.js +1 -1
- package/lib/commands/project/create/use-format-code.js +1 -1
- package/lib/commands/project/create/use-install-dependencies.js +1 -1
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/role/user-resolve.js +1 -1
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/commands/task/index.js +1 -1
- package/lib/commands/task/status.js +1 -1
- package/lib/commands/tenant/index.js +1 -1
- package/lib/commands/tenant/members-list.js +1 -1
- package/lib/commands/tenant/shared.js +1 -1
- package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/add.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/commands/workspace/remove.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-index-auditor.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/error-output.js +1 -1
- package/lib/framework/explicit-yes.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/copy-directory.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/rules-cdn.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +8 -4
- package/skills/rabetbase/SKILL.md +1 -1
- package/skills/rabetbase.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const a183_0x5858a8=a183_0xf945;(function(_0x466a1f,_0x34272a){const _0x243de1=a183_0xf945,_0x4c3aa6=_0x466a1f();while(!![]){try{const _0x247e5e=parseInt(_0x243de1(0x17f))/0x1*(parseInt(_0x243de1(0x15e))/0x2)+parseInt(_0x243de1(0x17b))/0x3*(-parseInt(_0x243de1(0x15a))/0x4)+-parseInt(_0x243de1(0x16e))/0x5*(-parseInt(_0x243de1(0x167))/0x6)+parseInt(_0x243de1(0x181))/0x7+-parseInt(_0x243de1(0x194))/0x8+parseInt(_0x243de1(0x170))/0x9*(parseInt(_0x243de1(0x19d))/0xa)+-parseInt(_0x243de1(0x197))/0xb*(parseInt(_0x243de1(0x189))/0xc);if(_0x247e5e===_0x34272a)break;else _0x4c3aa6['push'](_0x4c3aa6['shift']());}catch(_0xea3715){_0x4c3aa6['push'](_0x4c3aa6['shift']());}}}(a183_0x1bf3,0x6d150));function a183_0xf945(_0x312dd0,_0x4856a7){_0x312dd0=_0x312dd0-0x15a;const _0x1bf3b9=a183_0x1bf3();let _0xf94588=_0x1bf3b9[_0x312dd0];return _0xf94588;}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(_0x40148a){const _0x2d1e79=a183_0xf945;if(_0x40148a===_0x2d1e79(0x19b))return[_0x2d1e79(0x15b),_0x2d1e79(0x187),_0x2d1e79(0x168),''][_0x2d1e79(0x177)]('\x0a');return[_0x2d1e79(0x15c),''][_0x2d1e79(0x177)]('\x0a');}function a183_0x1bf3(){const _0x22959c=['string','sqlName','db-id','dbId','appCode','trim','flag','str','File\x20already\x20exists:\x20','4283760mGlaTv','mode','nonInteractive','242BOBGdr','map','lockFilePath','sqlCode','mybatisXml','请选择目标数据库:','110EItSZE','SQL\x20query\x20display\x20name','<server-generated-sqlCode>','/smartapi/custom/saveUserCustomSql','sqls','new','168voSHkt','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','SELECT\x201\x20AS\x20id;','lastSync','26LUccOd','dbId\x20必须为正整数','isInteger','toISOString','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','validation','length','Invalid\x20database\x20selection\x20payload:\x20','21570xmLksC','</select>','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','description','适合带动态标签的\x20MyBatis\x20XML\x20SQL','isFinite','stringify','915mNlCvW','create','449892fYubga','请输入\x20SQL\x20名称:','普通\x20SQL(sql)','sqlRoot','flagMissing','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','✎\x20手动输入\x20dbId','join','请输入目标数据库\x20dbId:','dbName','POST','35571EOkQUE','sql','dbId\x20不能为空','sqlRootDir','44045FZrivY','Created\x20SQL\x20query\x20','3954300uieYJu','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','number','parse','name','catch','\x20\x20SELECT\x201\x20AS\x20id','__manual__','471804AIxeDK','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally'];a183_0x1bf3=function(){return _0x22959c;};return a183_0x1bf3();}export const sqlCreate={'service':'sql','command':a183_0x5858a8(0x16f),'description':a183_0x5858a8(0x18a),'risk':'write','flags':[{'name':a183_0x5858a8(0x185),'type':a183_0x5858a8(0x18b),'description':a183_0x5858a8(0x19e)},{'name':a183_0x5858a8(0x18d),'type':a183_0x5858a8(0x183),'description':'Target\x20database\x20ID'},{'name':a183_0x5858a8(0x195),'type':a183_0x5858a8(0x18b),'enum':[a183_0x5858a8(0x17c),a183_0x5858a8(0x19b)],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x1c3f09){const _0x364acd=a183_0x5858a8;if(!_0x1c3f09[_0x364acd(0x196)])return;if(!_0x1c3f09[_0x364acd(0x192)](_0x364acd(0x185))[_0x364acd(0x190)]())throw CliErrors[_0x364acd(0x174)](_0x364acd(0x185),_0x364acd(0x175));const _0x1979ff=resolveProvidedDbId(_0x1c3f09);if(typeof _0x1979ff!==_0x364acd(0x183)||!Number[_0x364acd(0x16c)](_0x1979ff)||_0x1979ff<=0x0)throw CliErrors['flagMissing'](_0x364acd(0x18d),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x1c3f09['str'](_0x364acd(0x195))[_0x364acd(0x190)]())throw CliErrors['flagMissing'](_0x364acd(0x195),_0x364acd(0x163));},async 'dryRun'(_0x418b02){const _0x151112=a183_0x5858a8,_0x369ab1=loadSqlProjectConfig(_0x418b02[_0x151112(0x18f)]),{sqlName:_0x4b742c,dbId:_0x2afac9,dbName:_0x24c17c,mode:_0x104d05}=await resolveSqlNewInputs(_0x418b02),_0x5e80be=buildSqlRelativePath(_0x151112(0x19f),_0x4b742c,_0x24c17c,_0x104d05,_0x2afac9),_0x2514f9=_0x369ab1[_0x151112(0x17e)]+'/'+_0x5e80be;return{'method':_0x151112(0x17a),'url':_0x151112(0x1a0),'body':{'appCode':_0x418b02['appCode'],'sqlName':_0x4b742c,'dbId':_0x2afac9,'mode':_0x104d05,'localPath':_0x2514f9},'description':_0x151112(0x162)+_0x369ab1[_0x151112(0x17e)]};},async 'execute'(_0x27630a){const _0x5a3ab6=a183_0x5858a8,_0x1164f5=loadSqlProjectConfig(_0x27630a[_0x5a3ab6(0x18f)]),{sqlName:_0x175ba6,dbId:_0x513232,dbName:_0x4fc8b6,mode:_0x41cfbf}=await resolveSqlNewInputs(_0x27630a),_0x3fc8a5=generateSqlTemplate(_0x41cfbf),_0x2ab7b2=await createSqlQuery({'appCode':_0x27630a[_0x5a3ab6(0x18f)],'sqlName':_0x175ba6,'dbId':_0x513232,'sqlContent':_0x3fc8a5}),_0x490565=ensureRemoteSqlContent(_0x2ab7b2),_0x39d8fe=_0x4fc8b6||await getDbName(_0x27630a[_0x5a3ab6(0x18f)],_0x513232)[_0x5a3ab6(0x186)](()=>undefined),_0x2d70ba=buildSqlRelativePath(_0x2ab7b2[_0x5a3ab6(0x19a)],_0x2ab7b2[_0x5a3ab6(0x18c)],_0x39d8fe,_0x41cfbf,_0x513232),_0x282bcd=_0x1164f5[_0x5a3ab6(0x17e)]+'/'+_0x2d70ba,_0x2a0077=buildLocalSqlFileContent({'sqlCode':_0x2ab7b2['sqlCode'],'sqlName':_0x2ab7b2[_0x5a3ab6(0x18c)],'dbId':_0x2ab7b2[_0x5a3ab6(0x18e)]},_0x490565,{'dbName':_0x39d8fe,'mode':_0x41cfbf,'syncedAt':new Date()[_0x5a3ab6(0x161)](),'description':_0x2ab7b2[_0x5a3ab6(0x16a)]});if(await fileExists(_0x282bcd))throw CliErrors[_0x5a3ab6(0x164)](_0x5a3ab6(0x193)+_0x282bcd);await ensureParentDirectory(_0x282bcd),await writeFile(_0x282bcd,_0x2a0077,'utf8');const _0x4e7142=await readSqlLockFile(_0x1164f5[_0x5a3ab6(0x199)]),{lockData:_0x3bbed8,appLock:_0x5ac157}=ensureSqlLockScope(_0x4e7142??createEmptySqlLock(),_0x1164f5[_0x5a3ab6(0x18f)],_0x1164f5[_0x5a3ab6(0x173)],_0x5a3ab6(0x1a2));return _0x5ac157[_0x5a3ab6(0x1a1)][_0x2ab7b2[_0x5a3ab6(0x19a)]]={...buildSqlLockEntry(_0x2ab7b2,_0x490565,computeSqlContentHash(_0x2a0077),{'dbName':_0x39d8fe}),'path':_0x2d70ba,'mode':_0x41cfbf},_0x5ac157[_0x5a3ab6(0x15d)]=new Date()[_0x5a3ab6(0x161)](),await writeSqlLockFile(_0x1164f5['lockFilePath'],_0x3bbed8),{'ok':!![],'data':{'id':_0x2ab7b2['id'],'sqlCode':_0x2ab7b2[_0x5a3ab6(0x19a)],'sqlName':_0x2ab7b2[_0x5a3ab6(0x18c)],'dbId':_0x2ab7b2['dbId'],'path':_0x282bcd,'mode':_0x41cfbf},'message':_0x5a3ab6(0x180)+_0x2ab7b2[_0x5a3ab6(0x19a)]};}};async function resolveSqlNewInputs(_0x53a6c4){const _0x46bfa9=await resolveSqlNameInput(_0x53a6c4),{dbId:_0x2f8c6f,dbName:_0x4aa093}=await resolveDbSelection(_0x53a6c4),_0x233b98=await resolveSqlModeInput(_0x53a6c4);return{'sqlName':_0x46bfa9,'dbId':_0x2f8c6f,'dbName':_0x4aa093,'mode':_0x233b98};}async function resolveSqlNameInput(_0x46cbf8){const _0x305ce8=a183_0x5858a8,_0x4231ce=_0x46cbf8[_0x305ce8(0x192)](_0x305ce8(0x185))[_0x305ce8(0x190)]();if(_0x4231ce)return _0x4231ce;if(_0x46cbf8['nonInteractive'])throw CliErrors['flagMissing']('name',_0x305ce8(0x175));return(await input({'message':_0x305ce8(0x171),'validate':_0x3c5890=>_0x3c5890[_0x305ce8(0x190)]()?!![]:'SQL\x20名称不能为空'}))[_0x305ce8(0x190)]();}async function resolveDbSelection(_0x207435){const _0x300258=a183_0x5858a8,_0x4cebc2=resolveProvidedDbId(_0x207435);if(typeof _0x4cebc2===_0x300258(0x183)&&Number[_0x300258(0x16c)](_0x4cebc2)&&_0x4cebc2>0x0)return{'dbId':_0x4cebc2,'dbName':await getDbName(_0x207435[_0x300258(0x18f)],_0x4cebc2)[_0x300258(0x186)](()=>undefined)};if(_0x207435['nonInteractive'])throw CliErrors[_0x300258(0x174)](_0x300258(0x18d),_0x300258(0x182));const _0x4e036b=await listDatabases(_0x207435[_0x300258(0x18f)])['catch'](()=>[]);if(_0x4e036b[_0x300258(0x165)]===0x1)return{'dbId':_0x4e036b[0x0][_0x300258(0x18e)],'dbName':_0x4e036b[0x0][_0x300258(0x179)]};if(_0x4e036b['length']>0x1){const _0x510846=await select({'message':_0x300258(0x19c),'choices':[..._0x4e036b[_0x300258(0x198)](_0x57dab4=>({'name':_0x57dab4['dbName']+'\x20('+_0x57dab4['dbId']+')','value':serializeDbSelection(_0x57dab4)})),{'name':_0x300258(0x176),'value':'__manual__'}]});if(_0x510846!==_0x300258(0x188))return deserializeDbSelection(_0x510846);}const _0x37ffca=await input({'message':_0x300258(0x178),'validate':_0x242137=>{const _0x5b0e26=_0x300258,_0x58090b=_0x242137[_0x5b0e26(0x190)]();if(!_0x58090b)return _0x5b0e26(0x17d);const _0x2f6a55=Number(_0x58090b);if(!Number[_0x5b0e26(0x160)](_0x2f6a55)||_0x2f6a55<=0x0)return _0x5b0e26(0x15f);return!![];}});return{'dbId':Number(_0x37ffca['trim']())};}async function resolveSqlModeInput(_0x2436af){const _0x2f7580=a183_0x5858a8,_0x5c4413=_0x2436af['str'](_0x2f7580(0x195))[_0x2f7580(0x190)]();if(_0x5c4413===_0x2f7580(0x17c)||_0x5c4413===_0x2f7580(0x19b))return _0x5c4413;if(_0x2436af[_0x2f7580(0x196)])throw CliErrors[_0x2f7580(0x174)](_0x2f7580(0x195),_0x2f7580(0x163));return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x2f7580(0x172),'value':_0x2f7580(0x17c),'description':_0x2f7580(0x169)},{'name':'MyBatis\x20XML(mybatisXml)','value':'mybatisXml','description':_0x2f7580(0x16b)}]});}function serializeDbSelection(_0x286bd7){const _0xe69482=a183_0x5858a8;return JSON[_0xe69482(0x16d)]({'dbId':_0x286bd7[_0xe69482(0x18e)],'dbName':_0x286bd7[_0xe69482(0x179)]});}function deserializeDbSelection(_0x433106){const _0x27232f=a183_0x5858a8;try{const _0x5061f4=JSON[_0x27232f(0x184)](_0x433106);if(typeof _0x5061f4[_0x27232f(0x18e)]===_0x27232f(0x183)&&Number['isFinite'](_0x5061f4[_0x27232f(0x18e)]))return{'dbId':_0x5061f4[_0x27232f(0x18e)],'dbName':_0x5061f4['dbName']};}catch{}throw CliErrors[_0x27232f(0x164)](_0x27232f(0x166)+_0x433106);}function resolveProvidedDbId(_0x41005f){const _0x1f7f78=a183_0x5858a8,_0x58119b=_0x41005f[_0x1f7f78(0x191)](_0x1f7f78(0x18d));if(typeof _0x58119b===_0x1f7f78(0x183)&&Number['isFinite'](_0x58119b))return _0x58119b;return undefined;}
|
|
1
|
+
const a183_0x2d4931=a183_0x5729;(function(_0x11da34,_0x2cb730){const _0x2d22c8=a183_0x5729,_0x498f7f=_0x11da34();while(!![]){try{const _0x439e07=-parseInt(_0x2d22c8(0x1dc))/0x1*(parseInt(_0x2d22c8(0x1fd))/0x2)+parseInt(_0x2d22c8(0x1cb))/0x3*(-parseInt(_0x2d22c8(0x1f4))/0x4)+parseInt(_0x2d22c8(0x208))/0x5*(-parseInt(_0x2d22c8(0x205))/0x6)+-parseInt(_0x2d22c8(0x206))/0x7+parseInt(_0x2d22c8(0x1da))/0x8*(parseInt(_0x2d22c8(0x1e7))/0x9)+parseInt(_0x2d22c8(0x1e2))/0xa*(-parseInt(_0x2d22c8(0x1cf))/0xb)+parseInt(_0x2d22c8(0x1d3))/0xc;if(_0x439e07===_0x2cb730)break;else _0x498f7f['push'](_0x498f7f['shift']());}catch(_0x3aaf04){_0x498f7f['push'](_0x498f7f['shift']());}}}(a183_0x2f1b,0xa61d6));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(_0x697af1){const _0x1bb9fd=a183_0x5729;if(_0x697af1===_0x1bb9fd(0x204))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x1bb9fd(0x1ef),_0x1bb9fd(0x20b),''][_0x1bb9fd(0x1f7)]('\x0a');return[_0x1bb9fd(0x1d0),''][_0x1bb9fd(0x1f7)]('\x0a');}function a183_0x5729(_0x1d04c5,_0x1585c5){_0x1d04c5=_0x1d04c5-0x1c8;const _0x2f1bfe=a183_0x2f1b();let _0x572938=_0x2f1bfe[_0x1d04c5];return _0x572938;}export const sqlCreate={'service':a183_0x2d4931(0x1cc),'command':a183_0x2d4931(0x1fe),'description':a183_0x2d4931(0x1d2),'risk':a183_0x2d4931(0x1d5),'flags':[{'name':a183_0x2d4931(0x20a),'type':a183_0x2d4931(0x1c8),'description':a183_0x2d4931(0x200)},{'name':a183_0x2d4931(0x1e0),'type':'number','description':a183_0x2d4931(0x1dd)},{'name':a183_0x2d4931(0x201),'type':'string','enum':[a183_0x2d4931(0x1cc),a183_0x2d4931(0x204)],'description':a183_0x2d4931(0x1d6)}],async 'validate'(_0x5e07eb){const _0x37499e=a183_0x2d4931;if(!_0x5e07eb[_0x37499e(0x1de)])return;if(!_0x5e07eb['str']('name')[_0x37499e(0x1e8)]())throw CliErrors[_0x37499e(0x1fa)](_0x37499e(0x20a),_0x37499e(0x1f5));const _0x18ae13=resolveProvidedDbId(_0x5e07eb);if(typeof _0x18ae13!==_0x37499e(0x1d7)||!Number[_0x37499e(0x1e4)](_0x18ae13)||_0x18ae13<=0x0)throw CliErrors[_0x37499e(0x1fa)](_0x37499e(0x1e0),_0x37499e(0x1f8));if(!_0x5e07eb[_0x37499e(0x1f6)]('mode')[_0x37499e(0x1e8)]())throw CliErrors['flagMissing']('mode',_0x37499e(0x1cd));},async 'dryRun'(_0x488fa6){const _0x4a2192=a183_0x2d4931,_0x5272ad=loadSqlProjectConfig(_0x488fa6[_0x4a2192(0x1d9)]),{sqlName:_0xb3a4d0,dbId:_0x107a54,dbName:_0x2afa2e,mode:_0x306d2f}=await resolveSqlNewInputs(_0x488fa6),_0xc860b8=buildSqlRelativePath('<server-generated-sqlCode>',_0xb3a4d0,_0x2afa2e,_0x306d2f,_0x107a54),_0x3cf391=_0x5272ad[_0x4a2192(0x1f1)]+'/'+_0xc860b8;return{'method':_0x4a2192(0x1ea),'url':_0x4a2192(0x1ee),'body':{'appCode':_0x488fa6[_0x4a2192(0x1d9)],'sqlName':_0xb3a4d0,'dbId':_0x107a54,'mode':_0x306d2f,'localPath':_0x3cf391},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x5272ad['sqlRootDir']};},async 'execute'(_0x21fda9){const _0x19c420=a183_0x2d4931,_0x14b17c=loadSqlProjectConfig(_0x21fda9['appCode']),{sqlName:_0x4de795,dbId:_0x196554,dbName:_0x52debb,mode:_0x1051ea}=await resolveSqlNewInputs(_0x21fda9),_0xb208a9=generateSqlTemplate(_0x1051ea),_0x2f4723=await createSqlQuery({'appCode':_0x21fda9['appCode'],'sqlName':_0x4de795,'dbId':_0x196554,'sqlContent':_0xb208a9}),_0x573e20=ensureRemoteSqlContent(_0x2f4723),_0x4715ea=_0x52debb||await getDbName(_0x21fda9[_0x19c420(0x1d9)],_0x196554)[_0x19c420(0x1ed)](()=>undefined),_0x4628ff=buildSqlRelativePath(_0x2f4723[_0x19c420(0x1d4)],_0x2f4723['sqlName'],_0x4715ea,_0x1051ea,_0x196554),_0x4f458c=_0x14b17c[_0x19c420(0x1f1)]+'/'+_0x4628ff,_0xfa1a7e=buildLocalSqlFileContent({'sqlCode':_0x2f4723['sqlCode'],'sqlName':_0x2f4723[_0x19c420(0x1c9)],'dbId':_0x2f4723['dbId']},_0x573e20,{'dbName':_0x4715ea,'mode':_0x1051ea,'syncedAt':new Date()[_0x19c420(0x1eb)](),'description':_0x2f4723[_0x19c420(0x1f2)]});if(await fileExists(_0x4f458c))throw CliErrors[_0x19c420(0x1e3)](_0x19c420(0x1e5)+_0x4f458c);await ensureParentDirectory(_0x4f458c),await writeFile(_0x4f458c,_0xfa1a7e,_0x19c420(0x1f0));const _0x41b81a=await readSqlLockFile(_0x14b17c['lockFilePath']),{lockData:_0x1318e4,appLock:_0x14ea85}=ensureSqlLockScope(_0x41b81a??createEmptySqlLock(),_0x14b17c[_0x19c420(0x1d9)],_0x14b17c[_0x19c420(0x207)],_0x19c420(0x20d));return _0x14ea85['sqls'][_0x2f4723[_0x19c420(0x1d4)]]={...buildSqlLockEntry(_0x2f4723,_0x573e20,computeSqlContentHash(_0xfa1a7e),{'dbName':_0x4715ea}),'path':_0x4628ff,'mode':_0x1051ea},_0x14ea85[_0x19c420(0x1e1)]=new Date()['toISOString'](),await writeSqlLockFile(_0x14b17c[_0x19c420(0x1f9)],_0x1318e4),{'ok':!![],'data':{'id':_0x2f4723['id'],'sqlCode':_0x2f4723[_0x19c420(0x1d4)],'sqlName':_0x2f4723[_0x19c420(0x1c9)],'dbId':_0x2f4723[_0x19c420(0x1fb)],'path':_0x4f458c,'mode':_0x1051ea},'message':'Created\x20SQL\x20query\x20'+_0x2f4723[_0x19c420(0x1d4)]};}};async function resolveSqlNewInputs(_0x5ec232){const _0x22309c=await resolveSqlNameInput(_0x5ec232),{dbId:_0x28287c,dbName:_0x3af80a}=await resolveDbSelection(_0x5ec232),_0x11fbaf=await resolveSqlModeInput(_0x5ec232);return{'sqlName':_0x22309c,'dbId':_0x28287c,'dbName':_0x3af80a,'mode':_0x11fbaf};}async function resolveSqlNameInput(_0x14fb02){const _0x4afec5=a183_0x2d4931,_0x590705=_0x14fb02[_0x4afec5(0x1f6)](_0x4afec5(0x20a))[_0x4afec5(0x1e8)]();if(_0x590705)return _0x590705;if(_0x14fb02['nonInteractive'])throw CliErrors[_0x4afec5(0x1fa)](_0x4afec5(0x20a),_0x4afec5(0x1f5));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x4eb17d=>_0x4eb17d[_0x4afec5(0x1e8)]()?!![]:_0x4afec5(0x1ec)}))[_0x4afec5(0x1e8)]();}async function resolveDbSelection(_0x1a0636){const _0x187050=a183_0x2d4931,_0x2da4a4=resolveProvidedDbId(_0x1a0636);if(typeof _0x2da4a4==='number'&&Number[_0x187050(0x1e4)](_0x2da4a4)&&_0x2da4a4>0x0)return{'dbId':_0x2da4a4,'dbName':await getDbName(_0x1a0636[_0x187050(0x1d9)],_0x2da4a4)[_0x187050(0x1ed)](()=>undefined)};if(_0x1a0636[_0x187050(0x1de)])throw CliErrors[_0x187050(0x1fa)]('db-id',_0x187050(0x1f8));const _0x36b377=await listDatabases(_0x1a0636[_0x187050(0x1d9)])[_0x187050(0x1ed)](()=>[]);if(_0x36b377[_0x187050(0x1f3)]===0x1)return{'dbId':_0x36b377[0x0][_0x187050(0x1fb)],'dbName':_0x36b377[0x0][_0x187050(0x1d8)]};if(_0x36b377[_0x187050(0x1f3)]>0x1){const _0x1760f4=await select({'message':_0x187050(0x1fc),'choices':[..._0x36b377['map'](_0x599e0b=>({'name':_0x599e0b[_0x187050(0x1d8)]+'\x20('+_0x599e0b[_0x187050(0x1fb)]+')','value':serializeDbSelection(_0x599e0b)})),{'name':_0x187050(0x1db),'value':_0x187050(0x203)}]});if(_0x1760f4!==_0x187050(0x203))return deserializeDbSelection(_0x1760f4);}const _0x4ceff6=await input({'message':_0x187050(0x1ff),'validate':_0x3929ec=>{const _0x4d624e=_0x187050,_0x2aa335=_0x3929ec[_0x4d624e(0x1e8)]();if(!_0x2aa335)return _0x4d624e(0x209);const _0x72114f=Number(_0x2aa335);if(!Number[_0x4d624e(0x1e9)](_0x72114f)||_0x72114f<=0x0)return _0x4d624e(0x1df);return!![];}});return{'dbId':Number(_0x4ceff6['trim']())};}async function resolveSqlModeInput(_0x388420){const _0x1e4423=a183_0x2d4931,_0x4e87d5=_0x388420['str'](_0x1e4423(0x201))[_0x1e4423(0x1e8)]();if(_0x4e87d5===_0x1e4423(0x1cc)||_0x4e87d5===_0x1e4423(0x204))return _0x4e87d5;if(_0x388420[_0x1e4423(0x1de)])throw CliErrors[_0x1e4423(0x1fa)](_0x1e4423(0x201),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x1e4423(0x20c),'value':_0x1e4423(0x1cc),'description':_0x1e4423(0x202)},{'name':_0x1e4423(0x1e6),'value':'mybatisXml','description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x19df51){const _0x3f5222=a183_0x2d4931;return JSON[_0x3f5222(0x1d1)]({'dbId':_0x19df51[_0x3f5222(0x1fb)],'dbName':_0x19df51[_0x3f5222(0x1d8)]});}function deserializeDbSelection(_0x357409){const _0x57b0be=a183_0x2d4931;try{const _0x331433=JSON[_0x57b0be(0x1ce)](_0x357409);if(typeof _0x331433[_0x57b0be(0x1fb)]===_0x57b0be(0x1d7)&&Number[_0x57b0be(0x1e4)](_0x331433['dbId']))return{'dbId':_0x331433['dbId'],'dbName':_0x331433[_0x57b0be(0x1d8)]};}catch{}throw CliErrors[_0x57b0be(0x1e3)](_0x57b0be(0x1ca)+_0x357409);}function resolveProvidedDbId(_0x425f96){const _0x286aba=a183_0x2d4931,_0x58b893=_0x425f96['flag'](_0x286aba(0x1e0));if(typeof _0x58b893==='number'&&Number[_0x286aba(0x1e4)](_0x58b893))return _0x58b893;return undefined;}function a183_0x2f1b(){const _0xddcbeb=['普通\x20SQL(sql)','new','string','sqlName','Invalid\x20database\x20selection\x20payload:\x20','1083252eozMXl','sql','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','parse','9611481CNEAeK','SELECT\x201\x20AS\x20id;','stringify','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','45325296OzAByB','sqlCode','write','Local\x20SQL\x20file\x20mode','number','dbName','appCode','416YQZRtV','✎\x20手动输入\x20dbId','5433QUPfWB','Target\x20database\x20ID','nonInteractive','dbId\x20必须为正整数','db-id','lastSync','10dnBFZp','validation','isFinite','File\x20already\x20exists:\x20','MyBatis\x20XML(mybatisXml)','216CgaBwd','trim','isInteger','POST','toISOString','SQL\x20名称不能为空','catch','/smartapi/custom/saveUserCustomSql','\x20\x20SELECT\x201\x20AS\x20id','utf8','sqlRootDir','description','length','4pziBDO','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','str','join','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','lockFilePath','flagMissing','dbId','请选择目标数据库:','54HdnLqR','create','请输入目标数据库\x20dbId:','SQL\x20query\x20display\x20name','mode','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','__manual__','mybatisXml','1726242JRqMnV','5972981JDveWK','sqlRoot','15uiLwMo','dbId\x20不能为空','name','</select>'];a183_0x2f1b=function(){return _0xddcbeb;};return a183_0x2f1b();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a184_0x11db02=a184_0x5760;(function(_0x4bf2c2,_0x483718){const _0x10fe6e=a184_0x5760,_0x49e8c8=_0x4bf2c2();while(!![]){try{const _0x5c0181=-parseInt(_0x10fe6e(0x163))/0x1+-parseInt(_0x10fe6e(0x165))/0x2*(-parseInt(_0x10fe6e(0x172))/0x3)+parseInt(_0x10fe6e(0x184))/0x4+parseInt(_0x10fe6e(0x166))/0x5*(-parseInt(_0x10fe6e(0x16a))/0x6)+-parseInt(_0x10fe6e(0x183))/0x7+-parseInt(_0x10fe6e(0x162))/0x8+parseInt(_0x10fe6e(0x167))/0x9*(-parseInt(_0x10fe6e(0x160))/0xa);if(_0x5c0181===_0x483718)break;else _0x49e8c8['push'](_0x49e8c8['shift']());}catch(_0x5284c3){_0x49e8c8['push'](_0x49e8c8['shift']());}}}(a184_0xee5a,0x23273));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';function a184_0xee5a(){const _0x2821bf=['743164ifPsiK','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','length','660290fPTaXL','remoteId','919920hsIRQu','49575NGQnPy','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','569744AFPlpq','71885ubGIdp','9DtEAxl','lastSync','sqlcode','12EXgthT','toISOString','delete','sqls','str','fromEntries','Would\x20delete\x20SQL\x20','sqlRoot','3VQvRnE','trashDir','/smartapi/custom/deleteUserCustomSql','SQL\x20lock\x20file\x20not\x20found.','Deleted\x20','sql','lockFilePath','filter','appCode','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','high-risk-write','\x20(local\x20file\x20moved\x20to\x20trash)','entries','validation','sqlRootDir','projectRoot','startsWith','471296yReKLz'];a184_0xee5a=function(){return _0x2821bf;};return a184_0xee5a();}import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';function a184_0x5760(_0x21e834,_0x2a7384){_0x21e834=_0x21e834-0x15f;const _0xee5a47=a184_0xee5a();let _0x5760eb=_0xee5a47[_0x21e834];return _0x5760eb;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a184_0x11db02(0x177),'command':a184_0x11db02(0x16c),'description':'Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','risk':a184_0x11db02(0x17c),'flags':[SQLCODE_FLAG],async 'validate'(_0x493ead){const _0x22218f=a184_0x11db02,_0x49a9b9=loadSqlProjectConfig(_0x493ead[_0x22218f(0x17a)]),_0x2ec55b=await readSqlLockFile(_0x49a9b9[_0x22218f(0x178)]);if(!_0x2ec55b)throw CliErrors[_0x22218f(0x17f)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x442bfa){const _0x2d8069=a184_0x11db02,_0x421ab9=loadSqlProjectConfig(_0x442bfa['appCode']),_0x442f6e=await readSqlLockFile(_0x421ab9[_0x2d8069(0x178)]);if(!_0x442f6e)throw CliErrors[_0x2d8069(0x17f)](_0x2d8069(0x17b));const {appLock:_0x515486}=ensureSqlLockScope(_0x442f6e,_0x442bfa[_0x2d8069(0x17a)],_0x421ab9[_0x2d8069(0x171)],_0x2d8069(0x16c)),_0x5b6ca0=_0x442bfa['str'](_0x2d8069(0x169)),_0x439ec5=_0x515486[_0x2d8069(0x16d)][_0x5b6ca0];if(!_0x439ec5)throw CliErrors['validation'](_0x2d8069(0x164)+_0x5b6ca0+'\x22.');return{'method':'POST','url':_0x2d8069(0x174),'body':{'sqlCode':_0x5b6ca0,'id':_0x439ec5['remoteId'],'localPath':resolveLocalSqlFilePath(_0x421ab9,_0x5b6ca0,_0x439ec5)},'description':_0x2d8069(0x170)+_0x5b6ca0+_0x2d8069(0x185)+_0x421ab9[_0x2d8069(0x173)]};},async 'execute'(_0x3b7e48){const _0xcd6629=a184_0x11db02,_0x5724e6=loadSqlProjectConfig(_0x3b7e48[_0xcd6629(0x17a)]),_0x39b9de=await readSqlLockFile(_0x5724e6['lockFilePath']);if(!_0x39b9de)throw CliErrors[_0xcd6629(0x17f)](_0xcd6629(0x175));const {lockData:_0x4b8d8c,appLock:_0x52705f}=ensureSqlLockScope(_0x39b9de,_0x3b7e48[_0xcd6629(0x17a)],_0x5724e6[_0xcd6629(0x171)],_0xcd6629(0x16c)),_0x9ed9fb=_0x3b7e48[_0xcd6629(0x16e)](_0xcd6629(0x169)),_0x55562e=_0x52705f[_0xcd6629(0x16d)][_0x9ed9fb];if(!_0x55562e)throw CliErrors[_0xcd6629(0x17f)](_0xcd6629(0x164)+_0x9ed9fb+'\x22.');await deleteSqlQuery({'id':_0x55562e[_0xcd6629(0x161)],'sqlCode':_0x9ed9fb}),_0x52705f['sqls']=Object[_0xcd6629(0x16f)](Object[_0xcd6629(0x17e)](_0x52705f[_0xcd6629(0x16d)])[_0xcd6629(0x179)](([_0x127f13])=>_0x127f13!==_0x9ed9fb)),_0x52705f[_0xcd6629(0x168)]=new Date()[_0xcd6629(0x16b)](),await writeSqlLockFile(_0x5724e6[_0xcd6629(0x178)],_0x4b8d8c);const _0x3a3a50=resolveLocalSqlFilePath(_0x5724e6,_0x9ed9fb,_0x55562e);let _0xf3d05d;await fileExists(_0x3a3a50)&&(_0xf3d05d=await moveToTrash(_0x5724e6[_0xcd6629(0x181)],_0x5724e6['trashDir'],_0x3a3a50),await cleanupEmptyDirectories(dirname(_0x3a3a50),_0x5724e6[_0xcd6629(0x180)]));const _0x57e63c={'deleted':_0x9ed9fb,'remoteId':_0x55562e[_0xcd6629(0x161)]};if(_0xf3d05d)_0x57e63c['trashedTo']=_0xf3d05d;return{'ok':!![],'data':_0x57e63c,'message':_0xcd6629(0x176)+_0x9ed9fb+(_0xf3d05d?_0xcd6629(0x17d):'')};}};async function moveToTrash(_0x5f4147,_0x54d4ce,_0x42454c){const _0x3ef095=new Date()['toISOString']()['replace'](/[:.]/g,'-'),_0xf1ea08=relative(_0x5f4147,_0x42454c),_0x55a40b=join(_0x54d4ce,_0x3ef095,_0xf1ea08);return await mkdir(dirname(_0x55a40b),{'recursive':!![]}),await rename(_0x42454c,_0x55a40b),_0x55a40b;}async function cleanupEmptyDirectories(_0x26c123,_0x1b42f7){const _0xf355d1=a184_0x11db02;let _0x158fa5=resolve(_0x26c123);const _0x1f0b19=resolve(_0x1b42f7);while(_0x158fa5[_0xf355d1(0x182)](''+_0x1f0b19+sep)||_0x158fa5===_0x1f0b19){if(_0x158fa5===_0x1f0b19)return;try{const _0x5d5757=await readdir(_0x158fa5);if(_0x5d5757[_0xf355d1(0x15f)]>0x0)return;await rmdir(_0x158fa5);}catch{return;}_0x158fa5=dirname(_0x158fa5);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a185_0xf7ab(_0x1a1438,_0x1975c9){_0x1a1438=_0x1a1438-0x1f4;const _0x270652=a185_0x2706();let _0xf7ab59=_0x270652[_0x1a1438];return _0xf7ab59;}const a185_0x2775f8=a185_0xf7ab;(function(_0x3120d9,_0x16a930){const _0x4f3e50=a185_0xf7ab,_0x47eb0b=_0x3120d9();while(!![]){try{const _0x5e122b=-parseInt(_0x4f3e50(0x1f5))/0x1*(parseInt(_0x4f3e50(0x201))/0x2)+parseInt(_0x4f3e50(0x1fa))/0x3*(parseInt(_0x4f3e50(0x1fe))/0x4)+-parseInt(_0x4f3e50(0x1fd))/0x5+parseInt(_0x4f3e50(0x204))/0x6*(parseInt(_0x4f3e50(0x203))/0x7)+parseInt(_0x4f3e50(0x206))/0x8*(-parseInt(_0x4f3e50(0x1f8))/0x9)+parseInt(_0x4f3e50(0x1f9))/0xa*(-parseInt(_0x4f3e50(0x205))/0xb)+parseInt(_0x4f3e50(0x1f7))/0xc;if(_0x5e122b===_0x16a930)break;else _0x47eb0b['push'](_0x47eb0b['shift']());}catch(_0x12ca82){_0x47eb0b['push'](_0x47eb0b['shift']());}}}(a185_0x2706,0x3db02));import{getSqlQueryInfo}from'../../core/api-client.js';function a185_0x2706(){const _0x50d5e3=['26TsGHYL','Return\x20full\x20raw\x20SQL\x20query\x20object','56nRKjSZ','228006hkWCbf','464222CDBQbS','699560ZxMZar','str','description','sqlCode','boolean','27983HFWKAm','verbose','5493048rJaWBW','9OqBTWl','40dmktOl','246ZzViWv','appCode','sqlContent','663390rkeYNl','11884xQBAcb','dbId','sqlName'];a185_0x2706=function(){return _0x50d5e3;};return a185_0x2706();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':'detail','description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':'verbose','type':a185_0x2775f8(0x1f4),'description':a185_0x2775f8(0x202)}],async 'execute'(_0x367512){const _0x3af22d=a185_0x2775f8,_0x6f52b7=await getSqlQueryInfo(_0x367512[_0x3af22d(0x1fb)],_0x367512[_0x3af22d(0x207)]('sqlcode')),_0x1d2690=_0x367512['bool'](_0x3af22d(0x1f6));if(_0x1d2690)return{'ok':!![],'data':_0x6f52b7};const _0x4d1f85=_0x6f52b7['dbId']?await getDbName(_0x367512['appCode'],_0x6f52b7[_0x3af22d(0x1ff)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x6f52b7[_0x3af22d(0x209)],'sqlName':_0x6f52b7[_0x3af22d(0x200)],'db':_0x4d1f85?_0x4d1f85+'\x20('+_0x6f52b7['dbId']+')':_0x6f52b7[_0x3af22d(0x1ff)]??'','description':_0x6f52b7[_0x3af22d(0x208)]??'','sqlContent':_0x6f52b7[_0x3af22d(0x1fc)]??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a186_0x595665=a186_0x11cd;function a186_0x11cd(_0x1c46df,_0x33d57a){_0x1c46df=_0x1c46df-0xc1;const _0x369eee=a186_0x369e();let _0x11cdce=_0x369eee[_0x1c46df];return _0x11cdce;}(function(_0x4de42f,_0x5b83cb){const _0x56454f=a186_0x11cd,_0x10766a=_0x4de42f();while(!![]){try{const _0x4b6b96=-parseInt(_0x56454f(0xc4))/0x1+-parseInt(_0x56454f(0xd3))/0x2*(-parseInt(_0x56454f(0xc8))/0x3)+-parseInt(_0x56454f(0xc6))/0x4+-parseInt(_0x56454f(0xcf))/0x5+-parseInt(_0x56454f(0xc7))/0x6*(-parseInt(_0x56454f(0xd0))/0x7)+-parseInt(_0x56454f(0xcc))/0x8*(parseInt(_0x56454f(0xd5))/0x9)+parseInt(_0x56454f(0xc5))/0xa;if(_0x4b6b96===_0x5b83cb)break;else _0x10766a['push'](_0x10766a['shift']());}catch(_0xd3a929){_0x10766a['push'](_0x10766a['shift']());}}}(a186_0x369e,0x493ee));function a186_0x369e(){const _0x3eee0c=['189WOroQL','\x20row(s)\x20in\x20','sqlcode','SQL\x20execution\x20failed','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','params','exec','length','352630uSnfqp','11254040LxMvqG','600200Xfpyzl','2894898NabbAQ','3CRYPbn','appCode','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','str','107544zIFGKM','isArray','sql','2640215UbiHGr','7tpKjKT','read','execError','10306WsXERo','execSuccess'];a186_0x369e=function(){return _0x3eee0c;};return a186_0x369e();}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':a186_0x595665(0xce),'command':a186_0x595665(0xc2),'description':a186_0x595665(0xd9),'risk':a186_0x595665(0xd1),'flags':[SQLCODE_FLAG,{'name':a186_0x595665(0xc1),'type':'string','description':a186_0x595665(0xca)}],async 'execute'(_0x49df05){const _0x17de07=a186_0x595665,_0x3b840e=parseJsonParams(_0x49df05[_0x17de07(0xcb)]('params')),_0x54cf5f=Date['now'](),_0x1224f8=await executeSql(_0x49df05[_0x17de07(0xc9)],_0x49df05['str'](_0x17de07(0xd7)),_0x3b840e),_0x182d47=Date['now']()-_0x54cf5f,_0x2e567c=_0x1224f8?.['execResult']??_0x1224f8,_0x434677=_0x1224f8?.[_0x17de07(0xd4)]??!![];if(!_0x434677)return{'ok':![],'data':{'error':_0x1224f8?.[_0x17de07(0xd2)]||_0x17de07(0xd8),'elapsed':_0x182d47},'message':_0x17de07(0xd8)};const _0x1cda59=Array[_0x17de07(0xcd)](_0x2e567c)?_0x2e567c:[];return{'ok':!![],'data':{'rows':_0x1cda59,'rowCount':_0x1cda59[_0x17de07(0xc3)],'elapsed':_0x182d47},'message':'Returned\x20'+_0x1cda59['length']+_0x17de07(0xd6)+_0x182d47+'ms'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a187_0x3f61(){const _0x496c99=['765432udcWKy','10HKNrho','205284HsIpMe','7UPKTWf','83510tRnJzA','4SmcpaA','72786BzVqlD','31905wrUZhj','286vkotYv','976452boMAeY','1815488YTxndB'];a187_0x3f61=function(){return _0x496c99;};return a187_0x3f61();}(function(_0x5983ba,_0x140f24){const _0x35a560=a187_0x3ebc,_0x11559a=_0x5983ba();while(!![]){try{const _0x3ca851=parseInt(_0x35a560(0x162))/0x1+parseInt(_0x35a560(0x161))/0x2+parseInt(_0x35a560(0x15d))/0x3*(parseInt(_0x35a560(0x160))/0x4)+parseInt(_0x35a560(0x15c))/0x5*(-parseInt(_0x35a560(0x164))/0x6)+parseInt(_0x35a560(0x15e))/0x7*(parseInt(_0x35a560(0x165))/0x8)+-parseInt(_0x35a560(0x15b))/0x9+parseInt(_0x35a560(0x15f))/0xa*(parseInt(_0x35a560(0x163))/0xb);if(_0x3ca851===_0x140f24)break;else _0x11559a['push'](_0x11559a['shift']());}catch(_0xdc761b){_0x11559a['push'](_0x11559a['shift']());}}}(a187_0x3f61,0x29910));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';function a187_0x3ebc(_0x188f70,_0x53d207){_0x188f70=_0x188f70-0x15b;const _0x3f615d=a187_0x3f61();let _0x3ebc50=_0x3f615d[_0x188f70];return _0x3ebc50;}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,sqlExec,sqlPull,sqlDelete];
|
package/lib/commands/sql/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a188_0x3f7f(){const _0x1d65ef=['\x20SQL\x20queries\x20(total:\x20','1910vxImbE','Found\x20','No\x20custom\x20SQL\x20queries\x20found.','appCode','39108vtHFUB','str','Filter\x20by\x20SQL\x20name','string','30dfHarY','sqlCode','dbId','tableData','paging','list','number','length','2275011sPgVFw','15562074vAehhw','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','454644VzGqrd','sqlName','3796930ZJXSJx','num','verbose','4dbeTad','map','566IbRlyB','page','name','1099GXMSxE','2568768sHvCbM','sql','boolean','Page\x20size'];a188_0x3f7f=function(){return _0x1d65ef;};return a188_0x3f7f();}const a188_0x4ed5a4=a188_0x2a17;(function(_0x11e9f3,_0x4b7742){const _0x5735bc=a188_0x2a17,_0x1bcdc7=_0x11e9f3();while(!![]){try{const _0x369a50=parseInt(_0x5735bc(0x9e))/0x1*(-parseInt(_0x5735bc(0x95))/0x2)+parseInt(_0x5735bc(0x8b))/0x3*(parseInt(_0x5735bc(0x93))/0x4)+parseInt(_0x5735bc(0x90))/0x5+-parseInt(_0x5735bc(0xa2))/0x6*(parseInt(_0x5735bc(0x98))/0x7)+-parseInt(_0x5735bc(0x99))/0x8+parseInt(_0x5735bc(0x8e))/0x9*(-parseInt(_0x5735bc(0x83))/0xa)+parseInt(_0x5735bc(0x8c))/0xb;if(_0x369a50===_0x4b7742)break;else _0x1bcdc7['push'](_0x1bcdc7['shift']());}catch(_0x3de406){_0x1bcdc7['push'](_0x1bcdc7['shift']());}}}(a188_0x3f7f,0xdabd5));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a188_0x2a17(_0x15a07c,_0x1c503b){_0x15a07c=_0x15a07c-0x80;const _0x3f7f3a=a188_0x3f7f();let _0x2a174d=_0x3f7f3a[_0x15a07c];return _0x2a174d;}export const sqlList={'service':a188_0x4ed5a4(0x9a),'command':a188_0x4ed5a4(0x88),'description':'List\x20custom\x20SQL\x20queries','risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a188_0x4ed5a4(0x97),'type':a188_0x4ed5a4(0x82),'description':a188_0x4ed5a4(0x81)},{'name':a188_0x4ed5a4(0x96),'type':a188_0x4ed5a4(0x89),'description':'Page\x20number','default':0x1},{'name':'pagesize','type':a188_0x4ed5a4(0x89),'description':a188_0x4ed5a4(0x9c)},{'name':'verbose','type':a188_0x4ed5a4(0x9b),'description':a188_0x4ed5a4(0x8d)}],async 'execute'(_0x1b0d94){const _0x4daed9=a188_0x4ed5a4,_0x271a1f=await listSqlQueries(_0x1b0d94[_0x4daed9(0xa1)],{'sqlCode':_0x1b0d94[_0x4daed9(0x80)]('sqlcode')||undefined,'sqlName':_0x1b0d94[_0x4daed9(0x80)]('name')||undefined,'currentPage':_0x1b0d94[_0x4daed9(0x91)]('page'),'pageSize':_0x1b0d94[_0x4daed9(0x91)]('pagesize',0x32)}),_0x54c43d=_0x1b0d94['bool'](_0x4daed9(0x92)),_0x358d88=_0x271a1f[_0x4daed9(0x86)]??[],_0x28d026=_0x271a1f[_0x4daed9(0x87)]?.['totalCount']??_0x358d88['length'];let _0x16984d;return _0x54c43d?_0x16984d=_0x358d88:_0x16984d=await Promise['all'](_0x358d88[_0x4daed9(0x94)](async _0x48932f=>{const _0x52293b=_0x4daed9;let _0x39d4fd;try{_0x39d4fd=_0x48932f[_0x52293b(0x85)]?await getDbName(_0x1b0d94[_0x52293b(0xa1)],_0x48932f[_0x52293b(0x85)]):undefined;}catch{}return{'sqlCode':_0x48932f[_0x52293b(0x84)],'sqlName':_0x48932f[_0x52293b(0x8f)],'description':_0x48932f['description']??'','db':_0x39d4fd?_0x39d4fd+'\x20('+_0x48932f['dbId']+')':_0x48932f[_0x52293b(0x85)]??''};})),{'ok':!![],'data':_0x16984d,'message':_0x358d88[_0x4daed9(0x8a)]===0x0?_0x4daed9(0xa0):_0x4daed9(0x9f)+_0x358d88[_0x4daed9(0x8a)]+_0x4daed9(0x9d)+_0x28d026+').'};}};
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a189_0x5a526f=a189_0x56c7;(function(_0x2204cd,_0x122cbc){const _0x43188a=a189_0x56c7,_0x25eed2=_0x2204cd();while(!![]){try{const _0x25669d=-parseInt(_0x43188a(0x84))/0x1+-parseInt(_0x43188a(0x97))/0x2+-parseInt(_0x43188a(0xa0))/0x3+parseInt(_0x43188a(0x9d))/0x4+parseInt(_0x43188a(0x90))/0x5*(-parseInt(_0x43188a(0x94))/0x6)+parseInt(_0x43188a(0x91))/0x7+parseInt(_0x43188a(0xa3))/0x8*(parseInt(_0x43188a(0xa8))/0x9);if(_0x25669d===_0x122cbc)break;else _0x25eed2['push'](_0x25eed2['shift']());}catch(_0x2d4a02){_0x25eed2['push'](_0x25eed2['shift']());}}}(a189_0x25c8,0x39a08));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';function a189_0x25c8(){const _0x2bc6a5=['name','read','message','Pull\x20complete:\x20','unchanged','skipped','POST','string','\x20SQL\x20file(s)\x20into\x20','paging','\x20failed','would_pull','sql','replace','lastSync','lockFilePath','sqlRoot','sqlName','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','14692gPqDrG','path','catch','toISOString','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','cancelled','length','split','local\x20differs\x20from\x20remote','description','appCode','sqls','95SsAkfU','626871HTWlXG','test','str','123738ISchsS','sqlContent','trimStart','741076RSinMo','\x20skipped,\x20','conflict','Would\x20pull\x20','sqlCode','sqlcode','1649928ckeUFL','pull','Force\x20overwrite\x20local\x20unsynced\x20changes','1107339YdazAc','utf8','tableData','469432gOCUja','dbId','boolean','push','sqlRootDir','135oEtXDY','join','mybatisXml','totalCount'];a189_0x25c8=function(){return _0x2bc6a5;};return a189_0x25c8();}import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x389808,_0x2a019b){const _0x23489f=a189_0x56c7,_0x3e81a6=[];let _0x2c89cf=0x1;while(!![]){const _0x4c4f51=await listSqlQueries(_0x389808,{'currentPage':_0x2c89cf,'pageSize':PAGE_SIZE,'sqlCode':_0x2a019b[_0x23489f(0x9b)],'sqlName':_0x2a019b[_0x23489f(0x82)]}),_0x1b12a5=_0x4c4f51[_0x23489f(0xa2)]??[];_0x3e81a6[_0x23489f(0xa6)](..._0x1b12a5);if(_0x1b12a5['length']===0x0)break;const _0x2ff895=_0x4c4f51[_0x23489f(0x7a)]?.[_0x23489f(0xab)];if(_0x2ff895!=null?_0x3e81a6[_0x23489f(0x8a)]>=_0x2ff895:_0x1b12a5[_0x23489f(0x8a)]<PAGE_SIZE)break;_0x2c89cf++;}return _0x3e81a6;}async function ensureSqlContent(_0x51cac6){const _0xe69cf3=a189_0x56c7;if(_0x51cac6[_0xe69cf3(0x95)]!=null&&String(_0x51cac6['sqlContent'])[_0xe69cf3(0x8a)]>0x0)return _0x51cac6;return getSqlQueryDetail(_0x51cac6[_0xe69cf3(0x9b)]);}export const sqlPull={'service':a189_0x5a526f(0x7d),'command':a189_0x5a526f(0x9e),'description':'Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','risk':a189_0x5a526f(0xad),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a189_0x5a526f(0xac),'type':a189_0x5a526f(0x78),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':'force','type':a189_0x5a526f(0xa5),'description':a189_0x5a526f(0x9f)}],async 'dryRun'(_0x15d796){const _0x4e027b=a189_0x5a526f,_0xc45e0e=loadSqlProjectConfig(_0x15d796[_0x4e027b(0x8e)]),_0x1ba307=await readSqlLockFile(_0xc45e0e[_0x4e027b(0x80)]),{appLock:_0x3e3c2a}=ensureSqlLockScope(_0x1ba307??createEmptySqlLock(),_0xc45e0e[_0x4e027b(0x8e)],_0xc45e0e[_0x4e027b(0x81)],'pull'),_0x2ae1e8=await fetchAllSqlQueries(_0x15d796['appCode'],{'sqlCode':_0x15d796['str'](_0x4e027b(0x9c))||undefined,'sqlName':_0x15d796[_0x4e027b(0x93)](_0x4e027b(0xac))||undefined}),_0x2d3e78=[];for(const _0x48b3ff of _0x2ae1e8){const _0xaef5f5=await ensureSqlContent(_0x48b3ff),_0x8f3a32=ensureRemoteSqlContent(_0xaef5f5),_0x27cb13=detectModeFromSql(_0xaef5f5),_0x4c4dfe=_0xaef5f5[_0x4e027b(0xa4)]?await getDbName(_0x15d796[_0x4e027b(0x8e)],Number(_0xaef5f5[_0x4e027b(0xa4)]))[_0x4e027b(0x86)](()=>undefined):undefined,_0x4cdb45=buildLocalSqlFileContent({'sqlCode':_0xaef5f5[_0x4e027b(0x9b)],'sqlName':_0xaef5f5[_0x4e027b(0x82)],'dbId':_0xaef5f5[_0x4e027b(0xa4)]},_0x8f3a32,{'dbName':_0x4c4dfe,'mode':_0x27cb13,'syncedAt':new Date()['toISOString'](),'description':_0xaef5f5[_0x4e027b(0x8d)]}),_0x49d635=buildSqlLockEntry(_0xaef5f5,_0x8f3a32,'',{'dbName':_0x4c4dfe}),_0x10f571=resolveLocalSqlFilePath(_0xc45e0e,_0xaef5f5['sqlCode'],_0x49d635);let _0x28bff3=_0x4e027b(0x7c),_0x1a7089;if(await fileExists(_0x10f571)){const _0x586a85=await readFile(_0x10f571,_0x4e027b(0xa1));isEquivalentPulledSqlFile(_0x586a85,_0x4cdb45,_0x27cb13)?(_0x28bff3=_0x4e027b(0x76),_0x1a7089=_0x4e027b(0xb0)):(_0x28bff3=_0x4e027b(0x99),_0x1a7089=_0x4e027b(0x88));}_0x2d3e78[_0x4e027b(0xa6)]({'sqlCode':_0xaef5f5[_0x4e027b(0x9b)],'sqlName':_0xaef5f5[_0x4e027b(0x82)],'filePath':_0x10f571,'status':_0x28bff3,'reason':_0x1a7089});}return{'method':_0x4e027b(0x77),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x15d796[_0x4e027b(0x8e)],'sqlCode':_0x15d796['str'](_0x4e027b(0x9c))||null,'sqlName':_0x15d796[_0x4e027b(0x93)](_0x4e027b(0xac))||null,'files':_0x2d3e78},'description':_0x4e027b(0x9a)+_0x2d3e78['length']+_0x4e027b(0x79)+_0xc45e0e[_0x4e027b(0xa7)]};},async 'execute'(_0xf35ee0){const _0x18005e=a189_0x5a526f,_0x5e9cdd=loadSqlProjectConfig(_0xf35ee0[_0x18005e(0x8e)]),_0x29474a=await readSqlLockFile(_0x5e9cdd['lockFilePath']),{lockData:_0x34ea68,appLock:_0x54c44b}=ensureSqlLockScope(_0x29474a??createEmptySqlLock(),_0x5e9cdd[_0x18005e(0x8e)],_0x5e9cdd[_0x18005e(0x81)],'pull'),_0x5b7280=_0xf35ee0['bool']('force'),_0x46126b=await fetchAllSqlQueries(_0xf35ee0[_0x18005e(0x8e)],{'sqlCode':_0xf35ee0['str'](_0x18005e(0x9c))||undefined,'sqlName':_0xf35ee0['str'](_0x18005e(0xac))||undefined});if(_0x46126b[_0x18005e(0x8a)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':'No\x20remote\x20SQL\x20queries\x20matched.'};const _0x35983f=[],_0x562bb8=[];for(const _0x4fa205 of _0x46126b){try{_0x35983f[_0x18005e(0xa6)](await ensureSqlContent(_0x4fa205));}catch(_0x12c06e){_0x562bb8[_0x18005e(0xa6)]({'sqlCode':_0x4fa205[_0x18005e(0x9b)],'error':_0x12c06e instanceof Error?_0x12c06e[_0x18005e(0xae)]:String(_0x12c06e)});}}if(_0x5b7280&&!_0xf35ee0['nonInteractive']){let _0x72c731=![];for(const _0x46ae8d of _0x35983f){const _0x107abd=detectModeFromSql(_0x46ae8d),_0x3bee33=_0x46ae8d['dbId']?await getDbName(_0xf35ee0[_0x18005e(0x8e)],Number(_0x46ae8d['dbId']))[_0x18005e(0x86)](()=>undefined):undefined,_0x312bb0=buildLocalSqlFileContent({'sqlCode':_0x46ae8d[_0x18005e(0x9b)],'sqlName':_0x46ae8d[_0x18005e(0x82)],'dbId':_0x46ae8d[_0x18005e(0xa4)]},ensureRemoteSqlContent(_0x46ae8d),{'dbName':_0x3bee33,'mode':_0x107abd,'syncedAt':new Date()[_0x18005e(0x87)](),'description':_0x46ae8d['description']}),_0x989eae=resolveLocalSqlFilePath(_0x5e9cdd,_0x46ae8d['sqlCode'],buildSqlLockEntry(_0x46ae8d,ensureRemoteSqlContent(_0x46ae8d),'',{'dbName':_0x3bee33}));if(await fileExists(_0x989eae)){const _0xfdacf0=await readFile(_0x989eae,'utf8');if(!isEquivalentPulledSqlFile(_0xfdacf0,_0x312bb0,_0x107abd)){_0x72c731=!![];break;}}}if(_0x72c731){const _0x3fd3f8=await confirmForceOverwrite(_0x18005e(0x83));if(!_0x3fd3f8)throw CliErrors[_0x18005e(0x89)]('Force\x20pull\x20cancelled.');}}const _0x27314c=cloneSqlLockData(_0x34ea68),_0x215fdc=_0x27314c['apps'][_0x5e9cdd[_0x18005e(0x8e)]],_0x4f22ed=[],_0x59ebe5=[];for(const _0x489e6c of _0x35983f){const _0x3b5367=_0x215fdc[_0x18005e(0x8f)][_0x489e6c[_0x18005e(0x9b)]],_0x27ba83=ensureRemoteSqlContent(_0x489e6c),_0x388f8a=detectModeFromSql(_0x489e6c),_0x1a6943=_0x489e6c[_0x18005e(0xa4)]?await getDbName(_0xf35ee0[_0x18005e(0x8e)],Number(_0x489e6c[_0x18005e(0xa4)]))['catch'](()=>undefined):undefined,_0x5c4c00=buildLocalSqlFileContent({'sqlCode':_0x489e6c['sqlCode'],'sqlName':_0x489e6c[_0x18005e(0x82)],'dbId':_0x489e6c[_0x18005e(0xa4)]},_0x27ba83,{'dbName':_0x1a6943,'mode':_0x388f8a,'syncedAt':new Date()[_0x18005e(0x87)](),'description':_0x489e6c['description']}),_0x29eea9=buildSqlLockEntry(_0x489e6c,_0x27ba83,computeSqlContentHash(_0x5c4c00),{'dbName':_0x1a6943}),_0x127bde=_0x29eea9[_0x18005e(0x85)],_0x47dae4=join(_0x5e9cdd['sqlRootDir'],_0x127bde);try{if(await fileExists(_0x47dae4)){const _0x5add14=await readFile(_0x47dae4,'utf8');if(isEquivalentPulledSqlFile(_0x5add14,_0x5c4c00,_0x388f8a)){_0x59ebe5['push']({'sqlCode':_0x489e6c[_0x18005e(0x9b)],'reason':_0x18005e(0xb0)}),_0x215fdc[_0x18005e(0x8f)][_0x489e6c[_0x18005e(0x9b)]]={..._0x29eea9,'hash':computeSqlContentHash(_0x5add14),'path':_0x127bde};continue;}if(!_0x5b7280){_0x59ebe5[_0x18005e(0xa6)]({'sqlCode':_0x489e6c['sqlCode'],'reason':_0x18005e(0x8c)});continue;}}const _0x20e6c9=_0x3b5367?.[_0x18005e(0x85)]?join(_0x5e9cdd['sqlRootDir'],_0x3b5367[_0x18005e(0x85)]):undefined;_0x20e6c9&&_0x20e6c9!==_0x47dae4&&await fileExists(_0x20e6c9)&&await rm(_0x20e6c9,{'force':!![]}),await ensureParentDirectory(_0x47dae4),await writeFile(_0x47dae4,_0x5c4c00,_0x18005e(0xa1)),_0x215fdc[_0x18005e(0x8f)][_0x489e6c[_0x18005e(0x9b)]]={..._0x29eea9,'path':_0x127bde},_0x4f22ed['push']({'sqlCode':_0x489e6c[_0x18005e(0x9b)],'filePath':_0x47dae4});}catch(_0x564b89){_0x562bb8['push']({'sqlCode':_0x489e6c[_0x18005e(0x9b)],'error':_0x564b89 instanceof Error?_0x564b89[_0x18005e(0xae)]:String(_0x564b89)});}}return _0x215fdc[_0x18005e(0x7f)]=new Date()[_0x18005e(0x87)](),await writeSqlLockFile(_0x5e9cdd['lockFilePath'],_0x27314c),{'ok':_0x562bb8[_0x18005e(0x8a)]===0x0,'data':{'pulled':_0x4f22ed,'skipped':_0x59ebe5,'failed':_0x562bb8},'message':_0x18005e(0xaf)+_0x4f22ed[_0x18005e(0x8a)]+'\x20written,\x20'+_0x59ebe5[_0x18005e(0x8a)]+_0x18005e(0x98)+_0x562bb8[_0x18005e(0x8a)]+_0x18005e(0x7b)};}};function detectModeFromSql(_0x52607d){const _0x3794ec=a189_0x5a526f,_0x4f69d2=ensureRemoteSqlContent(_0x52607d),_0x99e887=stripLocalSqlMetadata(_0x4f69d2,'mybatisXml')[_0x3794ec(0x96)]();if(/^<(select|insert|update|delete)\b/i[_0x3794ec(0x92)](_0x99e887))return _0x3794ec(0xaa);return _0x3794ec(0x7d);}function isEquivalentPulledSqlFile(_0x5bf75f,_0x40fb30,_0x13a358){return normalizePullComparableContent(_0x5bf75f,_0x13a358)===normalizePullComparableContent(_0x40fb30,_0x13a358);}function normalizePullComparableContent(_0x283b3f,_0x3d41cb){const _0xa08912=a189_0x5a526f,_0x37024c=_0x283b3f[_0xa08912(0x7e)](/\r\n/g,'\x0a')[_0xa08912(0x8b)]('\x0a'),_0x141aa2=_0x37024c['filter'](_0x6ba3ff=>!isSyncedAtMetadataLine(_0x6ba3ff,_0x3d41cb));return _0x141aa2[_0xa08912(0xa9)]('\x0a');}function a189_0x56c7(_0x161423,_0x2ba6d0){_0x161423=_0x161423-0x76;const _0x25c88a=a189_0x25c8();let _0x56c7ec=_0x25c88a[_0x161423];return _0x56c7ec;}function isSyncedAtMetadataLine(_0x5162a2,_0x5a0113){if(_0x5a0113==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x5162a2);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x5162a2);}
|
|
1
|
+
const a189_0x1a1019=a189_0x12f1;(function(_0x5c60fe,_0x200308){const _0x5393ec=a189_0x12f1,_0x55d3b5=_0x5c60fe();while(!![]){try{const _0x4b04ea=-parseInt(_0x5393ec(0xbd))/0x1*(parseInt(_0x5393ec(0xdd))/0x2)+parseInt(_0x5393ec(0xe6))/0x3*(parseInt(_0x5393ec(0xaf))/0x4)+-parseInt(_0x5393ec(0xb6))/0x5*(parseInt(_0x5393ec(0xae))/0x6)+-parseInt(_0x5393ec(0xbf))/0x7+-parseInt(_0x5393ec(0xe1))/0x8*(-parseInt(_0x5393ec(0xad))/0x9)+-parseInt(_0x5393ec(0xd2))/0xa*(-parseInt(_0x5393ec(0xb9))/0xb)+-parseInt(_0x5393ec(0xc4))/0xc;if(_0x4b04ea===_0x200308)break;else _0x55d3b5['push'](_0x55d3b5['shift']());}catch(_0x1509cf){_0x55d3b5['push'](_0x55d3b5['shift']());}}}(a189_0x5333,0x513ad));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';function a189_0x12f1(_0x26f9dc,_0x2bdea5){_0x26f9dc=_0x26f9dc-0xa6;const _0x533323=a189_0x5333();let _0x12f1f6=_0x533323[_0x26f9dc];return _0x12f1f6;}import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x1c4ff8,_0x1d6a9d){const _0x770298=a189_0x12f1,_0x670080=[];let _0x307981=0x1;while(!![]){const _0x367daa=await listSqlQueries(_0x1c4ff8,{'currentPage':_0x307981,'pageSize':PAGE_SIZE,'sqlCode':_0x1d6a9d[_0x770298(0xe3)],'sqlName':_0x1d6a9d['sqlName']}),_0x4cd6b4=_0x367daa['tableData']??[];_0x670080[_0x770298(0xac)](..._0x4cd6b4);if(_0x4cd6b4[_0x770298(0xcb)]===0x0)break;const _0x2ac123=_0x367daa[_0x770298(0xdf)]?.[_0x770298(0xc2)];if(_0x2ac123!=null?_0x670080['length']>=_0x2ac123:_0x4cd6b4['length']<PAGE_SIZE)break;_0x307981++;}return _0x670080;}async function ensureSqlContent(_0x138fae){const _0x4dca8b=a189_0x12f1;if(_0x138fae[_0x4dca8b(0xc5)]!=null&&String(_0x138fae[_0x4dca8b(0xc5)])['length']>0x0)return _0x138fae;return getSqlQueryDetail(_0x138fae[_0x4dca8b(0xe3)]);}function a189_0x5333(){const _0xb2e13a=['sqlContent','Force\x20pull\x20cancelled.','skipped','would_pull','sqlRootDir','Filter\x20by\x20SQL\x20display\x20name','length','description','sqlName','Would\x20pull\x20','catch','path','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','5104930dazPXa','mybatisXml','apps','cancelled','name','dbId','sqls','sql','filter','str','replace','106696KzbtXs','trimStart','paging','sqlRoot','231992PrMgnT','nonInteractive','sqlCode','force','string','3XznXfT','\x20failed','unchanged','conflict','read','sqlcode','utf8','Force\x20overwrite\x20local\x20unsynced\x20changes','push','99NoERjo','30eTPqSE','1993836CvAWTa','toISOString','\x20written,\x20','\x20skipped,\x20','POST','appCode','pull','507700CDagMW','message','Pull\x20complete:\x20','11nvsnSC','boolean','test','lockFilePath','5urEcyz','local\x20differs\x20from\x20remote','1206261bOSKxB','No\x20remote\x20SQL\x20queries\x20matched.','bool','totalCount','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','581532MvfYEH'];a189_0x5333=function(){return _0xb2e13a;};return a189_0x5333();}export const sqlPull={'service':a189_0x1a1019(0xd9),'command':a189_0x1a1019(0xb5),'description':a189_0x1a1019(0xd1),'risk':a189_0x1a1019(0xa8),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a189_0x1a1019(0xd6),'type':a189_0x1a1019(0xe5),'description':a189_0x1a1019(0xca)},{'name':a189_0x1a1019(0xe4),'type':a189_0x1a1019(0xba),'description':a189_0x1a1019(0xab)}],async 'dryRun'(_0x1ea0b7){const _0x16d6a7=a189_0x1a1019,_0x59b108=loadSqlProjectConfig(_0x1ea0b7['appCode']),_0x40589a=await readSqlLockFile(_0x59b108[_0x16d6a7(0xbc)]),{appLock:_0xd89660}=ensureSqlLockScope(_0x40589a??createEmptySqlLock(),_0x59b108[_0x16d6a7(0xb4)],_0x59b108[_0x16d6a7(0xe0)],_0x16d6a7(0xb5)),_0x3cd0d1=await fetchAllSqlQueries(_0x1ea0b7[_0x16d6a7(0xb4)],{'sqlCode':_0x1ea0b7[_0x16d6a7(0xdb)](_0x16d6a7(0xa9))||undefined,'sqlName':_0x1ea0b7['str'](_0x16d6a7(0xd6))||undefined}),_0x46fce7=[];for(const _0x22da70 of _0x3cd0d1){const _0x3ee99a=await ensureSqlContent(_0x22da70),_0x43e1d9=ensureRemoteSqlContent(_0x3ee99a),_0x845285=detectModeFromSql(_0x3ee99a),_0x2e20fe=_0x3ee99a[_0x16d6a7(0xd7)]?await getDbName(_0x1ea0b7[_0x16d6a7(0xb4)],Number(_0x3ee99a[_0x16d6a7(0xd7)]))['catch'](()=>undefined):undefined,_0x1208cb=buildLocalSqlFileContent({'sqlCode':_0x3ee99a[_0x16d6a7(0xe3)],'sqlName':_0x3ee99a[_0x16d6a7(0xcd)],'dbId':_0x3ee99a['dbId']},_0x43e1d9,{'dbName':_0x2e20fe,'mode':_0x845285,'syncedAt':new Date()[_0x16d6a7(0xb0)](),'description':_0x3ee99a['description']}),_0x2ee1c5=buildSqlLockEntry(_0x3ee99a,_0x43e1d9,'',{'dbName':_0x2e20fe}),_0x5cb3b7=resolveLocalSqlFilePath(_0x59b108,_0x3ee99a[_0x16d6a7(0xe3)],_0x2ee1c5);let _0x3dba38=_0x16d6a7(0xc8),_0x454f32;if(await fileExists(_0x5cb3b7)){const _0x37dc0d=await readFile(_0x5cb3b7,_0x16d6a7(0xaa));isEquivalentPulledSqlFile(_0x37dc0d,_0x1208cb,_0x845285)?(_0x3dba38=_0x16d6a7(0xc7),_0x454f32=_0x16d6a7(0xa6)):(_0x3dba38=_0x16d6a7(0xa7),_0x454f32=_0x16d6a7(0xc3));}_0x46fce7['push']({'sqlCode':_0x3ee99a['sqlCode'],'sqlName':_0x3ee99a[_0x16d6a7(0xcd)],'filePath':_0x5cb3b7,'status':_0x3dba38,'reason':_0x454f32});}return{'method':_0x16d6a7(0xb3),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x1ea0b7['appCode'],'sqlCode':_0x1ea0b7[_0x16d6a7(0xdb)](_0x16d6a7(0xa9))||null,'sqlName':_0x1ea0b7[_0x16d6a7(0xdb)](_0x16d6a7(0xd6))||null,'files':_0x46fce7},'description':_0x16d6a7(0xce)+_0x46fce7['length']+'\x20SQL\x20file(s)\x20into\x20'+_0x59b108[_0x16d6a7(0xc9)]};},async 'execute'(_0x289dbc){const _0x336617=a189_0x1a1019,_0x16e27c=loadSqlProjectConfig(_0x289dbc[_0x336617(0xb4)]),_0x25cfed=await readSqlLockFile(_0x16e27c[_0x336617(0xbc)]),{lockData:_0x266846,appLock:_0x4a951c}=ensureSqlLockScope(_0x25cfed??createEmptySqlLock(),_0x16e27c[_0x336617(0xb4)],_0x16e27c['sqlRoot'],'pull'),_0x33638b=_0x289dbc[_0x336617(0xc1)](_0x336617(0xe4)),_0x2c6c73=await fetchAllSqlQueries(_0x289dbc[_0x336617(0xb4)],{'sqlCode':_0x289dbc[_0x336617(0xdb)](_0x336617(0xa9))||undefined,'sqlName':_0x289dbc[_0x336617(0xdb)]('name')||undefined});if(_0x2c6c73[_0x336617(0xcb)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x336617(0xc0)};const _0x51ff3c=[],_0x5aaaab=[];for(const _0x27de5d of _0x2c6c73){try{_0x51ff3c['push'](await ensureSqlContent(_0x27de5d));}catch(_0x15a110){_0x5aaaab[_0x336617(0xac)]({'sqlCode':_0x27de5d['sqlCode'],'error':_0x15a110 instanceof Error?_0x15a110[_0x336617(0xb7)]:String(_0x15a110)});}}if(_0x33638b&&!_0x289dbc[_0x336617(0xe2)]){let _0x53084a=![];for(const _0x42a228 of _0x51ff3c){const _0x67686b=detectModeFromSql(_0x42a228),_0x4862ad=_0x42a228[_0x336617(0xd7)]?await getDbName(_0x289dbc[_0x336617(0xb4)],Number(_0x42a228[_0x336617(0xd7)]))[_0x336617(0xcf)](()=>undefined):undefined,_0x1bc3a3=buildLocalSqlFileContent({'sqlCode':_0x42a228['sqlCode'],'sqlName':_0x42a228[_0x336617(0xcd)],'dbId':_0x42a228['dbId']},ensureRemoteSqlContent(_0x42a228),{'dbName':_0x4862ad,'mode':_0x67686b,'syncedAt':new Date()['toISOString'](),'description':_0x42a228[_0x336617(0xcc)]}),_0x51268e=resolveLocalSqlFilePath(_0x16e27c,_0x42a228[_0x336617(0xe3)],buildSqlLockEntry(_0x42a228,ensureRemoteSqlContent(_0x42a228),'',{'dbName':_0x4862ad}));if(await fileExists(_0x51268e)){const _0x563699=await readFile(_0x51268e,_0x336617(0xaa));if(!isEquivalentPulledSqlFile(_0x563699,_0x1bc3a3,_0x67686b)){_0x53084a=!![];break;}}}if(_0x53084a){const _0x3a11fd=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x3a11fd)throw CliErrors[_0x336617(0xd5)](_0x336617(0xc6));}}const _0xa75508=cloneSqlLockData(_0x266846),_0x5a7687=_0xa75508[_0x336617(0xd4)][_0x16e27c[_0x336617(0xb4)]],_0x41c2c6=[],_0x341717=[];for(const _0xa24623 of _0x51ff3c){const _0x3c762f=_0x5a7687[_0x336617(0xd8)][_0xa24623[_0x336617(0xe3)]],_0x3912c8=ensureRemoteSqlContent(_0xa24623),_0x2818e1=detectModeFromSql(_0xa24623),_0x6329d4=_0xa24623[_0x336617(0xd7)]?await getDbName(_0x289dbc['appCode'],Number(_0xa24623[_0x336617(0xd7)]))[_0x336617(0xcf)](()=>undefined):undefined,_0x2ef1c1=buildLocalSqlFileContent({'sqlCode':_0xa24623['sqlCode'],'sqlName':_0xa24623[_0x336617(0xcd)],'dbId':_0xa24623[_0x336617(0xd7)]},_0x3912c8,{'dbName':_0x6329d4,'mode':_0x2818e1,'syncedAt':new Date()[_0x336617(0xb0)](),'description':_0xa24623['description']}),_0x5a3f19=buildSqlLockEntry(_0xa24623,_0x3912c8,computeSqlContentHash(_0x2ef1c1),{'dbName':_0x6329d4}),_0x2cdd6a=_0x5a3f19['path'],_0x3ea91a=join(_0x16e27c[_0x336617(0xc9)],_0x2cdd6a);try{if(await fileExists(_0x3ea91a)){const _0x30fd18=await readFile(_0x3ea91a,_0x336617(0xaa));if(isEquivalentPulledSqlFile(_0x30fd18,_0x2ef1c1,_0x2818e1)){_0x341717[_0x336617(0xac)]({'sqlCode':_0xa24623[_0x336617(0xe3)],'reason':_0x336617(0xa6)}),_0x5a7687[_0x336617(0xd8)][_0xa24623[_0x336617(0xe3)]]={..._0x5a3f19,'hash':computeSqlContentHash(_0x30fd18),'path':_0x2cdd6a};continue;}if(!_0x33638b){_0x341717[_0x336617(0xac)]({'sqlCode':_0xa24623[_0x336617(0xe3)],'reason':_0x336617(0xbe)});continue;}}const _0x22c027=_0x3c762f?.[_0x336617(0xd0)]?join(_0x16e27c['sqlRootDir'],_0x3c762f['path']):undefined;_0x22c027&&_0x22c027!==_0x3ea91a&&await fileExists(_0x22c027)&&await rm(_0x22c027,{'force':!![]}),await ensureParentDirectory(_0x3ea91a),await writeFile(_0x3ea91a,_0x2ef1c1,'utf8'),_0x5a7687[_0x336617(0xd8)][_0xa24623['sqlCode']]={..._0x5a3f19,'path':_0x2cdd6a},_0x41c2c6['push']({'sqlCode':_0xa24623[_0x336617(0xe3)],'filePath':_0x3ea91a});}catch(_0x4b8c0a){_0x5aaaab[_0x336617(0xac)]({'sqlCode':_0xa24623[_0x336617(0xe3)],'error':_0x4b8c0a instanceof Error?_0x4b8c0a['message']:String(_0x4b8c0a)});}}return _0x5a7687['lastSync']=new Date()[_0x336617(0xb0)](),await writeSqlLockFile(_0x16e27c[_0x336617(0xbc)],_0xa75508),{'ok':_0x5aaaab[_0x336617(0xcb)]===0x0,'data':{'pulled':_0x41c2c6,'skipped':_0x341717,'failed':_0x5aaaab},'message':_0x336617(0xb8)+_0x41c2c6['length']+_0x336617(0xb1)+_0x341717['length']+_0x336617(0xb2)+_0x5aaaab[_0x336617(0xcb)]+_0x336617(0xe7)};}};function detectModeFromSql(_0x369ff3){const _0x3ce116=a189_0x1a1019,_0x3c7e00=ensureRemoteSqlContent(_0x369ff3),_0x3d9602=stripLocalSqlMetadata(_0x3c7e00,_0x3ce116(0xd3))[_0x3ce116(0xde)]();if(/^<(select|insert|update|delete)\b/i[_0x3ce116(0xbb)](_0x3d9602))return _0x3ce116(0xd3);return _0x3ce116(0xd9);}function isEquivalentPulledSqlFile(_0x5e8650,_0x5ce28d,_0x5d07cd){return normalizePullComparableContent(_0x5e8650,_0x5d07cd)===normalizePullComparableContent(_0x5ce28d,_0x5d07cd);}function normalizePullComparableContent(_0x26966a,_0x9186ba){const _0x12b117=a189_0x1a1019,_0x383550=_0x26966a[_0x12b117(0xdc)](/\r\n/g,'\x0a')['split']('\x0a'),_0x55acaa=_0x383550[_0x12b117(0xda)](_0x52e4e2=>!isSyncedAtMetadataLine(_0x52e4e2,_0x9186ba));return _0x55acaa['join']('\x0a');}function isSyncedAtMetadataLine(_0x5985c7,_0x3093cd){const _0x2b2664=a189_0x1a1019;if(_0x3093cd===_0x2b2664(0xd3))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x5985c7);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x2b2664(0xbb)](_0x5985c7);}
|
package/lib/commands/sql/push.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a190_0x69f56d=a190_0x1cf2;function a190_0x3f07(){const _0x358721=['sqlCode','join','high-risk-write','startsWith','No\x20database\x20matches\x20local\x20directory\x20\x22','mode','57388140dfpUGN','hash','version','\x20SQL\x20file(s)','exec','2008958YtxWhA','filter','852mqRvkB','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','dbDirectory','appCode','21768IeWqEX','bool','No\x20local\x20SQL\x20files\x20found.','POST','message','lastSync','unchanged','remoteId','sqlName','validation','filePath','dbId','push','str','force','\x20pushed,\x20','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','sqlConfig','relativePath','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','7684369gJPidm','13428aGlToL','has','Local\x20directory\x20\x22','528232mDqFXt','entries','toISOString','sqls','sqlcode','\x20skipped,\x20','path','Push\x20complete:\x20','Local\x20SQL\x20not\x20found:\x20','dbName','length','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','set','sql','lockFilePath','/smartapi/custom/updateUserCustomSql','11931720TRYzVS','4005kwtore','catch','sqlRoot','sqlRootDir','\x20failed','utf8','Push\x20local\x20SQL\x20files\x20to\x20remote'];a190_0x3f07=function(){return _0x358721;};return a190_0x3f07();}(function(_0x4665e4,_0x8a43cf){const _0x220971=a190_0x1cf2,_0x598d9d=_0x4665e4();while(!![]){try{const _0x4dcfae=-parseInt(_0x220971(0x1d4))/0x1+parseInt(_0x220971(0x1b6))/0x2+-parseInt(_0x220971(0x1b8))/0x3*(parseInt(_0x220971(0x1bc))/0x4)+-parseInt(_0x220971(0x1a4))/0x5*(parseInt(_0x220971(0x1d1))/0x6)+-parseInt(_0x220971(0x1d0))/0x7+-parseInt(_0x220971(0x1a3))/0x8+parseInt(_0x220971(0x1b1))/0x9;if(_0x4dcfae===_0x8a43cf)break;else _0x598d9d['push'](_0x598d9d['shift']());}catch(_0x21843b){_0x598d9d['push'](_0x598d9d['shift']());}}}(a190_0x3f07,0xe1e7d));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x706902,_0x36929f,_0x2ff77b){const _0x5ec1ae=a190_0x1cf2,_0x5ac2a2=await scanLocalSqlQueries(_0x706902),_0x2a76e3=new Map();for(const _0x28d26b of _0x5ac2a2){if(_0x2ff77b&&_0x28d26b['sqlCode']!==_0x2ff77b)continue;const _0x1641d4=_0x2a76e3['get'](_0x28d26b[_0x5ec1ae(0x1ab)])??[];_0x1641d4[_0x5ec1ae(0x1c8)](_0x28d26b),_0x2a76e3[_0x5ec1ae(0x19f)](_0x28d26b[_0x5ec1ae(0x1ab)],_0x1641d4);}if(_0x2ff77b&&!_0x2a76e3[_0x5ec1ae(0x1d2)](_0x2ff77b))throw CliErrors[_0x5ec1ae(0x1c5)](_0x5ec1ae(0x19b)+_0x2ff77b);const _0x5bbbaa=[];for(const [_0x454ff4,_0x122582]of _0x2a76e3[_0x5ec1ae(0x1d5)]()){if(_0x122582['length']===0x1){_0x5bbbaa['push'](_0x122582[0x0]);continue;}const _0x5f0c56=_0x36929f[_0x5ec1ae(0x196)][_0x454ff4],_0x515390=_0x5f0c56?.['path'],_0x3c7975=_0x515390?_0x122582[_0x5ec1ae(0x1b7)](_0x293fd4=>_0x293fd4['relativePath']!==_0x515390):_0x122582;if(_0x5f0c56&&_0x3c7975[_0x5ec1ae(0x19d)]===0x1){_0x5bbbaa[_0x5ec1ae(0x1c8)](_0x3c7975[0x0]);continue;}throw CliErrors['validation'](_0x5ec1ae(0x1cf)+_0x454ff4+'.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.');}return _0x5bbbaa;}export const sqlPush={'service':a190_0x69f56d(0x1a0),'command':a190_0x69f56d(0x1c8),'description':a190_0x69f56d(0x1aa),'risk':a190_0x69f56d(0x1ad),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a190_0x69f56d(0x1ca),'type':'boolean','description':a190_0x69f56d(0x1cc)}],async 'dryRun'(_0x11eef2){const _0x498fac=a190_0x69f56d,_0x675a09=loadSqlProjectConfig(_0x11eef2['appCode']),_0x8139f=await readSqlLockFile(_0x675a09[_0x498fac(0x1a1)]),{appLock:_0x441ae4}=ensureSqlLockScope(_0x8139f??createEmptySqlLock(),_0x11eef2[_0x498fac(0x1bb)],_0x675a09[_0x498fac(0x1a6)],_0x498fac(0x1c8)),_0x47e03a=await getTargetSqlQueries(_0x675a09,_0x441ae4,_0x11eef2[_0x498fac(0x1c9)]('sqlcode')||undefined),_0x5d65cb=[];for(const _0x1a4274 of _0x47e03a){const _0x360668=await computeSqlFileHash(_0x1a4274['filePath']),_0x1d4b56=_0x441ae4[_0x498fac(0x196)][_0x1a4274[_0x498fac(0x1ab)]],_0x500d98=!!_0x1d4b56&&(_0x1d4b56[_0x498fac(0x199)]!==_0x1a4274[_0x498fac(0x1ce)]||!!_0x1a4274[_0x498fac(0x1c4)]&&_0x1d4b56[_0x498fac(0x1c4)]!==_0x1a4274[_0x498fac(0x1c4)]);if(!_0x11eef2[_0x498fac(0x1bd)]('force')&&_0x1d4b56&&_0x1d4b56['hash']===_0x360668&&!_0x500d98)continue;_0x5d65cb['push'](_0x1a4274['sqlCode']);}return{'method':_0x498fac(0x1bf),'url':_0x498fac(0x1a2),'body':{'sqlCodes':_0x5d65cb,'appCode':_0x11eef2[_0x498fac(0x1bb)]},'description':'Would\x20push\x20'+_0x5d65cb[_0x498fac(0x19d)]+_0x498fac(0x1b4)};},async 'execute'(_0x3665ba){const _0x4119a2=a190_0x69f56d,_0x177558=loadSqlProjectConfig(_0x3665ba[_0x4119a2(0x1bb)]),_0x48f427=await readSqlLockFile(_0x177558[_0x4119a2(0x1a1)]),{lockData:_0x3baa87,appLock:_0x22a95d}=ensureSqlLockScope(_0x48f427??createEmptySqlLock(),_0x3665ba[_0x4119a2(0x1bb)],_0x177558[_0x4119a2(0x1a6)],'push'),_0x363ffa=await getTargetSqlQueries(_0x177558,_0x22a95d,_0x3665ba['str'](_0x4119a2(0x197))||undefined);if(_0x363ffa[_0x4119a2(0x19d)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x4119a2(0x1be)};const _0x5afc1b=[],_0x505e84=[],_0x487e58=[];for(const _0xd8d8ab of _0x363ffa){const _0x759f61=_0x22a95d[_0x4119a2(0x196)][_0xd8d8ab[_0x4119a2(0x1ab)]];if(!_0x759f61){_0x487e58[_0x4119a2(0x1c8)]({'sqlCode':_0xd8d8ab['sqlCode'],'error':_0x4119a2(0x1b9)});continue;}try{const _0x36c501=await computeSqlFileHash(_0xd8d8ab[_0x4119a2(0x1c6)]),_0x3a989d=_0x759f61[_0x4119a2(0x199)]!==_0xd8d8ab[_0x4119a2(0x1ce)]||!!_0xd8d8ab['sqlName']&&_0x759f61[_0x4119a2(0x1c4)]!==_0xd8d8ab[_0x4119a2(0x1c4)];if(!_0x3665ba[_0x4119a2(0x1bd)](_0x4119a2(0x1ca))&&_0x759f61[_0x4119a2(0x1b2)]===_0x36c501&&!_0x3a989d){_0x505e84[_0x4119a2(0x1c8)]({'sqlCode':_0xd8d8ab['sqlCode'],'reason':_0x4119a2(0x1c2)});continue;}if(_0x759f61[_0x4119a2(0x1b3)]==null){_0x487e58['push']({'sqlCode':_0xd8d8ab[_0x4119a2(0x1ab)],'error':_0x4119a2(0x19e)});continue;}const _0x53551c=await readFile(_0xd8d8ab[_0x4119a2(0x1c6)],_0x4119a2(0x1a9)),_0x1b8121=stripLocalSqlMetadata(_0x53551c,_0xd8d8ab[_0x4119a2(0x1b0)]),_0x38b87f=_0xd8d8ab[_0x4119a2(0x1c4)]||_0x759f61['sqlName'],_0x1de4d6=await resolveTargetDbBinding(_0x3665ba[_0x4119a2(0x1bb)],_0xd8d8ab,_0x759f61),_0x432ac2=await updateSqlQuery({'id':_0x759f61[_0x4119a2(0x1c3)],'appCode':_0x3665ba['appCode'],'sqlCode':_0xd8d8ab[_0x4119a2(0x1ab)],'sqlName':_0x38b87f,'dbId':_0x1de4d6[_0x4119a2(0x1c7)],'version':_0x759f61[_0x4119a2(0x1b3)],'sqlContent':_0x1b8121,'sqlConfig':_0x759f61[_0x4119a2(0x1cd)]??undefined}),_0x5e78e7=_0x432ac2[_0x4119a2(0x1c7)]?await getDbName(_0x3665ba['appCode'],Number(_0x432ac2[_0x4119a2(0x1c7)]))['catch'](()=>_0x1de4d6[_0x4119a2(0x19c)]):_0x1de4d6[_0x4119a2(0x19c)];_0x22a95d['sqls'][_0xd8d8ab[_0x4119a2(0x1ab)]]={...buildSqlLockEntry(_0x432ac2,_0x1b8121,_0x36c501,{'dbName':_0x5e78e7}),'path':_0xd8d8ab[_0x4119a2(0x1ce)],'mode':_0x759f61[_0x4119a2(0x1b0)]},await archivePreviousSqlFileIfNeeded(_0x177558,_0x759f61[_0x4119a2(0x199)],_0xd8d8ab[_0x4119a2(0x1ce)]),_0x5afc1b['push']({'sqlCode':_0xd8d8ab['sqlCode'],'remoteId':_0x759f61[_0x4119a2(0x1c3)]});}catch(_0x2bedc2){_0x487e58['push']({'sqlCode':_0xd8d8ab['sqlCode'],'error':_0x2bedc2 instanceof Error?_0x2bedc2[_0x4119a2(0x1c0)]:String(_0x2bedc2)});}}return _0x22a95d[_0x4119a2(0x1c1)]=new Date()['toISOString'](),await writeSqlLockFile(_0x177558[_0x4119a2(0x1a1)],_0x3baa87),{'ok':_0x487e58[_0x4119a2(0x19d)]===0x0,'data':{'pushed':_0x5afc1b,'skipped':_0x505e84,'failed':_0x487e58},'message':_0x4119a2(0x19a)+_0x5afc1b['length']+_0x4119a2(0x1cb)+_0x505e84[_0x4119a2(0x19d)]+_0x4119a2(0x198)+_0x487e58[_0x4119a2(0x19d)]+_0x4119a2(0x1a8)};}};async function archivePreviousSqlFileIfNeeded(_0x46f1ef,_0x2b4503,_0x5f22a5){const _0x307ea0=a190_0x69f56d;if(!_0x2b4503||_0x2b4503===_0x5f22a5)return;const _0x2db7b4=join(_0x46f1ef['sqlRootDir'],_0x2b4503);if(!await fileExists(_0x2db7b4))return;const _0x3c6374=await moveToTrash(_0x46f1ef['projectRoot'],_0x46f1ef['trashDir'],_0x2db7b4);await cleanupEmptyDirectories(dirname(_0x2db7b4),_0x46f1ef[_0x307ea0(0x1a7)]),void _0x3c6374;}async function moveToTrash(_0x13fbf9,_0x3f9321,_0x4dd0e1){const _0x36924a=a190_0x69f56d,_0x21ce07=new Date()[_0x36924a(0x1d6)]()['replace'](/[:.]/g,'-'),_0x2445d7=relative(_0x13fbf9,_0x4dd0e1),_0x5b58fb=join(_0x3f9321,_0x21ce07,_0x2445d7);return await mkdir(dirname(_0x5b58fb),{'recursive':!![]}),await rename(_0x4dd0e1,_0x5b58fb),_0x5b58fb;}async function cleanupEmptyDirectories(_0xa92f4,_0xee37f5){const _0x1170f7=a190_0x69f56d;let _0x3ace83=resolve(_0xa92f4);const _0x58575b=resolve(_0xee37f5);while(_0x3ace83[_0x1170f7(0x1ae)](''+_0x58575b+sep)||_0x3ace83===_0x58575b){if(_0x3ace83===_0x58575b)return;try{const _0x59a222=await readdir(_0x3ace83);if(_0x59a222[_0x1170f7(0x19d)]>0x0)return;await rmdir(_0x3ace83);}catch{return;}_0x3ace83=dirname(_0x3ace83);}}function a190_0x1cf2(_0x1b04db,_0x5a35d0){_0x1b04db=_0x1b04db-0x196;const _0x3f0705=a190_0x3f07();let _0x1cf256=_0x3f0705[_0x1b04db];return _0x1cf256;}async function resolveTargetDbBinding(_0x13a3ce,_0x562056,_0x3607cf){const _0x3f56e8=a190_0x69f56d,_0x4d0c9a=_0x562056[_0x3f56e8(0x1ba)];if(!_0x4d0c9a)return{'dbId':_0x3607cf['dbId'],'dbName':_0x3607cf[_0x3f56e8(0x19c)]};const _0x4ac3ea=buildDbDirectoryName(_0x3607cf[_0x3f56e8(0x19c)],_0x3607cf[_0x3f56e8(0x1c7)]);if(_0x4d0c9a===_0x4ac3ea)return{'dbId':_0x3607cf[_0x3f56e8(0x1c7)],'dbName':_0x3607cf[_0x3f56e8(0x19c)]};const _0x5a6ed2=parseExplicitDbDirectory(_0x4d0c9a);if(_0x5a6ed2!=null)return{'dbId':_0x5a6ed2,'dbName':await getDbName(_0x13a3ce,_0x5a6ed2)[_0x3f56e8(0x1a5)](()=>undefined)};const _0x53e566=await listDatabases(_0x13a3ce),_0x3d0576=_0x53e566['filter'](_0x5bc972=>buildDbDirectoryName(_0x5bc972[_0x3f56e8(0x19c)],_0x5bc972[_0x3f56e8(0x1c7)])===_0x4d0c9a);if(_0x3d0576[_0x3f56e8(0x19d)]===0x1)return{'dbId':_0x3d0576[0x0][_0x3f56e8(0x1c7)],'dbName':_0x3d0576[0x0][_0x3f56e8(0x19c)]};if(_0x3d0576[_0x3f56e8(0x19d)]===0x0)throw CliErrors[_0x3f56e8(0x1c5)](_0x3f56e8(0x1af)+_0x4d0c9a+'\x22\x20for\x20sqlCode\x20'+_0x562056['sqlCode']+'.');const _0x46a4d0=_0x3d0576['map'](_0x13068a=>_0x13068a['dbName']+'\x20('+_0x13068a[_0x3f56e8(0x1c7)]+')')[_0x3f56e8(0x1ac)](',\x20');throw CliErrors[_0x3f56e8(0x1c5)](_0x3f56e8(0x1d3)+_0x4d0c9a+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x562056['sqlCode']+':\x20'+_0x46a4d0);}function parseExplicitDbDirectory(_0xff6392){const _0x1bb810=a190_0x69f56d,_0x330ca7=/^db-(\d+)$/[_0x1bb810(0x1b5)](_0xff6392);if(!_0x330ca7)return null;const _0x181ad3=Number(_0x330ca7[0x1]);return Number['isFinite'](_0x181ad3)&&_0x181ad3>0x0?_0x181ad3:null;}
|
|
1
|
+
const a190_0xd762b3=a190_0x542c;(function(_0x16b404,_0x4a207b){const _0x28d724=a190_0x542c,_0x106c10=_0x16b404();while(!![]){try{const _0x5afb65=-parseInt(_0x28d724(0x9c))/0x1*(parseInt(_0x28d724(0xbd))/0x2)+-parseInt(_0x28d724(0xb6))/0x3+-parseInt(_0x28d724(0xd3))/0x4*(parseInt(_0x28d724(0xbe))/0x5)+-parseInt(_0x28d724(0xd0))/0x6+parseInt(_0x28d724(0xcf))/0x7+parseInt(_0x28d724(0x9d))/0x8+parseInt(_0x28d724(0xbb))/0x9;if(_0x5afb65===_0x4a207b)break;else _0x106c10['push'](_0x106c10['shift']());}catch(_0x1bc91b){_0x106c10['push'](_0x106c10['shift']());}}}(a190_0x11a0,0x73bb6));function a190_0x11a0(){const _0x2267a7=['remoteId','filter','catch','86585bJkNLG','2633304qhyDkm','get','dbName','force','dbDirectory','has','lockFilePath','No\x20local\x20SQL\x20files\x20found.','mode','\x20failed','sqls','appCode','bool','Local\x20directory\x20\x22','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','validation','sqlRootDir','str','hash','isFinite','exec','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','Push\x20local\x20SQL\x20files\x20to\x20remote','POST','2214276WzHrKw','push','Local\x20SQL\x20not\x20found:\x20','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','\x20SQL\x20file(s)','21525390azZHAU','high-risk-write','8RWmkww','35tRaVnH','sqlConfig','dbId','message','sqlName','version','length','filePath','sqlCode','trashDir','sqlRoot','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','unchanged','projectRoot','relativePath','sqlcode','Push\x20complete:\x20','537138VusDUf','2808480JDbgMV','path','join','440604wAFiBt','\x20skipped,\x20','/smartapi/custom/updateUserCustomSql','set','sql','toISOString','map','boolean','replace','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'];a190_0x11a0=function(){return _0x2267a7;};return a190_0x11a0();}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';function a190_0x542c(_0x5dc49b,_0x3830a8){_0x5dc49b=_0x5dc49b-0x91;const _0x11a0f0=a190_0x11a0();let _0x542cce=_0x11a0f0[_0x5dc49b];return _0x542cce;}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x5a0f5b,_0x300377,_0x20481f){const _0x8ed3fa=a190_0x542c,_0x264d5c=await scanLocalSqlQueries(_0x5a0f5b),_0x22097d=new Map();for(const _0xa9798b of _0x264d5c){if(_0x20481f&&_0xa9798b[_0x8ed3fa(0xc6)]!==_0x20481f)continue;const _0x2205b1=_0x22097d[_0x8ed3fa(0x9e)](_0xa9798b[_0x8ed3fa(0xc6)])??[];_0x2205b1['push'](_0xa9798b),_0x22097d[_0x8ed3fa(0x92)](_0xa9798b['sqlCode'],_0x2205b1);}if(_0x20481f&&!_0x22097d[_0x8ed3fa(0xa2)](_0x20481f))throw CliErrors[_0x8ed3fa(0xad)](_0x8ed3fa(0xb8)+_0x20481f);const _0x3619b3=[];for(const [_0x15a87b,_0x5292db]of _0x22097d['entries']()){if(_0x5292db[_0x8ed3fa(0xc4)]===0x1){_0x3619b3[_0x8ed3fa(0xb7)](_0x5292db[0x0]);continue;}const _0x400ba4=_0x300377[_0x8ed3fa(0xa7)][_0x15a87b],_0xe5a91=_0x400ba4?.[_0x8ed3fa(0xd1)],_0x58cb86=_0xe5a91?_0x5292db[_0x8ed3fa(0x9a)](_0x15d6ba=>_0x15d6ba['relativePath']!==_0xe5a91):_0x5292db;if(_0x400ba4&&_0x58cb86[_0x8ed3fa(0xc4)]===0x1){_0x3619b3[_0x8ed3fa(0xb7)](_0x58cb86[0x0]);continue;}throw CliErrors['validation'](_0x8ed3fa(0xb3)+_0x15a87b+_0x8ed3fa(0xb9));}return _0x3619b3;}export const sqlPush={'service':a190_0xd762b3(0x93),'command':'push','description':a190_0xd762b3(0xb4),'risk':a190_0xd762b3(0xbc),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a190_0xd762b3(0xa0),'type':a190_0xd762b3(0x96),'description':a190_0xd762b3(0xc9)}],async 'dryRun'(_0xbb2831){const _0x574b9c=a190_0xd762b3,_0x3b9da7=loadSqlProjectConfig(_0xbb2831[_0x574b9c(0xa8)]),_0x4d01d9=await readSqlLockFile(_0x3b9da7[_0x574b9c(0xa3)]),{appLock:_0x5155c6}=ensureSqlLockScope(_0x4d01d9??createEmptySqlLock(),_0xbb2831['appCode'],_0x3b9da7['sqlRoot'],_0x574b9c(0xb7)),_0x20cb52=await getTargetSqlQueries(_0x3b9da7,_0x5155c6,_0xbb2831[_0x574b9c(0xaf)](_0x574b9c(0xcd))||undefined),_0xc2d414=[];for(const _0x4667a7 of _0x20cb52){const _0x57beab=await computeSqlFileHash(_0x4667a7[_0x574b9c(0xc5)]),_0x7db53c=_0x5155c6[_0x574b9c(0xa7)][_0x4667a7['sqlCode']],_0x153b0a=!!_0x7db53c&&(_0x7db53c[_0x574b9c(0xd1)]!==_0x4667a7[_0x574b9c(0xcc)]||!!_0x4667a7['sqlName']&&_0x7db53c[_0x574b9c(0xc2)]!==_0x4667a7[_0x574b9c(0xc2)]);if(!_0xbb2831[_0x574b9c(0xa9)](_0x574b9c(0xa0))&&_0x7db53c&&_0x7db53c[_0x574b9c(0xb0)]===_0x57beab&&!_0x153b0a)continue;_0xc2d414[_0x574b9c(0xb7)](_0x4667a7[_0x574b9c(0xc6)]);}return{'method':_0x574b9c(0xb5),'url':_0x574b9c(0x91),'body':{'sqlCodes':_0xc2d414,'appCode':_0xbb2831[_0x574b9c(0xa8)]},'description':'Would\x20push\x20'+_0xc2d414[_0x574b9c(0xc4)]+_0x574b9c(0xba)};},async 'execute'(_0x298a69){const _0x219dd8=a190_0xd762b3,_0x2a3168=loadSqlProjectConfig(_0x298a69[_0x219dd8(0xa8)]),_0x4a3309=await readSqlLockFile(_0x2a3168[_0x219dd8(0xa3)]),{lockData:_0x1b538c,appLock:_0x414c84}=ensureSqlLockScope(_0x4a3309??createEmptySqlLock(),_0x298a69[_0x219dd8(0xa8)],_0x2a3168[_0x219dd8(0xc8)],_0x219dd8(0xb7)),_0x24ff3a=await getTargetSqlQueries(_0x2a3168,_0x414c84,_0x298a69[_0x219dd8(0xaf)](_0x219dd8(0xcd))||undefined);if(_0x24ff3a[_0x219dd8(0xc4)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x219dd8(0xa4)};const _0x137453=[],_0x2d5d5e=[],_0x42e154=[];for(const _0x530248 of _0x24ff3a){const _0x23e1c4=_0x414c84['sqls'][_0x530248['sqlCode']];if(!_0x23e1c4){_0x42e154[_0x219dd8(0xb7)]({'sqlCode':_0x530248[_0x219dd8(0xc6)],'error':_0x219dd8(0x98)});continue;}try{const _0x10ecf0=await computeSqlFileHash(_0x530248[_0x219dd8(0xc5)]),_0xfa05a0=_0x23e1c4['path']!==_0x530248[_0x219dd8(0xcc)]||!!_0x530248[_0x219dd8(0xc2)]&&_0x23e1c4[_0x219dd8(0xc2)]!==_0x530248[_0x219dd8(0xc2)];if(!_0x298a69[_0x219dd8(0xa9)](_0x219dd8(0xa0))&&_0x23e1c4[_0x219dd8(0xb0)]===_0x10ecf0&&!_0xfa05a0){_0x2d5d5e['push']({'sqlCode':_0x530248[_0x219dd8(0xc6)],'reason':_0x219dd8(0xca)});continue;}if(_0x23e1c4[_0x219dd8(0xc3)]==null){_0x42e154['push']({'sqlCode':_0x530248['sqlCode'],'error':_0x219dd8(0xab)});continue;}const _0x4d32ba=await readFile(_0x530248[_0x219dd8(0xc5)],'utf8'),_0x1176b4=stripLocalSqlMetadata(_0x4d32ba,_0x530248[_0x219dd8(0xa5)]),_0x478cd5=_0x530248[_0x219dd8(0xc2)]||_0x23e1c4[_0x219dd8(0xc2)],_0xd15489=await resolveTargetDbBinding(_0x298a69[_0x219dd8(0xa8)],_0x530248,_0x23e1c4),_0x568b85=await updateSqlQuery({'id':_0x23e1c4[_0x219dd8(0x99)],'appCode':_0x298a69['appCode'],'sqlCode':_0x530248[_0x219dd8(0xc6)],'sqlName':_0x478cd5,'dbId':_0xd15489[_0x219dd8(0xc0)],'version':_0x23e1c4[_0x219dd8(0xc3)],'sqlContent':_0x1176b4,'sqlConfig':_0x23e1c4[_0x219dd8(0xbf)]??undefined}),_0xd6b118=_0x568b85[_0x219dd8(0xc0)]?await getDbName(_0x298a69['appCode'],Number(_0x568b85['dbId']))[_0x219dd8(0x9b)](()=>_0xd15489[_0x219dd8(0x9f)]):_0xd15489['dbName'];_0x414c84['sqls'][_0x530248[_0x219dd8(0xc6)]]={...buildSqlLockEntry(_0x568b85,_0x1176b4,_0x10ecf0,{'dbName':_0xd6b118}),'path':_0x530248[_0x219dd8(0xcc)],'mode':_0x23e1c4[_0x219dd8(0xa5)]},await archivePreviousSqlFileIfNeeded(_0x2a3168,_0x23e1c4['path'],_0x530248[_0x219dd8(0xcc)]),_0x137453[_0x219dd8(0xb7)]({'sqlCode':_0x530248['sqlCode'],'remoteId':_0x23e1c4[_0x219dd8(0x99)]});}catch(_0x21d1e2){_0x42e154['push']({'sqlCode':_0x530248[_0x219dd8(0xc6)],'error':_0x21d1e2 instanceof Error?_0x21d1e2[_0x219dd8(0xc1)]:String(_0x21d1e2)});}}return _0x414c84['lastSync']=new Date()[_0x219dd8(0x94)](),await writeSqlLockFile(_0x2a3168[_0x219dd8(0xa3)],_0x1b538c),{'ok':_0x42e154[_0x219dd8(0xc4)]===0x0,'data':{'pushed':_0x137453,'skipped':_0x2d5d5e,'failed':_0x42e154},'message':_0x219dd8(0xce)+_0x137453[_0x219dd8(0xc4)]+'\x20pushed,\x20'+_0x2d5d5e[_0x219dd8(0xc4)]+_0x219dd8(0xd4)+_0x42e154[_0x219dd8(0xc4)]+_0x219dd8(0xa6)};}};async function archivePreviousSqlFileIfNeeded(_0x3cd53d,_0x557eb2,_0x4cca88){const _0x26e2f7=a190_0xd762b3;if(!_0x557eb2||_0x557eb2===_0x4cca88)return;const _0x3fde4e=join(_0x3cd53d['sqlRootDir'],_0x557eb2);if(!await fileExists(_0x3fde4e))return;const _0x54082b=await moveToTrash(_0x3cd53d[_0x26e2f7(0xcb)],_0x3cd53d[_0x26e2f7(0xc7)],_0x3fde4e);await cleanupEmptyDirectories(dirname(_0x3fde4e),_0x3cd53d[_0x26e2f7(0xae)]),void _0x54082b;}async function moveToTrash(_0x6d2806,_0x3e30ff,_0x598337){const _0x50c5ea=a190_0xd762b3,_0x279d73=new Date()[_0x50c5ea(0x94)]()[_0x50c5ea(0x97)](/[:.]/g,'-'),_0x15f5dd=relative(_0x6d2806,_0x598337),_0x1985a7=join(_0x3e30ff,_0x279d73,_0x15f5dd);return await mkdir(dirname(_0x1985a7),{'recursive':!![]}),await rename(_0x598337,_0x1985a7),_0x1985a7;}async function cleanupEmptyDirectories(_0x44f9c4,_0x3e0b6a){const _0x478d6e=a190_0xd762b3;let _0x43caed=resolve(_0x44f9c4);const _0x29d620=resolve(_0x3e0b6a);while(_0x43caed['startsWith'](''+_0x29d620+sep)||_0x43caed===_0x29d620){if(_0x43caed===_0x29d620)return;try{const _0x5eafee=await readdir(_0x43caed);if(_0x5eafee[_0x478d6e(0xc4)]>0x0)return;await rmdir(_0x43caed);}catch{return;}_0x43caed=dirname(_0x43caed);}}async function resolveTargetDbBinding(_0x515a9a,_0x577de5,_0x5a9003){const _0x5a1dcc=a190_0xd762b3,_0x406fa1=_0x577de5[_0x5a1dcc(0xa1)];if(!_0x406fa1)return{'dbId':_0x5a9003[_0x5a1dcc(0xc0)],'dbName':_0x5a9003[_0x5a1dcc(0x9f)]};const _0x3fee55=buildDbDirectoryName(_0x5a9003[_0x5a1dcc(0x9f)],_0x5a9003[_0x5a1dcc(0xc0)]);if(_0x406fa1===_0x3fee55)return{'dbId':_0x5a9003[_0x5a1dcc(0xc0)],'dbName':_0x5a9003[_0x5a1dcc(0x9f)]};const _0x54fe62=parseExplicitDbDirectory(_0x406fa1);if(_0x54fe62!=null)return{'dbId':_0x54fe62,'dbName':await getDbName(_0x515a9a,_0x54fe62)[_0x5a1dcc(0x9b)](()=>undefined)};const _0x1f77db=await listDatabases(_0x515a9a),_0x1e71b5=_0x1f77db['filter'](_0x681517=>buildDbDirectoryName(_0x681517[_0x5a1dcc(0x9f)],_0x681517[_0x5a1dcc(0xc0)])===_0x406fa1);if(_0x1e71b5['length']===0x1)return{'dbId':_0x1e71b5[0x0]['dbId'],'dbName':_0x1e71b5[0x0]['dbName']};if(_0x1e71b5[_0x5a1dcc(0xc4)]===0x0)throw CliErrors[_0x5a1dcc(0xad)]('No\x20database\x20matches\x20local\x20directory\x20\x22'+_0x406fa1+'\x22\x20for\x20sqlCode\x20'+_0x577de5[_0x5a1dcc(0xc6)]+'.');const _0x3df86a=_0x1e71b5[_0x5a1dcc(0x95)](_0x3ce5f4=>_0x3ce5f4[_0x5a1dcc(0x9f)]+'\x20('+_0x3ce5f4[_0x5a1dcc(0xc0)]+')')[_0x5a1dcc(0xd2)](',\x20');throw CliErrors[_0x5a1dcc(0xad)](_0x5a1dcc(0xaa)+_0x406fa1+_0x5a1dcc(0xac)+_0x577de5[_0x5a1dcc(0xc6)]+':\x20'+_0x3df86a);}function parseExplicitDbDirectory(_0x266f38){const _0x3ffe94=a190_0xd762b3,_0x240d47=/^db-(\d+)$/[_0x3ffe94(0xb2)](_0x266f38);if(!_0x240d47)return null;const _0x52d28a=Number(_0x240d47[0x1]);return Number[_0x3ffe94(0xb1)](_0x52d28a)&&_0x52d28a>0x0?_0x52d28a:null;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a191_0x2923d2=a191_0x2224;(function(_0x112f6e,_0x42a51c){const _0x242d1f=a191_0x2224,_0x516a18=_0x112f6e();while(!![]){try{const _0x40795b=-parseInt(_0x242d1f(0x1a4))/0x1+-parseInt(_0x242d1f(0x1c2))/0x2*(parseInt(_0x242d1f(0x1c4))/0x3)+-parseInt(_0x242d1f(0x1c9))/0x4+-parseInt(_0x242d1f(0x1a7))/0x5+parseInt(_0x242d1f(0x1ad))/0x6*(-parseInt(_0x242d1f(0x1c8))/0x7)+-parseInt(_0x242d1f(0x1bd))/0x8+parseInt(_0x242d1f(0x1c5))/0x9;if(_0x40795b===_0x42a51c)break;else _0x516a18['push'](_0x516a18['shift']());}catch(_0x37cb95){_0x516a18['push'](_0x516a18['shift']());}}}(a191_0x3d7f,0xabc3a));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=a191_0x2923d2(0x1a8);export function buildSqlLockEntry(_0x1bddbd,_0x3e3d15,_0x7adb13,_0x282112){const _0x272ff8=a191_0x2923d2,_0x258341=detectSqlMode(_0x3e3d15);return{'path':buildSqlRelativePath(_0x1bddbd[_0x272ff8(0x1c6)],_0x1bddbd[_0x272ff8(0x1b3)],_0x282112?.[_0x272ff8(0x1b6)],_0x258341,_0x1bddbd[_0x272ff8(0x1ba)]),'hash':_0x7adb13,'remoteId':_0x1bddbd['id'],'version':_0x1bddbd['version'],'dbId':Number(_0x1bddbd[_0x272ff8(0x1ba)]),'dbName':_0x282112?.['dbName'],'sqlName':_0x1bddbd['sqlName'],'sqlConfig':_0x1bddbd['sqlConfig']??undefined,'mode':_0x258341};}export function cloneSqlLockData(_0x5af817){const _0x1a3f65=a191_0x2923d2;return{'apps':Object[_0x1a3f65(0x1a6)](Object[_0x1a3f65(0x1a3)](_0x5af817[_0x1a3f65(0x1ab)])[_0x1a3f65(0x1b0)](([_0x5db0d0,_0x41330b])=>[_0x5db0d0,{'sqlRoot':_0x41330b[_0x1a3f65(0x1bf)],'lastSync':_0x41330b['lastSync'],'sqls':{..._0x41330b[_0x1a3f65(0x1b1)]}}]))};}function a191_0x3d7f(){const _0x30e782=['sqlCode','trimStart','132713MoXIlb','3694584OOkEjT','question','entries','604855iDxnOC','sqlContent','fromEntries','4927620xjwJzh','.rabetbase/sql','trim','\x20-->','apps','description','78iZeiit','filter','mode','map','sqls','stdin','sqlName','join','mybatisXml','dbName','replace','test','endsWith','dbId','syncedAt','--\x20@lovrabet.','903976hiccsn','path','sqlRoot','\x20[y/N]\x20','toLowerCase','2RowDZq','length','1440618NgnNmS','36515169lBAouS'];a191_0x3d7f=function(){return _0x30e782;};return a191_0x3d7f();}export function ensureRemoteSqlContent(_0x2568b7){const _0x3bd383=a191_0x2923d2;return _0x2568b7[_0x3bd383(0x1a5)]??'';}export function buildLocalSqlFileContent(_0x725794,_0x43a672,_0x330723){const _0x1b09dd=a191_0x2923d2,_0x37dab4=_0x330723?.[_0x1b09dd(0x1af)]??detectSqlMode(_0x43a672),_0x293139=stripLocalSqlMetadata(_0x43a672,_0x37dab4)['trim'](),_0x496c7f=[...buildMetadataHeaderLines({'sqlCode':_0x725794[_0x1b09dd(0x1c6)],'sqlName':_0x725794['sqlName'],'dbId':_0x725794[_0x1b09dd(0x1ba)],'dbName':_0x330723?.[_0x1b09dd(0x1b6)],'mode':_0x37dab4,'syncedAt':_0x330723?.[_0x1b09dd(0x1bb)],'description':_0x330723?.['description']},_0x37dab4),'',_0x293139],_0x2833f6=_0x496c7f[_0x1b09dd(0x1b4)]('\x0a');return _0x2833f6[_0x1b09dd(0x1b9)]('\x0a')?_0x2833f6:_0x2833f6+'\x0a';}export function stripLocalSqlMetadata(_0x51d7ae,_0x19fc44){const _0xb933e7=a191_0x2923d2,_0x51fa29=_0x51d7ae[_0xb933e7(0x1b7)](/\r\n/g,'\x0a')['split']('\x0a'),_0x4870b9=[];let _0x125443=0x0;if(_0x19fc44===_0xb933e7(0x1b5))while(_0x125443<_0x51fa29['length']){const _0x1f58df=_0x51fa29[_0x125443]??'';if(/^\s*<!--\s*@lovrabet\./[_0xb933e7(0x1b8)](_0x1f58df)){_0x125443++;continue;}if(_0x1f58df[_0xb933e7(0x1a9)]()===''&&_0x125443>0x0){_0x125443++;continue;}break;}else while(_0x125443<_0x51fa29[_0xb933e7(0x1c3)]){const _0x3e462c=_0x51fa29[_0x125443]??'';if(/^\s*--\s*@lovrabet\./[_0xb933e7(0x1b8)](_0x3e462c)){_0x125443++;continue;}if(_0x3e462c[_0xb933e7(0x1a9)]()===''&&_0x125443>0x0){_0x125443++;continue;}break;}for(;_0x125443<_0x51fa29[_0xb933e7(0x1c3)];_0x125443++){_0x4870b9['push'](_0x51fa29[_0x125443]);}return _0x4870b9['join']('\x0a')[_0xb933e7(0x1c7)]();}export function resolveSqlMode(_0x17c45c,_0x27e8bc){const _0x4ef1c8=a191_0x2923d2;if(_0x27e8bc?.['mode'])return _0x27e8bc[_0x4ef1c8(0x1af)];return detectSqlMode(_0x17c45c);}export function resolveSqlFileName(_0xdc2574,_0x2a61e3,_0x4ed810){const _0xf21d77=a191_0x2923d2;if(_0x4ed810?.[_0xf21d77(0x1be)])return _0x4ed810['path'];if(_0x4ed810?.[_0xf21d77(0x1b3)]||_0x4ed810?.[_0xf21d77(0x1b6)])return buildSqlRelativePath(_0xdc2574,_0x4ed810?.[_0xf21d77(0x1b3)],_0x4ed810?.[_0xf21d77(0x1b6)],resolveSqlMode(_0x2a61e3,_0x4ed810),_0x4ed810?.[_0xf21d77(0x1ba)]);return buildDefaultSqlFileName(_0xdc2574,resolveSqlMode(_0x2a61e3,_0x4ed810));}export function resolveSqlLocalDir(_0x14a3c8,_0x382727){return join(_0x14a3c8,SQL_LOCAL_REL_DIR,_0x382727);}export async function confirmForceOverwrite(_0x2ca30f){const _0x5c3d5f=a191_0x2923d2,_0x3f8705=createInterface({'input':process[_0x5c3d5f(0x1b2)],'output':process['stderr']}),_0x15a860=await new Promise(_0x21e0a0=>{const _0x39cc62=_0x5c3d5f;_0x3f8705[_0x39cc62(0x1a2)](_0x2ca30f+_0x39cc62(0x1c0),_0x21e0a0);});return _0x3f8705['close'](),['y','yes']['includes'](_0x15a860['trim']()[_0x5c3d5f(0x1c1)]());}function a191_0x2224(_0x2b80ce,_0x38ef1a){_0x2b80ce=_0x2b80ce-0x1a2;const _0x3d7f3e=a191_0x3d7f();let _0x22246e=_0x3d7f3e[_0x2b80ce];return _0x22246e;}export function findSqlLockScope(_0x47a2b6,_0x11845e){const _0xdd3552=a191_0x2923d2;return _0x47a2b6[_0xdd3552(0x1ab)][_0x11845e];}function buildMetadataHeaderLines(_0x517df9,_0x158843){const _0x2dcfea=a191_0x2923d2,_0x3e8c01=[[_0x2dcfea(0x1c6),_0x517df9[_0x2dcfea(0x1c6)]],[_0x2dcfea(0x1b3),_0x517df9['sqlName']],[_0x2dcfea(0x1ba),_0x517df9['dbId']],[_0x2dcfea(0x1b6),_0x517df9['dbName']],['mode',_0x517df9[_0x2dcfea(0x1af)]],[_0x2dcfea(0x1bb),_0x517df9[_0x2dcfea(0x1bb)]],[_0x2dcfea(0x1ac),_0x517df9[_0x2dcfea(0x1ac)]]];if(_0x158843==='mybatisXml')return _0x3e8c01[_0x2dcfea(0x1ae)](([,_0x500d2e])=>_0x500d2e!==undefined&&_0x500d2e!==null&&String(_0x500d2e)[_0x2dcfea(0x1a9)]()!=='')['map'](([_0x1e7f9b,_0x3524ba])=>'<!--\x20@lovrabet.'+_0x1e7f9b+':\x20'+String(_0x3524ba)+_0x2dcfea(0x1aa));return _0x3e8c01[_0x2dcfea(0x1ae)](([,_0x2b20af])=>_0x2b20af!==undefined&&_0x2b20af!==null&&String(_0x2b20af)[_0x2dcfea(0x1a9)]()!=='')[_0x2dcfea(0x1b0)](([_0x2f5e2c,_0xb28bdd])=>_0x2dcfea(0x1bc)+_0x2f5e2c+':\x20'+String(_0xb28bdd));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a192_0x5376a4=a192_0x23fe;(function(_0x5a55d1,_0x20c646){const _0x4ba6f6=a192_0x23fe,_0x30f1fa=_0x5a55d1();while(!![]){try{const _0x4fba4b=parseInt(_0x4ba6f6(0x1aa))/0x1+-parseInt(_0x4ba6f6(0x1b1))/0x2*(-parseInt(_0x4ba6f6(0x1bc))/0x3)+-parseInt(_0x4ba6f6(0x1b3))/0x4+-parseInt(_0x4ba6f6(0x1b8))/0x5*(parseInt(_0x4ba6f6(0x1a5))/0x6)+parseInt(_0x4ba6f6(0x1c4))/0x7+-parseInt(_0x4ba6f6(0x1ac))/0x8+parseInt(_0x4ba6f6(0x1ae))/0x9;if(_0x4fba4b===_0x20c646)break;else _0x30f1fa['push'](_0x30f1fa['shift']());}catch(_0x16face){_0x30f1fa['push'](_0x30f1fa['shift']());}}}(a192_0x20a2,0x4127d));import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';function a192_0x20a2(){const _0x549e42=['1273853Gocjdu','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','length','remote','lockKey','filePath','1722uWIqoR','sqlCode','read','path','keys','167793dcVRat','sqls','807864JsaZCv','has','7162767VEyrJf','sqlName','boolean','97982tTjjFs','paging','2099024yKCiXG','totalCount','status','sql','appCode','6115bDhhOg','\x20missing,\x20','sqlRoot','relativePath','6rsBYJx','tableData','push','map','bool','All\x20SQL\x20queries\x20are\x20in\x20sync.','\x20remote-only','hash'];a192_0x20a2=function(){return _0x549e42;};return a192_0x20a2();}import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;function a192_0x23fe(_0x253697,_0x7bc9d7){_0x253697=_0x253697-0x1a0;const _0x20a25a=a192_0x20a2();let _0x23fec5=_0x20a25a[_0x253697];return _0x23fec5;}async function fetchAllSqlCodes(_0x2033d4){const _0x16eb50=a192_0x23fe,_0x3339a2=[];let _0x55a383=0x1;while(!![]){const _0x4cacff=await listSqlQueries(_0x2033d4,{'currentPage':_0x55a383,'pageSize':PAGE_SIZE}),_0x2abf79=_0x4cacff[_0x16eb50(0x1bd)]??[];_0x3339a2['push'](..._0x2abf79['map'](_0x2fbc02=>_0x2fbc02[_0x16eb50(0x1a6)]));if(_0x2abf79['length']===0x0)break;const _0x1b934b=_0x4cacff[_0x16eb50(0x1b2)]?.[_0x16eb50(0x1b4)];if(_0x1b934b!=null?_0x3339a2[_0x16eb50(0x1a1)]>=_0x1b934b:_0x2abf79[_0x16eb50(0x1a1)]<PAGE_SIZE)break;_0x55a383++;}return _0x3339a2;}export const sqlStatus={'service':a192_0x5376a4(0x1b6),'command':a192_0x5376a4(0x1b5),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':a192_0x5376a4(0x1a7),'flags':[{'name':a192_0x5376a4(0x1a2),'type':a192_0x5376a4(0x1b0),'description':a192_0x5376a4(0x1a0)}],async 'execute'(_0x300041){const _0x5778f0=a192_0x5376a4,_0x20d156=loadSqlProjectConfig(_0x300041[_0x5778f0(0x1b7)]),_0x27dec5=await readSqlLockFile(_0x20d156['lockFilePath']),{appLock:_0x16c9b7}=ensureSqlLockScope(_0x27dec5??createEmptySqlLock(),_0x20d156[_0x5778f0(0x1b7)],_0x20d156[_0x5778f0(0x1ba)],_0x5778f0(0x1b5)),_0xad9c53=await scanLocalSqlQueries(_0x20d156),_0x38acc3=[],_0x305e0c=[],_0xbb10a2=[],_0x48ccc9=[],_0x3897db=new Set(_0xad9c53[_0x5778f0(0x1bf)](_0x303c82=>_0x303c82[_0x5778f0(0x1a3)]));for(const _0x365b3b of _0xad9c53){const _0x4cf5ff=await computeSqlFileHash(_0x365b3b[_0x5778f0(0x1a4)]),_0x7c889b=_0x16c9b7['sqls'][_0x365b3b[_0x5778f0(0x1a3)]],_0x1976cc=!!_0x7c889b&&_0x7c889b[_0x5778f0(0x1a8)]!==_0x365b3b[_0x5778f0(0x1bb)],_0x5be835=!!_0x7c889b&&!!_0x365b3b[_0x5778f0(0x1af)]&&_0x7c889b['sqlName']!==_0x365b3b[_0x5778f0(0x1af)];if(!_0x7c889b)_0x38acc3[_0x5778f0(0x1be)](_0x365b3b[_0x5778f0(0x1a3)]);else _0x7c889b[_0x5778f0(0x1c3)]!==_0x4cf5ff||_0x1976cc||_0x5be835?_0x305e0c[_0x5778f0(0x1be)](_0x365b3b[_0x5778f0(0x1a3)]):_0xbb10a2[_0x5778f0(0x1be)](_0x365b3b[_0x5778f0(0x1a3)]);}for(const _0x2184df of Object[_0x5778f0(0x1a9)](_0x16c9b7['sqls'])){!_0x3897db[_0x5778f0(0x1ad)](_0x2184df)&&_0x48ccc9[_0x5778f0(0x1be)](_0x2184df);}const _0x3ed3da=[];if(_0x300041[_0x5778f0(0x1c0)](_0x5778f0(0x1a2))){const _0x3007b1=await fetchAllSqlCodes(_0x300041['appCode']);for(const _0x277192 of _0x3007b1){!_0x3897db['has'](_0x277192)&&!_0x16c9b7[_0x5778f0(0x1ab)][_0x277192]&&_0x3ed3da[_0x5778f0(0x1be)](_0x277192);}}const _0x35e830=_0x38acc3['length']===0x0&&_0x305e0c[_0x5778f0(0x1a1)]===0x0&&_0x48ccc9[_0x5778f0(0x1a1)]===0x0&&_0x3ed3da[_0x5778f0(0x1a1)]===0x0;return{'ok':!![],'data':{'added':_0x38acc3,'modified':_0x305e0c,'missing':_0x48ccc9,'unchanged':_0xbb10a2,'remoteOnly':_0x3ed3da},'message':_0x35e830?_0x5778f0(0x1c1):_0x38acc3[_0x5778f0(0x1a1)]+'\x20added,\x20'+_0x305e0c[_0x5778f0(0x1a1)]+'\x20modified,\x20'+_0x48ccc9['length']+_0x5778f0(0x1b9)+_0xbb10a2[_0x5778f0(0x1a1)]+'\x20unchanged'+(_0x3ed3da['length']>0x0?',\x20'+_0x3ed3da[_0x5778f0(0x1a1)]+_0x5778f0(0x1c2):'')};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a193_0x1dd9(_0x8ced03,_0x5378cc){_0x8ced03=_0x8ced03-0x19c;const _0x27f32c=a193_0x27f3();let _0x1dd978=_0x27f32c[_0x8ced03];return _0x1dd978;}const a193_0x503fb4=a193_0x1dd9;(function(_0x2a7ecf,_0x1a7d4e){const _0xc20214=a193_0x1dd9,_0x2f5957=_0x2a7ecf();while(!![]){try{const _0xc581f7=parseInt(_0xc20214(0x19d))/0x1+-parseInt(_0xc20214(0x1c2))/0x2*(-parseInt(_0xc20214(0x1d1))/0x3)+parseInt(_0xc20214(0x1c6))/0x4+parseInt(_0xc20214(0x1e1))/0x5+-parseInt(_0xc20214(0x1cd))/0x6+parseInt(_0xc20214(0x1b0))/0x7*(-parseInt(_0xc20214(0x1ac))/0x8)+-parseInt(_0xc20214(0x1ca))/0x9*(parseInt(_0xc20214(0x1aa))/0xa);if(_0xc581f7===_0x1a7d4e)break;else _0x2f5957['push'](_0x2f5957['shift']());}catch(_0x5ebf36){_0x2f5957['push'](_0x2f5957['shift']());}}}(a193_0x27f3,0xb0a9c));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';import{validateSql}from'../../core/sql-validator.js';import{auditSqlJoinIndexes}from'../../core/sql-index-auditor.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';function a193_0x27f3(){const _0x3d90e7=['size','929051fRhYAE','columnNames','bool','parameters','Table\x20\x22','index_type','cwd','Provide\x20--file\x20or\x20--sql','tables','isSelectOnly','file','Dataset\x20\x22','schemas','51010RizkbV','from','4486128PuSHVf','primary','fields','boolean','14tRklZk','File\x20not\x20found:\x20','sql','joinAudit','sqlType','indexName','type','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','Audit\x20top-level\x20JOIN\x20equality\x20predicates\x20against\x20dataset\x20index\x20metadata','SQL\x20schema\x20validation','push','length','index_columns','get','indexes','isDangerous','unshift','dbtableConfig','1391448USoBoA','index_name','validate','tableName','773828dlwVwO','\x22\x20not\x20found\x20in\x20any\x20dataset','split','validation','225kqsLQs','appCode','isArray','3467268wbdPhq','flatMap','pkField','toLowerCase','6uxGOJs','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','--check-indexes\x20requires\x20--schemas.','\x22\x20not\x20found\x20or\x20not\x20accessible','valid','string','map','filter','message','str','trim','name','columns','schemaWarnings','read','reason','182955vvbRaz','find'];a193_0x27f3=function(){return _0x3d90e7;};return a193_0x27f3();}import{CliErrors}from'../../errors.js';import{assertDatasetIsDbTableBacked,filterDbTableBackedDatasets}from'../../commands/dataset/capability.js';export const sqlValidate={'service':'sql','command':a193_0x503fb4(0x1c4),'description':'Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','risk':a193_0x503fb4(0x1df),'flags':[{'name':a193_0x503fb4(0x1a7),'type':a193_0x503fb4(0x1d6),'description':a193_0x503fb4(0x1b7)},{'name':'sql','type':a193_0x503fb4(0x1d6),'description':'Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)'},{'name':a193_0x503fb4(0x1a9),'type':a193_0x503fb4(0x1d6),'description':a193_0x503fb4(0x1d2)},{'name':'check-indexes','type':a193_0x503fb4(0x1af),'description':a193_0x503fb4(0x1b8)}],async 'execute'(_0x44a6e1){const _0x1a5043=a193_0x503fb4,_0x485a88=_0x44a6e1[_0x1a5043(0x1da)](_0x1a5043(0x1a7)),_0x4464df=_0x44a6e1[_0x1a5043(0x1da)](_0x1a5043(0x1b2)),_0x46811b=_0x44a6e1[_0x1a5043(0x1da)]('schemas'),_0x3c8d7d=_0x44a6e1[_0x1a5043(0x19f)]('check-indexes');if(!_0x485a88&&!_0x4464df)throw CliErrors['flagMissing'](_0x1a5043(0x1a7),_0x1a5043(0x1a4));if(_0x3c8d7d&&!_0x46811b)throw CliErrors[_0x1a5043(0x1c9)](_0x1a5043(0x1d3));let _0x186cbb;if(_0x485a88){const _0x1ff881=resolve(process[_0x1a5043(0x1a3)](),_0x485a88);if(!existsSync(_0x1ff881))throw CliErrors[_0x1a5043(0x1c9)](_0x1a5043(0x1b1)+_0x1ff881);_0x186cbb=readFileSync(_0x1ff881,'utf-8');}else _0x186cbb=_0x4464df;const _0x1f05c4=validateSql(_0x186cbb),_0x2fdb9f={'valid':_0x1f05c4[_0x1a5043(0x1d5)],'sqlType':_0x1f05c4['sqlType'][_0x1a5043(0x1b6)],'isSelectOnly':_0x1f05c4[_0x1a5043(0x1b4)][_0x1a5043(0x1a6)],'isDangerous':_0x1f05c4['sqlType'][_0x1a5043(0x1bf)],'tables':_0x1f05c4[_0x1a5043(0x1a5)],'parameters':_0x1f05c4[_0x1a5043(0x1a0)],'message':_0x1f05c4['message']};_0x1f05c4['sqlType']['reason']&&(_0x2fdb9f['reason']=_0x1f05c4[_0x1a5043(0x1b4)][_0x1a5043(0x1e0)]);if(_0x46811b&&_0x1f05c4['valid']){const _0x5d9c8d=_0x46811b[_0x1a5043(0x1c8)](',')[_0x1a5043(0x1d7)](_0xdd7411=>_0xdd7411[_0x1a5043(0x1db)]())[_0x1a5043(0x1d8)](Boolean),_0x2e25ec=[],_0x139db5=[],_0x425872=filterDbTableBackedDatasets(await listDatasets(_0x44a6e1[_0x1a5043(0x1cb)])),_0x3f2a8f=new Map(_0x425872[_0x1a5043(0x1d7)](_0xb8d732=>[_0xb8d732[_0x1a5043(0x1c1)]?.[_0x1a5043(0x1c5)]?.[_0x1a5043(0x1d0)](),_0xb8d732]));for(const _0x2fa044 of _0x1f05c4[_0x1a5043(0x1a5)]){const _0x3277f2=_0x3f2a8f[_0x1a5043(0x1bd)](_0x2fa044['toLowerCase']());!_0x3277f2&&_0x2e25ec['push'](_0x1a5043(0x1a1)+_0x2fa044+_0x1a5043(0x1c7));}for(const _0x266ccf of _0x5d9c8d){let _0x142bbc;try{_0x142bbc=await getDatasetDetail(_0x266ccf);}catch{_0x2e25ec[_0x1a5043(0x1ba)](_0x1a5043(0x1a8)+_0x266ccf+_0x1a5043(0x1d4));continue;}assertDatasetIsDbTableBacked(_0x142bbc,_0x1a5043(0x1b9));const _0x23deaf=Array['isArray'](_0x142bbc[_0x1a5043(0x1ae)])?_0x142bbc['fields']:[],_0x47d02f=new Set(_0x23deaf[_0x1a5043(0x1d7)](_0x252bff=>_0x252bff['name']?.[_0x1a5043(0x1d0)]())),_0x316121=_0x142bbc['dbtableConfig']?.[_0x1a5043(0x1c5)]||_0x142bbc[_0x1a5043(0x1c5)]||_0x266ccf;_0x2fdb9f['schema:'+_0x316121]={'code':_0x266ccf,'tableName':_0x316121,'fieldCount':_0x47d02f[_0x1a5043(0x19c)],'fields':Array[_0x1a5043(0x1ab)](_0x47d02f)};if(_0x3c8d7d){const _0x440e1=normalizeDatasetIndexes(_0x142bbc);_0x139db5[_0x1a5043(0x1ba)]({'tableName':_0x316121,..._0x440e1});}}_0x2e25ec['length']>0x0&&(_0x2fdb9f[_0x1a5043(0x1de)]=_0x2e25ec),_0x3c8d7d&&(_0x2fdb9f[_0x1a5043(0x1b3)]=auditSqlJoinIndexes(_0x186cbb,_0x139db5));}return{'ok':_0x1f05c4['valid'],'data':_0x2fdb9f,'message':_0x1f05c4[_0x1a5043(0x1d9)]};}};function normalizeDatasetIndexes(_0x532271){const _0x121a4d=a193_0x503fb4,_0x32faed=Array[_0x121a4d(0x1cc)](_0x532271?.['dataset']?.['indexes'])?_0x532271['dataset'][_0x121a4d(0x1be)]:Array[_0x121a4d(0x1cc)](_0x532271?.[_0x121a4d(0x1be)])?_0x532271[_0x121a4d(0x1be)]:[],_0x24a234=_0x32faed[_0x121a4d(0x1ce)](_0x2c5e82=>{const _0x12fd95=_0x121a4d,_0x329f30=Array['isArray'](_0x2c5e82?.[_0x12fd95(0x1bc)])?_0x2c5e82[_0x12fd95(0x1bc)]:Array['isArray'](_0x2c5e82?.[_0x12fd95(0x19e)])?_0x2c5e82[_0x12fd95(0x19e)]:Array[_0x12fd95(0x1cc)](_0x2c5e82?.['columns'])?_0x2c5e82[_0x12fd95(0x1dd)]:[],_0xc7f556=_0x329f30[_0x12fd95(0x1d8)](_0x4c16ca=>typeof _0x4c16ca===_0x12fd95(0x1d6))[_0x12fd95(0x1d7)](_0x1410aa=>_0x1410aa['trim']())[_0x12fd95(0x1d8)](Boolean);if(_0xc7f556[_0x12fd95(0x1bb)]===0x0)return[];const _0x38e948=[_0x2c5e82?.[_0x12fd95(0x1b5)],_0x2c5e82?.[_0x12fd95(0x1c3)],_0x2c5e82?.[_0x12fd95(0x1dc)]][_0x12fd95(0x1e2)](_0x1bc9f6=>typeof _0x1bc9f6===_0x12fd95(0x1d6)&&_0x1bc9f6[_0x12fd95(0x1db)]()),_0xffd1b5=[_0x2c5e82?.[_0x12fd95(0x1a2)],_0x2c5e82?.['type']][_0x12fd95(0x1e2)](_0x14bcb1=>typeof _0x14bcb1===_0x12fd95(0x1d6)&&_0x14bcb1[_0x12fd95(0x1db)]());return[{..._0x38e948?{'name':_0x38e948[_0x12fd95(0x1db)]()}:{},..._0xffd1b5?{'type':_0xffd1b5['trim']()}:{},'columns':_0xc7f556}];}),_0x599a37=[..._0x24a234],_0x1a7fee=typeof _0x532271?.[_0x121a4d(0x1c1)]?.[_0x121a4d(0x1cf)]===_0x121a4d(0x1d6)?_0x532271[_0x121a4d(0x1c1)]['pkField']['split'](',')[_0x121a4d(0x1d7)](_0x4471d1=>_0x4471d1['trim']())['filter'](Boolean):[];return _0x1a7fee['length']>0x0&&_0x599a37[_0x121a4d(0x1c0)]({'type':_0x121a4d(0x1ad),'columns':_0x1a7fee}),{'indexes':_0x599a37,'metadataAvailable':_0x24a234[_0x121a4d(0x1bb)]>0x0};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x89058,_0x506bf8){const _0x1c9b6c=a194_0x105f,_0x147824=_0x89058();while(!![]){try{const _0x4371da=parseInt(_0x1c9b6c(0x94))/0x1+-parseInt(_0x1c9b6c(0x95))/0x2*(-parseInt(_0x1c9b6c(0x90))/0x3)+parseInt(_0x1c9b6c(0x97))/0x4*(-parseInt(_0x1c9b6c(0x8f))/0x5)+parseInt(_0x1c9b6c(0x96))/0x6+-parseInt(_0x1c9b6c(0x92))/0x7+parseInt(_0x1c9b6c(0x91))/0x8+-parseInt(_0x1c9b6c(0x93))/0x9;if(_0x4371da===_0x506bf8)break;else _0x147824['push'](_0x147824['shift']());}catch(_0x15ed2a){_0x147824['push'](_0x147824['shift']());}}}(a194_0x497c,0x864c0));function a194_0x497c(){const _0x2c51b1=['276525ELitTR','1122070QYwRZK','4672680xPIfxE','108ACWWcn','18755qqaHwz','3xzGNkf','937960EHsIIp','5074027ZOUEQo','3216303GhcNnt'];a194_0x497c=function(){return _0x2c51b1;};return a194_0x497c();}import{taskStatus}from'../../commands/task/status.js';function a194_0x105f(_0x534a52,_0x509a8a){_0x534a52=_0x534a52-0x8f;const _0x497ce6=a194_0x497c();let _0x105f2e=_0x497ce6[_0x534a52];return _0x105f2e;}export const taskDefinitions=[taskStatus];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a195_0x13fb39=a195_0x5940;(function(_0x5e9995,_0x1a3f36){const _0x4ee79d=a195_0x5940,_0xd50e83=_0x5e9995();while(!![]){try{const _0xf991d6=-parseInt(_0x4ee79d(0x1b1))/0x1+-parseInt(_0x4ee79d(0x1bb))/0x2+parseInt(_0x4ee79d(0x1bc))/0x3+-parseInt(_0x4ee79d(0x1ba))/0x4*(parseInt(_0x4ee79d(0x1b4))/0x5)+parseInt(_0x4ee79d(0x1b5))/0x6+-parseInt(_0x4ee79d(0x1b6))/0x7*(parseInt(_0x4ee79d(0x1c5))/0x8)+-parseInt(_0x4ee79d(0x1ae))/0x9*(-parseInt(_0x4ee79d(0x1bd))/0xa);if(_0xf991d6===_0x1a3f36)break;else _0xd50e83['push'](_0xd50e83['shift']());}catch(_0x58eded){_0xd50e83['push'](_0xd50e83['shift']());}}}(a195_0x28e9,0xf1767));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asyncTaskMessage,buildAsyncTaskStatusCommand,normalizeAsyncTask}from'../../commands/common/async-task.js';import{getAsyncTaskStatus}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a195_0x28e9(){const _0x449026=['isTerminal','32kxehkz','appCode','str','9jryZuF','trim','read','81466intXID','string','task-id','1503150ONeeMk','3366306SPQSrI','1418592CGlrES','task','status','flagMissing','24xatYzp','2744220pXmdgO','102429qEodaD','44618170RKWQQI','taskId','compress','Task\x20status\x20response\x20id\x20mismatch:\x20requested\x20',',\x20received\x20','cookie','Task\x20id\x20returned\x20by\x20an\x20asynchronous\x20platform\x20command'];a195_0x28e9=function(){return _0x449026;};return a195_0x28e9();}function a195_0x5940(_0x13a1a2,_0x162546){_0x13a1a2=_0x13a1a2-0x1ac;const _0x28e928=a195_0x28e9();let _0x594027=_0x28e928[_0x13a1a2];return _0x594027;}export const taskStatus={'service':a195_0x13fb39(0x1b7),'command':a195_0x13fb39(0x1b8),'description':'Query\x20an\x20asynchronous\x20task;\x20repeat\x20for\x20PENDING\x20or\x20PROCESSING\x20until\x20SUCCESS\x20or\x20FAILED','risk':a195_0x13fb39(0x1b0),'defaultOutputFormat':a195_0x13fb39(0x1bf),'structuredErrors':!![],'flags':[{'name':a195_0x13fb39(0x1b3),'type':a195_0x13fb39(0x1b2),'required':!![],'description':a195_0x13fb39(0x1c3)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0xc28aab){const _0x3e7bf3=a195_0x13fb39;if(!_0xc28aab[_0x3e7bf3(0x1ad)]('task-id')[_0x3e7bf3(0x1af)]())throw CliErrors[_0x3e7bf3(0x1b9)](_0x3e7bf3(0x1b3));},async 'execute'(_0x563e43){const _0x274bf=a195_0x13fb39,_0x1fc893=_0x563e43['str'](_0x274bf(0x1b3))['trim'](),_0x5c6afb=normalizeAsyncTask(await getAsyncTaskStatus(_0x1fc893,_0x563e43['appCode'],_0x563e43[_0x274bf(0x1c2)]));if(_0x5c6afb['taskId']!==_0x1fc893)throw CliErrors['apiError'](_0x274bf(0x1c0)+_0x1fc893+_0x274bf(0x1c1)+_0x5c6afb[_0x274bf(0x1be)]+'.');const _0x107883=buildAsyncTaskStatusCommand(_0x5c6afb[_0x274bf(0x1be)],_0x563e43['appCode']);return{'ok':!![],'message':asyncTaskMessage(_0x5c6afb),'data':{'appCode':_0x563e43[_0x274bf(0x1ac)],..._0x5c6afb,'query':_0x5c6afb[_0x274bf(0x1c4)]?null:{'command':_0x107883}}};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x49f709,_0x2410ce){const _0x9a7dea=a196_0x1119,_0x432be3=_0x49f709();while(!![]){try{const _0x22f850=-parseInt(_0x9a7dea(0x6d))/0x1*(parseInt(_0x9a7dea(0x75))/0x2)+parseInt(_0x9a7dea(0x72))/0x3+parseInt(_0x9a7dea(0x6e))/0x4+-parseInt(_0x9a7dea(0x73))/0x5+parseInt(_0x9a7dea(0x71))/0x6*(-parseInt(_0x9a7dea(0x6f))/0x7)+-parseInt(_0x9a7dea(0x74))/0x8*(-parseInt(_0x9a7dea(0x70))/0x9)+-parseInt(_0x9a7dea(0x6b))/0xa*(-parseInt(_0x9a7dea(0x6c))/0xb);if(_0x22f850===_0x2410ce)break;else _0x432be3['push'](_0x432be3['shift']());}catch(_0x476c20){_0x432be3['push'](_0x432be3['shift']());}}}(a196_0x2ed9,0x44a24));function a196_0x2ed9(){const _0x46953c=['288gMYbUc','6PhdQuD','412383qaQvYI','1958605wpavpc','118728tlFvrr','25420VqvwOs','3060790PUThQE','11RqpBzC','1ZUMYul','1197076YgVcXL','3725162juvqZE'];a196_0x2ed9=function(){return _0x46953c;};return a196_0x2ed9();}import{tenantMembersListDefinition}from'../../commands/tenant/members-list.js';function a196_0x1119(_0x2edf02,_0xa41f7e){_0x2edf02=_0x2edf02-0x6b;const _0x2ed92f=a196_0x2ed9();let _0x1119e9=_0x2ed92f[_0x2edf02];return _0x1119e9;}export const tenantDefinitions=[tenantMembersListDefinition];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a197_0x4f9a24=a197_0x5889;(function(_0x5b358f,_0x634d7b){const _0x4b49a2=a197_0x5889,_0x22c13a=_0x5b358f();while(!![]){try{const _0x79c2f6=-parseInt(_0x4b49a2(0x1ec))/0x1*(parseInt(_0x4b49a2(0x1d8))/0x2)+-parseInt(_0x4b49a2(0x1d9))/0x3*(-parseInt(_0x4b49a2(0x1dc))/0x4)+-parseInt(_0x4b49a2(0x1de))/0x5*(parseInt(_0x4b49a2(0x1dd))/0x6)+parseInt(_0x4b49a2(0x1db))/0x7*(parseInt(_0x4b49a2(0x1ea))/0x8)+-parseInt(_0x4b49a2(0x1e3))/0x9+-parseInt(_0x4b49a2(0x1e9))/0xa+-parseInt(_0x4b49a2(0x1df))/0xb*(-parseInt(_0x4b49a2(0x1e4))/0xc);if(_0x79c2f6===_0x634d7b)break;else _0x22c13a['push'](_0x22c13a['shift']());}catch(_0x55674f){_0x22c13a['push'](_0x22c13a['shift']());}}}(a197_0x5503,0xc5b63));function a197_0x5889(_0x55a05f,_0x2fbe0f){_0x55a05f=_0x55a05f-0x1d8;const _0x5503f2=a197_0x5503();let _0x58896e=_0x5503f2[_0x55a05f];return _0x58896e;}import{listCurrentUserTenantMemberships,listTenantDirectoryMembers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a197_0x5503(){const _0xcfba87=['3472640ytrHlt','45172193AcGmMS','trim','read','Found\x20','3943458pgMgmS','12LYStfv','List\x20members\x20of\x20a\x20tenant\x20available\x20to\x20the\x20current\x20account','members-list','flagMissing','length','14170930ArMfRQ','616WofLPC','Pass\x20--tenant-code\x20<code>.','1gjvuha','string','2449618WaXDIm','3VukPBq','tenant-code','100121PpFDYm','284212CPHbdC','12usFxnV'];a197_0x5503=function(){return _0xcfba87;};return a197_0x5503();}import{assertTenantAccessible,projectTenantMembers}from'../../commands/tenant/shared.js';export const tenantMembersListDefinition={'service':'tenant','command':a197_0x4f9a24(0x1e6),'description':a197_0x4f9a24(0x1e5),'risk':a197_0x4f9a24(0x1e1),'requiresAuth':!![],'requiresAppCode':![],'structuredErrors':!![],'flags':[{'name':'tenant-code','type':a197_0x4f9a24(0x1ed),'required':!![],'description':'Exact\x20tenant\x20code'}],async 'validate'(_0x4b207c){const _0x204084=a197_0x4f9a24;if(!_0x4b207c['str'](_0x204084(0x1da))[_0x204084(0x1e0)]())throw CliErrors[_0x204084(0x1e7)](_0x204084(0x1da),_0x204084(0x1eb));},async 'execute'(_0x31000c){const _0x6f78ba=a197_0x4f9a24,_0x4ab953=_0x31000c['str'](_0x6f78ba(0x1da))[_0x6f78ba(0x1e0)](),_0x43c0c2=await listCurrentUserTenantMemberships();assertTenantAccessible(_0x4ab953,_0x43c0c2);const _0x466741=projectTenantMembers(await listTenantDirectoryMembers(_0x4ab953));return{'ok':!![],'data':{'tenantCode':_0x4ab953,'items':_0x466741,'totalCount':_0x466741[_0x6f78ba(0x1e8)]},'message':_0x6f78ba(0x1e2)+_0x466741['length']+'\x20tenant\x20member(s)'};}};
|