@lovrabet/rabetbase-cli 2.3.4-beta.1 → 2.3.4-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -560
- 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/add.js +1 -1
- package/lib/commands/app/discover.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/remove.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-selector.js +1 -1
- package/lib/commands/common/flags.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/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/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/logs/index.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/shared/compare-table.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/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/menu/update.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/relation-audit.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/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/init.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.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/save.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/workspace/index.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-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/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.js +1 -1
- package/lib/help.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.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 +18 -2
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a128_0x21f33a=a128_0xc58e;(function(_0x361aa3,_0x168fd3){const _0x4d3189=a128_0xc58e,_0x26a79c=_0x361aa3();while(!![]){try{const _0x5a87fd=-parseInt(_0x4d3189(0x107))/0x1*(parseInt(_0x4d3189(0x12e))/0x2)+parseInt(_0x4d3189(0x141))/0x3+parseInt(_0x4d3189(0x137))/0x4+-parseInt(_0x4d3189(0x12a))/0x5*(-parseInt(_0x4d3189(0x124))/0x6)+-parseInt(_0x4d3189(0x140))/0x7*(parseInt(_0x4d3189(0x111))/0x8)+parseInt(_0x4d3189(0x106))/0x9+parseInt(_0x4d3189(0x12c))/0xa*(parseInt(_0x4d3189(0x12f))/0xb);if(_0x5a87fd===_0x168fd3)break;else _0x26a79c['push'](_0x26a79c['shift']());}catch(_0x287782){_0x26a79c['push'](_0x26a79c['shift']());}}}(a128_0x533e,0x49765));import{apiDefinitions}from'../commands/api/index.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';function a128_0xc58e(_0xc73bc5,_0x375fb4){_0xc73bc5=_0xc73bc5-0x102;const _0x533e88=a128_0x533e();let _0xc58e0b=_0x533e88[_0xc73bc5];return _0xc58e0b;}import{datasetDefinitions}from'../commands/dataset/index.js';import{pageDefinitions}from'../commands/page/index.js';import{dataDefinitions}from'../commands/data/index.js';import{dbDefinitions}from'../commands/db/index.js';import{codegenDefinitions}from'../commands/codegen/index.js';import{menuDefinitions}from'../commands/menu/index.js';import{appDefinitions}from'../commands/app/index.js';function a128_0x533e(){const _0x29632e=['8gJYhYj','Code\x20Generation','Configuration','app\x20use','Instant\x20API','Authentication','wildcardDef','\x20\x20[high-risk-write]','Quick\x20Start','Run\x20Scripts','App\x20Management','`\x20has\x20been\x20removed.','defaultCommand','command','`rabetbase\x20app\x20remote`\x20has\x20been\x20removed.','SQL\x20Queries','remote','show','Runtime\x20App\x20Config\x20Management','684WYDbUo','read','has','Diagnostics','service','\x20\x20[write]','18695QSyRGJ','BFF\x20Scripts','1270RaPdZi','CLI\x20Built-in\x20Skill','1814nuyNfn','473UvSKuq','Use\x20`rabetbase\x20app\x20list\x20--remote`\x20instead.','push','length','isSingleCommand','skill\x20','preview','run','475960UWDFvM','app','use','description','risk','Workspace','Use\x20`rabetbase\x20cli-skill\x20install`\x20to\x20refresh\x20the\x20Rabetbase\x20CLI\x20Built-in\x20Skill.\x20To\x20install\x20business\x20Skills,\x20use\x20`lovrabet\x20skill\x20install`.','Logs','Project','3135895ZWYyJd','1444872yanntI','from','values','Use\x20`rabetbase\x20workspace\x20use\x20--app\x20<name>`\x20instead.','Self\x20Update','Run\x20any\x20package.json\x20script','Menu','set','Schema','map','Database\x20Connections','232668FgxusZ','341TAcyec','create','start','get','skill','skills','project','logout','Dataset\x20&\x20Operations','<script>'];a128_0x533e=function(){return _0x29632e;};return a128_0x533e();}import{appConfigDefinitions}from'../commands/app-config/index.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/index.js';import{doctorDefinition}from'../commands/doctor.js';import{updateDefinition}from'../commands/cli-update.js';import{schemaDefinition}from'../commands/schema.js';import{issueDefinitions}from'../commands/issue/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{projectDefinitions}from'../commands/project/index.js';import{initDefinitions}from'../commands/init/index.js';import{runDefinition}from'../commands/run/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x5eda0a){const _0x13efab=a128_0xc58e;for(const _0x80e95b of _0x5eda0a){definitions[_0x13efab(0x102)](_0x80e95b[_0x13efab(0x128)]+':'+_0x80e95b['command'],_0x80e95b);let _0x155731=serviceGroups[_0x13efab(0x10a)](_0x80e95b[_0x13efab(0x128)]);!_0x155731&&(_0x155731=[],serviceGroups['set'](_0x80e95b[_0x13efab(0x128)],_0x155731)),_0x155731[_0x13efab(0x131)](_0x80e95b);}}function registerDeclarativeService(_0x2cee40,_0x42f78b,_0x3451b5){const _0x3bb541=a128_0xc58e;registerDefinitions(_0x42f78b);_0x3451b5?.[_0x3bb541(0x117)]&®isterDefinitions([_0x3451b5['wildcardDef']]);const _0x24c7b9=_0x5ccf73=>_0x5ccf73===_0x3bb541(0x125)?'':_0x5ccf73==='write'?_0x3bb541(0x129):_0x3bb541(0x118),_0xc1f7f5={'service':_0x42f78b[0x0][_0x3bb541(0x128)],'label':_0x2cee40,'commands':_0x42f78b[_0x3bb541(0x104)](_0x9672=>({'command':_0x9672[_0x3bb541(0x11e)],'description':_0x9672[_0x3bb541(0x13a)],'tag':_0x24c7b9(_0x9672[_0x3bb541(0x13b)])})),'declarative':!![],'defaultCommand':_0x3451b5?.[_0x3bb541(0x11d)]??(_0x3451b5?.['isSingleCommand']?_0x42f78b[0x0]['command']:undefined),'wildcardDef':_0x3451b5?.[_0x3bb541(0x117)],'isSingleCommand':_0x3451b5?.[_0x3bb541(0x133)]};serviceRegistry[_0x3bb541(0x131)](_0xc1f7f5),serviceByName[_0x3bb541(0x102)](_0xc1f7f5[_0x3bb541(0x128)],_0xc1f7f5);}registerDeclarativeService(a128_0x21f33a(0x119),initDefinitions,{'defaultCommand':a128_0x21f33a(0x136),'isSingleCommand':!![]}),registerDeclarativeService(a128_0x21f33a(0x13f),projectDefinitions),registerDeclarativeService(a128_0x21f33a(0x13c),workspaceDefinitions),registerDeclarativeService(a128_0x21f33a(0x11b),appDefinitions),registerDeclarativeService(a128_0x21f33a(0x116),authDefinitions,{'defaultCommand':'login'}),registerDeclarativeService(a128_0x21f33a(0x10f),datasetDefinitions),registerDeclarativeService('Smart\x20List\x20Pages',pageDefinitions),registerDeclarativeService('API\x20Development',apiDefinitions),registerDeclarativeService(a128_0x21f33a(0x115),dataDefinitions),registerDeclarativeService(a128_0x21f33a(0x12b),bffDefinitions),registerDeclarativeService(a128_0x21f33a(0x120),sqlDefinitions),registerDeclarativeService(a128_0x21f33a(0x105),dbDefinitions),registerDeclarativeService(a128_0x21f33a(0x147),menuDefinitions),registerDeclarativeService(a128_0x21f33a(0x123),appConfigDefinitions),registerDeclarativeService('Platform\x20Issue',issueDefinitions),registerDeclarativeService(a128_0x21f33a(0x112),codegenDefinitions),registerDeclarativeService(a128_0x21f33a(0x113),configDefinitions),registerDeclarativeService(a128_0x21f33a(0x127),[doctorDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a128_0x21f33a(0x103),[schemaDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a128_0x21f33a(0x145),[updateDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a128_0x21f33a(0x12d),cliSkillDefinitions,{'defaultCommand':'install'}),registerDeclarativeService(a128_0x21f33a(0x13e),logsDefinitions,{'defaultCommand':a128_0x21f33a(0x122)}),registerDeclarativeService(a128_0x21f33a(0x11a),[runDefinition],{'wildcardDef':runDefinition});{const last=serviceRegistry[serviceRegistry[a128_0x21f33a(0x132)]-0x1];last['commands']=[{'command':a128_0x21f33a(0x110),'description':a128_0x21f33a(0x146),'tag':''}];}export const deprecatedAliases={'create':{'service':a128_0x21f33a(0x10d),'command':a128_0x21f33a(0x108)},'start':{'service':'run','command':a128_0x21f33a(0x109)},'build':{'service':a128_0x21f33a(0x136),'command':'build'},'preview':{'service':'run','command':a128_0x21f33a(0x135)},'logout':{'service':'auth','command':a128_0x21f33a(0x10e)}};const CLI_SKILL_INSTALL_REMOVED_HINT=a128_0x21f33a(0x13d),APP_REMOTE_REMOVED_HINT=a128_0x21f33a(0x130),APP_USE_REMOVED_HINT=a128_0x21f33a(0x144);export function resolveRemovedCommand(_0x99333,_0x20b62a){const _0x2f6071=a128_0x21f33a;if(_0x99333===_0x2f6071(0x10b)){const _0x4e82bd=_0x20b62a?_0x2f6071(0x134)+_0x20b62a:_0x2f6071(0x10b);return{'command':_0x4e82bd,'message':'`rabetbase\x20'+_0x4e82bd+_0x2f6071(0x11c),'hint':CLI_SKILL_INSTALL_REMOVED_HINT};}if(_0x99333===_0x2f6071(0x10c))return{'command':'skills','message':'`rabetbase\x20skills`\x20has\x20been\x20removed.','hint':CLI_SKILL_INSTALL_REMOVED_HINT};if(_0x99333===_0x2f6071(0x138)&&_0x20b62a===_0x2f6071(0x121))return{'command':'app\x20remote','message':_0x2f6071(0x11f),'hint':APP_REMOTE_REMOVED_HINT};if(_0x99333==='app'&&_0x20b62a===_0x2f6071(0x139))return{'command':_0x2f6071(0x114),'message':'`rabetbase\x20app\x20use`\x20has\x20been\x20removed.','hint':APP_USE_REMOVED_HINT};return undefined;}export const deprecatedSubcommands={'bff':{'new':a128_0x21f33a(0x108)},'sql':{'new':a128_0x21f33a(0x108)}};export function resolveDeprecatedSubcommand(_0x5ce755,_0x57ba22){return deprecatedSubcommands[_0x5ce755]?.[_0x57ba22];}export function findDefinition(_0x3f6e38,_0x3b4017){const _0x39ca24=a128_0x21f33a;return definitions[_0x39ca24(0x10a)](_0x3f6e38+':'+_0x3b4017);}export function isKnownService(_0x5f368b){const _0x518000=a128_0x21f33a;return serviceByName[_0x518000(0x126)](_0x5f368b);}export function isDeclarativeService(_0x1feb70){const _0xef1923=a128_0x21f33a;return serviceGroups['has'](_0x1feb70)||serviceByName[_0xef1923(0x10a)](_0x1feb70)?.[_0xef1923(0x117)]!==undefined;}export function getServiceEntry(_0xceeed3){const _0x59411d=a128_0x21f33a;return serviceByName[_0x59411d(0x10a)](_0xceeed3);}export function getLegacyHandler(_0x3bdb93,_0x195232){return undefined;}export function getAllDefinitions(){const _0xb0ee0c=a128_0x21f33a;return Array[_0xb0ee0c(0x142)](definitions[_0xb0ee0c(0x143)]());}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a129_0x2f1d82=a129_0x3d9d;(function(_0x1bc92f,_0x443809){const _0x237912=a129_0x3d9d,_0x38d19a=_0x1bc92f();while(!![]){try{const _0xa98bbe=parseInt(_0x237912(0xc5))/0x1*(-parseInt(_0x237912(0xb8))/0x2)+-parseInt(_0x237912(0xd8))/0x3+-parseInt(_0x237912(0xe1))/0x4*(parseInt(_0x237912(0xa3))/0x5)+parseInt(_0x237912(0xaf))/0x6*(-parseInt(_0x237912(0x9f))/0x7)+-parseInt(_0x237912(0xce))/0x8*(parseInt(_0x237912(0xc3))/0x9)+-parseInt(_0x237912(0xd4))/0xa+parseInt(_0x237912(0xd2))/0xb;if(_0xa98bbe===_0x443809)break;else _0x38d19a['push'](_0x38d19a['shift']());}catch(_0x137ede){_0x38d19a['push'](_0x38d19a['shift']());}}}(a129_0x542a,0x54957));import{readFileSync,existsSync}from'node:fs';function a129_0x3d9d(_0x5910ed,_0x5384fa){_0x5910ed=_0x5910ed-0x9f;const _0x542a3b=a129_0x542a();let _0x3d9dc5=_0x542a3b[_0x5910ed];return _0x3d9dc5;}import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';function a129_0x542a(){const _0x4c0566=['belowMinimum','parse','\x20\x20\x20\x20','1304478fbHQxS','\x0a\x20\x20Available\x20scripts:\x0a','utf-8','\x20\x20EXAMPLES','\x20run\x20start','vite\x20preview\x20exited\x20with\x20code\x20','run','slice','\x20exited\x20with\x20code\x20','136eOhUKT','922761NjFGbJ','\x22\x20not\x20found\x20in\x20package.json.','\x20run\x20build','Enable\x20watch\x20mode\x20for\x20preview','53730rTswxv','all','node_modules','bun','cwd','length','bun.lockb','watch','join','npm','(none)','validation','24tbNvXm','.bin','script','push','close','keys','\x20run\x20<script>\x0a','--watch','read','8462EruXUF','scripts','bun.lock','No\x20scripts\x20defined\x20in\x20package.json.','Run\x20a\x20package.json\x20script','No\x20package.json\x20found\x20in\x20current\x20directory.','has','yarn.lock','args','pnpm-lock.yaml','build','814257UfdiCv','boolean','115JSMKOI','\x0a\x20\x20Usage:\x20','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','start','log','\x20run\x20preview','preview','inherit','needsUpgrade','40DEkREn','vite','dev','error','30188697mgNewH','Script\x20\x22','1315600yTIayE'];a129_0x542a=function(){return _0x4c0566;};return a129_0x542a();}import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set([a129_0x2f1d82(0xc8),a129_0x2f1d82(0xd0)]);function readPackageScripts(_0x5a2aef){const _0x5d94e5=a129_0x2f1d82,_0x4c97e3=resolve(_0x5a2aef,'package.json');if(!existsSync(_0x4c97e3))return null;try{const _0x5f46b0=JSON[_0x5d94e5(0xd6)](readFileSync(_0x4c97e3,_0x5d94e5(0xda)));return _0x5f46b0[_0x5d94e5(0xb9)]??{};}catch{return null;}}function detectPackageManager(_0x5d7df9){const _0x1d95fd=a129_0x2f1d82;if(existsSync(resolve(_0x5d7df9,_0x1d95fd(0xa9)))||existsSync(resolve(_0x5d7df9,_0x1d95fd(0xba))))return _0x1d95fd(0xa6);if(existsSync(resolve(_0x5d7df9,_0x1d95fd(0xc1))))return'pnpm';if(existsSync(resolve(_0x5d7df9,_0x1d95fd(0xbf))))return'yarn';return _0x1d95fd(0xac);}async function versionCheck(_0x23faa6){const _0x1b46c9=a129_0x2f1d82,_0x2ebe29=await checkCliVersion();(_0x2ebe29[_0x1b46c9(0xcd)]||_0x2ebe29[_0x1b46c9(0xd5)])&&(printCliUpgradeWarning(_0x2ebe29),assertCliVersionSupported(_0x2ebe29));const _0x1686a8=await checkSdkVersion(_0x23faa6);if(_0x1686a8[_0x1b46c9(0xcd)])printSdkUpgradeWarning(_0x1686a8);}function spawnScript(_0x259984,_0x3825b1,_0x2e5a1f,_0x11a74e){return new Promise((_0x8a20dc,_0x148276)=>{const _0x43d21e=a129_0x3d9d,_0x190102=[_0x43d21e(0xde),_0x3825b1,..._0x2e5a1f],_0x42c92e=spawn(_0x259984,_0x190102,{'cwd':_0x11a74e,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x11a74e,_0x43d21e(0xa5),'.bin')+delimiter+process.env.PATH}});_0x42c92e['on'](_0x43d21e(0xb3),_0x362f37=>{const _0x29e4aa=_0x43d21e;if(_0x362f37===0x0||_0x362f37===null)_0x8a20dc();else _0x148276(new Error(_0x259984+'\x20run\x20'+_0x3825b1+_0x29e4aa(0xe0)+_0x362f37));}),_0x42c92e['on'](_0x43d21e(0xd1),_0x148276);});}function spawnViteBuildWatch(_0x4bd1f2){return new Promise((_0x5730ee,_0x317c2d)=>{const _0x1b413d=a129_0x3d9d,_0x48a07c=spawn(_0x1b413d(0xcf),[_0x1b413d(0xc2),_0x1b413d(0xb6)],{'cwd':_0x4bd1f2,'stdio':_0x1b413d(0xcc),'shell':!![],'env':{...process.env,'PATH':''+join(_0x4bd1f2,_0x1b413d(0xa5),_0x1b413d(0xb0))+delimiter+process.env.PATH}});_0x48a07c['on'](_0x1b413d(0xb3),_0x1579db=>{const _0x1e2e57=_0x1b413d;if(_0x1579db===0x0||_0x1579db===null)_0x5730ee();else _0x317c2d(new Error(_0x1e2e57(0xc7)+_0x1579db));}),_0x48a07c['on'](_0x1b413d(0xd1),_0x317c2d);});}function spawnVitePreview(_0x1f22fa){return new Promise((_0x48a4df,_0x122348)=>{const _0xc26312=a129_0x3d9d,_0x205a5b=spawn('vite',['preview'],{'cwd':_0x1f22fa,'stdio':_0xc26312(0xcc),'shell':!![],'env':{...process.env,'PATH':''+join(_0x1f22fa,_0xc26312(0xa5),_0xc26312(0xb0))+delimiter+process.env.PATH}});_0x205a5b['on']('close',_0x11a4d9=>{const _0x50c0d1=_0xc26312;if(_0x11a4d9===0x0||_0x11a4d9===null)_0x48a4df();else _0x122348(new Error(_0x50c0d1(0xdd)+_0x11a4d9));}),_0x205a5b['on'](_0xc26312(0xd1),_0x122348);});}const runFlags=[{'name':'watch','type':a129_0x2f1d82(0xc4),'description':a129_0x2f1d82(0xa2),'default':![]}];export const runDefinition={'service':a129_0x2f1d82(0xde),'command':a129_0x2f1d82(0xde),'description':a129_0x2f1d82(0xbc),'risk':a129_0x2f1d82(0xb7),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a129_0x2f1d82(0xb1),'description':'Script\x20name\x20defined\x20in\x20package.json','required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x114072=a129_0x2f1d82,_0x4186ae=[];return _0x4186ae['push'](_0x114072(0xdb)),_0x4186ae[_0x114072(0xb2)](_0x114072(0xd7)+CLI_BIN_NAME+_0x114072(0xdc)),_0x4186ae['push'](_0x114072(0xd7)+CLI_BIN_NAME+_0x114072(0xa1)),_0x4186ae[_0x114072(0xb2)](_0x114072(0xd7)+CLI_BIN_NAME+_0x114072(0xca)),_0x4186ae['push'](_0x114072(0xd7)+CLI_BIN_NAME+'\x20run\x20preview\x20--watch'),_0x4186ae[_0x114072(0xab)]('\x0a');},async 'execute'(_0x1ec69d){const _0xc2a650=a129_0x2f1d82,_0x33cea7=process[_0xc2a650(0xa7)](),_0xac155c=_0x1ec69d['args'][0x0],_0x5214f7=_0x1ec69d[_0xc2a650(0xc0)][_0xc2a650(0xdf)](0x1),_0x276d08=readPackageScripts(_0x33cea7);if(!_0x276d08)throw CliErrors[_0xc2a650(0xae)](_0xc2a650(0xbd));if(!_0xac155c){const _0x36ad1e=Object[_0xc2a650(0xb4)](_0x276d08);if(_0x36ad1e[_0xc2a650(0xa8)]===0x0)console[_0xc2a650(0xc9)](_0xc2a650(0xbb));else{console[_0xc2a650(0xc9)](_0xc2a650(0xd9));for(const _0x50d261 of _0x36ad1e){console['log']('\x20\x20\x20\x20'+_0x50d261);}console[_0xc2a650(0xc9)](_0xc2a650(0xc6)+CLI_BIN_NAME+_0xc2a650(0xb5));}return{'ok':!![]};}if(!_0x276d08[_0xac155c])throw CliErrors[_0xc2a650(0xae)](_0xc2a650(0xd3)+_0xac155c+_0xc2a650(0xa0),'Available:\x20'+(Object['keys'](_0x276d08)[_0xc2a650(0xab)](',\x20')||_0xc2a650(0xad)));const _0x5056e3=detectPackageManager(_0x33cea7);VERSION_CHECK_SCRIPTS[_0xc2a650(0xbe)](_0xac155c)&&await versionCheck(_0x33cea7);if(_0xac155c===_0xc2a650(0xcb)&&_0x1ec69d['bool'](_0xc2a650(0xaa)))return await Promise[_0xc2a650(0xa4)]([spawnViteBuildWatch(_0x33cea7),spawnVitePreview(_0x33cea7)]),{'ok':!![]};return await spawnScript(_0x5056e3,_0xac155c,_0x5214f7,_0x33cea7),{'ok':!![]};}};
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a130_0x3620(){const _0x61eea9=['read','5438752BlryGp','70lraJNX','1989076viOAfA','1869015nYTHpv','10683JMgUSG','schema','Export\x20machine-readable\x20command\x20schema\x20(JSON)','114002XqaKkD','2109036ZqiUoN','263109dwmVSM'];a130_0x3620=function(){return _0x61eea9;};return a130_0x3620();}const a130_0x543d19=a130_0x294c;(function(_0x376f56,_0x180691){const _0xbf39fb=a130_0x294c,_0x59357c=_0x376f56();while(!![]){try{const _0x5f3932=-parseInt(_0xbf39fb(0xf1))/0x1+parseInt(_0xbf39fb(0xeb))/0x2*(-parseInt(_0xbf39fb(0xee))/0x3)+parseInt(_0xbf39fb(0xec))/0x4+parseInt(_0xbf39fb(0xed))/0x5+parseInt(_0xbf39fb(0xf2))/0x6+-parseInt(_0xbf39fb(0xf3))/0x7+-parseInt(_0xbf39fb(0xea))/0x8;if(_0x5f3932===_0x180691)break;else _0x59357c['push'](_0x59357c['shift']());}catch(_0x215acb){_0x59357c['push'](_0x59357c['shift']());}}}(a130_0x3620,0x4110e));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1f3bdf){const _0x284c36=await buildSchemaPayload();return{'ok':!![],'data':_0x284c36};}function a130_0x294c(_0x303edf,_0x1b52ba){_0x303edf=_0x303edf-0xea;const _0x36208b=a130_0x3620();let _0x294c6a=_0x36208b[_0x303edf];return _0x294c6a;}export const schemaDefinition={'service':a130_0x543d19(0xef),'command':'export','description':a130_0x543d19(0xf0),'risk':a130_0x543d19(0xf4),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':'json','flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a131_0x9936c7=a131_0x194a;(function(_0x31aad2,_0x52b8f5){const _0x5d808e=a131_0x194a,_0xaa8cbc=_0x31aad2();while(!![]){try{const _0x50dbad=parseInt(_0x5d808e(0x1c9))/0x1*(parseInt(_0x5d808e(0x1cb))/0x2)+-parseInt(_0x5d808e(0x1b1))/0x3+parseInt(_0x5d808e(0x1de))/0x4*(-parseInt(_0x5d808e(0x1e2))/0x5)+parseInt(_0x5d808e(0x1bc))/0x6+-parseInt(_0x5d808e(0x1cf))/0x7*(-parseInt(_0x5d808e(0x1ce))/0x8)+-parseInt(_0x5d808e(0x1a8))/0x9*(-parseInt(_0x5d808e(0x1b3))/0xa)+-parseInt(_0x5d808e(0x1ae))/0xb*(-parseInt(_0x5d808e(0x1b7))/0xc);if(_0x50dbad===_0x52b8f5)break;else _0xaa8cbc['push'](_0xaa8cbc['shift']());}catch(_0x52cdbf){_0xaa8cbc['push'](_0xaa8cbc['shift']());}}}(a131_0xe812,0x8c61f));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(_0x1e133f){const _0xed12b6=a131_0x194a;if(_0x1e133f===_0xed12b6(0x1ab))return[_0xed12b6(0x1d3),_0xed12b6(0x1c5),'</select>','']['join']('\x0a');return[_0xed12b6(0x1b6),''][_0xed12b6(0x1a5)]('\x0a');}export const sqlCreate={'service':a131_0x9936c7(0x1b9),'command':'create','description':a131_0x9936c7(0x1e4),'risk':a131_0x9936c7(0x1d6),'flags':[{'name':a131_0x9936c7(0x1a4),'type':'string','description':a131_0x9936c7(0x1ca)},{'name':a131_0x9936c7(0x1d1),'type':a131_0x9936c7(0x1d8),'description':a131_0x9936c7(0x1df)},{'name':a131_0x9936c7(0x1bb),'type':a131_0x9936c7(0x1ac),'enum':[a131_0x9936c7(0x1b9),a131_0x9936c7(0x1ab)],'description':a131_0x9936c7(0x1d2)}],async 'validate'(_0x2dd4b1){const _0x2caa92=a131_0x9936c7;if(!_0x2dd4b1[_0x2caa92(0x1c0)])return;if(!_0x2dd4b1['str'](_0x2caa92(0x1a4))[_0x2caa92(0x1b8)]())throw CliErrors['flagMissing']('name',_0x2caa92(0x1c4));const _0x99a22c=resolveProvidedDbId(_0x2dd4b1);if(typeof _0x99a22c!==_0x2caa92(0x1d8)||!Number[_0x2caa92(0x1c8)](_0x99a22c)||_0x99a22c<=0x0)throw CliErrors[_0x2caa92(0x1cc)]('db-id','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x2dd4b1[_0x2caa92(0x1a2)](_0x2caa92(0x1bb))[_0x2caa92(0x1b8)]())throw CliErrors[_0x2caa92(0x1cc)](_0x2caa92(0x1bb),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x5eab3d){const _0x28a6ba=a131_0x9936c7,_0x295160=loadSqlProjectConfig(_0x5eab3d[_0x28a6ba(0x1a7)]),{sqlName:_0xc09506,dbId:_0x5be8da,dbName:_0x38bc0f,mode:_0x1fd607}=await resolveSqlNewInputs(_0x5eab3d),_0x380d5e=buildSqlRelativePath(_0x28a6ba(0x1db),_0xc09506,_0x38bc0f,_0x1fd607,_0x5be8da),_0x57d06f=_0x295160[_0x28a6ba(0x1dc)]+'/'+_0x380d5e;return{'method':_0x28a6ba(0x1e1),'url':'/smartapi/custom/saveUserCustomSql','body':{'appCode':_0x5eab3d[_0x28a6ba(0x1a7)],'sqlName':_0xc09506,'dbId':_0x5be8da,'mode':_0x1fd607,'localPath':_0x57d06f},'description':_0x28a6ba(0x1ad)+_0x295160[_0x28a6ba(0x1dc)]};},async 'execute'(_0x52d874){const _0x715bbe=a131_0x9936c7,_0x32604e=loadSqlProjectConfig(_0x52d874[_0x715bbe(0x1a7)]),{sqlName:_0x1f85a0,dbId:_0x4ecd47,dbName:_0x354eff,mode:_0x1576f7}=await resolveSqlNewInputs(_0x52d874),_0x106198=generateSqlTemplate(_0x1576f7),_0x3c67ef=await createSqlQuery({'appCode':_0x52d874['appCode'],'sqlName':_0x1f85a0,'dbId':_0x4ecd47,'sqlContent':_0x106198}),_0x51229d=ensureRemoteSqlContent(_0x3c67ef),_0x23bcfa=_0x354eff||await getDbName(_0x52d874[_0x715bbe(0x1a7)],_0x4ecd47)[_0x715bbe(0x1c3)](()=>undefined),_0x3a1637=buildSqlRelativePath(_0x3c67ef[_0x715bbe(0x1cd)],_0x3c67ef[_0x715bbe(0x1af)],_0x23bcfa,_0x1576f7,_0x4ecd47),_0x1fdd86=_0x32604e['sqlRootDir']+'/'+_0x3a1637,_0x1031ff=buildLocalSqlFileContent({'sqlCode':_0x3c67ef[_0x715bbe(0x1cd)],'sqlName':_0x3c67ef[_0x715bbe(0x1af)],'dbId':_0x3c67ef['dbId']},_0x51229d,{'dbName':_0x23bcfa,'mode':_0x1576f7,'syncedAt':new Date()[_0x715bbe(0x1c2)](),'description':_0x3c67ef[_0x715bbe(0x1a9)]});if(await fileExists(_0x1fdd86))throw CliErrors[_0x715bbe(0x1d4)]('File\x20already\x20exists:\x20'+_0x1fdd86);await ensureParentDirectory(_0x1fdd86),await writeFile(_0x1fdd86,_0x1031ff,_0x715bbe(0x1a3));const _0x3d8da3=await readSqlLockFile(_0x32604e['lockFilePath']),{lockData:_0x25ff6c,appLock:_0x5b71b9}=ensureSqlLockScope(_0x3d8da3??createEmptySqlLock(),_0x32604e[_0x715bbe(0x1a7)],_0x32604e['sqlRoot'],'new');return _0x5b71b9[_0x715bbe(0x1e3)][_0x3c67ef[_0x715bbe(0x1cd)]]={...buildSqlLockEntry(_0x3c67ef,_0x51229d,computeSqlContentHash(_0x1031ff),{'dbName':_0x23bcfa}),'path':_0x3a1637,'mode':_0x1576f7},_0x5b71b9[_0x715bbe(0x1aa)]=new Date()['toISOString'](),await writeSqlLockFile(_0x32604e[_0x715bbe(0x1be)],_0x25ff6c),{'ok':!![],'data':{'id':_0x3c67ef['id'],'sqlCode':_0x3c67ef[_0x715bbe(0x1cd)],'sqlName':_0x3c67ef[_0x715bbe(0x1af)],'dbId':_0x3c67ef[_0x715bbe(0x1ba)],'path':_0x1fdd86,'mode':_0x1576f7},'message':'Created\x20SQL\x20query\x20'+_0x3c67ef[_0x715bbe(0x1cd)]};}};async function resolveSqlNewInputs(_0x522203){const _0x4c99b1=await resolveSqlNameInput(_0x522203),{dbId:_0x663b68,dbName:_0x54fabd}=await resolveDbSelection(_0x522203),_0x36fab6=await resolveSqlModeInput(_0x522203);return{'sqlName':_0x4c99b1,'dbId':_0x663b68,'dbName':_0x54fabd,'mode':_0x36fab6};}function a131_0x194a(_0x46219a,_0x11d8d7){_0x46219a=_0x46219a-0x1a1;const _0xe812c7=a131_0xe812();let _0x194a05=_0xe812c7[_0x46219a];return _0x194a05;}function a131_0xe812(){const _0x4b0ef7=['stringify','819009emdAEQ','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','10gKyQzI','dbId\x20不能为空','SQL\x20名称不能为空','SELECT\x201\x20AS\x20id;','228PcyraH','trim','sql','dbId','mode','602640uhZQTX','适合带动态标签的\x20MyBatis\x20XML\x20SQL','lockFilePath','请输入目标数据库\x20dbId:','nonInteractive','__manual__','toISOString','catch','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','\x20\x20SELECT\x201\x20AS\x20id','flag','isInteger','isFinite','113722SSFyoL','SQL\x20query\x20display\x20name','14DhYvKn','flagMissing','sqlCode','24xevGme','747285BfORiD','请选择本地\x20SQL\x20模式:','db-id','Local\x20SQL\x20file\x20mode','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','validation','Invalid\x20database\x20selection\x20payload:\x20','high-risk-write','parse','number','MyBatis\x20XML(mybatisXml)','请输入\x20SQL\x20名称:','<server-generated-sqlCode>','sqlRootDir','length','76ycSyVo','Target\x20database\x20ID','✎\x20手动输入\x20dbId','POST','197375cDlFvH','sqls','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','str','utf8','name','join','dbName','appCode','244899UIQRqq','description','lastSync','mybatisXml','string','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','204985okXpVY','sqlName'];a131_0xe812=function(){return _0x4b0ef7;};return a131_0xe812();}async function resolveSqlNameInput(_0x58d21b){const _0x44bbf1=a131_0x9936c7,_0x18b6f4=_0x58d21b['str'](_0x44bbf1(0x1a4))[_0x44bbf1(0x1b8)]();if(_0x18b6f4)return _0x18b6f4;if(_0x58d21b[_0x44bbf1(0x1c0)])throw CliErrors['flagMissing'](_0x44bbf1(0x1a4),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x44bbf1(0x1da),'validate':_0x2da0b8=>_0x2da0b8['trim']()?!![]:_0x44bbf1(0x1b5)}))[_0x44bbf1(0x1b8)]();}async function resolveDbSelection(_0x10548c){const _0x1ee96e=a131_0x9936c7,_0xf83287=resolveProvidedDbId(_0x10548c);if(typeof _0xf83287===_0x1ee96e(0x1d8)&&Number[_0x1ee96e(0x1c8)](_0xf83287)&&_0xf83287>0x0)return{'dbId':_0xf83287,'dbName':await getDbName(_0x10548c['appCode'],_0xf83287)['catch'](()=>undefined)};if(_0x10548c[_0x1ee96e(0x1c0)])throw CliErrors[_0x1ee96e(0x1cc)](_0x1ee96e(0x1d1),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x1dc9bb=await listDatabases(_0x10548c[_0x1ee96e(0x1a7)])[_0x1ee96e(0x1c3)](()=>[]);if(_0x1dc9bb[_0x1ee96e(0x1dd)]===0x1)return{'dbId':_0x1dc9bb[0x0][_0x1ee96e(0x1ba)],'dbName':_0x1dc9bb[0x0]['dbName']};if(_0x1dc9bb[_0x1ee96e(0x1dd)]>0x1){const _0x28fd58=await select({'message':'请选择目标数据库:','choices':[..._0x1dc9bb['map'](_0x5e6b07=>({'name':_0x5e6b07[_0x1ee96e(0x1a6)]+'\x20('+_0x5e6b07[_0x1ee96e(0x1ba)]+')','value':serializeDbSelection(_0x5e6b07)})),{'name':_0x1ee96e(0x1e0),'value':_0x1ee96e(0x1c1)}]});if(_0x28fd58!==_0x1ee96e(0x1c1))return deserializeDbSelection(_0x28fd58);}const _0x3a4abe=await input({'message':_0x1ee96e(0x1bf),'validate':_0x1e45f9=>{const _0x2ab102=_0x1ee96e,_0x2f5918=_0x1e45f9[_0x2ab102(0x1b8)]();if(!_0x2f5918)return _0x2ab102(0x1b4);const _0x582177=Number(_0x2f5918);if(!Number[_0x2ab102(0x1c7)](_0x582177)||_0x582177<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0x3a4abe[_0x1ee96e(0x1b8)]())};}async function resolveSqlModeInput(_0x486ddb){const _0x5dc999=a131_0x9936c7,_0x35909f=_0x486ddb['str'](_0x5dc999(0x1bb))[_0x5dc999(0x1b8)]();if(_0x35909f===_0x5dc999(0x1b9)||_0x35909f===_0x5dc999(0x1ab))return _0x35909f;if(_0x486ddb[_0x5dc999(0x1c0)])throw CliErrors[_0x5dc999(0x1cc)](_0x5dc999(0x1bb),_0x5dc999(0x1b2));return await select({'message':_0x5dc999(0x1d0),'choices':[{'name':'普通\x20SQL(sql)','value':_0x5dc999(0x1b9),'description':_0x5dc999(0x1a1)},{'name':_0x5dc999(0x1d9),'value':'mybatisXml','description':_0x5dc999(0x1bd)}]});}function serializeDbSelection(_0x91ee9f){const _0x5200a1=a131_0x9936c7;return JSON[_0x5200a1(0x1b0)]({'dbId':_0x91ee9f[_0x5200a1(0x1ba)],'dbName':_0x91ee9f[_0x5200a1(0x1a6)]});}function deserializeDbSelection(_0x2527bf){const _0x34a7a0=a131_0x9936c7;try{const _0x460800=JSON[_0x34a7a0(0x1d7)](_0x2527bf);if(typeof _0x460800[_0x34a7a0(0x1ba)]===_0x34a7a0(0x1d8)&&Number[_0x34a7a0(0x1c8)](_0x460800[_0x34a7a0(0x1ba)]))return{'dbId':_0x460800['dbId'],'dbName':_0x460800['dbName']};}catch{}throw CliErrors[_0x34a7a0(0x1d4)](_0x34a7a0(0x1d5)+_0x2527bf);}function resolveProvidedDbId(_0x2f0a8b){const _0x2d0bf5=a131_0x9936c7,_0x134e26=_0x2f0a8b[_0x2d0bf5(0x1c6)](_0x2d0bf5(0x1d1));if(typeof _0x134e26===_0x2d0bf5(0x1d8)&&Number[_0x2d0bf5(0x1c8)](_0x134e26))return _0x134e26;return undefined;}
|
|
1
|
+
const a131_0x48c896=a131_0x4620;(function(_0x323838,_0x2fc9e6){const _0x2f5336=a131_0x4620,_0x42d611=_0x323838();while(!![]){try{const _0x2ff51d=-parseInt(_0x2f5336(0x1cf))/0x1*(-parseInt(_0x2f5336(0x1bc))/0x2)+parseInt(_0x2f5336(0x19f))/0x3+-parseInt(_0x2f5336(0x1cc))/0x4+parseInt(_0x2f5336(0x1af))/0x5*(-parseInt(_0x2f5336(0x1ac))/0x6)+-parseInt(_0x2f5336(0x199))/0x7*(parseInt(_0x2f5336(0x1b3))/0x8)+-parseInt(_0x2f5336(0x1a8))/0x9*(-parseInt(_0x2f5336(0x1c8))/0xa)+-parseInt(_0x2f5336(0x192))/0xb*(-parseInt(_0x2f5336(0x1c1))/0xc);if(_0x2ff51d===_0x2fc9e6)break;else _0x42d611['push'](_0x42d611['shift']());}catch(_0x26b8b8){_0x42d611['push'](_0x42d611['shift']());}}}(a131_0x4afb,0x9f072));import{writeFile}from'node:fs/promises';function a131_0x4620(_0x17b160,_0x3aaab5){_0x17b160=_0x17b160-0x18f;const _0x4afb6e=a131_0x4afb();let _0x4620cb=_0x4afb6e[_0x17b160];return _0x4620cb;}import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a131_0x4afb(){const _0x55c535=['str','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','/smartapi/custom/saveUserCustomSql','description','sqls','2671968WfWeuU','sqlRootDir','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','\x20\x20SELECT\x201\x20AS\x20id','flagMissing','stringify','appCode','MyBatis\x20XML(mybatisXml)','toISOString','9kyyRjC','isFinite','flag','</select>','7375338wsgyqI','dbName','map','5xZDXXG','Invalid\x20database\x20selection\x20payload:\x20','lockFilePath','dbId\x20必须为正整数','108088dlzBEr','POST','<server-generated-sqlCode>','__manual__','nonInteractive','mode','File\x20already\x20exists:\x20','high-risk-write','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','515444NeWFWH','普通\x20SQL(sql)','dbId','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','number','23488116rqlTfH','请选择目标数据库:','utf8','catch','length','sqlName','SELECT\x201\x20AS\x20id;','1783310jEkFoV','sql','请输入目标数据库\x20dbId:','join','2699480HHgMrD','db-id','SQL\x20query\x20display\x20name','2vozUxt','name','mybatisXml','适合带动态标签的\x20MyBatis\x20XML\x20SQL','SQL\x20名称不能为空','trim','validation','sqlCode','isInteger','11RHISrt','Target\x20database\x20ID','Local\x20SQL\x20file\x20mode','dbId\x20不能为空','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','Created\x20SQL\x20query\x20','string','511WEyigp'];a131_0x4afb=function(){return _0x55c535;};return a131_0x4afb();}import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x492573){const _0x4f24e6=a131_0x4620;if(_0x492573==='mybatisXml')return[_0x4f24e6(0x1a1),_0x4f24e6(0x1a2),_0x4f24e6(0x1ab),''][_0x4f24e6(0x1cb)]('\x0a');return[_0x4f24e6(0x1c7),'']['join']('\x0a');}export const sqlCreate={'service':a131_0x48c896(0x1c9),'command':'create','description':a131_0x48c896(0x19b),'risk':a131_0x48c896(0x1ba),'flags':[{'name':a131_0x48c896(0x1d0),'type':a131_0x48c896(0x198),'description':a131_0x48c896(0x1ce)},{'name':'db-id','type':a131_0x48c896(0x1c0),'description':a131_0x48c896(0x193)},{'name':'mode','type':a131_0x48c896(0x198),'enum':[a131_0x48c896(0x1c9),a131_0x48c896(0x1d1)],'description':a131_0x48c896(0x194)}],async 'validate'(_0x5e42de){const _0xae60bd=a131_0x48c896;if(!_0x5e42de[_0xae60bd(0x1b7)])return;if(!_0x5e42de[_0xae60bd(0x19a)](_0xae60bd(0x1d0))['trim']())throw CliErrors[_0xae60bd(0x1a3)](_0xae60bd(0x1d0),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x467b4b=resolveProvidedDbId(_0x5e42de);if(typeof _0x467b4b!==_0xae60bd(0x1c0)||!Number[_0xae60bd(0x1a9)](_0x467b4b)||_0x467b4b<=0x0)throw CliErrors['flagMissing']('db-id','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x5e42de[_0xae60bd(0x19a)](_0xae60bd(0x1b8))['trim']())throw CliErrors['flagMissing']('mode',_0xae60bd(0x1bb));},async 'dryRun'(_0x47e49f){const _0x4e6a59=a131_0x48c896,_0x272325=loadSqlProjectConfig(_0x47e49f[_0x4e6a59(0x1a5)]),{sqlName:_0x2d097e,dbId:_0x343a56,dbName:_0x406df9,mode:_0x339aaf}=await resolveSqlNewInputs(_0x47e49f),_0x4f7947=buildSqlRelativePath(_0x4e6a59(0x1b5),_0x2d097e,_0x406df9,_0x339aaf,_0x343a56),_0x39a51f=_0x272325[_0x4e6a59(0x1a0)]+'/'+_0x4f7947;return{'method':_0x4e6a59(0x1b4),'url':_0x4e6a59(0x19c),'body':{'appCode':_0x47e49f[_0x4e6a59(0x1a5)],'sqlName':_0x2d097e,'dbId':_0x343a56,'mode':_0x339aaf,'localPath':_0x39a51f},'description':_0x4e6a59(0x196)+_0x272325[_0x4e6a59(0x1a0)]};},async 'execute'(_0x1fc571){const _0x3bea81=a131_0x48c896,_0x1444d9=loadSqlProjectConfig(_0x1fc571[_0x3bea81(0x1a5)]),{sqlName:_0x35daf9,dbId:_0x504d47,dbName:_0x2235d1,mode:_0x1476d5}=await resolveSqlNewInputs(_0x1fc571),_0xfe4d2d=generateSqlTemplate(_0x1476d5),_0xd25c1b=await createSqlQuery({'appCode':_0x1fc571['appCode'],'sqlName':_0x35daf9,'dbId':_0x504d47,'sqlContent':_0xfe4d2d}),_0xc205b=ensureRemoteSqlContent(_0xd25c1b),_0x5204d9=_0x2235d1||await getDbName(_0x1fc571[_0x3bea81(0x1a5)],_0x504d47)['catch'](()=>undefined),_0x4eb6e1=buildSqlRelativePath(_0xd25c1b[_0x3bea81(0x190)],_0xd25c1b['sqlName'],_0x5204d9,_0x1476d5,_0x504d47),_0x4f667e=_0x1444d9[_0x3bea81(0x1a0)]+'/'+_0x4eb6e1,_0x59c8b2=buildLocalSqlFileContent({'sqlCode':_0xd25c1b['sqlCode'],'sqlName':_0xd25c1b[_0x3bea81(0x1c6)],'dbId':_0xd25c1b[_0x3bea81(0x1be)]},_0xc205b,{'dbName':_0x5204d9,'mode':_0x1476d5,'syncedAt':new Date()[_0x3bea81(0x1a7)](),'description':_0xd25c1b[_0x3bea81(0x19d)]});if(await fileExists(_0x4f667e))throw CliErrors[_0x3bea81(0x18f)](_0x3bea81(0x1b9)+_0x4f667e);await ensureParentDirectory(_0x4f667e),await writeFile(_0x4f667e,_0x59c8b2,_0x3bea81(0x1c3));const _0x3c342d=await readSqlLockFile(_0x1444d9['lockFilePath']),{lockData:_0x373530,appLock:_0x36c2ec}=ensureSqlLockScope(_0x3c342d??createEmptySqlLock(),_0x1444d9[_0x3bea81(0x1a5)],_0x1444d9['sqlRoot'],'new');return _0x36c2ec[_0x3bea81(0x19e)][_0xd25c1b[_0x3bea81(0x190)]]={...buildSqlLockEntry(_0xd25c1b,_0xc205b,computeSqlContentHash(_0x59c8b2),{'dbName':_0x5204d9}),'path':_0x4eb6e1,'mode':_0x1476d5},_0x36c2ec['lastSync']=new Date()[_0x3bea81(0x1a7)](),await writeSqlLockFile(_0x1444d9[_0x3bea81(0x1b1)],_0x373530),{'ok':!![],'data':{'id':_0xd25c1b['id'],'sqlCode':_0xd25c1b[_0x3bea81(0x190)],'sqlName':_0xd25c1b[_0x3bea81(0x1c6)],'dbId':_0xd25c1b[_0x3bea81(0x1be)],'path':_0x4f667e,'mode':_0x1476d5},'message':_0x3bea81(0x197)+_0xd25c1b[_0x3bea81(0x190)]};}};async function resolveSqlNewInputs(_0x5a4c9b){const _0x2c73ef=await resolveSqlNameInput(_0x5a4c9b),{dbId:_0x316a45,dbName:_0x4cf0bf}=await resolveDbSelection(_0x5a4c9b),_0x2df671=await resolveSqlModeInput(_0x5a4c9b);return{'sqlName':_0x2c73ef,'dbId':_0x316a45,'dbName':_0x4cf0bf,'mode':_0x2df671};}async function resolveSqlNameInput(_0x3e039b){const _0xf411dd=a131_0x48c896,_0x26780e=_0x3e039b[_0xf411dd(0x19a)](_0xf411dd(0x1d0))[_0xf411dd(0x1d4)]();if(_0x26780e)return _0x26780e;if(_0x3e039b[_0xf411dd(0x1b7)])throw CliErrors[_0xf411dd(0x1a3)](_0xf411dd(0x1d0),_0xf411dd(0x1bf));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x5503d6=>_0x5503d6['trim']()?!![]:_0xf411dd(0x1d3)}))[_0xf411dd(0x1d4)]();}async function resolveDbSelection(_0x72cb73){const _0xb516d6=a131_0x48c896,_0x32689b=resolveProvidedDbId(_0x72cb73);if(typeof _0x32689b===_0xb516d6(0x1c0)&&Number[_0xb516d6(0x1a9)](_0x32689b)&&_0x32689b>0x0)return{'dbId':_0x32689b,'dbName':await getDbName(_0x72cb73[_0xb516d6(0x1a5)],_0x32689b)[_0xb516d6(0x1c4)](()=>undefined)};if(_0x72cb73['nonInteractive'])throw CliErrors['flagMissing']('db-id','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x149d1d=await listDatabases(_0x72cb73['appCode'])[_0xb516d6(0x1c4)](()=>[]);if(_0x149d1d[_0xb516d6(0x1c5)]===0x1)return{'dbId':_0x149d1d[0x0]['dbId'],'dbName':_0x149d1d[0x0][_0xb516d6(0x1ad)]};if(_0x149d1d[_0xb516d6(0x1c5)]>0x1){const _0x32f7a3=await select({'message':_0xb516d6(0x1c2),'choices':[..._0x149d1d[_0xb516d6(0x1ae)](_0x310404=>({'name':_0x310404[_0xb516d6(0x1ad)]+'\x20('+_0x310404['dbId']+')','value':serializeDbSelection(_0x310404)})),{'name':'✎\x20手动输入\x20dbId','value':'__manual__'}]});if(_0x32f7a3!==_0xb516d6(0x1b6))return deserializeDbSelection(_0x32f7a3);}const _0x5c99f3=await input({'message':_0xb516d6(0x1ca),'validate':_0x27098c=>{const _0x202b2c=_0xb516d6,_0x4ea07a=_0x27098c['trim']();if(!_0x4ea07a)return _0x202b2c(0x195);const _0x4e87ce=Number(_0x4ea07a);if(!Number[_0x202b2c(0x191)](_0x4e87ce)||_0x4e87ce<=0x0)return _0x202b2c(0x1b2);return!![];}});return{'dbId':Number(_0x5c99f3[_0xb516d6(0x1d4)]())};}async function resolveSqlModeInput(_0x478e4b){const _0x3cb30c=a131_0x48c896,_0x4231a4=_0x478e4b[_0x3cb30c(0x19a)]('mode')[_0x3cb30c(0x1d4)]();if(_0x4231a4===_0x3cb30c(0x1c9)||_0x4231a4===_0x3cb30c(0x1d1))return _0x4231a4;if(_0x478e4b[_0x3cb30c(0x1b7)])throw CliErrors['flagMissing']('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x3cb30c(0x1bd),'value':_0x3cb30c(0x1c9),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0x3cb30c(0x1a6),'value':_0x3cb30c(0x1d1),'description':_0x3cb30c(0x1d2)}]});}function serializeDbSelection(_0x447354){const _0x1231e7=a131_0x48c896;return JSON[_0x1231e7(0x1a4)]({'dbId':_0x447354[_0x1231e7(0x1be)],'dbName':_0x447354[_0x1231e7(0x1ad)]});}function deserializeDbSelection(_0x566107){const _0x2286c5=a131_0x48c896;try{const _0x1ea03c=JSON['parse'](_0x566107);if(typeof _0x1ea03c[_0x2286c5(0x1be)]===_0x2286c5(0x1c0)&&Number[_0x2286c5(0x1a9)](_0x1ea03c[_0x2286c5(0x1be)]))return{'dbId':_0x1ea03c[_0x2286c5(0x1be)],'dbName':_0x1ea03c['dbName']};}catch{}throw CliErrors[_0x2286c5(0x18f)](_0x2286c5(0x1b0)+_0x566107);}function resolveProvidedDbId(_0xf37e93){const _0x293f79=a131_0x48c896,_0x242e94=_0xf37e93[_0x293f79(0x1aa)](_0x293f79(0x1cd));if(typeof _0x242e94===_0x293f79(0x1c0)&&Number[_0x293f79(0x1a9)](_0x242e94))return _0x242e94;return undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a132_0x9232e3=a132_0x4c85;(function(_0x2e4a0d,_0x10fc2b){const _0xc44759=a132_0x4c85,_0x306ecf=_0x2e4a0d();while(!![]){try{const _0x2201c3=parseInt(_0xc44759(0x1f1))/0x1*(parseInt(_0xc44759(0x1f0))/0x2)+-parseInt(_0xc44759(0x1f6))/0x3+-parseInt(_0xc44759(0x1f8))/0x4+parseInt(_0xc44759(0x1ee))/0x5*(-parseInt(_0xc44759(0x1e6))/0x6)+-parseInt(_0xc44759(0x1f4))/0x7*(-parseInt(_0xc44759(0x200))/0x8)+-parseInt(_0xc44759(0x1fc))/0x9*(parseInt(_0xc44759(0x1ea))/0xa)+-parseInt(_0xc44759(0x1e9))/0xb*(-parseInt(_0xc44759(0x1f3))/0xc);if(_0x2201c3===_0x10fc2b)break;else _0x306ecf['push'](_0x306ecf['shift']());}catch(_0x461f40){_0x306ecf['push'](_0x306ecf['shift']());}}}(a132_0x591d,0xba3ab));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';function a132_0x591d(){const _0x1c524f=['POST','9wRZhHE','sqlcode','sqlRoot','entries','203360qIhnyC','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','length','delete','appCode','validation','high-risk-write','toISOString','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','str','12MmxTsi','trashDir','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','77cpEjNZ','5036810uvyueq','lockFilePath','projectRoot','Would\x20delete\x20SQL\x20','704560uxZuHj','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','1970yRQStA','1181lKOqsC','SQL\x20lock\x20file\x20not\x20found.','2564724atRQSq','399QouGXY','/smartapi/custom/deleteUserCustomSql','3601533WqhQnK','Deleted\x20','5438012ObCKoG','sqls','trashedTo'];a132_0x591d=function(){return _0x1c524f;};return a132_0x591d();}import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';function a132_0x4c85(_0x1b45da,_0x115238){_0x1b45da=_0x1b45da-0x1dd;const _0x591d65=a132_0x591d();let _0x4c85a6=_0x591d65[_0x1b45da];return _0x4c85a6;}import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':'sql','command':a132_0x9232e3(0x1df),'description':a132_0x9232e3(0x1ef),'risk':a132_0x9232e3(0x1e2),'flags':[SQLCODE_FLAG],async 'validate'(_0x148866){const _0x29cb41=a132_0x9232e3,_0x48870b=loadSqlProjectConfig(_0x148866[_0x29cb41(0x1e0)]),_0x42e87a=await readSqlLockFile(_0x48870b['lockFilePath']);if(!_0x42e87a)throw CliErrors[_0x29cb41(0x1e1)](_0x29cb41(0x1dd));},async 'dryRun'(_0x3a05bd){const _0x565869=a132_0x9232e3,_0x22a7d6=loadSqlProjectConfig(_0x3a05bd['appCode']),_0x4a0024=await readSqlLockFile(_0x22a7d6[_0x565869(0x1eb)]);if(!_0x4a0024)throw CliErrors['validation'](_0x565869(0x1dd));const {appLock:_0xec6fa9}=ensureSqlLockScope(_0x4a0024,_0x3a05bd[_0x565869(0x1e0)],_0x22a7d6[_0x565869(0x1fe)],_0x565869(0x1df)),_0x107aeb=_0x3a05bd[_0x565869(0x1e5)](_0x565869(0x1fd)),_0x1af513=_0xec6fa9[_0x565869(0x1f9)][_0x107aeb];if(!_0x1af513)throw CliErrors['validation']('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x107aeb+'\x22.');return{'method':_0x565869(0x1fb),'url':_0x565869(0x1f5),'body':{'sqlCode':_0x107aeb,'id':_0x1af513['remoteId'],'localPath':resolveLocalSqlFilePath(_0x22a7d6,_0x107aeb,_0x1af513)},'description':_0x565869(0x1ed)+_0x107aeb+_0x565869(0x1e8)+_0x22a7d6['trashDir']};},async 'execute'(_0x122f56){const _0x927729=a132_0x9232e3,_0xb78885=loadSqlProjectConfig(_0x122f56[_0x927729(0x1e0)]),_0x52d350=await readSqlLockFile(_0xb78885['lockFilePath']);if(!_0x52d350)throw CliErrors[_0x927729(0x1e1)](_0x927729(0x1f2));const {lockData:_0x3a42bd,appLock:_0x410351}=ensureSqlLockScope(_0x52d350,_0x122f56['appCode'],_0xb78885[_0x927729(0x1fe)],_0x927729(0x1df)),_0x2621d2=_0x122f56[_0x927729(0x1e5)](_0x927729(0x1fd)),_0x6fad32=_0x410351[_0x927729(0x1f9)][_0x2621d2];if(!_0x6fad32)throw CliErrors[_0x927729(0x1e1)](_0x927729(0x1e4)+_0x2621d2+'\x22.');await deleteSqlQuery({'id':_0x6fad32['remoteId'],'sqlCode':_0x2621d2}),_0x410351['sqls']=Object['fromEntries'](Object[_0x927729(0x1ff)](_0x410351[_0x927729(0x1f9)])['filter'](([_0x4d567d])=>_0x4d567d!==_0x2621d2)),_0x410351['lastSync']=new Date()[_0x927729(0x1e3)](),await writeSqlLockFile(_0xb78885['lockFilePath'],_0x3a42bd);const _0x5a8b54=resolveLocalSqlFilePath(_0xb78885,_0x2621d2,_0x6fad32);let _0x8b130b;await fileExists(_0x5a8b54)&&(_0x8b130b=await moveToTrash(_0xb78885[_0x927729(0x1ec)],_0xb78885[_0x927729(0x1e7)],_0x5a8b54),await cleanupEmptyDirectories(dirname(_0x5a8b54),_0xb78885['sqlRootDir']));const _0x131dd8={'deleted':_0x2621d2,'remoteId':_0x6fad32['remoteId']};if(_0x8b130b)_0x131dd8[_0x927729(0x1fa)]=_0x8b130b;return{'ok':!![],'data':_0x131dd8,'message':_0x927729(0x1f7)+_0x2621d2+(_0x8b130b?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x291928,_0x4893cf,_0x438617){const _0x542065=a132_0x9232e3,_0x4980d0=new Date()[_0x542065(0x1e3)]()['replace'](/[:.]/g,'-'),_0x1d2f4b=relative(_0x291928,_0x438617),_0x14c21f=join(_0x4893cf,_0x4980d0,_0x1d2f4b);return await mkdir(dirname(_0x14c21f),{'recursive':!![]}),await rename(_0x438617,_0x14c21f),_0x14c21f;}async function cleanupEmptyDirectories(_0x31bae1,_0x1d23e6){const _0x469d1b=a132_0x9232e3;let _0x3e6602=resolve(_0x31bae1);const _0x22f030=resolve(_0x1d23e6);while(_0x3e6602['startsWith'](''+_0x22f030+sep)||_0x3e6602===_0x22f030){if(_0x3e6602===_0x22f030)return;try{const _0x442ab1=await readdir(_0x3e6602);if(_0x442ab1[_0x469d1b(0x1de)]>0x0)return;await rmdir(_0x3e6602);}catch{return;}_0x3e6602=dirname(_0x3e6602);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a133_0x47c36a=a133_0x74b1;(function(_0x1c768f,_0x1601c2){const _0x56acdc=a133_0x74b1,_0x493283=_0x1c768f();while(!![]){try{const _0x402b16=parseInt(_0x56acdc(0xf1))/0x1*(parseInt(_0x56acdc(0x101))/0x2)+parseInt(_0x56acdc(0xf9))/0x3*(-parseInt(_0x56acdc(0xf5))/0x4)+-parseInt(_0x56acdc(0xf2))/0x5*(-parseInt(_0x56acdc(0x104))/0x6)+-parseInt(_0x56acdc(0xfe))/0x7+-parseInt(_0x56acdc(0xf4))/0x8*(parseInt(_0x56acdc(0x100))/0x9)+parseInt(_0x56acdc(0xfd))/0xa+-parseInt(_0x56acdc(0xfb))/0xb*(parseInt(_0x56acdc(0xf8))/0xc);if(_0x402b16===_0x1601c2)break;else _0x493283['push'](_0x493283['shift']());}catch(_0x38046f){_0x493283['push'](_0x493283['shift']());}}}(a133_0x1798,0x3bf9b));function a133_0x74b1(_0x5ef013,_0x4f281d){_0x5ef013=_0x5ef013-0xee;const _0x179890=a133_0x1798();let _0x74b1f8=_0x179890[_0x5ef013];return _0x74b1f8;}import{getSqlQueryInfo}from'../../core/api-client.js';function a133_0x1798(){const _0x3c66f0=['appCode','sqlcode','2414934CscnzL','dbId','sql','Return\x20full\x20raw\x20SQL\x20query\x20object','boolean','161ofUoUw','5stbUAa','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','28504OuLFEJ','122504ltqNYv','verbose','bool','1236NqeUCH','24IUGpFI','sqlCode','47157hwfXWJ','sqlName','4687740HXCNzP','526442umWXgd','str','153OrwJCg','2444onKrSO'];a133_0x1798=function(){return _0x3c66f0;};return a133_0x1798();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a133_0x47c36a(0xee),'command':'detail','description':a133_0x47c36a(0xf3),'risk':'read','flags':[SQLCODE_FLAG,{'name':a133_0x47c36a(0xf6),'type':a133_0x47c36a(0xf0),'description':a133_0x47c36a(0xef)}],async 'execute'(_0x5d58d2){const _0x4ea638=a133_0x47c36a,_0x46b7e9=await getSqlQueryInfo(_0x5d58d2[_0x4ea638(0x102)],_0x5d58d2[_0x4ea638(0xff)](_0x4ea638(0x103))),_0xf82bb7=_0x5d58d2[_0x4ea638(0xf7)](_0x4ea638(0xf6));if(_0xf82bb7)return{'ok':!![],'data':_0x46b7e9};const _0x4c2fa6=_0x46b7e9[_0x4ea638(0x105)]?await getDbName(_0x5d58d2[_0x4ea638(0x102)],_0x46b7e9[_0x4ea638(0x105)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x46b7e9[_0x4ea638(0xfa)],'sqlName':_0x46b7e9[_0x4ea638(0xfc)],'db':_0x4c2fa6?_0x4c2fa6+'\x20('+_0x46b7e9[_0x4ea638(0x105)]+')':_0x46b7e9['dbId']??'','description':_0x46b7e9['description']??'','sqlContent':_0x46b7e9['sqlContent']??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a134_0x2f61cb=a134_0x3fd0;(function(_0x5c645e,_0x4afa26){const _0x55989e=a134_0x3fd0,_0x67dd18=_0x5c645e();while(!![]){try{const _0x3cea0b=parseInt(_0x55989e(0x10c))/0x1*(parseInt(_0x55989e(0x10e))/0x2)+-parseInt(_0x55989e(0x112))/0x3+-parseInt(_0x55989e(0x102))/0x4+parseInt(_0x55989e(0x103))/0x5*(-parseInt(_0x55989e(0x10d))/0x6)+parseInt(_0x55989e(0x10b))/0x7*(-parseInt(_0x55989e(0x10a))/0x8)+-parseInt(_0x55989e(0x10f))/0x9+parseInt(_0x55989e(0x106))/0xa;if(_0x3cea0b===_0x4afa26)break;else _0x67dd18['push'](_0x67dd18['shift']());}catch(_0x136c04){_0x67dd18['push'](_0x67dd18['shift']());}}}(a134_0x3592,0x5947b));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a134_0x3fd0(_0x3a5e7c,_0x267750){_0x3a5e7c=_0x3a5e7c-0x102;const _0x35920f=a134_0x3592();let _0x3fd044=_0x35920f[_0x3a5e7c];return _0x3fd044;}function a134_0x3592(){const _0x1e9ae9=['sqlcode','execResult','length','appCode','str','params','1065308ckCuns','470jEzogw','SQL\x20execution\x20failed','execSuccess','15724630uKPPiF','now','read','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','344kCjKBY','29092spbSnt','2oVfPfO','10398rYSRLA','470936oQqCiF','4123278PFsEbp','Returned\x20','isArray','1834887LiMMaR'];a134_0x3592=function(){return _0x1e9ae9;};return a134_0x3592();}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':'sql','command':'exec','description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':a134_0x2f61cb(0x108),'flags':[SQLCODE_FLAG,{'name':a134_0x2f61cb(0x118),'type':'string','description':a134_0x2f61cb(0x109)}],async 'execute'(_0x28d87b){const _0x24f858=a134_0x2f61cb,_0x5bf695=parseJsonParams(_0x28d87b[_0x24f858(0x117)](_0x24f858(0x118))),_0x38e51a=Date[_0x24f858(0x107)](),_0x4edc0d=await executeSql(_0x28d87b[_0x24f858(0x116)],_0x28d87b[_0x24f858(0x117)](_0x24f858(0x113)),_0x5bf695),_0x14798b=Date[_0x24f858(0x107)]()-_0x38e51a,_0x20e9e=_0x4edc0d?.[_0x24f858(0x114)]??_0x4edc0d,_0xd2c0b0=_0x4edc0d?.[_0x24f858(0x105)]??!![];if(!_0xd2c0b0)return{'ok':![],'data':{'error':_0x4edc0d?.['execError']||_0x24f858(0x104),'elapsed':_0x14798b},'message':_0x24f858(0x104)};const _0x170dee=Array[_0x24f858(0x111)](_0x20e9e)?_0x20e9e:[];return{'ok':!![],'data':{'rows':_0x170dee,'rowCount':_0x170dee['length'],'elapsed':_0x14798b},'message':_0x24f858(0x110)+_0x170dee[_0x24f858(0x115)]+'\x20row(s)\x20in\x20'+_0x14798b+'ms'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x47480b,_0x4e83cb){const _0x2e0399=a135_0x5d15,_0x3dcc0d=_0x47480b();while(!![]){try{const _0x5bf34e=parseInt(_0x2e0399(0x1af))/0x1*(-parseInt(_0x2e0399(0x1ab))/0x2)+-parseInt(_0x2e0399(0x1a9))/0x3*(-parseInt(_0x2e0399(0x1b0))/0x4)+parseInt(_0x2e0399(0x1ad))/0x5+-parseInt(_0x2e0399(0x1ae))/0x6*(-parseInt(_0x2e0399(0x1a7))/0x7)+parseInt(_0x2e0399(0x1ac))/0x8*(-parseInt(_0x2e0399(0x1a8))/0x9)+-parseInt(_0x2e0399(0x1b1))/0xa+parseInt(_0x2e0399(0x1aa))/0xb;if(_0x5bf34e===_0x4e83cb)break;else _0x3dcc0d['push'](_0x3dcc0d['shift']());}catch(_0x1c3a7e){_0x3dcc0d['push'](_0x3dcc0d['shift']());}}}(a135_0x3ee4,0xd58c5));function a135_0x5d15(_0x40f0da,_0x3399e0){_0x40f0da=_0x40f0da-0x1a7;const _0x3ee4b1=a135_0x3ee4();let _0x5d15f7=_0x3ee4b1[_0x40f0da];return _0x5d15f7;}import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';function a135_0x3ee4(){const _0x291f74=['5342589yVXGNo','96939zIrJWS','27213ubGFGf','21386640vVPIFV','16fDXMQq','536jDkhmv','2721525ndiisT','6WpeVfS','102172ehfBsu','152sZcpVo','11827440ConLgg'];a135_0x3ee4=function(){return _0x291f74;};return a135_0x3ee4();}import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
|
package/lib/commands/sql/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a136_0x23db8b=a136_0x3057;(function(_0x5207db,_0x382538){const _0x31f9e8=a136_0x3057,_0x3da8f1=_0x5207db();while(!![]){try{const _0xa2d4f3=-parseInt(_0x31f9e8(0xab))/0x1+-parseInt(_0x31f9e8(0xaa))/0x2+parseInt(_0x31f9e8(0xbb))/0x3*(parseInt(_0x31f9e8(0xaf))/0x4)+-parseInt(_0x31f9e8(0xa7))/0x5+parseInt(_0x31f9e8(0xc3))/0x6+-parseInt(_0x31f9e8(0xb2))/0x7+parseInt(_0x31f9e8(0xc1))/0x8;if(_0xa2d4f3===_0x382538)break;else _0x3da8f1['push'](_0x3da8f1['shift']());}catch(_0x1883ca){_0x3da8f1['push'](_0x3da8f1['shift']());}}}(a136_0x1ebc,0x33bb7));function a136_0x1ebc(){const _0x2fdca5=['all','sqlName','page','list','num','totalCount','\x20SQL\x20queries\x20(total:\x20','27JEKWAz','name','verbose','paging','description','number','7751952THXKCu','sql','582282muBKFd','Page\x20size','sqlCode','string','pagesize','bool','Found\x20','Filter\x20by\x20SQL\x20name','boolean','685675hgYkzI','tableData','map','810084iWghOu','154512dUJfMW','sqlcode','dbId','No\x20custom\x20SQL\x20queries\x20found.','4056PJTcmv','appCode','str','1166081vLnvxj','List\x20custom\x20SQL\x20queries'];a136_0x1ebc=function(){return _0x2fdca5;};return a136_0x1ebc();}import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a136_0x3057(_0x598982,_0x809d86){_0x598982=_0x598982-0xa6;const _0x1ebcdd=a136_0x1ebc();let _0x3057d0=_0x1ebcdd[_0x598982];return _0x3057d0;}export const sqlList={'service':a136_0x23db8b(0xc2),'command':a136_0x23db8b(0xb7),'description':a136_0x23db8b(0xb3),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a136_0x23db8b(0xbc),'type':a136_0x23db8b(0xc6),'description':a136_0x23db8b(0xca)},{'name':a136_0x23db8b(0xb6),'type':'number','description':'Page\x20number','default':0x1},{'name':'pagesize','type':a136_0x23db8b(0xc0),'description':a136_0x23db8b(0xc4)},{'name':a136_0x23db8b(0xbd),'type':a136_0x23db8b(0xa6),'description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x3f768a){const _0x81b76e=a136_0x23db8b,_0xb6120b=await listSqlQueries(_0x3f768a[_0x81b76e(0xb0)],{'sqlCode':_0x3f768a['str'](_0x81b76e(0xac))||undefined,'sqlName':_0x3f768a[_0x81b76e(0xb1)](_0x81b76e(0xbc))||undefined,'currentPage':_0x3f768a[_0x81b76e(0xb8)](_0x81b76e(0xb6)),'pageSize':_0x3f768a[_0x81b76e(0xb8)](_0x81b76e(0xc7),0x32)}),_0x353a0b=_0x3f768a[_0x81b76e(0xc8)](_0x81b76e(0xbd)),_0x377511=_0xb6120b[_0x81b76e(0xa8)]??[],_0x387c55=_0xb6120b[_0x81b76e(0xbe)]?.[_0x81b76e(0xb9)]??_0x377511['length'];let _0x18cde7;return _0x353a0b?_0x18cde7=_0x377511:_0x18cde7=await Promise[_0x81b76e(0xb4)](_0x377511[_0x81b76e(0xa9)](async _0x57ca51=>{const _0x5ed913=_0x81b76e;let _0x542ab6;try{_0x542ab6=_0x57ca51[_0x5ed913(0xad)]?await getDbName(_0x3f768a[_0x5ed913(0xb0)],_0x57ca51[_0x5ed913(0xad)]):undefined;}catch{}return{'sqlCode':_0x57ca51[_0x5ed913(0xc5)],'sqlName':_0x57ca51[_0x5ed913(0xb5)],'description':_0x57ca51[_0x5ed913(0xbf)]??'','db':_0x542ab6?_0x542ab6+'\x20('+_0x57ca51[_0x5ed913(0xad)]+')':_0x57ca51['dbId']??''};})),{'ok':!![],'data':_0x18cde7,'message':_0x377511['length']===0x0?_0x81b76e(0xae):_0x81b76e(0xc9)+_0x377511['length']+_0x81b76e(0xba)+_0x387c55+').'};}};
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a137_0x442a42=a137_0x24aa;(function(_0x123f2a,_0x4cd3ba){const _0x3e9254=a137_0x24aa,_0x2c338f=_0x123f2a();while(!![]){try{const _0x360635=-parseInt(_0x3e9254(0xd4))/0x1*(parseInt(_0x3e9254(0xc7))/0x2)+-parseInt(_0x3e9254(0xba))/0x3*(parseInt(_0x3e9254(0xcd))/0x4)+parseInt(_0x3e9254(0xd2))/0x5*(parseInt(_0x3e9254(0xcc))/0x6)+-parseInt(_0x3e9254(0xb9))/0x7+-parseInt(_0x3e9254(0xe1))/0x8+parseInt(_0x3e9254(0xc6))/0x9+parseInt(_0x3e9254(0xbe))/0xa;if(_0x360635===_0x4cd3ba)break;else _0x2c338f['push'](_0x2c338f['shift']());}catch(_0x54084b){_0x2c338f['push'](_0x2c338f['shift']());}}}(a137_0x29f1,0x47ebc));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';function a137_0x29f1(){const _0x20aa3f=['appCode','utf8','nonInteractive','path','sqlRoot','dbId','test','\x20skipped,\x20','Pull\x20complete:\x20','str','2208736iJROuV','write','bool','description','\x20SQL\x20file(s)\x20into\x20','join','cancelled','trimStart','local\x20differs\x20from\x20remote','totalCount','would_pull','sqlCode','toISOString','tableData','message','string','lastSync','filter','split','unchanged','865060xmGwYs','76647oHvhtL','sql','length','skipped','12054380VFTQlx','replace','pull','Force\x20overwrite\x20local\x20unsynced\x20changes','push','Force\x20pull\x20cancelled.','name','sqlcode','480861PppoVH','2WpvYJv','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','sqlContent','sqls','sqlName','6ipemJS','84TFLQFR','lockFilePath','Would\x20pull\x20','sqlRootDir','mybatisXml','587720fuFnXL','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','145622XWflCV','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','conflict'];a137_0x29f1=function(){return _0x20aa3f;};return a137_0x29f1();}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(_0xb883,_0x20c3a4){const _0x14d03b=a137_0x24aa,_0x30cc68=[];let _0x2d62a9=0x1;while(!![]){const _0x151aa0=await listSqlQueries(_0xb883,{'currentPage':_0x2d62a9,'pageSize':PAGE_SIZE,'sqlCode':_0x20c3a4['sqlCode'],'sqlName':_0x20c3a4[_0x14d03b(0xcb)]}),_0x287572=_0x151aa0[_0x14d03b(0xb2)]??[];_0x30cc68['push'](..._0x287572);if(_0x287572[_0x14d03b(0xbc)]===0x0)break;const _0xd3d5b3=_0x151aa0['paging']?.[_0x14d03b(0xae)];if(_0xd3d5b3!=null?_0x30cc68['length']>=_0xd3d5b3:_0x287572[_0x14d03b(0xbc)]<PAGE_SIZE)break;_0x2d62a9++;}return _0x30cc68;}function a137_0x24aa(_0x593947,_0x3dba2b){_0x593947=_0x593947-0xad;const _0x29f13e=a137_0x29f1();let _0x24aafe=_0x29f13e[_0x593947];return _0x24aafe;}async function ensureSqlContent(_0x1a2e3c){const _0x3200b8=a137_0x24aa;if(_0x1a2e3c[_0x3200b8(0xc9)]!=null&&String(_0x1a2e3c[_0x3200b8(0xc9)])[_0x3200b8(0xbc)]>0x0)return _0x1a2e3c;return getSqlQueryDetail(_0x1a2e3c[_0x3200b8(0xb0)]);}export const sqlPull={'service':a137_0x442a42(0xbb),'command':a137_0x442a42(0xc0),'description':a137_0x442a42(0xd5),'risk':a137_0x442a42(0xe2),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a137_0x442a42(0xc4),'type':a137_0x442a42(0xb4),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':'force','type':'boolean','description':a137_0x442a42(0xc1)}],async 'dryRun'(_0x460717){const _0x450713=a137_0x442a42,_0x7a1b56=loadSqlProjectConfig(_0x460717[_0x450713(0xd7)]),_0xb243bd=await readSqlLockFile(_0x7a1b56['lockFilePath']),{appLock:_0x17a30e}=ensureSqlLockScope(_0xb243bd??createEmptySqlLock(),_0x7a1b56[_0x450713(0xd7)],_0x7a1b56[_0x450713(0xdb)],_0x450713(0xc0)),_0x171149=await fetchAllSqlQueries(_0x460717['appCode'],{'sqlCode':_0x460717['str'](_0x450713(0xc5))||undefined,'sqlName':_0x460717['str'](_0x450713(0xc4))||undefined}),_0x300638=[];for(const _0x3d0be5 of _0x171149){const _0x59f696=await ensureSqlContent(_0x3d0be5),_0x5be776=ensureRemoteSqlContent(_0x59f696),_0x546866=detectModeFromSql(_0x59f696),_0x2fc3b3=_0x59f696[_0x450713(0xdc)]?await getDbName(_0x460717[_0x450713(0xd7)],Number(_0x59f696['dbId']))['catch'](()=>undefined):undefined,_0x1adb58=buildLocalSqlFileContent({'sqlCode':_0x59f696[_0x450713(0xb0)],'sqlName':_0x59f696[_0x450713(0xcb)],'dbId':_0x59f696[_0x450713(0xdc)]},_0x5be776,{'dbName':_0x2fc3b3,'mode':_0x546866,'syncedAt':new Date()[_0x450713(0xb1)](),'description':_0x59f696['description']}),_0x441988=buildSqlLockEntry(_0x59f696,_0x5be776,'',{'dbName':_0x2fc3b3}),_0x2dbcd8=resolveLocalSqlFilePath(_0x7a1b56,_0x59f696[_0x450713(0xb0)],_0x441988);let _0x10c2c5=_0x450713(0xaf),_0x229b50;if(await fileExists(_0x2dbcd8)){const _0x3309eb=await readFile(_0x2dbcd8,'utf8');isEquivalentPulledSqlFile(_0x3309eb,_0x1adb58,_0x546866)?(_0x10c2c5=_0x450713(0xbd),_0x229b50=_0x450713(0xb8)):(_0x10c2c5=_0x450713(0xd6),_0x229b50=_0x450713(0xc8));}_0x300638['push']({'sqlCode':_0x59f696[_0x450713(0xb0)],'sqlName':_0x59f696[_0x450713(0xcb)],'filePath':_0x2dbcd8,'status':_0x10c2c5,'reason':_0x229b50});}return{'method':'POST','url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x460717[_0x450713(0xd7)],'sqlCode':_0x460717['str'](_0x450713(0xc5))||null,'sqlName':_0x460717[_0x450713(0xe0)](_0x450713(0xc4))||null,'files':_0x300638},'description':_0x450713(0xcf)+_0x300638[_0x450713(0xbc)]+_0x450713(0xe5)+_0x7a1b56[_0x450713(0xd0)]};},async 'execute'(_0x3ad8a8){const _0x487424=a137_0x442a42,_0x2a2995=loadSqlProjectConfig(_0x3ad8a8[_0x487424(0xd7)]),_0x127ba7=await readSqlLockFile(_0x2a2995[_0x487424(0xce)]),{lockData:_0x298597,appLock:_0x5df18b}=ensureSqlLockScope(_0x127ba7??createEmptySqlLock(),_0x2a2995[_0x487424(0xd7)],_0x2a2995[_0x487424(0xdb)],_0x487424(0xc0)),_0x144b76=_0x3ad8a8[_0x487424(0xe3)]('force'),_0x19e26c=await fetchAllSqlQueries(_0x3ad8a8[_0x487424(0xd7)],{'sqlCode':_0x3ad8a8[_0x487424(0xe0)](_0x487424(0xc5))||undefined,'sqlName':_0x3ad8a8[_0x487424(0xe0)](_0x487424(0xc4))||undefined});if(_0x19e26c[_0x487424(0xbc)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':'No\x20remote\x20SQL\x20queries\x20matched.'};const _0x59691d=[],_0x5d89b3=[];for(const _0x2a3fbb of _0x19e26c){try{_0x59691d[_0x487424(0xc2)](await ensureSqlContent(_0x2a3fbb));}catch(_0x683a13){_0x5d89b3['push']({'sqlCode':_0x2a3fbb[_0x487424(0xb0)],'error':_0x683a13 instanceof Error?_0x683a13[_0x487424(0xb3)]:String(_0x683a13)});}}if(_0x144b76&&!_0x3ad8a8[_0x487424(0xd9)]){let _0x4fa69f=![];for(const _0x384469 of _0x59691d){const _0x2d049f=detectModeFromSql(_0x384469),_0x445ed4=_0x384469[_0x487424(0xdc)]?await getDbName(_0x3ad8a8[_0x487424(0xd7)],Number(_0x384469[_0x487424(0xdc)]))['catch'](()=>undefined):undefined,_0x2f0e63=buildLocalSqlFileContent({'sqlCode':_0x384469[_0x487424(0xb0)],'sqlName':_0x384469[_0x487424(0xcb)],'dbId':_0x384469[_0x487424(0xdc)]},ensureRemoteSqlContent(_0x384469),{'dbName':_0x445ed4,'mode':_0x2d049f,'syncedAt':new Date()[_0x487424(0xb1)](),'description':_0x384469['description']}),_0x3bfc87=resolveLocalSqlFilePath(_0x2a2995,_0x384469['sqlCode'],buildSqlLockEntry(_0x384469,ensureRemoteSqlContent(_0x384469),'',{'dbName':_0x445ed4}));if(await fileExists(_0x3bfc87)){const _0x2a443d=await readFile(_0x3bfc87,_0x487424(0xd8));if(!isEquivalentPulledSqlFile(_0x2a443d,_0x2f0e63,_0x2d049f)){_0x4fa69f=!![];break;}}}if(_0x4fa69f){const _0x300d52=await confirmForceOverwrite(_0x487424(0xd3));if(!_0x300d52)throw CliErrors[_0x487424(0xe7)](_0x487424(0xc3));}}const _0x4274c4=cloneSqlLockData(_0x298597),_0x3006a6=_0x4274c4['apps'][_0x2a2995['appCode']],_0xa432e5=[],_0x21b7de=[];for(const _0x3ae6d0 of _0x59691d){const _0x218784=_0x3006a6['sqls'][_0x3ae6d0[_0x487424(0xb0)]],_0xea8c25=ensureRemoteSqlContent(_0x3ae6d0),_0x20be56=detectModeFromSql(_0x3ae6d0),_0x194211=_0x3ae6d0[_0x487424(0xdc)]?await getDbName(_0x3ad8a8[_0x487424(0xd7)],Number(_0x3ae6d0[_0x487424(0xdc)]))['catch'](()=>undefined):undefined,_0x2ccfaf=buildLocalSqlFileContent({'sqlCode':_0x3ae6d0[_0x487424(0xb0)],'sqlName':_0x3ae6d0['sqlName'],'dbId':_0x3ae6d0[_0x487424(0xdc)]},_0xea8c25,{'dbName':_0x194211,'mode':_0x20be56,'syncedAt':new Date()['toISOString'](),'description':_0x3ae6d0[_0x487424(0xe4)]}),_0x71d41f=buildSqlLockEntry(_0x3ae6d0,_0xea8c25,computeSqlContentHash(_0x2ccfaf),{'dbName':_0x194211}),_0x495b01=_0x71d41f['path'],_0x4d8f6b=join(_0x2a2995['sqlRootDir'],_0x495b01);try{if(await fileExists(_0x4d8f6b)){const _0x254d5e=await readFile(_0x4d8f6b,_0x487424(0xd8));if(isEquivalentPulledSqlFile(_0x254d5e,_0x2ccfaf,_0x20be56)){_0x21b7de[_0x487424(0xc2)]({'sqlCode':_0x3ae6d0[_0x487424(0xb0)],'reason':'unchanged'}),_0x3006a6[_0x487424(0xca)][_0x3ae6d0['sqlCode']]={..._0x71d41f,'hash':computeSqlContentHash(_0x254d5e),'path':_0x495b01};continue;}if(!_0x144b76){_0x21b7de[_0x487424(0xc2)]({'sqlCode':_0x3ae6d0[_0x487424(0xb0)],'reason':_0x487424(0xad)});continue;}}const _0x11d7f7=_0x218784?.[_0x487424(0xda)]?join(_0x2a2995[_0x487424(0xd0)],_0x218784[_0x487424(0xda)]):undefined;_0x11d7f7&&_0x11d7f7!==_0x4d8f6b&&await fileExists(_0x11d7f7)&&await rm(_0x11d7f7,{'force':!![]}),await ensureParentDirectory(_0x4d8f6b),await writeFile(_0x4d8f6b,_0x2ccfaf,'utf8'),_0x3006a6[_0x487424(0xca)][_0x3ae6d0['sqlCode']]={..._0x71d41f,'path':_0x495b01},_0xa432e5[_0x487424(0xc2)]({'sqlCode':_0x3ae6d0[_0x487424(0xb0)],'filePath':_0x4d8f6b});}catch(_0x79a231){_0x5d89b3[_0x487424(0xc2)]({'sqlCode':_0x3ae6d0[_0x487424(0xb0)],'error':_0x79a231 instanceof Error?_0x79a231['message']:String(_0x79a231)});}}return _0x3006a6[_0x487424(0xb5)]=new Date()['toISOString'](),await writeSqlLockFile(_0x2a2995['lockFilePath'],_0x4274c4),{'ok':_0x5d89b3[_0x487424(0xbc)]===0x0,'data':{'pulled':_0xa432e5,'skipped':_0x21b7de,'failed':_0x5d89b3},'message':_0x487424(0xdf)+_0xa432e5[_0x487424(0xbc)]+'\x20written,\x20'+_0x21b7de[_0x487424(0xbc)]+_0x487424(0xde)+_0x5d89b3[_0x487424(0xbc)]+'\x20failed'};}};function detectModeFromSql(_0x4db731){const _0x46b49f=a137_0x442a42,_0x4afa03=ensureRemoteSqlContent(_0x4db731),_0x3849ad=stripLocalSqlMetadata(_0x4afa03,_0x46b49f(0xd1))[_0x46b49f(0xe8)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x3849ad))return _0x46b49f(0xd1);return _0x46b49f(0xbb);}function isEquivalentPulledSqlFile(_0x5e24e9,_0x1e4a73,_0x4dd3b8){return normalizePullComparableContent(_0x5e24e9,_0x4dd3b8)===normalizePullComparableContent(_0x1e4a73,_0x4dd3b8);}function normalizePullComparableContent(_0xd24155,_0x1ce4cc){const _0xa9af90=a137_0x442a42,_0x2565d2=_0xd24155[_0xa9af90(0xbf)](/\r\n/g,'\x0a')[_0xa9af90(0xb7)]('\x0a'),_0x5dc53d=_0x2565d2[_0xa9af90(0xb6)](_0x44a607=>!isSyncedAtMetadataLine(_0x44a607,_0x1ce4cc));return _0x5dc53d[_0xa9af90(0xe6)]('\x0a');}function isSyncedAtMetadataLine(_0x2e1b01,_0x334e15){const _0x4b73e0=a137_0x442a42;if(_0x334e15===_0x4b73e0(0xd1))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x2e1b01);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x4b73e0(0xdd)](_0x2e1b01);}
|
|
1
|
+
const a137_0x295389=a137_0x4c50;(function(_0x2aa458,_0x21e940){const _0x383b0d=a137_0x4c50,_0x240035=_0x2aa458();while(!![]){try{const _0x44d38=parseInt(_0x383b0d(0xa7))/0x1*(-parseInt(_0x383b0d(0xda))/0x2)+parseInt(_0x383b0d(0xc9))/0x3+-parseInt(_0x383b0d(0xbc))/0x4+parseInt(_0x383b0d(0xca))/0x5+parseInt(_0x383b0d(0xa8))/0x6*(parseInt(_0x383b0d(0xb8))/0x7)+parseInt(_0x383b0d(0xae))/0x8+parseInt(_0x383b0d(0xdd))/0x9;if(_0x44d38===_0x21e940)break;else _0x240035['push'](_0x240035['shift']());}catch(_0x37a3a4){_0x240035['push'](_0x240035['shift']());}}}(a137_0x1fd5,0x1c488));import{readFile,rm,writeFile}from'node:fs/promises';function a137_0x4c50(_0x14721c,_0x2436f2){_0x14721c=_0x14721c-0xa6;const _0x1fd57c=a137_0x1fd5();let _0x4c5059=_0x1fd57c[_0x14721c];return _0x4c5059;}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';function a137_0x1fd5(){const _0x21bed3=['skipped','5292eerKki','193315VNGUih','local\x20differs\x20from\x20remote','sqlName','cancelled','force','sqlRootDir','sqlCode','split','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','conflict','paging','dbId','POST','\x20written,\x20','pull','mybatisXml','2ljfSmT','tableData','path','1791810rbzBro','toISOString','unchanged','Force\x20pull\x20cancelled.','write','33817HnjcAc','402VbVwVN','description','lastSync','would_pull','boolean','length','386424CeswWc','sqlContent','nonInteractive','lockFilePath','sqlcode','name','string','sqls','filter','join','6594rwNJDl','Would\x20pull\x20','totalCount','push','805076MEiQwk','test','appCode','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','No\x20remote\x20SQL\x20queries\x20matched.','str','sqlRoot','Force\x20overwrite\x20local\x20unsynced\x20changes','utf8','trimStart','Filter\x20by\x20SQL\x20display\x20name','catch'];a137_0x1fd5=function(){return _0x21bed3;};return a137_0x1fd5();}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(_0x3d5bea,_0x15a857){const _0x1d40ba=a137_0x4c50,_0xf2f814=[];let _0x5dfd7c=0x1;while(!![]){const _0x1e32b2=await listSqlQueries(_0x3d5bea,{'currentPage':_0x5dfd7c,'pageSize':PAGE_SIZE,'sqlCode':_0x15a857[_0x1d40ba(0xd0)],'sqlName':_0x15a857[_0x1d40ba(0xcc)]}),_0x2fd460=_0x1e32b2[_0x1d40ba(0xdb)]??[];_0xf2f814['push'](..._0x2fd460);if(_0x2fd460[_0x1d40ba(0xad)]===0x0)break;const _0x560d52=_0x1e32b2[_0x1d40ba(0xd4)]?.[_0x1d40ba(0xba)];if(_0x560d52!=null?_0xf2f814[_0x1d40ba(0xad)]>=_0x560d52:_0x2fd460['length']<PAGE_SIZE)break;_0x5dfd7c++;}return _0xf2f814;}async function ensureSqlContent(_0x1257e8){const _0x3f58f5=a137_0x4c50;if(_0x1257e8[_0x3f58f5(0xaf)]!=null&&String(_0x1257e8[_0x3f58f5(0xaf)])[_0x3f58f5(0xad)]>0x0)return _0x1257e8;return getSqlQueryDetail(_0x1257e8[_0x3f58f5(0xd0)]);}export const sqlPull={'service':'sql','command':'pull','description':a137_0x295389(0xd2),'risk':a137_0x295389(0xa6),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a137_0x295389(0xb4),'description':a137_0x295389(0xc6)},{'name':a137_0x295389(0xce),'type':a137_0x295389(0xac),'description':a137_0x295389(0xc3)}],async 'dryRun'(_0x56d987){const _0x399a9b=a137_0x295389,_0x4cc120=loadSqlProjectConfig(_0x56d987[_0x399a9b(0xbe)]),_0x3b0275=await readSqlLockFile(_0x4cc120['lockFilePath']),{appLock:_0x52d8dd}=ensureSqlLockScope(_0x3b0275??createEmptySqlLock(),_0x4cc120[_0x399a9b(0xbe)],_0x4cc120[_0x399a9b(0xc2)],_0x399a9b(0xd8)),_0x292e24=await fetchAllSqlQueries(_0x56d987[_0x399a9b(0xbe)],{'sqlCode':_0x56d987[_0x399a9b(0xc1)](_0x399a9b(0xb2))||undefined,'sqlName':_0x56d987[_0x399a9b(0xc1)](_0x399a9b(0xb3))||undefined}),_0x389497=[];for(const _0x2d7c80 of _0x292e24){const _0x541e85=await ensureSqlContent(_0x2d7c80),_0x3db427=ensureRemoteSqlContent(_0x541e85),_0x156302=detectModeFromSql(_0x541e85),_0xc5acd3=_0x541e85[_0x399a9b(0xd5)]?await getDbName(_0x56d987[_0x399a9b(0xbe)],Number(_0x541e85['dbId']))[_0x399a9b(0xc7)](()=>undefined):undefined,_0x211b05=buildLocalSqlFileContent({'sqlCode':_0x541e85[_0x399a9b(0xd0)],'sqlName':_0x541e85[_0x399a9b(0xcc)],'dbId':_0x541e85['dbId']},_0x3db427,{'dbName':_0xc5acd3,'mode':_0x156302,'syncedAt':new Date()[_0x399a9b(0xde)](),'description':_0x541e85[_0x399a9b(0xa9)]}),_0x171302=buildSqlLockEntry(_0x541e85,_0x3db427,'',{'dbName':_0xc5acd3}),_0x3999d9=resolveLocalSqlFilePath(_0x4cc120,_0x541e85['sqlCode'],_0x171302);let _0x4c9842=_0x399a9b(0xab),_0x326098;if(await fileExists(_0x3999d9)){const _0x43befa=await readFile(_0x3999d9,_0x399a9b(0xc4));isEquivalentPulledSqlFile(_0x43befa,_0x211b05,_0x156302)?(_0x4c9842=_0x399a9b(0xc8),_0x326098=_0x399a9b(0xdf)):(_0x4c9842=_0x399a9b(0xd3),_0x326098=_0x399a9b(0xbf));}_0x389497[_0x399a9b(0xbb)]({'sqlCode':_0x541e85['sqlCode'],'sqlName':_0x541e85[_0x399a9b(0xcc)],'filePath':_0x3999d9,'status':_0x4c9842,'reason':_0x326098});}return{'method':_0x399a9b(0xd6),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x56d987[_0x399a9b(0xbe)],'sqlCode':_0x56d987[_0x399a9b(0xc1)]('sqlcode')||null,'sqlName':_0x56d987[_0x399a9b(0xc1)](_0x399a9b(0xb3))||null,'files':_0x389497},'description':_0x399a9b(0xb9)+_0x389497['length']+'\x20SQL\x20file(s)\x20into\x20'+_0x4cc120[_0x399a9b(0xcf)]};},async 'execute'(_0x2d0c74){const _0x55d48f=a137_0x295389,_0x433c92=loadSqlProjectConfig(_0x2d0c74[_0x55d48f(0xbe)]),_0x457e1f=await readSqlLockFile(_0x433c92['lockFilePath']),{lockData:_0x27f306,appLock:_0x5fd83b}=ensureSqlLockScope(_0x457e1f??createEmptySqlLock(),_0x433c92[_0x55d48f(0xbe)],_0x433c92[_0x55d48f(0xc2)],'pull'),_0x24f0e8=_0x2d0c74['bool'](_0x55d48f(0xce)),_0x50ef2b=await fetchAllSqlQueries(_0x2d0c74['appCode'],{'sqlCode':_0x2d0c74[_0x55d48f(0xc1)]('sqlcode')||undefined,'sqlName':_0x2d0c74[_0x55d48f(0xc1)](_0x55d48f(0xb3))||undefined});if(_0x50ef2b[_0x55d48f(0xad)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x55d48f(0xc0)};const _0x3707d9=[],_0x399560=[];for(const _0xf4b94d of _0x50ef2b){try{_0x3707d9[_0x55d48f(0xbb)](await ensureSqlContent(_0xf4b94d));}catch(_0x1011fa){_0x399560[_0x55d48f(0xbb)]({'sqlCode':_0xf4b94d[_0x55d48f(0xd0)],'error':_0x1011fa instanceof Error?_0x1011fa['message']:String(_0x1011fa)});}}if(_0x24f0e8&&!_0x2d0c74[_0x55d48f(0xb0)]){let _0x550bac=![];for(const _0x287fc7 of _0x3707d9){const _0x3ba02f=detectModeFromSql(_0x287fc7),_0x3c6651=_0x287fc7['dbId']?await getDbName(_0x2d0c74[_0x55d48f(0xbe)],Number(_0x287fc7[_0x55d48f(0xd5)]))['catch'](()=>undefined):undefined,_0x221c24=buildLocalSqlFileContent({'sqlCode':_0x287fc7[_0x55d48f(0xd0)],'sqlName':_0x287fc7[_0x55d48f(0xcc)],'dbId':_0x287fc7[_0x55d48f(0xd5)]},ensureRemoteSqlContent(_0x287fc7),{'dbName':_0x3c6651,'mode':_0x3ba02f,'syncedAt':new Date()[_0x55d48f(0xde)](),'description':_0x287fc7[_0x55d48f(0xa9)]}),_0x5a38dd=resolveLocalSqlFilePath(_0x433c92,_0x287fc7[_0x55d48f(0xd0)],buildSqlLockEntry(_0x287fc7,ensureRemoteSqlContent(_0x287fc7),'',{'dbName':_0x3c6651}));if(await fileExists(_0x5a38dd)){const _0x22c380=await readFile(_0x5a38dd,'utf8');if(!isEquivalentPulledSqlFile(_0x22c380,_0x221c24,_0x3ba02f)){_0x550bac=!![];break;}}}if(_0x550bac){const _0x38b889=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x38b889)throw CliErrors[_0x55d48f(0xcd)](_0x55d48f(0xe0));}}const _0x4cc02f=cloneSqlLockData(_0x27f306),_0x24617c=_0x4cc02f['apps'][_0x433c92[_0x55d48f(0xbe)]],_0x487af3=[],_0x4707fb=[];for(const _0x509c72 of _0x3707d9){const _0x44c1ba=_0x24617c[_0x55d48f(0xb5)][_0x509c72['sqlCode']],_0x4a0470=ensureRemoteSqlContent(_0x509c72),_0x3f9383=detectModeFromSql(_0x509c72),_0x58e3ad=_0x509c72[_0x55d48f(0xd5)]?await getDbName(_0x2d0c74[_0x55d48f(0xbe)],Number(_0x509c72['dbId']))['catch'](()=>undefined):undefined,_0x5ef1f7=buildLocalSqlFileContent({'sqlCode':_0x509c72[_0x55d48f(0xd0)],'sqlName':_0x509c72[_0x55d48f(0xcc)],'dbId':_0x509c72['dbId']},_0x4a0470,{'dbName':_0x58e3ad,'mode':_0x3f9383,'syncedAt':new Date()[_0x55d48f(0xde)](),'description':_0x509c72['description']}),_0x285c40=buildSqlLockEntry(_0x509c72,_0x4a0470,computeSqlContentHash(_0x5ef1f7),{'dbName':_0x58e3ad}),_0x1c6fe1=_0x285c40[_0x55d48f(0xdc)],_0x18869b=join(_0x433c92['sqlRootDir'],_0x1c6fe1);try{if(await fileExists(_0x18869b)){const _0xe8e8cf=await readFile(_0x18869b,_0x55d48f(0xc4));if(isEquivalentPulledSqlFile(_0xe8e8cf,_0x5ef1f7,_0x3f9383)){_0x4707fb[_0x55d48f(0xbb)]({'sqlCode':_0x509c72[_0x55d48f(0xd0)],'reason':_0x55d48f(0xdf)}),_0x24617c['sqls'][_0x509c72['sqlCode']]={..._0x285c40,'hash':computeSqlContentHash(_0xe8e8cf),'path':_0x1c6fe1};continue;}if(!_0x24f0e8){_0x4707fb[_0x55d48f(0xbb)]({'sqlCode':_0x509c72['sqlCode'],'reason':_0x55d48f(0xcb)});continue;}}const _0x22f44c=_0x44c1ba?.[_0x55d48f(0xdc)]?join(_0x433c92[_0x55d48f(0xcf)],_0x44c1ba['path']):undefined;_0x22f44c&&_0x22f44c!==_0x18869b&&await fileExists(_0x22f44c)&&await rm(_0x22f44c,{'force':!![]}),await ensureParentDirectory(_0x18869b),await writeFile(_0x18869b,_0x5ef1f7,_0x55d48f(0xc4)),_0x24617c[_0x55d48f(0xb5)][_0x509c72['sqlCode']]={..._0x285c40,'path':_0x1c6fe1},_0x487af3[_0x55d48f(0xbb)]({'sqlCode':_0x509c72['sqlCode'],'filePath':_0x18869b});}catch(_0x494276){_0x399560[_0x55d48f(0xbb)]({'sqlCode':_0x509c72[_0x55d48f(0xd0)],'error':_0x494276 instanceof Error?_0x494276['message']:String(_0x494276)});}}return _0x24617c[_0x55d48f(0xaa)]=new Date()['toISOString'](),await writeSqlLockFile(_0x433c92[_0x55d48f(0xb1)],_0x4cc02f),{'ok':_0x399560[_0x55d48f(0xad)]===0x0,'data':{'pulled':_0x487af3,'skipped':_0x4707fb,'failed':_0x399560},'message':'Pull\x20complete:\x20'+_0x487af3[_0x55d48f(0xad)]+_0x55d48f(0xd7)+_0x4707fb[_0x55d48f(0xad)]+'\x20skipped,\x20'+_0x399560[_0x55d48f(0xad)]+'\x20failed'};}};function detectModeFromSql(_0x33f80e){const _0x501082=a137_0x295389,_0x321f24=ensureRemoteSqlContent(_0x33f80e),_0x2d1cc5=stripLocalSqlMetadata(_0x321f24,_0x501082(0xd9))[_0x501082(0xc5)]();if(/^<(select|insert|update|delete)\b/i[_0x501082(0xbd)](_0x2d1cc5))return'mybatisXml';return'sql';}function isEquivalentPulledSqlFile(_0x1c39ba,_0x50636c,_0x2df39f){return normalizePullComparableContent(_0x1c39ba,_0x2df39f)===normalizePullComparableContent(_0x50636c,_0x2df39f);}function normalizePullComparableContent(_0x3e3e74,_0x17d5f7){const _0x3c9a7a=a137_0x295389,_0x17dc10=_0x3e3e74['replace'](/\r\n/g,'\x0a')[_0x3c9a7a(0xd1)]('\x0a'),_0x2c8411=_0x17dc10[_0x3c9a7a(0xb6)](_0x4b1267=>!isSyncedAtMetadataLine(_0x4b1267,_0x17d5f7));return _0x2c8411[_0x3c9a7a(0xb7)]('\x0a');}function isSyncedAtMetadataLine(_0x5476cf,_0x281a21){const _0x376da1=a137_0x295389;if(_0x281a21===_0x376da1(0xd9))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x5476cf);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x376da1(0xbd)](_0x5476cf);}
|
package/lib/commands/sql/push.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function a138_0x35f3(_0x23b9ff,_0x5a25e5){_0x23b9ff=_0x23b9ff-0xd3;const _0x2588eb=a138_0x2588();let _0x35f3ca=_0x2588eb[_0x23b9ff];return _0x35f3ca;}const a138_0x5c5a72=a138_0x35f3;(function(_0x4dbb71,_0xaaece5){const _0x4f6955=a138_0x35f3,_0x455bf8=_0x4dbb71();while(!![]){try{const _0x42183e=-parseInt(_0x4f6955(0xfa))/0x1*(-parseInt(_0x4f6955(0xd5))/0x2)+-parseInt(_0x4f6955(0xf9))/0x3+-parseInt(_0x4f6955(0xeb))/0x4+parseInt(_0x4f6955(0xd4))/0x5*(-parseInt(_0x4f6955(0x10c))/0x6)+parseInt(_0x4f6955(0xe1))/0x7+-parseInt(_0x4f6955(0xe5))/0x8+parseInt(_0x4f6955(0xe0))/0x9;if(_0x42183e===_0xaaece5)break;else _0x455bf8['push'](_0x455bf8['shift']());}catch(_0x3f8a7c){_0x455bf8['push'](_0x455bf8['shift']());}}}(a138_0x2588,0x98ffa));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';function a138_0x2588(){const _0x4d409c=['trashDir','boolean','Local\x20directory\x20\x22','remoteId','relativePath','17955252OEvXvN','5080544qeIyfn','sqlcode','force','filePath','6401592qygjfu','\x20failed','Local\x20SQL\x20not\x20found:\x20','dbDirectory','path','map','4402492ufbErj','sqlRootDir','No\x20database\x20matches\x20local\x20directory\x20\x22','dbId','has','Push\x20local\x20SQL\x20files\x20to\x20remote','validation','bool','exec','catch','filter','replace','POST','length','412623ySwluf','2732qSPAgL','Push\x20complete:\x20','sqlName','dbName','appCode','sqlRoot','sqlCode','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','lockFilePath','\x22\x20for\x20sqlCode\x20','utf8','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','push','entries','sqlConfig','hash','version','unchanged','165282lMNvMO','high-risk-write','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','join','/smartapi/custom/updateUserCustomSql','lastSync','toISOString','get','25tFRlwz','60foBBbE','message','No\x20local\x20SQL\x20files\x20found.','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','sqls','\x20skipped,\x20'];a138_0x2588=function(){return _0x4d409c;};return a138_0x2588();}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(_0x4d2b05,_0x37750f,_0x34d739){const _0x179b09=a138_0x35f3,_0x4ea35d=await scanLocalSqlQueries(_0x4d2b05),_0x927eb2=new Map();for(const _0x3b97a1 of _0x4ea35d){if(_0x34d739&&_0x3b97a1[_0x179b09(0x100)]!==_0x34d739)continue;const _0x38bd45=_0x927eb2[_0x179b09(0xd3)](_0x3b97a1['sqlCode'])??[];_0x38bd45[_0x179b09(0x106)](_0x3b97a1),_0x927eb2['set'](_0x3b97a1['sqlCode'],_0x38bd45);}if(_0x34d739&&!_0x927eb2[_0x179b09(0xef)](_0x34d739))throw CliErrors['validation'](_0x179b09(0xe7)+_0x34d739);const _0x18fe6b=[];for(const [_0x4bed0e,_0x33b79e]of _0x927eb2[_0x179b09(0x107)]()){if(_0x33b79e[_0x179b09(0xf8)]===0x1){_0x18fe6b['push'](_0x33b79e[0x0]);continue;}const _0x599881=_0x37750f[_0x179b09(0xd9)][_0x4bed0e],_0xb71d08=_0x599881?.[_0x179b09(0xe9)],_0x2bff06=_0xb71d08?_0x33b79e[_0x179b09(0xf5)](_0x455003=>_0x455003[_0x179b09(0xdf)]!==_0xb71d08):_0x33b79e;if(_0x599881&&_0x2bff06[_0x179b09(0xf8)]===0x1){_0x18fe6b[_0x179b09(0x106)](_0x2bff06[0x0]);continue;}throw CliErrors[_0x179b09(0xf1)](_0x179b09(0x105)+_0x4bed0e+'.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.');}return _0x18fe6b;}export const sqlPush={'service':'sql','command':a138_0x5c5a72(0x106),'description':a138_0x5c5a72(0xf0),'risk':a138_0x5c5a72(0x10d),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a138_0x5c5a72(0xe3),'type':a138_0x5c5a72(0xdc),'description':a138_0x5c5a72(0x10e)}],async 'dryRun'(_0x5db9c3){const _0x4df48b=a138_0x5c5a72,_0x231611=loadSqlProjectConfig(_0x5db9c3[_0x4df48b(0xfe)]),_0x3e1891=await readSqlLockFile(_0x231611['lockFilePath']),{appLock:_0x1f8e43}=ensureSqlLockScope(_0x3e1891??createEmptySqlLock(),_0x5db9c3[_0x4df48b(0xfe)],_0x231611[_0x4df48b(0xff)],_0x4df48b(0x106)),_0x276290=await getTargetSqlQueries(_0x231611,_0x1f8e43,_0x5db9c3['str'](_0x4df48b(0xe2))||undefined),_0x32b7e3=[];for(const _0xb8f41f of _0x276290){const _0x1b1af3=await computeSqlFileHash(_0xb8f41f[_0x4df48b(0xe4)]),_0x704f9b=_0x1f8e43[_0x4df48b(0xd9)][_0xb8f41f[_0x4df48b(0x100)]],_0x1e2da6=!!_0x704f9b&&(_0x704f9b['path']!==_0xb8f41f[_0x4df48b(0xdf)]||!!_0xb8f41f['sqlName']&&_0x704f9b[_0x4df48b(0xfc)]!==_0xb8f41f['sqlName']);if(!_0x5db9c3[_0x4df48b(0xf2)](_0x4df48b(0xe3))&&_0x704f9b&&_0x704f9b[_0x4df48b(0x109)]===_0x1b1af3&&!_0x1e2da6)continue;_0x32b7e3[_0x4df48b(0x106)](_0xb8f41f[_0x4df48b(0x100)]);}return{'method':_0x4df48b(0xf7),'url':_0x4df48b(0x110),'body':{'sqlCodes':_0x32b7e3,'appCode':_0x5db9c3[_0x4df48b(0xfe)]},'description':'Would\x20push\x20'+_0x32b7e3[_0x4df48b(0xf8)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x49d5de){const _0xc64a0d=a138_0x5c5a72,_0x138277=loadSqlProjectConfig(_0x49d5de[_0xc64a0d(0xfe)]),_0x59abe1=await readSqlLockFile(_0x138277[_0xc64a0d(0x102)]),{lockData:_0x40ff8f,appLock:_0x4ea8ef}=ensureSqlLockScope(_0x59abe1??createEmptySqlLock(),_0x49d5de['appCode'],_0x138277[_0xc64a0d(0xff)],_0xc64a0d(0x106)),_0x41da2b=await getTargetSqlQueries(_0x138277,_0x4ea8ef,_0x49d5de['str']('sqlcode')||undefined);if(_0x41da2b[_0xc64a0d(0xf8)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0xc64a0d(0xd7)};const _0x42a7b1=[],_0x4e14ce=[],_0x5e234b=[];for(const _0x277813 of _0x41da2b){const _0xfd56e5=_0x4ea8ef[_0xc64a0d(0xd9)][_0x277813['sqlCode']];if(!_0xfd56e5){_0x5e234b[_0xc64a0d(0x106)]({'sqlCode':_0x277813[_0xc64a0d(0x100)],'error':_0xc64a0d(0xd8)});continue;}try{const _0x573676=await computeSqlFileHash(_0x277813[_0xc64a0d(0xe4)]),_0x41a316=_0xfd56e5[_0xc64a0d(0xe9)]!==_0x277813[_0xc64a0d(0xdf)]||!!_0x277813['sqlName']&&_0xfd56e5[_0xc64a0d(0xfc)]!==_0x277813['sqlName'];if(!_0x49d5de[_0xc64a0d(0xf2)](_0xc64a0d(0xe3))&&_0xfd56e5[_0xc64a0d(0x109)]===_0x573676&&!_0x41a316){_0x4e14ce[_0xc64a0d(0x106)]({'sqlCode':_0x277813[_0xc64a0d(0x100)],'reason':_0xc64a0d(0x10b)});continue;}if(_0xfd56e5[_0xc64a0d(0x10a)]==null){_0x5e234b[_0xc64a0d(0x106)]({'sqlCode':_0x277813[_0xc64a0d(0x100)],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x20e8ce=await readFile(_0x277813[_0xc64a0d(0xe4)],_0xc64a0d(0x104)),_0x290985=stripLocalSqlMetadata(_0x20e8ce,_0x277813['mode']),_0x43577a=_0x277813['sqlName']||_0xfd56e5[_0xc64a0d(0xfc)],_0x12fdaf=await resolveTargetDbBinding(_0x49d5de[_0xc64a0d(0xfe)],_0x277813,_0xfd56e5),_0x4c06ea=await updateSqlQuery({'id':_0xfd56e5[_0xc64a0d(0xde)],'appCode':_0x49d5de[_0xc64a0d(0xfe)],'sqlCode':_0x277813[_0xc64a0d(0x100)],'sqlName':_0x43577a,'dbId':_0x12fdaf[_0xc64a0d(0xee)],'version':_0xfd56e5['version'],'sqlContent':_0x290985,'sqlConfig':_0xfd56e5[_0xc64a0d(0x108)]??undefined}),_0x2b6e40=_0x4c06ea[_0xc64a0d(0xee)]?await getDbName(_0x49d5de[_0xc64a0d(0xfe)],Number(_0x4c06ea[_0xc64a0d(0xee)]))[_0xc64a0d(0xf4)](()=>_0x12fdaf[_0xc64a0d(0xfd)]):_0x12fdaf['dbName'];_0x4ea8ef[_0xc64a0d(0xd9)][_0x277813[_0xc64a0d(0x100)]]={...buildSqlLockEntry(_0x4c06ea,_0x290985,_0x573676,{'dbName':_0x2b6e40}),'path':_0x277813[_0xc64a0d(0xdf)],'mode':_0xfd56e5['mode']},await archivePreviousSqlFileIfNeeded(_0x138277,_0xfd56e5[_0xc64a0d(0xe9)],_0x277813[_0xc64a0d(0xdf)]),_0x42a7b1[_0xc64a0d(0x106)]({'sqlCode':_0x277813[_0xc64a0d(0x100)],'remoteId':_0xfd56e5[_0xc64a0d(0xde)]});}catch(_0x4f46fc){_0x5e234b[_0xc64a0d(0x106)]({'sqlCode':_0x277813[_0xc64a0d(0x100)],'error':_0x4f46fc instanceof Error?_0x4f46fc[_0xc64a0d(0xd6)]:String(_0x4f46fc)});}}return _0x4ea8ef[_0xc64a0d(0x111)]=new Date()['toISOString'](),await writeSqlLockFile(_0x138277[_0xc64a0d(0x102)],_0x40ff8f),{'ok':_0x5e234b[_0xc64a0d(0xf8)]===0x0,'data':{'pushed':_0x42a7b1,'skipped':_0x4e14ce,'failed':_0x5e234b},'message':_0xc64a0d(0xfb)+_0x42a7b1[_0xc64a0d(0xf8)]+'\x20pushed,\x20'+_0x4e14ce[_0xc64a0d(0xf8)]+_0xc64a0d(0xda)+_0x5e234b[_0xc64a0d(0xf8)]+_0xc64a0d(0xe6)};}};async function archivePreviousSqlFileIfNeeded(_0x371966,_0x40c59a,_0x54fcec){const _0x4ef99e=a138_0x5c5a72;if(!_0x40c59a||_0x40c59a===_0x54fcec)return;const _0x1851c7=join(_0x371966[_0x4ef99e(0xec)],_0x40c59a);if(!await fileExists(_0x1851c7))return;const _0x5d184c=await moveToTrash(_0x371966['projectRoot'],_0x371966[_0x4ef99e(0xdb)],_0x1851c7);await cleanupEmptyDirectories(dirname(_0x1851c7),_0x371966[_0x4ef99e(0xec)]),void _0x5d184c;}async function moveToTrash(_0x22d4fe,_0xd15fff,_0x5283e4){const _0x548161=a138_0x5c5a72,_0x4a23e7=new Date()[_0x548161(0x112)]()[_0x548161(0xf6)](/[:.]/g,'-'),_0x5d8ce3=relative(_0x22d4fe,_0x5283e4),_0xb457d5=join(_0xd15fff,_0x4a23e7,_0x5d8ce3);return await mkdir(dirname(_0xb457d5),{'recursive':!![]}),await rename(_0x5283e4,_0xb457d5),_0xb457d5;}async function cleanupEmptyDirectories(_0x126216,_0x4e0163){const _0x2de1bd=a138_0x5c5a72;let _0x237bdc=resolve(_0x126216);const _0x29a75a=resolve(_0x4e0163);while(_0x237bdc['startsWith'](''+_0x29a75a+sep)||_0x237bdc===_0x29a75a){if(_0x237bdc===_0x29a75a)return;try{const _0x59a933=await readdir(_0x237bdc);if(_0x59a933[_0x2de1bd(0xf8)]>0x0)return;await rmdir(_0x237bdc);}catch{return;}_0x237bdc=dirname(_0x237bdc);}}async function resolveTargetDbBinding(_0x29d78d,_0x898e8d,_0xac178e){const _0x1e2426=a138_0x5c5a72,_0xf96ebb=_0x898e8d[_0x1e2426(0xe8)];if(!_0xf96ebb)return{'dbId':_0xac178e[_0x1e2426(0xee)],'dbName':_0xac178e['dbName']};const _0x396f90=buildDbDirectoryName(_0xac178e[_0x1e2426(0xfd)],_0xac178e['dbId']);if(_0xf96ebb===_0x396f90)return{'dbId':_0xac178e[_0x1e2426(0xee)],'dbName':_0xac178e[_0x1e2426(0xfd)]};const _0x4397c2=parseExplicitDbDirectory(_0xf96ebb);if(_0x4397c2!=null)return{'dbId':_0x4397c2,'dbName':await getDbName(_0x29d78d,_0x4397c2)['catch'](()=>undefined)};const _0x2a0510=await listDatabases(_0x29d78d),_0x57a75e=_0x2a0510[_0x1e2426(0xf5)](_0x113506=>buildDbDirectoryName(_0x113506[_0x1e2426(0xfd)],_0x113506[_0x1e2426(0xee)])===_0xf96ebb);if(_0x57a75e[_0x1e2426(0xf8)]===0x1)return{'dbId':_0x57a75e[0x0]['dbId'],'dbName':_0x57a75e[0x0][_0x1e2426(0xfd)]};if(_0x57a75e[_0x1e2426(0xf8)]===0x0)throw CliErrors[_0x1e2426(0xf1)](_0x1e2426(0xed)+_0xf96ebb+_0x1e2426(0x103)+_0x898e8d[_0x1e2426(0x100)]+'.');const _0x23f010=_0x57a75e[_0x1e2426(0xea)](_0x2eb4f3=>_0x2eb4f3[_0x1e2426(0xfd)]+'\x20('+_0x2eb4f3[_0x1e2426(0xee)]+')')[_0x1e2426(0x10f)](',\x20');throw CliErrors['validation'](_0x1e2426(0xdd)+_0xf96ebb+_0x1e2426(0x101)+_0x898e8d[_0x1e2426(0x100)]+':\x20'+_0x23f010);}function parseExplicitDbDirectory(_0x4d8aca){const _0x20394f=a138_0x5c5a72,_0x5eb66b=/^db-(\d+)$/[_0x20394f(0xf3)](_0x4d8aca);if(!_0x5eb66b)return null;const _0x40ba7c=Number(_0x5eb66b[0x1]);return Number['isFinite'](_0x40ba7c)&&_0x40ba7c>0x0?_0x40ba7c:null;}
|
|
1
|
+
const a138_0x2d39ec=a138_0xbdbd;(function(_0x371292,_0x5c4607){const _0xb81963=a138_0xbdbd,_0x493e42=_0x371292();while(!![]){try{const _0x186167=parseInt(_0xb81963(0x11e))/0x1*(parseInt(_0xb81963(0x116))/0x2)+parseInt(_0xb81963(0xf2))/0x3+-parseInt(_0xb81963(0xff))/0x4+-parseInt(_0xb81963(0xe8))/0x5+-parseInt(_0xb81963(0x10b))/0x6+-parseInt(_0xb81963(0xeb))/0x7*(parseInt(_0xb81963(0x10e))/0x8)+parseInt(_0xb81963(0xfa))/0x9;if(_0x186167===_0x5c4607)break;else _0x493e42['push'](_0x493e42['shift']());}catch(_0xfb77a3){_0x493e42['push'](_0x493e42['shift']());}}}(a138_0x5107,0x77ad2));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';function a138_0xbdbd(_0x31bbb5,_0x1ccb40){_0x31bbb5=_0x31bbb5-0xe4;const _0x5107d0=a138_0x5107();let _0xbdbd4e=_0x5107d0[_0x31bbb5];return _0xbdbd4e;}import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x462dd1,_0x1aa153,_0x111054){const _0x22c2ab=a138_0xbdbd,_0x5ced8f=await scanLocalSqlQueries(_0x462dd1),_0x3353f1=new Map();for(const _0x44196e of _0x5ced8f){if(_0x111054&&_0x44196e['sqlCode']!==_0x111054)continue;const _0x435083=_0x3353f1['get'](_0x44196e[_0x22c2ab(0xec)])??[];_0x435083[_0x22c2ab(0xfd)](_0x44196e),_0x3353f1[_0x22c2ab(0x105)](_0x44196e[_0x22c2ab(0xec)],_0x435083);}if(_0x111054&&!_0x3353f1[_0x22c2ab(0x100)](_0x111054))throw CliErrors['validation'](_0x22c2ab(0xfe)+_0x111054);const _0x11595e=[];for(const [_0x12f164,_0x2560bd]of _0x3353f1[_0x22c2ab(0xf9)]()){if(_0x2560bd[_0x22c2ab(0x115)]===0x1){_0x11595e['push'](_0x2560bd[0x0]);continue;}const _0x782912=_0x1aa153[_0x22c2ab(0xef)][_0x12f164],_0x36484c=_0x782912?.[_0x22c2ab(0xf8)],_0x69e61c=_0x36484c?_0x2560bd[_0x22c2ab(0x10a)](_0x547104=>_0x547104['relativePath']!==_0x36484c):_0x2560bd;if(_0x782912&&_0x69e61c[_0x22c2ab(0x115)]===0x1){_0x11595e['push'](_0x69e61c[0x0]);continue;}throw CliErrors[_0x22c2ab(0xfb)](_0x22c2ab(0xee)+_0x12f164+'.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.');}return _0x11595e;}export const sqlPush={'service':a138_0x2d39ec(0x113),'command':a138_0x2d39ec(0xfd),'description':'Push\x20local\x20SQL\x20files\x20to\x20remote','risk':a138_0x2d39ec(0x11f),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':a138_0x2d39ec(0xea),'description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0x47efe9){const _0x480e97=a138_0x2d39ec,_0x21a88a=loadSqlProjectConfig(_0x47efe9['appCode']),_0x45d866=await readSqlLockFile(_0x21a88a[_0x480e97(0xe5)]),{appLock:_0x4d7995}=ensureSqlLockScope(_0x45d866??createEmptySqlLock(),_0x47efe9[_0x480e97(0xf0)],_0x21a88a[_0x480e97(0x11d)],'push'),_0x423a6c=await getTargetSqlQueries(_0x21a88a,_0x4d7995,_0x47efe9[_0x480e97(0x10c)](_0x480e97(0x111))||undefined),_0x12f9ef=[];for(const _0x736700 of _0x423a6c){const _0x22b93e=await computeSqlFileHash(_0x736700[_0x480e97(0xf3)]),_0x12d5d4=_0x4d7995['sqls'][_0x736700[_0x480e97(0xec)]],_0x1625c0=!!_0x12d5d4&&(_0x12d5d4[_0x480e97(0xf8)]!==_0x736700['relativePath']||!!_0x736700[_0x480e97(0xe7)]&&_0x12d5d4[_0x480e97(0xe7)]!==_0x736700[_0x480e97(0xe7)]);if(!_0x47efe9[_0x480e97(0x11a)](_0x480e97(0x112))&&_0x12d5d4&&_0x12d5d4[_0x480e97(0x106)]===_0x22b93e&&!_0x1625c0)continue;_0x12f9ef[_0x480e97(0xfd)](_0x736700['sqlCode']);}return{'method':_0x480e97(0x102),'url':'/smartapi/custom/updateUserCustomSql','body':{'sqlCodes':_0x12f9ef,'appCode':_0x47efe9[_0x480e97(0xf0)]},'description':'Would\x20push\x20'+_0x12f9ef['length']+'\x20SQL\x20file(s)'};},async 'execute'(_0x1572fc){const _0x26bdee=a138_0x2d39ec,_0x9a77d1=loadSqlProjectConfig(_0x1572fc[_0x26bdee(0xf0)]),_0x27249f=await readSqlLockFile(_0x9a77d1[_0x26bdee(0xe5)]),{lockData:_0x3c97ab,appLock:_0x1cedf5}=ensureSqlLockScope(_0x27249f??createEmptySqlLock(),_0x1572fc[_0x26bdee(0xf0)],_0x9a77d1[_0x26bdee(0x11d)],'push'),_0x2efb9e=await getTargetSqlQueries(_0x9a77d1,_0x1cedf5,_0x1572fc['str']('sqlcode')||undefined);if(_0x2efb9e['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x17b03d=[],_0x243fb5=[],_0x4af279=[];for(const _0x31a130 of _0x2efb9e){const _0x36dbb7=_0x1cedf5[_0x26bdee(0xef)][_0x31a130[_0x26bdee(0xec)]];if(!_0x36dbb7){_0x4af279[_0x26bdee(0xfd)]({'sqlCode':_0x31a130[_0x26bdee(0xec)],'error':_0x26bdee(0xed)});continue;}try{const _0x2ee3e2=await computeSqlFileHash(_0x31a130[_0x26bdee(0xf3)]),_0x4246f9=_0x36dbb7[_0x26bdee(0xf8)]!==_0x31a130['relativePath']||!!_0x31a130[_0x26bdee(0xe7)]&&_0x36dbb7[_0x26bdee(0xe7)]!==_0x31a130[_0x26bdee(0xe7)];if(!_0x1572fc[_0x26bdee(0x11a)](_0x26bdee(0x112))&&_0x36dbb7['hash']===_0x2ee3e2&&!_0x4246f9){_0x243fb5[_0x26bdee(0xfd)]({'sqlCode':_0x31a130['sqlCode'],'reason':_0x26bdee(0x11b)});continue;}if(_0x36dbb7[_0x26bdee(0xf4)]==null){_0x4af279[_0x26bdee(0xfd)]({'sqlCode':_0x31a130['sqlCode'],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x555d13=await readFile(_0x31a130[_0x26bdee(0xf3)],'utf8'),_0x470e7a=stripLocalSqlMetadata(_0x555d13,_0x31a130[_0x26bdee(0x104)]),_0x2ec810=_0x31a130[_0x26bdee(0xe7)]||_0x36dbb7['sqlName'],_0x12b13e=await resolveTargetDbBinding(_0x1572fc[_0x26bdee(0xf0)],_0x31a130,_0x36dbb7),_0x19137a=await updateSqlQuery({'id':_0x36dbb7[_0x26bdee(0x10f)],'appCode':_0x1572fc[_0x26bdee(0xf0)],'sqlCode':_0x31a130[_0x26bdee(0xec)],'sqlName':_0x2ec810,'dbId':_0x12b13e['dbId'],'version':_0x36dbb7[_0x26bdee(0xf4)],'sqlContent':_0x470e7a,'sqlConfig':_0x36dbb7[_0x26bdee(0xf6)]??undefined}),_0x430c51=_0x19137a[_0x26bdee(0x117)]?await getDbName(_0x1572fc[_0x26bdee(0xf0)],Number(_0x19137a[_0x26bdee(0x117)]))[_0x26bdee(0x103)](()=>_0x12b13e[_0x26bdee(0x119)]):_0x12b13e[_0x26bdee(0x119)];_0x1cedf5[_0x26bdee(0xef)][_0x31a130[_0x26bdee(0xec)]]={...buildSqlLockEntry(_0x19137a,_0x470e7a,_0x2ee3e2,{'dbName':_0x430c51}),'path':_0x31a130[_0x26bdee(0x10d)],'mode':_0x36dbb7['mode']},await archivePreviousSqlFileIfNeeded(_0x9a77d1,_0x36dbb7[_0x26bdee(0xf8)],_0x31a130[_0x26bdee(0x10d)]),_0x17b03d[_0x26bdee(0xfd)]({'sqlCode':_0x31a130[_0x26bdee(0xec)],'remoteId':_0x36dbb7[_0x26bdee(0x10f)]});}catch(_0x597be0){_0x4af279[_0x26bdee(0xfd)]({'sqlCode':_0x31a130[_0x26bdee(0xec)],'error':_0x597be0 instanceof Error?_0x597be0['message']:String(_0x597be0)});}}return _0x1cedf5[_0x26bdee(0xf1)]=new Date()[_0x26bdee(0xfc)](),await writeSqlLockFile(_0x9a77d1[_0x26bdee(0xe5)],_0x3c97ab),{'ok':_0x4af279[_0x26bdee(0x115)]===0x0,'data':{'pushed':_0x17b03d,'skipped':_0x243fb5,'failed':_0x4af279},'message':_0x26bdee(0x108)+_0x17b03d['length']+_0x26bdee(0x11c)+_0x243fb5[_0x26bdee(0x115)]+_0x26bdee(0x110)+_0x4af279[_0x26bdee(0x115)]+_0x26bdee(0xe4)};}};async function archivePreviousSqlFileIfNeeded(_0x4af167,_0xb9a134,_0x127861){const _0xea662d=a138_0x2d39ec;if(!_0xb9a134||_0xb9a134===_0x127861)return;const _0x4a60bc=join(_0x4af167[_0xea662d(0x107)],_0xb9a134);if(!await fileExists(_0x4a60bc))return;const _0xead643=await moveToTrash(_0x4af167[_0xea662d(0x101)],_0x4af167[_0xea662d(0xf5)],_0x4a60bc);await cleanupEmptyDirectories(dirname(_0x4a60bc),_0x4af167[_0xea662d(0x107)]),void _0xead643;}async function moveToTrash(_0x3e743a,_0x4ef95a,_0x26453a){const _0x474d1b=a138_0x2d39ec,_0x14ab64=new Date()[_0x474d1b(0xfc)]()[_0x474d1b(0x109)](/[:.]/g,'-'),_0x2facda=relative(_0x3e743a,_0x26453a),_0x43c8fa=join(_0x4ef95a,_0x14ab64,_0x2facda);return await mkdir(dirname(_0x43c8fa),{'recursive':!![]}),await rename(_0x26453a,_0x43c8fa),_0x43c8fa;}async function cleanupEmptyDirectories(_0xdd7168,_0x508adf){let _0x40107d=resolve(_0xdd7168);const _0x2f6ed7=resolve(_0x508adf);while(_0x40107d['startsWith'](''+_0x2f6ed7+sep)||_0x40107d===_0x2f6ed7){if(_0x40107d===_0x2f6ed7)return;try{const _0x5e915a=await readdir(_0x40107d);if(_0x5e915a['length']>0x0)return;await rmdir(_0x40107d);}catch{return;}_0x40107d=dirname(_0x40107d);}}async function resolveTargetDbBinding(_0x14a324,_0x4b086a,_0x784051){const _0x4b5d44=a138_0x2d39ec,_0x2a2b99=_0x4b086a[_0x4b5d44(0xf7)];if(!_0x2a2b99)return{'dbId':_0x784051[_0x4b5d44(0x117)],'dbName':_0x784051[_0x4b5d44(0x119)]};const _0x54ea6d=buildDbDirectoryName(_0x784051[_0x4b5d44(0x119)],_0x784051['dbId']);if(_0x2a2b99===_0x54ea6d)return{'dbId':_0x784051[_0x4b5d44(0x117)],'dbName':_0x784051[_0x4b5d44(0x119)]};const _0x415b87=parseExplicitDbDirectory(_0x2a2b99);if(_0x415b87!=null)return{'dbId':_0x415b87,'dbName':await getDbName(_0x14a324,_0x415b87)[_0x4b5d44(0x103)](()=>undefined)};const _0x5732f5=await listDatabases(_0x14a324),_0x15e5c3=_0x5732f5['filter'](_0xec0d20=>buildDbDirectoryName(_0xec0d20[_0x4b5d44(0x119)],_0xec0d20[_0x4b5d44(0x117)])===_0x2a2b99);if(_0x15e5c3['length']===0x1)return{'dbId':_0x15e5c3[0x0][_0x4b5d44(0x117)],'dbName':_0x15e5c3[0x0]['dbName']};if(_0x15e5c3['length']===0x0)throw CliErrors[_0x4b5d44(0xfb)]('No\x20database\x20matches\x20local\x20directory\x20\x22'+_0x2a2b99+_0x4b5d44(0x114)+_0x4b086a[_0x4b5d44(0xec)]+'.');const _0x5e0c79=_0x15e5c3['map'](_0x2cf025=>_0x2cf025['dbName']+'\x20('+_0x2cf025['dbId']+')')[_0x4b5d44(0xe9)](',\x20');throw CliErrors[_0x4b5d44(0xfb)]('Local\x20directory\x20\x22'+_0x2a2b99+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x4b086a[_0x4b5d44(0xec)]+':\x20'+_0x5e0c79);}function parseExplicitDbDirectory(_0x26887a){const _0x631ea9=a138_0x2d39ec,_0x2876f3=/^db-(\d+)$/[_0x631ea9(0x118)](_0x26887a);if(!_0x2876f3)return null;const _0x1bce02=Number(_0x2876f3[0x1]);return Number[_0x631ea9(0xe6)](_0x1bce02)&&_0x1bce02>0x0?_0x1bce02:null;}function a138_0x5107(){const _0x61f6f2=['has','projectRoot','POST','catch','mode','set','hash','sqlRootDir','Push\x20complete:\x20','replace','filter','2779560avdvLk','str','relativePath','8fwWBtO','remoteId','\x20skipped,\x20','sqlcode','force','sql','\x22\x20for\x20sqlCode\x20','length','30CtWFwm','dbId','exec','dbName','bool','unchanged','\x20pushed,\x20','sqlRoot','1298vnVzdW','high-risk-write','\x20failed','lockFilePath','isFinite','sqlName','3647175eUuEIO','join','boolean','2573207mZUdYO','sqlCode','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','sqls','appCode','lastSync','2066943nkhDNP','filePath','version','trashDir','sqlConfig','dbDirectory','path','entries','15244551iKOPNv','validation','toISOString','push','Local\x20SQL\x20not\x20found:\x20','1407200JtVGGn'];a138_0x5107=function(){return _0x61f6f2;};return a138_0x5107();}
|
package/lib/commands/sql/save.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a139_0x2dd907=a139_0xdae1;(function(_0x41876c,_0x4fe56d){const _0x421a48=a139_0xdae1,_0x5372d7=_0x41876c();while(!![]){try{const _0xdedf71=-parseInt(_0x421a48(0xa8))/0x1+-parseInt(_0x421a48(0xac))/0x2+parseInt(_0x421a48(0xa2))/0x3*(parseInt(_0x421a48(0xa5))/0x4)+-parseInt(_0x421a48(0xa0))/0x5+-parseInt(_0x421a48(0xaa))/0x6*(-parseInt(_0x421a48(0xa3))/0x7)+-parseInt(_0x421a48(0xa9))/0x8+parseInt(_0x421a48(0xb0))/0x9;if(_0xdedf71===_0x4fe56d)break;else _0x5372d7['push'](_0x5372d7['shift']());}catch(_0x12474e){_0x5372d7['push'](_0x5372d7['shift']());}}}(a139_0x1620,0x3af9e));import{CliErrors}from'../../errors.js';function a139_0xdae1(_0x315cec,_0xd709a2){_0x315cec=_0x315cec-0x9a;const _0x1620da=a139_0x1620();let _0xdae1d3=_0x1620da[_0x315cec];return _0xdae1d3;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.',a139_0x2dd907(0x9a),a139_0x2dd907(0xae)][a139_0x2dd907(0x9e)]('\x0a');function a139_0x1620(){const _0xea9f9=['write','447540sVDOPe','SQL\x20query\x20display\x20name','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.','string','6050583fJJkRN','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','save','Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','join','file','1452430rzPJmf','Path\x20to\x20the\x20SQL\x20file','21VBPSQL','14RGgbtv','Query\x20description','252544KyTyiC','sqlname','sql','461781KKgVfp','26880rOcAjF','320172jrZAZJ'];a139_0x1620=function(){return _0xea9f9;};return a139_0x1620();}export const sqlSave={'service':a139_0x2dd907(0xa7),'command':a139_0x2dd907(0x9b),'description':a139_0x2dd907(0x9c),'risk':a139_0x2dd907(0xab),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a139_0x2dd907(0x9f),'type':a139_0x2dd907(0xaf),'required':!![],'description':a139_0x2dd907(0xa1)},SQLCODE_FLAG_OPTIONAL,{'name':a139_0x2dd907(0xa6),'type':a139_0x2dd907(0xaf),'description':a139_0x2dd907(0xad)},{'name':'db','type':a139_0x2dd907(0xaf),'description':a139_0x2dd907(0x9d)},{'name':'description','type':a139_0x2dd907(0xaf),'description':a139_0x2dd907(0xa4)}],async 'validate'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a140_0x1ce38d=a140_0x570e;(function(_0x1649c3,_0x96418a){const _0x4b1678=a140_0x570e,_0x391fd5=_0x1649c3();while(!![]){try{const _0x181187=parseInt(_0x4b1678(0x1f7))/0x1+-parseInt(_0x4b1678(0x20c))/0x2+parseInt(_0x4b1678(0x20a))/0x3+parseInt(_0x4b1678(0x1f6))/0x4+-parseInt(_0x4b1678(0x1ee))/0x5*(parseInt(_0x4b1678(0x207))/0x6)+-parseInt(_0x4b1678(0x1e4))/0x7+parseInt(_0x4b1678(0x1fa))/0x8;if(_0x181187===_0x96418a)break;else _0x391fd5['push'](_0x391fd5['shift']());}catch(_0x40f81a){_0x391fd5['push'](_0x391fd5['shift']());}}}(a140_0x1c94,0xe16f8));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=a140_0x1ce38d(0x1f4);export function buildSqlLockEntry(_0x180de6,_0x45a6d7,_0x4827c7,_0x48de10){const _0x2206a4=a140_0x1ce38d,_0x51cd08=detectSqlMode(_0x45a6d7);return{'path':buildSqlRelativePath(_0x180de6[_0x2206a4(0x1e9)],_0x180de6[_0x2206a4(0x1e7)],_0x48de10?.['dbName'],_0x51cd08,_0x180de6[_0x2206a4(0x1f9)]),'hash':_0x4827c7,'remoteId':_0x180de6['id'],'version':_0x180de6[_0x2206a4(0x1e2)],'dbId':Number(_0x180de6['dbId']),'dbName':_0x48de10?.['dbName'],'sqlName':_0x180de6[_0x2206a4(0x1e7)],'sqlConfig':_0x180de6['sqlConfig']??undefined,'mode':_0x51cd08};}function a140_0x1c94(){const _0x7d7cec=['mode','question','stderr','sqlContent','path','fromEntries','description','close','<!--\x20@lovrabet.','168mgscNY','join','test','124026bixwES','--\x20@lovrabet.','2258528ctpJRs','mybatisXml','version','\x20[y/N]\x20','2553376qqyueX','map','replace','sqlName','syncedAt','sqlCode','endsWith','includes','trimStart','filter','184215DLGwrG','lastSync','length','dbName','sqlRoot','trim','.rabetbase/sql','entries','2340340JgsIeO','1129841KwVWPE','stdin','dbId','13542016pveRKM','apps','yes','split'];a140_0x1c94=function(){return _0x7d7cec;};return a140_0x1c94();}export function cloneSqlLockData(_0x29f28c){const _0x3a70c4=a140_0x1ce38d;return{'apps':Object[_0x3a70c4(0x203)](Object[_0x3a70c4(0x1f5)](_0x29f28c[_0x3a70c4(0x1fb)])[_0x3a70c4(0x1e5)](([_0x417c3e,_0x34102f])=>[_0x417c3e,{'sqlRoot':_0x34102f[_0x3a70c4(0x1f2)],'lastSync':_0x34102f[_0x3a70c4(0x1ef)],'sqls':{..._0x34102f['sqls']}}]))};}export function ensureRemoteSqlContent(_0x447ef6){const _0x3b2642=a140_0x1ce38d;return _0x447ef6[_0x3b2642(0x201)]??'';}export function buildLocalSqlFileContent(_0x36ec61,_0x941046,_0x19461e){const _0x11f13c=a140_0x1ce38d,_0x2c1059=_0x19461e?.[_0x11f13c(0x1fe)]??detectSqlMode(_0x941046),_0x9f24f0=stripLocalSqlMetadata(_0x941046,_0x2c1059)[_0x11f13c(0x1f3)](),_0x2a8783=[...buildMetadataHeaderLines({'sqlCode':_0x36ec61[_0x11f13c(0x1e9)],'sqlName':_0x36ec61['sqlName'],'dbId':_0x36ec61[_0x11f13c(0x1f9)],'dbName':_0x19461e?.['dbName'],'mode':_0x2c1059,'syncedAt':_0x19461e?.[_0x11f13c(0x1e8)],'description':_0x19461e?.[_0x11f13c(0x204)]},_0x2c1059),'',_0x9f24f0],_0x3634e7=_0x2a8783[_0x11f13c(0x208)]('\x0a');return _0x3634e7[_0x11f13c(0x1ea)]('\x0a')?_0x3634e7:_0x3634e7+'\x0a';}export function stripLocalSqlMetadata(_0x55631a,_0x4e9480){const _0xca4805=a140_0x1ce38d,_0x168cfb=_0x55631a[_0xca4805(0x1e6)](/\r\n/g,'\x0a')[_0xca4805(0x1fd)]('\x0a'),_0x131694=[];let _0x3bf078=0x0;if(_0x4e9480===_0xca4805(0x20d))while(_0x3bf078<_0x168cfb['length']){const _0x184906=_0x168cfb[_0x3bf078]??'';if(/^\s*<!--\s*@lovrabet\./[_0xca4805(0x209)](_0x184906)){_0x3bf078++;continue;}if(_0x184906[_0xca4805(0x1f3)]()===''&&_0x3bf078>0x0){_0x3bf078++;continue;}break;}else while(_0x3bf078<_0x168cfb[_0xca4805(0x1f0)]){const _0x493222=_0x168cfb[_0x3bf078]??'';if(/^\s*--\s*@lovrabet\./[_0xca4805(0x209)](_0x493222)){_0x3bf078++;continue;}if(_0x493222[_0xca4805(0x1f3)]()===''&&_0x3bf078>0x0){_0x3bf078++;continue;}break;}for(;_0x3bf078<_0x168cfb[_0xca4805(0x1f0)];_0x3bf078++){_0x131694['push'](_0x168cfb[_0x3bf078]);}return _0x131694[_0xca4805(0x208)]('\x0a')[_0xca4805(0x1ec)]();}export function resolveSqlMode(_0x57c487,_0xb3884d){if(_0xb3884d?.['mode'])return _0xb3884d['mode'];return detectSqlMode(_0x57c487);}export function resolveSqlFileName(_0x51f78e,_0x578160,_0x4425e2){const _0x566c69=a140_0x1ce38d;if(_0x4425e2?.[_0x566c69(0x202)])return _0x4425e2['path'];if(_0x4425e2?.['sqlName']||_0x4425e2?.[_0x566c69(0x1f1)])return buildSqlRelativePath(_0x51f78e,_0x4425e2?.[_0x566c69(0x1e7)],_0x4425e2?.[_0x566c69(0x1f1)],resolveSqlMode(_0x578160,_0x4425e2),_0x4425e2?.[_0x566c69(0x1f9)]);return buildDefaultSqlFileName(_0x51f78e,resolveSqlMode(_0x578160,_0x4425e2));}function a140_0x570e(_0x2089f8,_0xf93511){_0x2089f8=_0x2089f8-0x1e2;const _0x1c9456=a140_0x1c94();let _0x570e12=_0x1c9456[_0x2089f8];return _0x570e12;}export function resolveSqlLocalDir(_0x59221c,_0x45648d){return join(_0x59221c,SQL_LOCAL_REL_DIR,_0x45648d);}export async function confirmForceOverwrite(_0x261f4f){const _0x1dc7a4=a140_0x1ce38d,_0x27744a=createInterface({'input':process[_0x1dc7a4(0x1f8)],'output':process[_0x1dc7a4(0x200)]}),_0x5e01d2=await new Promise(_0x3bf6b7=>{const _0x4d0883=_0x1dc7a4;_0x27744a[_0x4d0883(0x1ff)](_0x261f4f+_0x4d0883(0x1e3),_0x3bf6b7);});return _0x27744a[_0x1dc7a4(0x205)](),['y',_0x1dc7a4(0x1fc)][_0x1dc7a4(0x1eb)](_0x5e01d2[_0x1dc7a4(0x1f3)]()['toLowerCase']());}export function findSqlLockScope(_0x49e81b,_0x2d7a58){const _0x2f176e=a140_0x1ce38d;return _0x49e81b[_0x2f176e(0x1fb)][_0x2d7a58];}function buildMetadataHeaderLines(_0x30c696,_0x197534){const _0x522fae=a140_0x1ce38d,_0x562142=[['sqlCode',_0x30c696[_0x522fae(0x1e9)]],[_0x522fae(0x1e7),_0x30c696[_0x522fae(0x1e7)]],[_0x522fae(0x1f9),_0x30c696[_0x522fae(0x1f9)]],['dbName',_0x30c696[_0x522fae(0x1f1)]],[_0x522fae(0x1fe),_0x30c696['mode']],[_0x522fae(0x1e8),_0x30c696[_0x522fae(0x1e8)]],[_0x522fae(0x204),_0x30c696[_0x522fae(0x204)]]];if(_0x197534===_0x522fae(0x20d))return _0x562142[_0x522fae(0x1ed)](([,_0x233c88])=>_0x233c88!==undefined&&_0x233c88!==null&&String(_0x233c88)[_0x522fae(0x1f3)]()!=='')[_0x522fae(0x1e5)](([_0x40ca1f,_0x3a4811])=>_0x522fae(0x206)+_0x40ca1f+':\x20'+String(_0x3a4811)+'\x20-->');return _0x562142[_0x522fae(0x1ed)](([,_0x212c5d])=>_0x212c5d!==undefined&&_0x212c5d!==null&&String(_0x212c5d)[_0x522fae(0x1f3)]()!=='')['map'](([_0x47b0a9,_0x296a7c])=>_0x522fae(0x20b)+_0x47b0a9+':\x20'+String(_0x296a7c));}
|