@lovrabet/rabetbase-cli 2.3.1 → 2.3.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/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/use.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/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 -0
- 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 +1 -1
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a128_0x18c1ba=a128_0x263c;(function(_0x1370ba,_0x1474ba){const _0x4cc64a=a128_0x263c,_0x428286=_0x1370ba();while(!![]){try{const _0x117c37=parseInt(_0x4cc64a(0x16c))/0x1*(-parseInt(_0x4cc64a(0x13b))/0x2)+-parseInt(_0x4cc64a(0x140))/0x3*(parseInt(_0x4cc64a(0x144))/0x4)+-parseInt(_0x4cc64a(0x167))/0x5*(-parseInt(_0x4cc64a(0x164))/0x6)+-parseInt(_0x4cc64a(0x147))/0x7*(parseInt(_0x4cc64a(0x15b))/0x8)+-parseInt(_0x4cc64a(0x15f))/0x9+-parseInt(_0x4cc64a(0x165))/0xa+parseInt(_0x4cc64a(0x16d))/0xb;if(_0x117c37===_0x1474ba)break;else _0x428286['push'](_0x428286['shift']());}catch(_0x217389){_0x428286['push'](_0x428286['shift']());}}}(a128_0x1fa0,0xc6091));import{apiDefinitions}from'../commands/api/index.js';import{bffDefinitions}from'../commands/bff/index.js';function a128_0x1fa0(){const _0x339108=['isSingleCommand','map','3PiLIwS','defaultCommand','install','start','4653484dKjraM','SQL\x20Queries','command','14ifcPon','Remote\x20App\x20Config','\x20\x20[high-risk-write]','Project','push','Run\x20Scripts','set','Run\x20any\x20package.json\x20script','values','Smart\x20List\x20Pages','Workspace','Menu','commands','skill\x20','App\x20Management','from','has','get','API','skill','3337736UyumxJ','wildcardDef','build','Schema','3009249WLYKDd','logout','run','CLI\x20Built-in\x20Skill','length','12VeNXLB','2384930HjOdmU','write','3211925qZjOtH','auth','skills','`\x20has\x20been\x20removed.','show','27EMIlEB','33027951nPojqn','create','\x20\x20[write]','read','preview','Database\x20Connections','`rabetbase\x20','service','Platform\x20Issue','BFF\x20Scripts','67074QIEtoh','Configuration','Authentication'];a128_0x1fa0=function(){return _0x339108;};return a128_0x1fa0();}import{sqlDefinitions}from'../commands/sql/index.js';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';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';function a128_0x263c(_0x104775,_0xfbb88d){_0x104775=_0x104775-0x13b;const _0x1fa0bb=a128_0x1fa0();let _0x263cdf=_0x1fa0bb[_0x104775];return _0x263cdf;}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(_0x51df57){const _0xa4fe7d=a128_0x263c;for(const _0x49223c of _0x51df57){definitions['set'](_0x49223c[_0xa4fe7d(0x174)]+':'+_0x49223c[_0xa4fe7d(0x146)],_0x49223c);let _0x1a9de3=serviceGroups['get'](_0x49223c[_0xa4fe7d(0x174)]);!_0x1a9de3&&(_0x1a9de3=[],serviceGroups[_0xa4fe7d(0x14d)](_0x49223c[_0xa4fe7d(0x174)],_0x1a9de3)),_0x1a9de3[_0xa4fe7d(0x14b)](_0x49223c);}}function registerDeclarativeService(_0x3b5e9b,_0x111e06,_0x40a9ef){const _0x407c8a=a128_0x263c;registerDefinitions(_0x111e06);_0x40a9ef?.[_0x407c8a(0x15c)]&®isterDefinitions([_0x40a9ef[_0x407c8a(0x15c)]]);const _0x275fbe=_0x5a4cf5=>_0x5a4cf5===_0x407c8a(0x170)?'':_0x5a4cf5===_0x407c8a(0x166)?_0x407c8a(0x16f):_0x407c8a(0x149),_0x272f6b={'service':_0x111e06[0x0]['service'],'label':_0x3b5e9b,'commands':_0x111e06[_0x407c8a(0x13f)](_0x3bc503=>({'command':_0x3bc503[_0x407c8a(0x146)],'description':_0x3bc503['description'],'tag':_0x275fbe(_0x3bc503['risk'])})),'declarative':!![],'defaultCommand':_0x40a9ef?.[_0x407c8a(0x141)]??(_0x40a9ef?.[_0x407c8a(0x13e)]?_0x111e06[0x0][_0x407c8a(0x146)]:undefined),'wildcardDef':_0x40a9ef?.[_0x407c8a(0x15c)],'isSingleCommand':_0x40a9ef?.[_0x407c8a(0x13e)]};serviceRegistry[_0x407c8a(0x14b)](_0x272f6b),serviceByName['set'](_0x272f6b['service'],_0x272f6b);}registerDeclarativeService('Quick\x20Start',initDefinitions,{'defaultCommand':a128_0x18c1ba(0x161),'isSingleCommand':!![]}),registerDeclarativeService(a128_0x18c1ba(0x14a),projectDefinitions),registerDeclarativeService(a128_0x18c1ba(0x151),workspaceDefinitions),registerDeclarativeService(a128_0x18c1ba(0x155),appDefinitions),registerDeclarativeService(a128_0x18c1ba(0x14c),[runDefinition],{'wildcardDef':runDefinition});{const last=serviceRegistry[serviceRegistry[a128_0x18c1ba(0x163)]-0x1];last[a128_0x18c1ba(0x153)]=[{'command':'<script>','description':a128_0x18c1ba(0x14e),'tag':''}];}registerDeclarativeService(a128_0x18c1ba(0x13d),authDefinitions,{'defaultCommand':'login'}),registerDeclarativeService('Self\x20Update',[updateDefinition],{'isSingleCommand':!![]}),registerDeclarativeService('Diagnostics',[doctorDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a128_0x18c1ba(0x15e),[schemaDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a128_0x18c1ba(0x13c),configDefinitions),registerDeclarativeService(a128_0x18c1ba(0x148),appConfigDefinitions),registerDeclarativeService(a128_0x18c1ba(0x175),issueDefinitions),registerDeclarativeService(a128_0x18c1ba(0x159),apiDefinitions),registerDeclarativeService(a128_0x18c1ba(0x152),menuDefinitions),registerDeclarativeService(a128_0x18c1ba(0x172),dbDefinitions),registerDeclarativeService('Dataset\x20&\x20Operations',datasetDefinitions),registerDeclarativeService(a128_0x18c1ba(0x150),pageDefinitions),registerDeclarativeService('Instant\x20API',dataDefinitions),registerDeclarativeService(a128_0x18c1ba(0x176),bffDefinitions),registerDeclarativeService(a128_0x18c1ba(0x145),sqlDefinitions),registerDeclarativeService('Code\x20Generation',codegenDefinitions),registerDeclarativeService(a128_0x18c1ba(0x162),cliSkillDefinitions,{'defaultCommand':a128_0x18c1ba(0x142)}),registerDeclarativeService('Logs',logsDefinitions,{'defaultCommand':a128_0x18c1ba(0x16b)});export const deprecatedAliases={'create':{'service':'project','command':a128_0x18c1ba(0x16e)},'start':{'service':a128_0x18c1ba(0x161),'command':a128_0x18c1ba(0x143)},'build':{'service':a128_0x18c1ba(0x161),'command':a128_0x18c1ba(0x15d)},'preview':{'service':a128_0x18c1ba(0x161),'command':a128_0x18c1ba(0x171)},'logout':{'service':a128_0x18c1ba(0x168),'command':a128_0x18c1ba(0x160)}};const CLI_SKILL_INSTALL_REMOVED_HINT='Use\x20`rabetbase\x20cli-skill\x20install`\x20to\x20refresh\x20the\x20Rabetbase\x20CLI\x20Built-in\x20Skill.\x20To\x20install\x20business\x20Skills,\x20use\x20`lovrabet\x20skill\x20install`.';export function resolveRemovedCommand(_0x2e0b3e,_0x3f0c6c){const _0x8ca03=a128_0x18c1ba;if(_0x2e0b3e===_0x8ca03(0x15a)){const _0x29cc7c=_0x3f0c6c?_0x8ca03(0x154)+_0x3f0c6c:'skill';return{'command':_0x29cc7c,'message':_0x8ca03(0x173)+_0x29cc7c+_0x8ca03(0x16a),'hint':CLI_SKILL_INSTALL_REMOVED_HINT};}if(_0x2e0b3e===_0x8ca03(0x169))return{'command':_0x8ca03(0x169),'message':'`rabetbase\x20skills`\x20has\x20been\x20removed.','hint':CLI_SKILL_INSTALL_REMOVED_HINT};return undefined;}export const deprecatedSubcommands={'bff':{'new':a128_0x18c1ba(0x16e)},'sql':{'new':a128_0x18c1ba(0x16e)}};export function resolveDeprecatedSubcommand(_0x260740,_0x392a7c){return deprecatedSubcommands[_0x260740]?.[_0x392a7c];}export function findDefinition(_0x5f4e94,_0x805e3a){const _0x1f3881=a128_0x18c1ba;return definitions[_0x1f3881(0x158)](_0x5f4e94+':'+_0x805e3a);}export function isKnownService(_0x4c7bf9){const _0xd56e23=a128_0x18c1ba;return serviceByName[_0xd56e23(0x157)](_0x4c7bf9);}export function isDeclarativeService(_0x2fdc4c){const _0x1828f9=a128_0x18c1ba;return serviceGroups[_0x1828f9(0x157)](_0x2fdc4c)||serviceByName['get'](_0x2fdc4c)?.[_0x1828f9(0x15c)]!==undefined;}export function getServiceEntry(_0x29f7bb){return serviceByName['get'](_0x29f7bb);}export function getLegacyHandler(_0x4cf55b,_0x5b43ef){return undefined;}export function getAllDefinitions(){const _0x5d95cf=a128_0x18c1ba;return Array[_0x5d95cf(0x156)](definitions[_0x5d95cf(0x14f)]());}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a129_0xd82e8a=a129_0x56e4;(function(_0x134ba9,_0x195050){const _0x53f5e2=a129_0x56e4,_0x1a3fe8=_0x134ba9();while(!![]){try{const _0x35caac=parseInt(_0x53f5e2(0xf6))/0x1+-parseInt(_0x53f5e2(0xbb))/0x2+-parseInt(_0x53f5e2(0xde))/0x3*(-parseInt(_0x53f5e2(0xdd))/0x4)+parseInt(_0x53f5e2(0xe6))/0x5*(-parseInt(_0x53f5e2(0xce))/0x6)+parseInt(_0x53f5e2(0xd7))/0x7+-parseInt(_0x53f5e2(0xf8))/0x8*(-parseInt(_0x53f5e2(0xf3))/0x9)+parseInt(_0x53f5e2(0xfc))/0xa*(-parseInt(_0x53f5e2(0xfd))/0xb);if(_0x35caac===_0x195050)break;else _0x1a3fe8['push'](_0x1a3fe8['shift']());}catch(_0x4a3b91){_0x1a3fe8['push'](_0x1a3fe8['shift']());}}}(a129_0x5316,0xf1a20));function a129_0x56e4(_0x2f2c6d,_0x3e4dd6){_0x2f2c6d=_0x2f2c6d-0xbb;const _0x5316f4=a129_0x5316();let _0x56e458=_0x5316f4[_0x2f2c6d];return _0x56e458;}import{readFileSync,existsSync}from'node:fs';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';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_0xd82e8a(0xef),a129_0xd82e8a(0xc7)]);function readPackageScripts(_0x50dee2){const _0x34987a=a129_0xd82e8a,_0x1576cd=resolve(_0x50dee2,_0x34987a(0xbc));if(!existsSync(_0x1576cd))return null;try{const _0x32a9ad=JSON[_0x34987a(0xf0)](readFileSync(_0x1576cd,_0x34987a(0xda)));return _0x32a9ad[_0x34987a(0xdc)]??{};}catch{return null;}}function a129_0x5316(){const _0x134713=['8251292WorZzf','run','bun','utf-8','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','scripts','60eFRCsZ','212349zgeZWL','\x20exited\x20with\x20code\x20','yarn','padEnd','\x20run\x20start','length','No\x20package.json\x20found\x20in\x20current\x20directory.','pnpm','2322515JSelQs','all','Script\x20name\x20defined\x20in\x20package.json','\x20run\x20preview\x20--watch\x20\x20\x20#\x20parallel\x20build\x20--watch\x20+\x20preview','Script\x20\x22','\x20run\x20','yarn.lock','script','validation','start','parse','slice','build','4753134VHqiwF','push','watch','302615FSAlaN','\x20\x20AVAILABLE\x20SCRIPTS\x20\x20(current\x20project)','8rlsvJg','\x20run\x20build','close','Enable\x20watch\x20mode\x20for\x20preview','1476830uMukCH','22iZYOIe','\x20run\x20preview','args','cwd','2643290kbTVpp','package.json','entries','\x20\x20EXAMPLES','has','max','bun.lock','.bin','keys','error','No\x20scripts\x20defined\x20in\x20package.json.','\x20\x20\x20\x20','dev','join','vite','\x22\x20not\x20found\x20in\x20package.json.','\x0a\x20\x20Available\x20scripts:\x0a','belowMinimum','vite\x20preview\x20exited\x20with\x20code\x20','6PIBDCr','preview','--watch','log','map','inherit','node_modules','needsUpgrade','pnpm-lock.yaml'];a129_0x5316=function(){return _0x134713;};return a129_0x5316();}function detectPackageManager(_0x16e346){const _0x1cb3f4=a129_0xd82e8a;if(existsSync(resolve(_0x16e346,'bun.lockb'))||existsSync(resolve(_0x16e346,_0x1cb3f4(0xc1))))return _0x1cb3f4(0xd9);if(existsSync(resolve(_0x16e346,_0x1cb3f4(0xd6))))return _0x1cb3f4(0xe5);if(existsSync(resolve(_0x16e346,_0x1cb3f4(0xec))))return _0x1cb3f4(0xe0);return'npm';}async function versionCheck(_0x516f84){const _0x1ef5ea=a129_0xd82e8a,_0x1e764a=await checkCliVersion();(_0x1e764a[_0x1ef5ea(0xd5)]||_0x1e764a[_0x1ef5ea(0xcc)])&&(printCliUpgradeWarning(_0x1e764a),assertCliVersionSupported(_0x1e764a));const _0x4f2e45=await checkSdkVersion(_0x516f84);if(_0x4f2e45[_0x1ef5ea(0xd5)])printSdkUpgradeWarning(_0x4f2e45);}function spawnScript(_0x3d0867,_0x12be53,_0x1df3ef,_0x31f8db){return new Promise((_0x57d9fa,_0x4e5424)=>{const _0x4cfe17=a129_0x56e4,_0xd0db52=['run',_0x12be53,..._0x1df3ef],_0x3554c7=spawn(_0x3d0867,_0xd0db52,{'cwd':_0x31f8db,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x31f8db,'node_modules','.bin')+delimiter+process.env.PATH}});_0x3554c7['on'](_0x4cfe17(0xfa),_0x4b0c83=>{const _0x27a1e9=_0x4cfe17;if(_0x4b0c83===0x0||_0x4b0c83===null)_0x57d9fa();else _0x4e5424(new Error(_0x3d0867+_0x27a1e9(0xeb)+_0x12be53+_0x27a1e9(0xdf)+_0x4b0c83));}),_0x3554c7['on']('error',_0x4e5424);});}function spawnViteBuildWatch(_0x246ea7){return new Promise((_0xd02663,_0x30fa6c)=>{const _0x45938c=a129_0x56e4,_0x5aeb6a=spawn(_0x45938c(0xc9),[_0x45938c(0xf2),_0x45938c(0xd0)],{'cwd':_0x246ea7,'stdio':_0x45938c(0xd3),'shell':!![],'env':{...process.env,'PATH':''+join(_0x246ea7,_0x45938c(0xd4),'.bin')+delimiter+process.env.PATH}});_0x5aeb6a['on'](_0x45938c(0xfa),_0x29a8d6=>{const _0x46d0b2=_0x45938c;if(_0x29a8d6===0x0||_0x29a8d6===null)_0xd02663();else _0x30fa6c(new Error(_0x46d0b2(0xdb)+_0x29a8d6));}),_0x5aeb6a['on'](_0x45938c(0xc4),_0x30fa6c);});}function spawnVitePreview(_0x4f942f){return new Promise((_0x4453f7,_0x130d90)=>{const _0x4354e1=a129_0x56e4,_0x4b6472=spawn(_0x4354e1(0xc9),[_0x4354e1(0xcf)],{'cwd':_0x4f942f,'stdio':_0x4354e1(0xd3),'shell':!![],'env':{...process.env,'PATH':''+join(_0x4f942f,'node_modules',_0x4354e1(0xc2))+delimiter+process.env.PATH}});_0x4b6472['on']('close',_0x3e74ba=>{const _0x55661c=_0x4354e1;if(_0x3e74ba===0x0||_0x3e74ba===null)_0x4453f7();else _0x130d90(new Error(_0x55661c(0xcd)+_0x3e74ba));}),_0x4b6472['on'](_0x4354e1(0xc4),_0x130d90);});}const runFlags=[{'name':a129_0xd82e8a(0xf5),'type':'boolean','description':a129_0xd82e8a(0xfb),'default':![]}];export const runDefinition={'service':a129_0xd82e8a(0xd8),'command':a129_0xd82e8a(0xd8),'description':'Run\x20a\x20package.json\x20script','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a129_0xd82e8a(0xed),'description':a129_0xd82e8a(0xe8),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x12de82=a129_0xd82e8a,_0x3a632f=readPackageScripts(process[_0x12de82(0x100)]()),_0x15a252=[];if(_0x3a632f&&Object['keys'](_0x3a632f)[_0x12de82(0xe3)]>0x0){const _0x448de4=Object[_0x12de82(0xc3)](_0x3a632f),_0x1be666=Math['max'](..._0x448de4['map'](_0x3cff30=>_0x3cff30[_0x12de82(0xe3)]));_0x15a252[_0x12de82(0xf4)](_0x12de82(0xf7));for(const [_0x13b5e2,_0x48b215]of Object[_0x12de82(0xbd)](_0x3a632f)){_0x15a252['push']('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x12de82(0xeb)+_0x13b5e2[_0x12de82(0xe1)](_0x1be666+0x2)+'#\x20'+_0x48b215);}}else _0x15a252['push'](_0x12de82(0xbe)),_0x15a252[_0x12de82(0xf4)](_0x12de82(0xc6)+CLI_BIN_NAME+_0x12de82(0xe2)),_0x15a252[_0x12de82(0xf4)](_0x12de82(0xc6)+CLI_BIN_NAME+_0x12de82(0xf9)),_0x15a252[_0x12de82(0xf4)](_0x12de82(0xc6)+CLI_BIN_NAME+_0x12de82(0xfe)),_0x15a252[_0x12de82(0xf4)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x12de82(0xe9));return _0x15a252[_0x12de82(0xc8)]('\x0a');},async 'execute'(_0x2bdd3d){const _0x2ac990=a129_0xd82e8a,_0x48195a=process['cwd'](),_0x3ad835=_0x2bdd3d[_0x2ac990(0xff)][0x0],_0x527fb0=_0x2bdd3d[_0x2ac990(0xff)][_0x2ac990(0xf1)](0x1),_0x14bca4=readPackageScripts(_0x48195a);if(!_0x14bca4)throw CliErrors[_0x2ac990(0xee)](_0x2ac990(0xe4));if(!_0x3ad835){const _0x2c7d44=Object[_0x2ac990(0xc3)](_0x14bca4);if(_0x2c7d44[_0x2ac990(0xe3)]===0x0)console[_0x2ac990(0xd1)](_0x2ac990(0xc5));else{console['log'](_0x2ac990(0xcb));const _0x518654=Math[_0x2ac990(0xc0)](..._0x2c7d44[_0x2ac990(0xd2)](_0x42b79a=>_0x42b79a[_0x2ac990(0xe3)]));for(const [_0x5b6fff,_0x19f0df]of Object[_0x2ac990(0xbd)](_0x14bca4)){console[_0x2ac990(0xd1)](_0x2ac990(0xc6)+_0x5b6fff[_0x2ac990(0xe1)](_0x518654+0x2)+_0x19f0df);}console[_0x2ac990(0xd1)]('\x0a\x20\x20Usage:\x20'+CLI_BIN_NAME+'\x20run\x20<script>\x0a');}return{'ok':!![]};}if(!_0x14bca4[_0x3ad835])throw CliErrors[_0x2ac990(0xee)](_0x2ac990(0xea)+_0x3ad835+_0x2ac990(0xca),'Available:\x20'+(Object[_0x2ac990(0xc3)](_0x14bca4)[_0x2ac990(0xc8)](',\x20')||'(none)'));const _0x5ba7e4=detectPackageManager(_0x48195a);VERSION_CHECK_SCRIPTS[_0x2ac990(0xbf)](_0x3ad835)&&await versionCheck(_0x48195a);if(_0x3ad835===_0x2ac990(0xcf)&&_0x2bdd3d['bool'](_0x2ac990(0xf5)))return await Promise[_0x2ac990(0xe7)]([spawnViteBuildWatch(_0x48195a),spawnVitePreview(_0x48195a)]),{'ok':!![]};return await spawnScript(_0x5ba7e4,_0x3ad835,_0x527fb0,_0x48195a),{'ok':!![]};}};
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a130_0x195498=a130_0x211f;(function(_0x774c45,_0x460865){const _0xd7310f=a130_0x211f,_0xaff853=_0x774c45();while(!![]){try{const _0x3c2773=-parseInt(_0xd7310f(0xb2))/0x1+-parseInt(_0xd7310f(0xb9))/0x2*(parseInt(_0xd7310f(0xb5))/0x3)+-parseInt(_0xd7310f(0xb3))/0x4+parseInt(_0xd7310f(0xb1))/0x5*(parseInt(_0xd7310f(0xb4))/0x6)+parseInt(_0xd7310f(0xbb))/0x7+parseInt(_0xd7310f(0xba))/0x8*(parseInt(_0xd7310f(0xb7))/0x9)+parseInt(_0xd7310f(0xaf))/0xa*(parseInt(_0xd7310f(0xae))/0xb);if(_0x3c2773===_0x460865)break;else _0xaff853['push'](_0xaff853['shift']());}catch(_0x51426c){_0xaff853['push'](_0xaff853['shift']());}}}(a130_0x3b20,0xa8cb8));function a130_0x211f(_0x37ee1d,_0x52fa95){_0x37ee1d=_0x37ee1d-0xae;const _0x3b20f4=a130_0x3b20();let _0x211f9e=_0x3b20f4[_0x37ee1d];return _0x211f9e;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x532a89){const _0x3308b3=await buildSchemaPayload();return{'ok':!![],'data':_0x3308b3};}export const schemaDefinition={'service':a130_0x195498(0xb8),'command':'export','description':a130_0x195498(0xb0),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a130_0x195498(0xb6),'flags':[],'execute':execute};function a130_0x3b20(){const _0x2157c6=['490rwMoJU','Export\x20machine-readable\x20command\x20schema\x20(JSON)','145kgvsxm','971357RRbAwJ','3412124HyCHDw','106308hFTLPe','113859RaRdLq','json','4244868BgEGpl','schema','70UWXUKh','16DzeMKk','700168wWKCbK','513403NrURlD'];a130_0x3b20=function(){return _0x2157c6;};return a130_0x3b20();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a130_0x40406e=a130_0x1fee;(function(_0xb1188b,_0x4db7a5){const _0x258586=a130_0x1fee,_0x36b904=_0xb1188b();while(!![]){try{const _0x2f26ea=-parseInt(_0x258586(0xf5))/0x1*(-parseInt(_0x258586(0xb6))/0x2)+-parseInt(_0x258586(0xce))/0x3*(parseInt(_0x258586(0xc6))/0x4)+parseInt(_0x258586(0xc9))/0x5*(parseInt(_0x258586(0xd6))/0x6)+parseInt(_0x258586(0xd5))/0x7*(-parseInt(_0x258586(0xb5))/0x8)+parseInt(_0x258586(0xf8))/0x9*(parseInt(_0x258586(0xf9))/0xa)+parseInt(_0x258586(0xd7))/0xb*(-parseInt(_0x258586(0xd0))/0xc)+-parseInt(_0x258586(0xf1))/0xd;if(_0x2f26ea===_0x4db7a5)break;else _0x36b904['push'](_0x36b904['shift']());}catch(_0xec2e7){_0x36b904['push'](_0x36b904['shift']());}}}(a130_0x4670,0xca407));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';function a130_0x1fee(_0x147ab1,_0x2895c5){_0x147ab1=_0x147ab1-0xb4;const _0x467016=a130_0x4670();let _0x1fee64=_0x467016[_0x147ab1];return _0x1fee64;}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 a130_0x4670(){const _0x18fbc0=['stringify','join','适合带动态标签的\x20MyBatis\x20XML\x20SQL','Invalid\x20database\x20selection\x20payload:\x20','flag','catch','isFinite','nonInteractive','isInteger','POST','sql','parse','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','sqls','/smartapi/custom/saveUserCustomSql','请选择本地\x20SQL\x20模式:','<server-generated-sqlCode>','lockFilePath','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','请输入\x20SQL\x20名称:','sqlRoot','✎\x20手动输入\x20dbId','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','new','lastSync','14766661fwcpjs','sqlRootDir','description','普通\x20SQL(sql)','469FvTVNI','mode','toISOString','5463IlVugE','26680fwHFbd','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','dbId\x20不能为空','请选择目标数据库:','flagMissing','502488TQNdYn','14ZBsnVV','db-id','map','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','sqlName','Created\x20SQL\x20query\x20','\x20\x20SELECT\x201\x20AS\x20id','utf8','string','dbName','mybatisXml','name','high-risk-write','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','</select>','Target\x20database\x20ID','1416BuOkoM','sqlCode','number','1372860FMhvOr','validation','trim','__manual__','appCode','1437tubuVL','MyBatis\x20XML(mybatisXml)','12wYxKIe','str','length','dbId','File\x20already\x20exists:\x20','98DvhSCt','36vOdilM','2826461TCgOcK'];a130_0x4670=function(){return _0x18fbc0;};return a130_0x4670();}import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x5a794a){const _0x53bf5f=a130_0x1fee;if(_0x5a794a===_0x53bf5f(0xc0))return[_0x53bf5f(0xea),_0x53bf5f(0xbc),_0x53bf5f(0xc4),'']['join']('\x0a');return['SELECT\x201\x20AS\x20id;',''][_0x53bf5f(0xd9)]('\x0a');}export const sqlCreate={'service':'sql','command':'create','description':a130_0x40406e(0xb9),'risk':a130_0x40406e(0xc2),'flags':[{'name':a130_0x40406e(0xc1),'type':a130_0x40406e(0xbe),'description':'SQL\x20query\x20display\x20name'},{'name':a130_0x40406e(0xb7),'type':a130_0x40406e(0xc8),'description':a130_0x40406e(0xc5)},{'name':a130_0x40406e(0xf6),'type':a130_0x40406e(0xbe),'enum':[a130_0x40406e(0xe2),a130_0x40406e(0xc0)],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x51a0e0){const _0x18186d=a130_0x40406e;if(!_0x51a0e0[_0x18186d(0xdf)])return;if(!_0x51a0e0[_0x18186d(0xd1)](_0x18186d(0xc1))[_0x18186d(0xcb)]())throw CliErrors[_0x18186d(0xb4)](_0x18186d(0xc1),_0x18186d(0xc3));const _0xae1a02=resolveProvidedDbId(_0x51a0e0);if(typeof _0xae1a02!=='number'||!Number[_0x18186d(0xde)](_0xae1a02)||_0xae1a02<=0x0)throw CliErrors[_0x18186d(0xb4)](_0x18186d(0xb7),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x51a0e0[_0x18186d(0xd1)]('mode')[_0x18186d(0xcb)]())throw CliErrors[_0x18186d(0xb4)](_0x18186d(0xf6),_0x18186d(0xe4));},async 'dryRun'(_0x505737){const _0x27565=a130_0x40406e,_0x408425=loadSqlProjectConfig(_0x505737[_0x27565(0xcd)]),{sqlName:_0x3c169e,dbId:_0x296625,dbName:_0x1977b8,mode:_0x2518b9}=await resolveSqlNewInputs(_0x505737),_0x394f79=buildSqlRelativePath(_0x27565(0xe8),_0x3c169e,_0x1977b8,_0x2518b9,_0x296625),_0x21ee57=_0x408425[_0x27565(0xf2)]+'/'+_0x394f79;return{'method':_0x27565(0xe1),'url':_0x27565(0xe6),'body':{'appCode':_0x505737[_0x27565(0xcd)],'sqlName':_0x3c169e,'dbId':_0x296625,'mode':_0x2518b9,'localPath':_0x21ee57},'description':_0x27565(0xfa)+_0x408425[_0x27565(0xf2)]};},async 'execute'(_0x3e88f7){const _0x4e619b=a130_0x40406e,_0x199d96=loadSqlProjectConfig(_0x3e88f7['appCode']),{sqlName:_0x4d8ad9,dbId:_0x44b161,dbName:_0x58c37f,mode:_0x54a18e}=await resolveSqlNewInputs(_0x3e88f7),_0xf98176=generateSqlTemplate(_0x54a18e),_0x42ecc6=await createSqlQuery({'appCode':_0x3e88f7[_0x4e619b(0xcd)],'sqlName':_0x4d8ad9,'dbId':_0x44b161,'sqlContent':_0xf98176}),_0x5db251=ensureRemoteSqlContent(_0x42ecc6),_0x60d6f5=_0x58c37f||await getDbName(_0x3e88f7[_0x4e619b(0xcd)],_0x44b161)[_0x4e619b(0xdd)](()=>undefined),_0x50e860=buildSqlRelativePath(_0x42ecc6[_0x4e619b(0xc7)],_0x42ecc6[_0x4e619b(0xba)],_0x60d6f5,_0x54a18e,_0x44b161),_0x170328=_0x199d96[_0x4e619b(0xf2)]+'/'+_0x50e860,_0x425c0e=buildLocalSqlFileContent({'sqlCode':_0x42ecc6['sqlCode'],'sqlName':_0x42ecc6[_0x4e619b(0xba)],'dbId':_0x42ecc6[_0x4e619b(0xd3)]},_0x5db251,{'dbName':_0x60d6f5,'mode':_0x54a18e,'syncedAt':new Date()[_0x4e619b(0xf7)](),'description':_0x42ecc6[_0x4e619b(0xf3)]});if(await fileExists(_0x170328))throw CliErrors[_0x4e619b(0xca)](_0x4e619b(0xd4)+_0x170328);await ensureParentDirectory(_0x170328),await writeFile(_0x170328,_0x425c0e,_0x4e619b(0xbd));const _0x3a0d7a=await readSqlLockFile(_0x199d96[_0x4e619b(0xe9)]),{lockData:_0x66febc,appLock:_0x23127c}=ensureSqlLockScope(_0x3a0d7a??createEmptySqlLock(),_0x199d96[_0x4e619b(0xcd)],_0x199d96[_0x4e619b(0xec)],_0x4e619b(0xef));return _0x23127c[_0x4e619b(0xe5)][_0x42ecc6['sqlCode']]={...buildSqlLockEntry(_0x42ecc6,_0x5db251,computeSqlContentHash(_0x425c0e),{'dbName':_0x60d6f5}),'path':_0x50e860,'mode':_0x54a18e},_0x23127c[_0x4e619b(0xf0)]=new Date()[_0x4e619b(0xf7)](),await writeSqlLockFile(_0x199d96[_0x4e619b(0xe9)],_0x66febc),{'ok':!![],'data':{'id':_0x42ecc6['id'],'sqlCode':_0x42ecc6[_0x4e619b(0xc7)],'sqlName':_0x42ecc6[_0x4e619b(0xba)],'dbId':_0x42ecc6['dbId'],'path':_0x170328,'mode':_0x54a18e},'message':_0x4e619b(0xbb)+_0x42ecc6[_0x4e619b(0xc7)]};}};async function resolveSqlNewInputs(_0x39c4bf){const _0x5d2705=await resolveSqlNameInput(_0x39c4bf),{dbId:_0x372ca8,dbName:_0x5ed043}=await resolveDbSelection(_0x39c4bf),_0x4a5803=await resolveSqlModeInput(_0x39c4bf);return{'sqlName':_0x5d2705,'dbId':_0x372ca8,'dbName':_0x5ed043,'mode':_0x4a5803};}async function resolveSqlNameInput(_0x3abf52){const _0x28c460=a130_0x40406e,_0x82dd8=_0x3abf52[_0x28c460(0xd1)](_0x28c460(0xc1))[_0x28c460(0xcb)]();if(_0x82dd8)return _0x82dd8;if(_0x3abf52[_0x28c460(0xdf)])throw CliErrors['flagMissing'](_0x28c460(0xc1),_0x28c460(0xc3));return(await input({'message':_0x28c460(0xeb),'validate':_0x4ae81c=>_0x4ae81c['trim']()?!![]:'SQL\x20名称不能为空'}))['trim']();}async function resolveDbSelection(_0xa0987e){const _0x5ea056=a130_0x40406e,_0x56826a=resolveProvidedDbId(_0xa0987e);if(typeof _0x56826a===_0x5ea056(0xc8)&&Number[_0x5ea056(0xde)](_0x56826a)&&_0x56826a>0x0)return{'dbId':_0x56826a,'dbName':await getDbName(_0xa0987e[_0x5ea056(0xcd)],_0x56826a)[_0x5ea056(0xdd)](()=>undefined)};if(_0xa0987e[_0x5ea056(0xdf)])throw CliErrors[_0x5ea056(0xb4)](_0x5ea056(0xb7),_0x5ea056(0xee));const _0x3cc0f9=await listDatabases(_0xa0987e['appCode'])[_0x5ea056(0xdd)](()=>[]);if(_0x3cc0f9[_0x5ea056(0xd2)]===0x1)return{'dbId':_0x3cc0f9[0x0][_0x5ea056(0xd3)],'dbName':_0x3cc0f9[0x0][_0x5ea056(0xbf)]};if(_0x3cc0f9[_0x5ea056(0xd2)]>0x1){const _0x459409=await select({'message':_0x5ea056(0xfc),'choices':[..._0x3cc0f9[_0x5ea056(0xb8)](_0x4127d1=>({'name':_0x4127d1[_0x5ea056(0xbf)]+'\x20('+_0x4127d1['dbId']+')','value':serializeDbSelection(_0x4127d1)})),{'name':_0x5ea056(0xed),'value':_0x5ea056(0xcc)}]});if(_0x459409!==_0x5ea056(0xcc))return deserializeDbSelection(_0x459409);}const _0xd509b5=await input({'message':'请输入目标数据库\x20dbId:','validate':_0x351e8a=>{const _0x2e1895=_0x5ea056,_0x865ff3=_0x351e8a[_0x2e1895(0xcb)]();if(!_0x865ff3)return _0x2e1895(0xfb);const _0x4c468e=Number(_0x865ff3);if(!Number[_0x2e1895(0xe0)](_0x4c468e)||_0x4c468e<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0xd509b5[_0x5ea056(0xcb)]())};}async function resolveSqlModeInput(_0x3f3a69){const _0x2bb147=a130_0x40406e,_0x36dad2=_0x3f3a69[_0x2bb147(0xd1)](_0x2bb147(0xf6))[_0x2bb147(0xcb)]();if(_0x36dad2===_0x2bb147(0xe2)||_0x36dad2===_0x2bb147(0xc0))return _0x36dad2;if(_0x3f3a69[_0x2bb147(0xdf)])throw CliErrors[_0x2bb147(0xb4)](_0x2bb147(0xf6),_0x2bb147(0xe4));return await select({'message':_0x2bb147(0xe7),'choices':[{'name':_0x2bb147(0xf4),'value':_0x2bb147(0xe2),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0x2bb147(0xcf),'value':_0x2bb147(0xc0),'description':_0x2bb147(0xda)}]});}function serializeDbSelection(_0x5d7c36){const _0x39956f=a130_0x40406e;return JSON[_0x39956f(0xd8)]({'dbId':_0x5d7c36[_0x39956f(0xd3)],'dbName':_0x5d7c36[_0x39956f(0xbf)]});}function deserializeDbSelection(_0x2cfe58){const _0x42ebf1=a130_0x40406e;try{const _0x4dfb58=JSON[_0x42ebf1(0xe3)](_0x2cfe58);if(typeof _0x4dfb58[_0x42ebf1(0xd3)]===_0x42ebf1(0xc8)&&Number[_0x42ebf1(0xde)](_0x4dfb58[_0x42ebf1(0xd3)]))return{'dbId':_0x4dfb58[_0x42ebf1(0xd3)],'dbName':_0x4dfb58['dbName']};}catch{}throw CliErrors[_0x42ebf1(0xca)](_0x42ebf1(0xdb)+_0x2cfe58);}function resolveProvidedDbId(_0x5d9825){const _0xc38f62=a130_0x40406e,_0x5403c1=_0x5d9825[_0xc38f62(0xdc)](_0xc38f62(0xb7));if(typeof _0x5403c1===_0xc38f62(0xc8)&&Number[_0xc38f62(0xde)](_0x5403c1))return _0x5403c1;return undefined;}
|
|
1
|
+
const a131_0x478666=a131_0xf79d;(function(_0x39201c,_0x6c12e3){const _0x107328=a131_0xf79d,_0x1b60fc=_0x39201c();while(!![]){try{const _0x1c2342=parseInt(_0x107328(0x131))/0x1*(parseInt(_0x107328(0x15d))/0x2)+-parseInt(_0x107328(0x140))/0x3+-parseInt(_0x107328(0x153))/0x4*(-parseInt(_0x107328(0x145))/0x5)+-parseInt(_0x107328(0x126))/0x6*(parseInt(_0x107328(0x13d))/0x7)+-parseInt(_0x107328(0x13b))/0x8*(parseInt(_0x107328(0x13f))/0x9)+parseInt(_0x107328(0x154))/0xa+parseInt(_0x107328(0x124))/0xb;if(_0x1c2342===_0x6c12e3)break;else _0x1b60fc['push'](_0x1b60fc['shift']());}catch(_0x24f50a){_0x1b60fc['push'](_0x1b60fc['shift']());}}}(a131_0x6c0c,0x25d8d));function a131_0x6c0c(){const _0x389ba1=['8qZtRMX','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','602YPZcjg','catch','2248245braKOi','259938mXCgls','Created\x20SQL\x20query\x20','dbName','</select>','Target\x20database\x20ID','97340SXGaCr','mode','isInteger','sqlName','__manual__','请输入\x20SQL\x20名称:','db-id','high-risk-write','new','mybatisXml','sql','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','string','sqlRootDir','16NUjXvy','3053080wAEtAN','isFinite','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','lockFilePath','<server-generated-sqlCode>','length','lastSync','flagMissing','utf8','328582yYUrYP','SQL\x20query\x20display\x20name','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','number','\x20\x20SELECT\x201\x20AS\x20id','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','Local\x20SQL\x20file\x20mode','appCode','stringify','name','dbId\x20必须为正整数','2198361svzavv','flag','17850kAMHdE','MyBatis\x20XML(mybatisXml)','join','validation','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','✎\x20手动输入\x20dbId','请输入目标数据库\x20dbId:','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','str','dbId','description','1VHFvRZ','dbId\x20不能为空','trim','Invalid\x20database\x20selection\x20payload:\x20','sqlCode','请选择本地\x20SQL\x20模式:','nonInteractive','POST','create','File\x20already\x20exists:\x20'];a131_0x6c0c=function(){return _0x389ba1;};return a131_0x6c0c();}import{writeFile}from'node:fs/promises';function a131_0xf79d(_0x4d7f52,_0x9a4104){_0x4d7f52=_0x4d7f52-0x122;const _0x6c0c1b=a131_0x6c0c();let _0xf79dfb=_0x6c0c1b[_0x4d7f52];return _0xf79dfb;}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(_0x93dcbd){const _0x3e6698=a131_0xf79d;if(_0x93dcbd==='mybatisXml')return[_0x3e6698(0x162),_0x3e6698(0x161),_0x3e6698(0x143),''][_0x3e6698(0x128)]('\x0a');return['SELECT\x201\x20AS\x20id;',''][_0x3e6698(0x128)]('\x0a');}export const sqlCreate={'service':a131_0x478666(0x14f),'command':a131_0x478666(0x139),'description':a131_0x478666(0x12d),'risk':a131_0x478666(0x14c),'flags':[{'name':a131_0x478666(0x122),'type':a131_0x478666(0x151),'description':a131_0x478666(0x15e)},{'name':a131_0x478666(0x14b),'type':a131_0x478666(0x160),'description':a131_0x478666(0x144)},{'name':'mode','type':a131_0x478666(0x151),'enum':[a131_0x478666(0x14f),a131_0x478666(0x14e)],'description':a131_0x478666(0x163)}],async 'validate'(_0x65ab8d){const _0x407904=a131_0x478666;if(!_0x65ab8d[_0x407904(0x137)])return;if(!_0x65ab8d[_0x407904(0x12e)](_0x407904(0x122))['trim']())throw CliErrors[_0x407904(0x15b)](_0x407904(0x122),_0x407904(0x156));const _0x26a261=resolveProvidedDbId(_0x65ab8d);if(typeof _0x26a261!==_0x407904(0x160)||!Number[_0x407904(0x155)](_0x26a261)||_0x26a261<=0x0)throw CliErrors[_0x407904(0x15b)](_0x407904(0x14b),_0x407904(0x150));if(!_0x65ab8d[_0x407904(0x12e)]('mode')[_0x407904(0x133)]())throw CliErrors['flagMissing']('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x35f57a){const _0x1d33f4=a131_0x478666,_0x27d030=loadSqlProjectConfig(_0x35f57a[_0x1d33f4(0x164)]),{sqlName:_0x4b8d0b,dbId:_0x367347,dbName:_0x45d789,mode:_0x3663c5}=await resolveSqlNewInputs(_0x35f57a),_0x275e6c=buildSqlRelativePath(_0x1d33f4(0x158),_0x4b8d0b,_0x45d789,_0x3663c5,_0x367347),_0x555e52=_0x27d030['sqlRootDir']+'/'+_0x275e6c;return{'method':_0x1d33f4(0x138),'url':'/smartapi/custom/saveUserCustomSql','body':{'appCode':_0x35f57a[_0x1d33f4(0x164)],'sqlName':_0x4b8d0b,'dbId':_0x367347,'mode':_0x3663c5,'localPath':_0x555e52},'description':_0x1d33f4(0x13c)+_0x27d030[_0x1d33f4(0x152)]};},async 'execute'(_0x164a3e){const _0x177ac2=a131_0x478666,_0x23ebeb=loadSqlProjectConfig(_0x164a3e[_0x177ac2(0x164)]),{sqlName:_0x1daaea,dbId:_0x5eb645,dbName:_0x3c6321,mode:_0x126635}=await resolveSqlNewInputs(_0x164a3e),_0x2b82cd=generateSqlTemplate(_0x126635),_0x190912=await createSqlQuery({'appCode':_0x164a3e[_0x177ac2(0x164)],'sqlName':_0x1daaea,'dbId':_0x5eb645,'sqlContent':_0x2b82cd}),_0x282b25=ensureRemoteSqlContent(_0x190912),_0x12051a=_0x3c6321||await getDbName(_0x164a3e['appCode'],_0x5eb645)[_0x177ac2(0x13e)](()=>undefined),_0x3d12bd=buildSqlRelativePath(_0x190912[_0x177ac2(0x135)],_0x190912['sqlName'],_0x12051a,_0x126635,_0x5eb645),_0x5b4ba5=_0x23ebeb['sqlRootDir']+'/'+_0x3d12bd,_0x24a607=buildLocalSqlFileContent({'sqlCode':_0x190912[_0x177ac2(0x135)],'sqlName':_0x190912[_0x177ac2(0x148)],'dbId':_0x190912[_0x177ac2(0x12f)]},_0x282b25,{'dbName':_0x12051a,'mode':_0x126635,'syncedAt':new Date()['toISOString'](),'description':_0x190912[_0x177ac2(0x130)]});if(await fileExists(_0x5b4ba5))throw CliErrors['validation'](_0x177ac2(0x13a)+_0x5b4ba5);await ensureParentDirectory(_0x5b4ba5),await writeFile(_0x5b4ba5,_0x24a607,_0x177ac2(0x15c));const _0x829a3d=await readSqlLockFile(_0x23ebeb[_0x177ac2(0x157)]),{lockData:_0x3ae96b,appLock:_0x4af248}=ensureSqlLockScope(_0x829a3d??createEmptySqlLock(),_0x23ebeb['appCode'],_0x23ebeb['sqlRoot'],_0x177ac2(0x14d));return _0x4af248['sqls'][_0x190912['sqlCode']]={...buildSqlLockEntry(_0x190912,_0x282b25,computeSqlContentHash(_0x24a607),{'dbName':_0x12051a}),'path':_0x3d12bd,'mode':_0x126635},_0x4af248[_0x177ac2(0x15a)]=new Date()['toISOString'](),await writeSqlLockFile(_0x23ebeb[_0x177ac2(0x157)],_0x3ae96b),{'ok':!![],'data':{'id':_0x190912['id'],'sqlCode':_0x190912['sqlCode'],'sqlName':_0x190912[_0x177ac2(0x148)],'dbId':_0x190912[_0x177ac2(0x12f)],'path':_0x5b4ba5,'mode':_0x126635},'message':_0x177ac2(0x141)+_0x190912[_0x177ac2(0x135)]};}};async function resolveSqlNewInputs(_0x5484d1){const _0x573f86=await resolveSqlNameInput(_0x5484d1),{dbId:_0x4c7454,dbName:_0x22cee2}=await resolveDbSelection(_0x5484d1),_0x459e44=await resolveSqlModeInput(_0x5484d1);return{'sqlName':_0x573f86,'dbId':_0x4c7454,'dbName':_0x22cee2,'mode':_0x459e44};}async function resolveSqlNameInput(_0x5d760c){const _0x5190e1=a131_0x478666,_0x3972b8=_0x5d760c[_0x5190e1(0x12e)](_0x5190e1(0x122))[_0x5190e1(0x133)]();if(_0x3972b8)return _0x3972b8;if(_0x5d760c[_0x5190e1(0x137)])throw CliErrors[_0x5190e1(0x15b)]('name','--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x5190e1(0x14a),'validate':_0x3acf04=>_0x3acf04[_0x5190e1(0x133)]()?!![]:'SQL\x20名称不能为空'}))[_0x5190e1(0x133)]();}async function resolveDbSelection(_0x261c33){const _0x4f7c89=a131_0x478666,_0x125b2f=resolveProvidedDbId(_0x261c33);if(typeof _0x125b2f==='number'&&Number['isFinite'](_0x125b2f)&&_0x125b2f>0x0)return{'dbId':_0x125b2f,'dbName':await getDbName(_0x261c33[_0x4f7c89(0x164)],_0x125b2f)[_0x4f7c89(0x13e)](()=>undefined)};if(_0x261c33[_0x4f7c89(0x137)])throw CliErrors['flagMissing'](_0x4f7c89(0x14b),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x3651a4=await listDatabases(_0x261c33[_0x4f7c89(0x164)])[_0x4f7c89(0x13e)](()=>[]);if(_0x3651a4['length']===0x1)return{'dbId':_0x3651a4[0x0][_0x4f7c89(0x12f)],'dbName':_0x3651a4[0x0][_0x4f7c89(0x142)]};if(_0x3651a4[_0x4f7c89(0x159)]>0x1){const _0x5113b7=await select({'message':'请选择目标数据库:','choices':[..._0x3651a4['map'](_0x1e2473=>({'name':_0x1e2473[_0x4f7c89(0x142)]+'\x20('+_0x1e2473[_0x4f7c89(0x12f)]+')','value':serializeDbSelection(_0x1e2473)})),{'name':_0x4f7c89(0x12b),'value':_0x4f7c89(0x149)}]});if(_0x5113b7!==_0x4f7c89(0x149))return deserializeDbSelection(_0x5113b7);}const _0x5ef495=await input({'message':_0x4f7c89(0x12c),'validate':_0xc17434=>{const _0x48773e=_0x4f7c89,_0x3f08ab=_0xc17434['trim']();if(!_0x3f08ab)return _0x48773e(0x132);const _0x4462aa=Number(_0x3f08ab);if(!Number[_0x48773e(0x147)](_0x4462aa)||_0x4462aa<=0x0)return _0x48773e(0x123);return!![];}});return{'dbId':Number(_0x5ef495[_0x4f7c89(0x133)]())};}async function resolveSqlModeInput(_0x5187f2){const _0xc11c2e=a131_0x478666,_0xb438b0=_0x5187f2[_0xc11c2e(0x12e)](_0xc11c2e(0x146))['trim']();if(_0xb438b0===_0xc11c2e(0x14f)||_0xb438b0===_0xc11c2e(0x14e))return _0xb438b0;if(_0x5187f2[_0xc11c2e(0x137)])throw CliErrors[_0xc11c2e(0x15b)]('mode',_0xc11c2e(0x12a));return await select({'message':_0xc11c2e(0x136),'choices':[{'name':'普通\x20SQL(sql)','value':_0xc11c2e(0x14f),'description':_0xc11c2e(0x15f)},{'name':_0xc11c2e(0x127),'value':_0xc11c2e(0x14e),'description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x54a532){const _0x6336da=a131_0x478666;return JSON[_0x6336da(0x165)]({'dbId':_0x54a532[_0x6336da(0x12f)],'dbName':_0x54a532[_0x6336da(0x142)]});}function deserializeDbSelection(_0x4f979c){const _0x40902e=a131_0x478666;try{const _0x544488=JSON['parse'](_0x4f979c);if(typeof _0x544488['dbId']===_0x40902e(0x160)&&Number[_0x40902e(0x155)](_0x544488['dbId']))return{'dbId':_0x544488['dbId'],'dbName':_0x544488[_0x40902e(0x142)]};}catch{}throw CliErrors[_0x40902e(0x129)](_0x40902e(0x134)+_0x4f979c);}function resolveProvidedDbId(_0x30018b){const _0x440d9a=a131_0x478666,_0x35b11c=_0x30018b[_0x440d9a(0x125)](_0x440d9a(0x14b));if(typeof _0x35b11c===_0x440d9a(0x160)&&Number[_0x440d9a(0x155)](_0x35b11c))return _0x35b11c;return undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a132_0x3276ea=a132_0x45b3;(function(_0x3f9410,_0x1f05ba){const _0x58d7b4=a132_0x45b3,_0x3e62fc=_0x3f9410();while(!![]){try{const _0x3e322b=-parseInt(_0x58d7b4(0x1d2))/0x1*(-parseInt(_0x58d7b4(0x1c4))/0x2)+parseInt(_0x58d7b4(0x1d8))/0x3*(parseInt(_0x58d7b4(0x1c7))/0x4)+parseInt(_0x58d7b4(0x1d7))/0x5+-parseInt(_0x58d7b4(0x1dc))/0x6*(-parseInt(_0x58d7b4(0x1d1))/0x7)+-parseInt(_0x58d7b4(0x1c5))/0x8+-parseInt(_0x58d7b4(0x1bc))/0x9+parseInt(_0x58d7b4(0x1dd))/0xa*(-parseInt(_0x58d7b4(0x1c8))/0xb);if(_0x3e322b===_0x1f05ba)break;else _0x3e62fc['push'](_0x3e62fc['shift']());}catch(_0x4a2fd9){_0x3e62fc['push'](_0x3e62fc['shift']());}}}(a132_0x3036,0x30edc));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';function a132_0x3036(){const _0x4205fe=['7743flDAsX','lockFilePath','trashDir','appCode','6cqluFj','451850lgshXS','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','filter','startsWith','159516TRBnak','validation','sqlRootDir','sqlRoot','toISOString','Would\x20delete\x20SQL\x20','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','replace','636PUDcOt','2390704QoArXJ','length','236cvcGsE','11gneARn','remoteId','sqlcode','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','SQL\x20lock\x20file\x20not\x20found.','entries','sqls','str','1792819QixcIp','227jXnvel','delete','Deleted\x20','POST','/smartapi/custom/deleteUserCustomSql','407885nCLSVZ'];a132_0x3036=function(){return _0x4205fe;};return a132_0x3036();}import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a132_0x45b3(_0x274ac1,_0x527b35){_0x274ac1=_0x274ac1-0x1bc;const _0x303644=a132_0x3036();let _0x45b370=_0x303644[_0x274ac1];return _0x45b370;}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':'sql','command':a132_0x3276ea(0x1d3),'description':a132_0x3276ea(0x1cb),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0x742666){const _0x2a2705=a132_0x3276ea,_0x187b64=loadSqlProjectConfig(_0x742666[_0x2a2705(0x1db)]),_0x5850cc=await readSqlLockFile(_0x187b64['lockFilePath']);if(!_0x5850cc)throw CliErrors['validation']('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x50773a){const _0x4aba11=a132_0x3276ea,_0x3a8f66=loadSqlProjectConfig(_0x50773a[_0x4aba11(0x1db)]),_0x3c6a61=await readSqlLockFile(_0x3a8f66['lockFilePath']);if(!_0x3c6a61)throw CliErrors[_0x4aba11(0x1bd)](_0x4aba11(0x1de));const {appLock:_0x11d4be}=ensureSqlLockScope(_0x3c6a61,_0x50773a[_0x4aba11(0x1db)],_0x3a8f66['sqlRoot'],'delete'),_0x402074=_0x50773a['str'](_0x4aba11(0x1ca)),_0x25fad7=_0x11d4be['sqls'][_0x402074];if(!_0x25fad7)throw CliErrors[_0x4aba11(0x1bd)](_0x4aba11(0x1c2)+_0x402074+'\x22.');return{'method':_0x4aba11(0x1d5),'url':_0x4aba11(0x1d6),'body':{'sqlCode':_0x402074,'id':_0x25fad7[_0x4aba11(0x1c9)],'localPath':resolveLocalSqlFilePath(_0x3a8f66,_0x402074,_0x25fad7)},'description':_0x4aba11(0x1c1)+_0x402074+_0x4aba11(0x1cc)+_0x3a8f66['trashDir']};},async 'execute'(_0x287321){const _0xab4cf3=a132_0x3276ea,_0x53e189=loadSqlProjectConfig(_0x287321['appCode']),_0x5e8405=await readSqlLockFile(_0x53e189[_0xab4cf3(0x1d9)]);if(!_0x5e8405)throw CliErrors[_0xab4cf3(0x1bd)](_0xab4cf3(0x1cd));const {lockData:_0x2b9f1a,appLock:_0x102cc7}=ensureSqlLockScope(_0x5e8405,_0x287321[_0xab4cf3(0x1db)],_0x53e189[_0xab4cf3(0x1bf)],_0xab4cf3(0x1d3)),_0x500ad0=_0x287321[_0xab4cf3(0x1d0)](_0xab4cf3(0x1ca)),_0x21fbfd=_0x102cc7[_0xab4cf3(0x1cf)][_0x500ad0];if(!_0x21fbfd)throw CliErrors[_0xab4cf3(0x1bd)](_0xab4cf3(0x1c2)+_0x500ad0+'\x22.');await deleteSqlQuery({'id':_0x21fbfd[_0xab4cf3(0x1c9)],'sqlCode':_0x500ad0}),_0x102cc7['sqls']=Object['fromEntries'](Object[_0xab4cf3(0x1ce)](_0x102cc7[_0xab4cf3(0x1cf)])[_0xab4cf3(0x1df)](([_0x410b79])=>_0x410b79!==_0x500ad0)),_0x102cc7['lastSync']=new Date()[_0xab4cf3(0x1c0)](),await writeSqlLockFile(_0x53e189[_0xab4cf3(0x1d9)],_0x2b9f1a);const _0x21062f=resolveLocalSqlFilePath(_0x53e189,_0x500ad0,_0x21fbfd);let _0x1747e7;await fileExists(_0x21062f)&&(_0x1747e7=await moveToTrash(_0x53e189['projectRoot'],_0x53e189[_0xab4cf3(0x1da)],_0x21062f),await cleanupEmptyDirectories(dirname(_0x21062f),_0x53e189[_0xab4cf3(0x1be)]));const _0x18ba2d={'deleted':_0x500ad0,'remoteId':_0x21fbfd[_0xab4cf3(0x1c9)]};if(_0x1747e7)_0x18ba2d['trashedTo']=_0x1747e7;return{'ok':!![],'data':_0x18ba2d,'message':_0xab4cf3(0x1d4)+_0x500ad0+(_0x1747e7?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x5108ad,_0x20e1c6,_0x1bc3a3){const _0x575dfa=a132_0x3276ea,_0x4e0855=new Date()[_0x575dfa(0x1c0)]()[_0x575dfa(0x1c3)](/[:.]/g,'-'),_0xd10286=relative(_0x5108ad,_0x1bc3a3),_0x5dde50=join(_0x20e1c6,_0x4e0855,_0xd10286);return await mkdir(dirname(_0x5dde50),{'recursive':!![]}),await rename(_0x1bc3a3,_0x5dde50),_0x5dde50;}async function cleanupEmptyDirectories(_0x12f3a2,_0x55e38b){const _0x171c7e=a132_0x3276ea;let _0x529894=resolve(_0x12f3a2);const _0x41ab37=resolve(_0x55e38b);while(_0x529894[_0x171c7e(0x1e0)](''+_0x41ab37+sep)||_0x529894===_0x41ab37){if(_0x529894===_0x41ab37)return;try{const _0x28cda1=await readdir(_0x529894);if(_0x28cda1[_0x171c7e(0x1c6)]>0x0)return;await rmdir(_0x529894);}catch{return;}_0x529894=dirname(_0x529894);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a133_0x5b94(){const _0x30019a=['525pglbTT','99diZNXS','dbId','1460598pUsdDt','19301590KzHXYO','2904548iZUtFf','bool','description','verbose','1865065JmJqEJ','1114FPEgAK','boolean','sqlContent','sqlCode','794696aIhjtX','Return\x20full\x20raw\x20SQL\x20query\x20object','sql','sqlName','str','read','105054sCMzto','appCode','4527iBrDqK','detail','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode'];a133_0x5b94=function(){return _0x30019a;};return a133_0x5b94();}const a133_0x5ce4be=a133_0xc63f;(function(_0x1c5880,_0x1a0e44){const _0x1e5d64=a133_0xc63f,_0x6a9a96=_0x1c5880();while(!![]){try{const _0x130992=parseInt(_0x1e5d64(0x166))/0x1+parseInt(_0x1e5d64(0x16d))/0x2*(parseInt(_0x1e5d64(0x179))/0x3)+parseInt(_0x1e5d64(0x168))/0x4+-parseInt(_0x1e5d64(0x16c))/0x5+parseInt(_0x1e5d64(0x177))/0x6*(parseInt(_0x1e5d64(0x17c))/0x7)+-parseInt(_0x1e5d64(0x171))/0x8*(parseInt(_0x1e5d64(0x17d))/0x9)+-parseInt(_0x1e5d64(0x167))/0xa;if(_0x130992===_0x1a0e44)break;else _0x6a9a96['push'](_0x6a9a96['shift']());}catch(_0x1506a4){_0x6a9a96['push'](_0x6a9a96['shift']());}}}(a133_0x5b94,0xe69a0));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a133_0xc63f(_0x48bb6e,_0x5abb5b){_0x48bb6e=_0x48bb6e-0x166;const _0x5b945c=a133_0x5b94();let _0xc63f80=_0x5b945c[_0x48bb6e];return _0xc63f80;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a133_0x5ce4be(0x173),'command':a133_0x5ce4be(0x17a),'description':a133_0x5ce4be(0x17b),'risk':a133_0x5ce4be(0x176),'flags':[SQLCODE_FLAG,{'name':a133_0x5ce4be(0x16b),'type':a133_0x5ce4be(0x16e),'description':a133_0x5ce4be(0x172)}],async 'execute'(_0x2bbc5a){const _0x5c9ce7=a133_0x5ce4be,_0x1d1d09=await getSqlQueryInfo(_0x2bbc5a[_0x5c9ce7(0x178)],_0x2bbc5a[_0x5c9ce7(0x175)]('sqlcode')),_0x379c42=_0x2bbc5a[_0x5c9ce7(0x169)](_0x5c9ce7(0x16b));if(_0x379c42)return{'ok':!![],'data':_0x1d1d09};const _0x17daa3=_0x1d1d09[_0x5c9ce7(0x17e)]?await getDbName(_0x2bbc5a['appCode'],_0x1d1d09[_0x5c9ce7(0x17e)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x1d1d09[_0x5c9ce7(0x170)],'sqlName':_0x1d1d09[_0x5c9ce7(0x174)],'db':_0x17daa3?_0x17daa3+'\x20('+_0x1d1d09[_0x5c9ce7(0x17e)]+')':_0x1d1d09[_0x5c9ce7(0x17e)]??'','description':_0x1d1d09[_0x5c9ce7(0x16a)]??'','sqlContent':_0x1d1d09[_0x5c9ce7(0x16f)]??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a134_0x5d5585=a134_0x4f8a;function a134_0x2692(){const _0x1e1512=['12cWdrVt','sql','11yJDIpn','execSuccess','params','170975PHHwoj','595NhOHAB','517374cSLBCm','Returned\x20','8982270uuNlul','175881QwPyfU','948hCRtIL','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','3190iTRbLw','length','isArray','7241950HzRFMw','appCode','280HJbmJA','5012094ntyWhc','5uGDahq','\x20row(s)\x20in\x20','now','string','SQL\x20execution\x20failed','str'];a134_0x2692=function(){return _0x1e1512;};return a134_0x2692();}(function(_0x1d3fa1,_0x4a3536){const _0x2c5881=a134_0x4f8a,_0x1b1e6f=_0x1d3fa1();while(!![]){try{const _0x2be7c5=parseInt(_0x2c5881(0x15d))/0x1*(parseInt(_0x2c5881(0x14a))/0x2)+parseInt(_0x2c5881(0x161))/0x3*(-parseInt(_0x2c5881(0x157))/0x4)+parseInt(_0x2c5881(0x151))/0x5*(-parseInt(_0x2c5881(0x150))/0x6)+parseInt(_0x2c5881(0x15c))/0x7*(-parseInt(_0x2c5881(0x14f))/0x8)+-parseInt(_0x2c5881(0x160))/0x9+-parseInt(_0x2c5881(0x14d))/0xa*(parseInt(_0x2c5881(0x159))/0xb)+parseInt(_0x2c5881(0x162))/0xc*(parseInt(_0x2c5881(0x15e))/0xd);if(_0x2be7c5===_0x4a3536)break;else _0x1b1e6f['push'](_0x1b1e6f['shift']());}catch(_0x4473df){_0x1b1e6f['push'](_0x1b1e6f['shift']());}}}(a134_0x2692,0x7b3a1));import{executeSql}from'../../core/api-client.js';function a134_0x4f8a(_0x1d2b32,_0x2c65f8){_0x1d2b32=_0x1d2b32-0x149;const _0x2692a3=a134_0x2692();let _0x4f8a8f=_0x2692a3[_0x1d2b32];return _0x4f8a8f;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a134_0x5d5585(0x158),'command':'exec','description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':a134_0x5d5585(0x15b),'type':a134_0x5d5585(0x154),'description':a134_0x5d5585(0x149)}],async 'execute'(_0x3c602d){const _0x170b5b=a134_0x5d5585,_0x2999b3=parseJsonParams(_0x3c602d[_0x170b5b(0x156)](_0x170b5b(0x15b))),_0x35f678=Date[_0x170b5b(0x153)](),_0x2a71c2=await executeSql(_0x3c602d[_0x170b5b(0x14e)],_0x3c602d[_0x170b5b(0x156)]('sqlcode'),_0x2999b3),_0x311919=Date[_0x170b5b(0x153)]()-_0x35f678,_0x564bd8=_0x2a71c2?.['execResult']??_0x2a71c2,_0x4d5d3c=_0x2a71c2?.[_0x170b5b(0x15a)]??!![];if(!_0x4d5d3c)return{'ok':![],'data':{'error':_0x2a71c2?.['execError']||_0x170b5b(0x155),'elapsed':_0x311919},'message':_0x170b5b(0x155)};const _0x14da27=Array[_0x170b5b(0x14c)](_0x564bd8)?_0x564bd8:[];return{'ok':!![],'data':{'rows':_0x14da27,'rowCount':_0x14da27[_0x170b5b(0x14b)],'elapsed':_0x311919},'message':_0x170b5b(0x15f)+_0x14da27[_0x170b5b(0x14b)]+_0x170b5b(0x152)+_0x311919+'ms'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x42c2c7,_0x3cb72f){const _0x3ecc2d=a135_0x57e4,_0x582fc6=_0x42c2c7();while(!![]){try{const _0x2d1df6=-parseInt(_0x3ecc2d(0x1dd))/0x1+parseInt(_0x3ecc2d(0x1db))/0x2+-parseInt(_0x3ecc2d(0x1d9))/0x3+parseInt(_0x3ecc2d(0x1df))/0x4*(-parseInt(_0x3ecc2d(0x1dc))/0x5)+parseInt(_0x3ecc2d(0x1e0))/0x6*(-parseInt(_0x3ecc2d(0x1e1))/0x7)+-parseInt(_0x3ecc2d(0x1d8))/0x8*(parseInt(_0x3ecc2d(0x1da))/0x9)+parseInt(_0x3ecc2d(0x1de))/0xa;if(_0x2d1df6===_0x3cb72f)break;else _0x582fc6['push'](_0x582fc6['shift']());}catch(_0x17d87f){_0x582fc6['push'](_0x582fc6['shift']());}}}(a135_0x2fb3,0x33b44));import{sqlList}from'../../commands/sql/list.js';function a135_0x2fb3(){const _0x5d1f92=['1725995PahZWw','423532FEVPkJ','15546130rwfRUT','4Vbilny','469974hhZDQY','28aHUTYy','8apJzKP','781218YFydZy','631953MLFWmc','139674jeekmc'];a135_0x2fb3=function(){return _0x5d1f92;};return a135_0x2fb3();}import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';function a135_0x57e4(_0x46c035,_0x4b0253){_0x46c035=_0x46c035-0x1d8;const _0x2fb3af=a135_0x2fb3();let _0x57e4ef=_0x2fb3af[_0x46c035];return _0x57e4ef;}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
|
-
|
|
1
|
+
const a136_0x592a69=a136_0x608c;(function(_0x457630,_0x4d1976){const _0xbb679e=a136_0x608c,_0x7df23d=_0x457630();while(!![]){try{const _0x156d21=parseInt(_0xbb679e(0xed))/0x1*(parseInt(_0xbb679e(0xdd))/0x2)+parseInt(_0xbb679e(0xd8))/0x3+parseInt(_0xbb679e(0xde))/0x4*(parseInt(_0xbb679e(0xe1))/0x5)+-parseInt(_0xbb679e(0xf5))/0x6+parseInt(_0xbb679e(0xe6))/0x7*(parseInt(_0xbb679e(0xef))/0x8)+-parseInt(_0xbb679e(0xd6))/0x9*(-parseInt(_0xbb679e(0xda))/0xa)+-parseInt(_0xbb679e(0xe5))/0xb*(parseInt(_0xbb679e(0xf6))/0xc);if(_0x156d21===_0x4d1976)break;else _0x7df23d['push'](_0x7df23d['shift']());}catch(_0x3d945c){_0x7df23d['push'](_0x7df23d['shift']());}}}(a136_0x1a7f,0x1a489));function a136_0x608c(_0xe5ca5,_0x52e1ad){_0xe5ca5=_0xe5ca5-0xd6;const _0x1a7f45=a136_0x1a7f();let _0x608cea=_0x1a7f45[_0xe5ca5];return _0x608cea;}import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a136_0x592a69(0xf2),'command':a136_0x592a69(0xe8),'description':a136_0x592a69(0xec),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':'Filter\x20by\x20SQL\x20name'},{'name':'page','type':a136_0x592a69(0xf9),'description':a136_0x592a69(0xdc),'default':0x1},{'name':a136_0x592a69(0xdb),'type':a136_0x592a69(0xf9),'description':a136_0x592a69(0xd9)},{'name':a136_0x592a69(0xe9),'type':a136_0x592a69(0xeb),'description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x1a08b0){const _0x44d7f3=a136_0x592a69,_0x421935=await listSqlQueries(_0x1a08b0['appCode'],{'sqlCode':_0x1a08b0['str']('sqlcode')||undefined,'sqlName':_0x1a08b0['str'](_0x44d7f3(0xee))||undefined,'currentPage':_0x1a08b0['num']('page'),'pageSize':_0x1a08b0[_0x44d7f3(0xe7)](_0x44d7f3(0xdb),0x32)}),_0x3e0b2d=_0x1a08b0[_0x44d7f3(0xe0)](_0x44d7f3(0xe9)),_0x192bb2=_0x421935[_0x44d7f3(0xf8)]??[],_0x17601e=_0x421935[_0x44d7f3(0xf7)]?.[_0x44d7f3(0xf3)]??_0x192bb2['length'];let _0x1e1363;return _0x3e0b2d?_0x1e1363=_0x192bb2:_0x1e1363=await Promise['all'](_0x192bb2[_0x44d7f3(0xd7)](async _0x510685=>{const _0x560bb1=_0x44d7f3;let _0x1f94b1;try{_0x1f94b1=_0x510685[_0x560bb1(0xf4)]?await getDbName(_0x1a08b0[_0x560bb1(0xe4)],_0x510685[_0x560bb1(0xf4)]):undefined;}catch{}return{'sqlCode':_0x510685[_0x560bb1(0xe2)],'sqlName':_0x510685[_0x560bb1(0xdf)],'description':_0x510685[_0x560bb1(0xe3)]??'','db':_0x1f94b1?_0x1f94b1+'\x20('+_0x510685[_0x560bb1(0xf4)]+')':_0x510685[_0x560bb1(0xf4)]??''};})),{'ok':!![],'data':_0x1e1363,'message':_0x192bb2[_0x44d7f3(0xf1)]===0x0?'No\x20custom\x20SQL\x20queries\x20found.':_0x44d7f3(0xea)+_0x192bb2[_0x44d7f3(0xf1)]+_0x44d7f3(0xf0)+_0x17601e+').'};}};function a136_0x1a7f(){const _0x43f6cd=['680QFCrVh','sqlName','bool','460PrZDyP','sqlCode','description','appCode','4840BNSLuU','91FtJzcU','num','list','verbose','Found\x20','boolean','List\x20custom\x20SQL\x20queries','65131eCWdqi','name','124104NIIKQG','\x20SQL\x20queries\x20(total:\x20','length','sql','totalCount','dbId','797250Qaofey','9216hwtamO','paging','tableData','number','18ahWOyQ','map','479052KQsTLl','Page\x20size','681640wCKsdB','pagesize','Page\x20number','2vFfXVR'];a136_0x1a7f=function(){return _0x43f6cd;};return a136_0x1a7f();}
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function a136_0x5433(){const _0x3982c0=['Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','utf8','nonInteractive','lockFilePath','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','No\x20remote\x20SQL\x20queries\x20matched.','local\x20differs\x20from\x20remote','1021509dpqHlt','50bNgqFL','88860rgMSlp','name','apps','totalCount','description','test','\x20failed','Filter\x20by\x20SQL\x20display\x20name','toISOString','string','sqlRoot','sqlCode','dbId','conflict','POST','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','71031kvOlfM','270763bYIoBm','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','2737lnpfRl','sqls','2ABKyjH','write','sqlRootDir','skipped','bool','5224GoxMxL','unchanged','pull','force','Force\x20pull\x20cancelled.','Pull\x20complete:\x20','sqlName','appCode','cancelled','filter','length','546088QUYvLF','str','catch','message','Force\x20overwrite\x20local\x20unsynced\x20changes','split','join','\x20SQL\x20file(s)\x20into\x20','replace','sqlcode','sql','1026530wuzomo','paging','lastSync','sqlContent','mybatisXml','push','path'];a136_0x5433=function(){return _0x3982c0;};return a136_0x5433();}const a136_0x28db64=a136_0x31f2;(function(_0x9cd7ab,_0x188255){const _0x44317f=a136_0x31f2,_0x40f93d=_0x9cd7ab();while(!![]){try{const _0x137065=-parseInt(_0x44317f(0x121))/0x1+-parseInt(_0x44317f(0x125))/0x2*(-parseInt(_0x44317f(0x120))/0x3)+-parseInt(_0x44317f(0x135))/0x4+parseInt(_0x44317f(0x140))/0x5+parseInt(_0x44317f(0x150))/0x6+parseInt(_0x44317f(0x123))/0x7*(-parseInt(_0x44317f(0x12a))/0x8)+parseInt(_0x44317f(0x14e))/0x9*(parseInt(_0x44317f(0x14f))/0xa);if(_0x137065===_0x188255)break;else _0x40f93d['push'](_0x40f93d['shift']());}catch(_0x109940){_0x40f93d['push'](_0x40f93d['shift']());}}}(a136_0x5433,0x244d2));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';function a136_0x31f2(_0x471aa9,_0x26c34d){_0x471aa9=_0x471aa9-0x114;const _0x543350=a136_0x5433();let _0x31f244=_0x543350[_0x471aa9];return _0x31f244;}import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x1e0d69,_0x38b671){const _0x3e1f98=a136_0x31f2,_0x161802=[];let _0x31e2ab=0x1;while(!![]){const _0x49ca80=await listSqlQueries(_0x1e0d69,{'currentPage':_0x31e2ab,'pageSize':PAGE_SIZE,'sqlCode':_0x38b671['sqlCode'],'sqlName':_0x38b671[_0x3e1f98(0x130)]}),_0x347908=_0x49ca80['tableData']??[];_0x161802[_0x3e1f98(0x145)](..._0x347908);if(_0x347908[_0x3e1f98(0x134)]===0x0)break;const _0x22f66e=_0x49ca80[_0x3e1f98(0x141)]?.[_0x3e1f98(0x153)];if(_0x22f66e!=null?_0x161802['length']>=_0x22f66e:_0x347908[_0x3e1f98(0x134)]<PAGE_SIZE)break;_0x31e2ab++;}return _0x161802;}async function ensureSqlContent(_0x5a02ee){const _0x8867a2=a136_0x31f2;if(_0x5a02ee['sqlContent']!=null&&String(_0x5a02ee[_0x8867a2(0x143)])[_0x8867a2(0x134)]>0x0)return _0x5a02ee;return getSqlQueryDetail(_0x5a02ee['sqlCode']);}export const sqlPull={'service':a136_0x28db64(0x13f),'command':a136_0x28db64(0x12c),'description':a136_0x28db64(0x147),'risk':a136_0x28db64(0x126),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a136_0x28db64(0x151),'type':a136_0x28db64(0x119),'description':a136_0x28db64(0x117)},{'name':a136_0x28db64(0x12d),'type':'boolean','description':a136_0x28db64(0x139)}],async 'dryRun'(_0x57ec2a){const _0x530a53=a136_0x28db64,_0x55bcf8=loadSqlProjectConfig(_0x57ec2a[_0x530a53(0x131)]),_0x15bd65=await readSqlLockFile(_0x55bcf8[_0x530a53(0x14a)]),{appLock:_0x111e7d}=ensureSqlLockScope(_0x15bd65??createEmptySqlLock(),_0x55bcf8[_0x530a53(0x131)],_0x55bcf8[_0x530a53(0x11a)],_0x530a53(0x12c)),_0x119286=await fetchAllSqlQueries(_0x57ec2a[_0x530a53(0x131)],{'sqlCode':_0x57ec2a[_0x530a53(0x136)](_0x530a53(0x13e))||undefined,'sqlName':_0x57ec2a['str'](_0x530a53(0x151))||undefined}),_0x490d48=[];for(const _0x1f749b of _0x119286){const _0x1ac8a3=await ensureSqlContent(_0x1f749b),_0x42ca3f=ensureRemoteSqlContent(_0x1ac8a3),_0x2f3945=detectModeFromSql(_0x1ac8a3),_0x3f8318=_0x1ac8a3['dbId']?await getDbName(_0x57ec2a[_0x530a53(0x131)],Number(_0x1ac8a3[_0x530a53(0x11c)]))[_0x530a53(0x137)](()=>undefined):undefined,_0x4f0bfe=buildLocalSqlFileContent({'sqlCode':_0x1ac8a3[_0x530a53(0x11b)],'sqlName':_0x1ac8a3[_0x530a53(0x130)],'dbId':_0x1ac8a3[_0x530a53(0x11c)]},_0x42ca3f,{'dbName':_0x3f8318,'mode':_0x2f3945,'syncedAt':new Date()[_0x530a53(0x118)](),'description':_0x1ac8a3['description']}),_0x11d209=buildSqlLockEntry(_0x1ac8a3,_0x42ca3f,'',{'dbName':_0x3f8318}),_0x2f7fd7=resolveLocalSqlFilePath(_0x55bcf8,_0x1ac8a3[_0x530a53(0x11b)],_0x11d209);let _0x275365='would_pull',_0x22dd0c;if(await fileExists(_0x2f7fd7)){const _0x46f93b=await readFile(_0x2f7fd7,'utf8');isEquivalentPulledSqlFile(_0x46f93b,_0x4f0bfe,_0x2f3945)?(_0x275365=_0x530a53(0x128),_0x22dd0c=_0x530a53(0x12b)):(_0x275365=_0x530a53(0x11d),_0x22dd0c=_0x530a53(0x11f));}_0x490d48[_0x530a53(0x145)]({'sqlCode':_0x1ac8a3[_0x530a53(0x11b)],'sqlName':_0x1ac8a3[_0x530a53(0x130)],'filePath':_0x2f7fd7,'status':_0x275365,'reason':_0x22dd0c});}return{'method':_0x530a53(0x11e),'url':_0x530a53(0x122),'body':{'appCode':_0x57ec2a[_0x530a53(0x131)],'sqlCode':_0x57ec2a[_0x530a53(0x136)](_0x530a53(0x13e))||null,'sqlName':_0x57ec2a[_0x530a53(0x136)](_0x530a53(0x151))||null,'files':_0x490d48},'description':'Would\x20pull\x20'+_0x490d48[_0x530a53(0x134)]+_0x530a53(0x13c)+_0x55bcf8[_0x530a53(0x127)]};},async 'execute'(_0x3a8c3f){const _0x6ab451=a136_0x28db64,_0x50e21d=loadSqlProjectConfig(_0x3a8c3f[_0x6ab451(0x131)]),_0xc561ca=await readSqlLockFile(_0x50e21d[_0x6ab451(0x14a)]),{lockData:_0x481acd,appLock:_0x2bfd44}=ensureSqlLockScope(_0xc561ca??createEmptySqlLock(),_0x50e21d[_0x6ab451(0x131)],_0x50e21d[_0x6ab451(0x11a)],_0x6ab451(0x12c)),_0x529081=_0x3a8c3f[_0x6ab451(0x129)](_0x6ab451(0x12d)),_0x47323f=await fetchAllSqlQueries(_0x3a8c3f['appCode'],{'sqlCode':_0x3a8c3f['str']('sqlcode')||undefined,'sqlName':_0x3a8c3f['str']('name')||undefined});if(_0x47323f['length']===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x6ab451(0x14c)};const _0x683ffa=[],_0x265b84=[];for(const _0x45a7c6 of _0x47323f){try{_0x683ffa[_0x6ab451(0x145)](await ensureSqlContent(_0x45a7c6));}catch(_0xc46fb2){_0x265b84[_0x6ab451(0x145)]({'sqlCode':_0x45a7c6[_0x6ab451(0x11b)],'error':_0xc46fb2 instanceof Error?_0xc46fb2['message']:String(_0xc46fb2)});}}if(_0x529081&&!_0x3a8c3f[_0x6ab451(0x149)]){let _0x536387=![];for(const _0x696ddd of _0x683ffa){const _0x2bac00=detectModeFromSql(_0x696ddd),_0x3f7627=_0x696ddd[_0x6ab451(0x11c)]?await getDbName(_0x3a8c3f[_0x6ab451(0x131)],Number(_0x696ddd[_0x6ab451(0x11c)]))[_0x6ab451(0x137)](()=>undefined):undefined,_0x1f42ed=buildLocalSqlFileContent({'sqlCode':_0x696ddd['sqlCode'],'sqlName':_0x696ddd['sqlName'],'dbId':_0x696ddd[_0x6ab451(0x11c)]},ensureRemoteSqlContent(_0x696ddd),{'dbName':_0x3f7627,'mode':_0x2bac00,'syncedAt':new Date()['toISOString'](),'description':_0x696ddd[_0x6ab451(0x114)]}),_0x38dd6d=resolveLocalSqlFilePath(_0x50e21d,_0x696ddd[_0x6ab451(0x11b)],buildSqlLockEntry(_0x696ddd,ensureRemoteSqlContent(_0x696ddd),'',{'dbName':_0x3f7627}));if(await fileExists(_0x38dd6d)){const _0x156815=await readFile(_0x38dd6d,_0x6ab451(0x148));if(!isEquivalentPulledSqlFile(_0x156815,_0x1f42ed,_0x2bac00)){_0x536387=!![];break;}}}if(_0x536387){const _0x3396c1=await confirmForceOverwrite(_0x6ab451(0x14b));if(!_0x3396c1)throw CliErrors[_0x6ab451(0x132)](_0x6ab451(0x12e));}}const _0x404ef8=cloneSqlLockData(_0x481acd),_0x263f5c=_0x404ef8[_0x6ab451(0x152)][_0x50e21d[_0x6ab451(0x131)]],_0x2585b8=[],_0x1933e6=[];for(const _0x39160c of _0x683ffa){const _0x5cd2df=_0x263f5c['sqls'][_0x39160c[_0x6ab451(0x11b)]],_0x209570=ensureRemoteSqlContent(_0x39160c),_0x35e93b=detectModeFromSql(_0x39160c),_0x1ab6fd=_0x39160c[_0x6ab451(0x11c)]?await getDbName(_0x3a8c3f[_0x6ab451(0x131)],Number(_0x39160c[_0x6ab451(0x11c)]))[_0x6ab451(0x137)](()=>undefined):undefined,_0x51ecaf=buildLocalSqlFileContent({'sqlCode':_0x39160c[_0x6ab451(0x11b)],'sqlName':_0x39160c[_0x6ab451(0x130)],'dbId':_0x39160c[_0x6ab451(0x11c)]},_0x209570,{'dbName':_0x1ab6fd,'mode':_0x35e93b,'syncedAt':new Date()[_0x6ab451(0x118)](),'description':_0x39160c[_0x6ab451(0x114)]}),_0x27383b=buildSqlLockEntry(_0x39160c,_0x209570,computeSqlContentHash(_0x51ecaf),{'dbName':_0x1ab6fd}),_0x1c5774=_0x27383b['path'],_0x18dfa6=join(_0x50e21d[_0x6ab451(0x127)],_0x1c5774);try{if(await fileExists(_0x18dfa6)){const _0x4f02bd=await readFile(_0x18dfa6,_0x6ab451(0x148));if(isEquivalentPulledSqlFile(_0x4f02bd,_0x51ecaf,_0x35e93b)){_0x1933e6[_0x6ab451(0x145)]({'sqlCode':_0x39160c[_0x6ab451(0x11b)],'reason':_0x6ab451(0x12b)}),_0x263f5c[_0x6ab451(0x124)][_0x39160c[_0x6ab451(0x11b)]]={..._0x27383b,'hash':computeSqlContentHash(_0x4f02bd),'path':_0x1c5774};continue;}if(!_0x529081){_0x1933e6['push']({'sqlCode':_0x39160c[_0x6ab451(0x11b)],'reason':_0x6ab451(0x14d)});continue;}}const _0x3233fa=_0x5cd2df?.[_0x6ab451(0x146)]?join(_0x50e21d[_0x6ab451(0x127)],_0x5cd2df[_0x6ab451(0x146)]):undefined;_0x3233fa&&_0x3233fa!==_0x18dfa6&&await fileExists(_0x3233fa)&&await rm(_0x3233fa,{'force':!![]}),await ensureParentDirectory(_0x18dfa6),await writeFile(_0x18dfa6,_0x51ecaf,_0x6ab451(0x148)),_0x263f5c[_0x6ab451(0x124)][_0x39160c[_0x6ab451(0x11b)]]={..._0x27383b,'path':_0x1c5774},_0x2585b8[_0x6ab451(0x145)]({'sqlCode':_0x39160c['sqlCode'],'filePath':_0x18dfa6});}catch(_0x28fd0e){_0x265b84[_0x6ab451(0x145)]({'sqlCode':_0x39160c[_0x6ab451(0x11b)],'error':_0x28fd0e instanceof Error?_0x28fd0e[_0x6ab451(0x138)]:String(_0x28fd0e)});}}return _0x263f5c[_0x6ab451(0x142)]=new Date()['toISOString'](),await writeSqlLockFile(_0x50e21d[_0x6ab451(0x14a)],_0x404ef8),{'ok':_0x265b84[_0x6ab451(0x134)]===0x0,'data':{'pulled':_0x2585b8,'skipped':_0x1933e6,'failed':_0x265b84},'message':_0x6ab451(0x12f)+_0x2585b8[_0x6ab451(0x134)]+'\x20written,\x20'+_0x1933e6[_0x6ab451(0x134)]+'\x20skipped,\x20'+_0x265b84['length']+_0x6ab451(0x116)};}};function detectModeFromSql(_0x23b2d7){const _0x808cf9=a136_0x28db64,_0x480a90=ensureRemoteSqlContent(_0x23b2d7),_0x442796=stripLocalSqlMetadata(_0x480a90,_0x808cf9(0x144))['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0x808cf9(0x115)](_0x442796))return _0x808cf9(0x144);return _0x808cf9(0x13f);}function isEquivalentPulledSqlFile(_0x369609,_0x4c80c0,_0x583134){return normalizePullComparableContent(_0x369609,_0x583134)===normalizePullComparableContent(_0x4c80c0,_0x583134);}function normalizePullComparableContent(_0x3ec4fd,_0x5964ba){const _0x103f77=a136_0x28db64,_0x3f7bea=_0x3ec4fd[_0x103f77(0x13d)](/\r\n/g,'\x0a')[_0x103f77(0x13a)]('\x0a'),_0x140ce8=_0x3f7bea[_0x103f77(0x133)](_0x100460=>!isSyncedAtMetadataLine(_0x100460,_0x5964ba));return _0x140ce8[_0x103f77(0x13b)]('\x0a');}function isSyncedAtMetadataLine(_0x21acd2,_0x3b451d){const _0x26035c=a136_0x28db64;if(_0x3b451d==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x26035c(0x115)](_0x21acd2);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x21acd2);}
|
|
1
|
+
const a137_0x52ed0d=a137_0x2ddd;(function(_0x599918,_0x1066b9){const _0x51107e=a137_0x2ddd,_0x55689a=_0x599918();while(!![]){try{const _0x6e2d97=-parseInt(_0x51107e(0xcc))/0x1+-parseInt(_0x51107e(0xff))/0x2+-parseInt(_0x51107e(0xe7))/0x3*(-parseInt(_0x51107e(0xfc))/0x4)+parseInt(_0x51107e(0x103))/0x5+parseInt(_0x51107e(0xf5))/0x6+-parseInt(_0x51107e(0xe0))/0x7*(parseInt(_0x51107e(0xdf))/0x8)+parseInt(_0x51107e(0xf9))/0x9*(parseInt(_0x51107e(0xf6))/0xa);if(_0x6e2d97===_0x1066b9)break;else _0x55689a['push'](_0x55689a['shift']());}catch(_0xccaa2){_0x55689a['push'](_0x55689a['shift']());}}}(a137_0x8a10,0x45253));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;function a137_0x8a10(){const _0x6dcdb9=['Force\x20overwrite\x20local\x20unsynced\x20changes','unchanged','pull','dbId','appCode','Force\x20pull\x20cancelled.','boolean','8dPXSqE','408093qkomqy','sqlRoot','apps','force','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','push','utf8','1692663DVJGcF','POST','sqlRootDir','length','totalCount','test','Pull\x20complete:\x20','replace','lockFilePath','\x20written,\x20','bool','filter','catch','sqlName','294894RIZWwA','71590OmXBqQ','message','sqlContent','36afXZsA','Would\x20pull\x20','split','4SLamaq','string','local\x20differs\x20from\x20remote','402022GSewCw','toISOString','sqlCode','description','1352000wpdfSt','lastSync','Filter\x20by\x20SQL\x20display\x20name','str','sql','skipped','sqls','conflict','369877lnPntI','sqlcode','join','No\x20remote\x20SQL\x20queries\x20matched.','cancelled','nonInteractive','\x20failed','path','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','write','name','mybatisXml'];a137_0x8a10=function(){return _0x6dcdb9;};return a137_0x8a10();}async function fetchAllSqlQueries(_0xd287,_0x3e0a82){const _0x36d7c8=a137_0x2ddd,_0x288aef=[];let _0x5e690d=0x1;while(!![]){const _0x121c01=await listSqlQueries(_0xd287,{'currentPage':_0x5e690d,'pageSize':PAGE_SIZE,'sqlCode':_0x3e0a82['sqlCode'],'sqlName':_0x3e0a82['sqlName']}),_0x220fe5=_0x121c01['tableData']??[];_0x288aef[_0x36d7c8(0xe5)](..._0x220fe5);if(_0x220fe5['length']===0x0)break;const _0x3d2a41=_0x121c01['paging']?.[_0x36d7c8(0xeb)];if(_0x3d2a41!=null?_0x288aef[_0x36d7c8(0xea)]>=_0x3d2a41:_0x220fe5[_0x36d7c8(0xea)]<PAGE_SIZE)break;_0x5e690d++;}return _0x288aef;}async function ensureSqlContent(_0x2305b0){const _0x698b16=a137_0x2ddd;if(_0x2305b0[_0x698b16(0xf8)]!=null&&String(_0x2305b0[_0x698b16(0xf8)])['length']>0x0)return _0x2305b0;return getSqlQueryDetail(_0x2305b0[_0x698b16(0x101)]);}export const sqlPull={'service':a137_0x52ed0d(0xc8),'command':a137_0x52ed0d(0xda),'description':a137_0x52ed0d(0xe4),'risk':a137_0x52ed0d(0xd5),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a137_0x52ed0d(0xd6),'type':a137_0x52ed0d(0xfd),'description':a137_0x52ed0d(0x105)},{'name':'force','type':a137_0x52ed0d(0xde),'description':a137_0x52ed0d(0xd8)}],async 'dryRun'(_0x28d1df){const _0x5d4207=a137_0x52ed0d,_0x120554=loadSqlProjectConfig(_0x28d1df[_0x5d4207(0xdc)]),_0x39bd00=await readSqlLockFile(_0x120554[_0x5d4207(0xef)]),{appLock:_0x1fee3b}=ensureSqlLockScope(_0x39bd00??createEmptySqlLock(),_0x120554[_0x5d4207(0xdc)],_0x120554[_0x5d4207(0xe1)],_0x5d4207(0xda)),_0x3cc443=await fetchAllSqlQueries(_0x28d1df[_0x5d4207(0xdc)],{'sqlCode':_0x28d1df[_0x5d4207(0xc7)](_0x5d4207(0xcd))||undefined,'sqlName':_0x28d1df[_0x5d4207(0xc7)](_0x5d4207(0xd6))||undefined}),_0x393f90=[];for(const _0x4e3e91 of _0x3cc443){const _0x2a4871=await ensureSqlContent(_0x4e3e91),_0x4dad24=ensureRemoteSqlContent(_0x2a4871),_0x50ee0c=detectModeFromSql(_0x2a4871),_0x324993=_0x2a4871[_0x5d4207(0xdb)]?await getDbName(_0x28d1df['appCode'],Number(_0x2a4871[_0x5d4207(0xdb)]))[_0x5d4207(0xf3)](()=>undefined):undefined,_0x3a0be7=buildLocalSqlFileContent({'sqlCode':_0x2a4871[_0x5d4207(0x101)],'sqlName':_0x2a4871[_0x5d4207(0xf4)],'dbId':_0x2a4871['dbId']},_0x4dad24,{'dbName':_0x324993,'mode':_0x50ee0c,'syncedAt':new Date()['toISOString'](),'description':_0x2a4871['description']}),_0x1b9c80=buildSqlLockEntry(_0x2a4871,_0x4dad24,'',{'dbName':_0x324993}),_0x1dac34=resolveLocalSqlFilePath(_0x120554,_0x2a4871[_0x5d4207(0x101)],_0x1b9c80);let _0x273308='would_pull',_0x13e2f1;if(await fileExists(_0x1dac34)){const _0x59cf00=await readFile(_0x1dac34,'utf8');isEquivalentPulledSqlFile(_0x59cf00,_0x3a0be7,_0x50ee0c)?(_0x273308=_0x5d4207(0xc9),_0x13e2f1=_0x5d4207(0xd9)):(_0x273308=_0x5d4207(0xcb),_0x13e2f1='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x393f90['push']({'sqlCode':_0x2a4871[_0x5d4207(0x101)],'sqlName':_0x2a4871[_0x5d4207(0xf4)],'filePath':_0x1dac34,'status':_0x273308,'reason':_0x13e2f1});}return{'method':_0x5d4207(0xe8),'url':_0x5d4207(0xd4),'body':{'appCode':_0x28d1df[_0x5d4207(0xdc)],'sqlCode':_0x28d1df[_0x5d4207(0xc7)](_0x5d4207(0xcd))||null,'sqlName':_0x28d1df['str'](_0x5d4207(0xd6))||null,'files':_0x393f90},'description':_0x5d4207(0xfa)+_0x393f90[_0x5d4207(0xea)]+'\x20SQL\x20file(s)\x20into\x20'+_0x120554[_0x5d4207(0xe9)]};},async 'execute'(_0x1f8f0f){const _0x13108e=a137_0x52ed0d,_0x714696=loadSqlProjectConfig(_0x1f8f0f[_0x13108e(0xdc)]),_0x4d085f=await readSqlLockFile(_0x714696[_0x13108e(0xef)]),{lockData:_0x12c315,appLock:_0x58ebc3}=ensureSqlLockScope(_0x4d085f??createEmptySqlLock(),_0x714696[_0x13108e(0xdc)],_0x714696[_0x13108e(0xe1)],_0x13108e(0xda)),_0x19312e=_0x1f8f0f[_0x13108e(0xf1)](_0x13108e(0xe3)),_0x9eab67=await fetchAllSqlQueries(_0x1f8f0f[_0x13108e(0xdc)],{'sqlCode':_0x1f8f0f['str'](_0x13108e(0xcd))||undefined,'sqlName':_0x1f8f0f[_0x13108e(0xc7)](_0x13108e(0xd6))||undefined});if(_0x9eab67[_0x13108e(0xea)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x13108e(0xcf)};const _0x9c0848=[],_0x584699=[];for(const _0x5a1f94 of _0x9eab67){try{_0x9c0848[_0x13108e(0xe5)](await ensureSqlContent(_0x5a1f94));}catch(_0x4434e1){_0x584699[_0x13108e(0xe5)]({'sqlCode':_0x5a1f94['sqlCode'],'error':_0x4434e1 instanceof Error?_0x4434e1[_0x13108e(0xf7)]:String(_0x4434e1)});}}if(_0x19312e&&!_0x1f8f0f[_0x13108e(0xd1)]){let _0x46d7b3=![];for(const _0x250016 of _0x9c0848){const _0x5d6f79=detectModeFromSql(_0x250016),_0x389a02=_0x250016['dbId']?await getDbName(_0x1f8f0f[_0x13108e(0xdc)],Number(_0x250016[_0x13108e(0xdb)]))[_0x13108e(0xf3)](()=>undefined):undefined,_0x1a3a2b=buildLocalSqlFileContent({'sqlCode':_0x250016[_0x13108e(0x101)],'sqlName':_0x250016[_0x13108e(0xf4)],'dbId':_0x250016['dbId']},ensureRemoteSqlContent(_0x250016),{'dbName':_0x389a02,'mode':_0x5d6f79,'syncedAt':new Date()[_0x13108e(0x100)](),'description':_0x250016['description']}),_0x2794a3=resolveLocalSqlFilePath(_0x714696,_0x250016['sqlCode'],buildSqlLockEntry(_0x250016,ensureRemoteSqlContent(_0x250016),'',{'dbName':_0x389a02}));if(await fileExists(_0x2794a3)){const _0x1c2c8b=await readFile(_0x2794a3,_0x13108e(0xe6));if(!isEquivalentPulledSqlFile(_0x1c2c8b,_0x1a3a2b,_0x5d6f79)){_0x46d7b3=!![];break;}}}if(_0x46d7b3){const _0x2e47ce=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x2e47ce)throw CliErrors[_0x13108e(0xd0)](_0x13108e(0xdd));}}const _0x31bcc5=cloneSqlLockData(_0x12c315),_0x152b41=_0x31bcc5[_0x13108e(0xe2)][_0x714696[_0x13108e(0xdc)]],_0x522af9=[],_0x23de16=[];for(const _0x5db5f6 of _0x9c0848){const _0x4a130a=_0x152b41['sqls'][_0x5db5f6[_0x13108e(0x101)]],_0x220ffa=ensureRemoteSqlContent(_0x5db5f6),_0x170c8b=detectModeFromSql(_0x5db5f6),_0x26f685=_0x5db5f6[_0x13108e(0xdb)]?await getDbName(_0x1f8f0f['appCode'],Number(_0x5db5f6[_0x13108e(0xdb)]))[_0x13108e(0xf3)](()=>undefined):undefined,_0x518cd5=buildLocalSqlFileContent({'sqlCode':_0x5db5f6[_0x13108e(0x101)],'sqlName':_0x5db5f6[_0x13108e(0xf4)],'dbId':_0x5db5f6[_0x13108e(0xdb)]},_0x220ffa,{'dbName':_0x26f685,'mode':_0x170c8b,'syncedAt':new Date()[_0x13108e(0x100)](),'description':_0x5db5f6[_0x13108e(0x102)]}),_0x72c4e3=buildSqlLockEntry(_0x5db5f6,_0x220ffa,computeSqlContentHash(_0x518cd5),{'dbName':_0x26f685}),_0x175d25=_0x72c4e3[_0x13108e(0xd3)],_0x5697cd=join(_0x714696['sqlRootDir'],_0x175d25);try{if(await fileExists(_0x5697cd)){const _0x164c0f=await readFile(_0x5697cd,'utf8');if(isEquivalentPulledSqlFile(_0x164c0f,_0x518cd5,_0x170c8b)){_0x23de16[_0x13108e(0xe5)]({'sqlCode':_0x5db5f6[_0x13108e(0x101)],'reason':'unchanged'}),_0x152b41[_0x13108e(0xca)][_0x5db5f6[_0x13108e(0x101)]]={..._0x72c4e3,'hash':computeSqlContentHash(_0x164c0f),'path':_0x175d25};continue;}if(!_0x19312e){_0x23de16[_0x13108e(0xe5)]({'sqlCode':_0x5db5f6[_0x13108e(0x101)],'reason':_0x13108e(0xfe)});continue;}}const _0x1699cd=_0x4a130a?.[_0x13108e(0xd3)]?join(_0x714696['sqlRootDir'],_0x4a130a[_0x13108e(0xd3)]):undefined;_0x1699cd&&_0x1699cd!==_0x5697cd&&await fileExists(_0x1699cd)&&await rm(_0x1699cd,{'force':!![]}),await ensureParentDirectory(_0x5697cd),await writeFile(_0x5697cd,_0x518cd5,_0x13108e(0xe6)),_0x152b41[_0x13108e(0xca)][_0x5db5f6[_0x13108e(0x101)]]={..._0x72c4e3,'path':_0x175d25},_0x522af9['push']({'sqlCode':_0x5db5f6[_0x13108e(0x101)],'filePath':_0x5697cd});}catch(_0x22ae34){_0x584699['push']({'sqlCode':_0x5db5f6['sqlCode'],'error':_0x22ae34 instanceof Error?_0x22ae34[_0x13108e(0xf7)]:String(_0x22ae34)});}}return _0x152b41[_0x13108e(0x104)]=new Date()[_0x13108e(0x100)](),await writeSqlLockFile(_0x714696['lockFilePath'],_0x31bcc5),{'ok':_0x584699[_0x13108e(0xea)]===0x0,'data':{'pulled':_0x522af9,'skipped':_0x23de16,'failed':_0x584699},'message':_0x13108e(0xed)+_0x522af9['length']+_0x13108e(0xf0)+_0x23de16[_0x13108e(0xea)]+'\x20skipped,\x20'+_0x584699['length']+_0x13108e(0xd2)};}};function detectModeFromSql(_0x43a8e3){const _0x4aac31=a137_0x52ed0d,_0xd2d002=ensureRemoteSqlContent(_0x43a8e3),_0x4acd37=stripLocalSqlMetadata(_0xd2d002,'mybatisXml')['trimStart']();if(/^<(select|insert|update|delete)\b/i['test'](_0x4acd37))return _0x4aac31(0xd7);return _0x4aac31(0xc8);}function isEquivalentPulledSqlFile(_0xca8080,_0x2d06fe,_0x449dcb){return normalizePullComparableContent(_0xca8080,_0x449dcb)===normalizePullComparableContent(_0x2d06fe,_0x449dcb);}function a137_0x2ddd(_0x342f87,_0x5b0320){_0x342f87=_0x342f87-0xc7;const _0x8a108f=a137_0x8a10();let _0x2dddae=_0x8a108f[_0x342f87];return _0x2dddae;}function normalizePullComparableContent(_0x10e7e5,_0xd1870e){const _0x38d3b0=a137_0x52ed0d,_0x2bf58d=_0x10e7e5[_0x38d3b0(0xee)](/\r\n/g,'\x0a')[_0x38d3b0(0xfb)]('\x0a'),_0x14b691=_0x2bf58d[_0x38d3b0(0xf2)](_0xa2e2e9=>!isSyncedAtMetadataLine(_0xa2e2e9,_0xd1870e));return _0x14b691[_0x38d3b0(0xce)]('\x0a');}function isSyncedAtMetadataLine(_0x20f5be,_0x559eb9){const _0x57d3c0=a137_0x52ed0d;if(_0x559eb9===_0x57d3c0(0xd7))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x57d3c0(0xec)](_0x20f5be);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x20f5be);}
|
package/lib/commands/sql/push.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a137_0x21b644=a137_0x174a;(function(_0x1734ba,_0x3a7935){const _0x5a41a2=a137_0x174a,_0x10657e=_0x1734ba();while(!![]){try{const _0x397e7e=-parseInt(_0x5a41a2(0x1b4))/0x1*(-parseInt(_0x5a41a2(0x1b2))/0x2)+-parseInt(_0x5a41a2(0x1b7))/0x3+parseInt(_0x5a41a2(0x1c3))/0x4+parseInt(_0x5a41a2(0x195))/0x5+-parseInt(_0x5a41a2(0x1ba))/0x6*(-parseInt(_0x5a41a2(0x1cb))/0x7)+parseInt(_0x5a41a2(0x19a))/0x8*(-parseInt(_0x5a41a2(0x197))/0x9)+parseInt(_0x5a41a2(0x1ce))/0xa*(-parseInt(_0x5a41a2(0x1bb))/0xb);if(_0x397e7e===_0x3a7935)break;else _0x10657e['push'](_0x10657e['shift']());}catch(_0x8a4095){_0x10657e['push'](_0x10657e['shift']());}}}(a137_0x2ef2,0x70172));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';function a137_0x2ef2(){const _0x484980=['2937AfhEoK','dbId','boolean','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','force','\x20failed','appCode','map','963512byezux','sqlName','\x20SQL\x20file(s)','version','sqlCode','high-risk-write','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','sqlcode','557578QMyxqH','path','set','41030ttYmTW','dbDirectory','entries','trashDir','sqlRoot','sql','filePath','Would\x20push\x20','No\x20database\x20matches\x20local\x20directory\x20\x22','sqls','unchanged','3879375qaQYQy','Local\x20SQL\x20not\x20found:\x20','322821NpRdTn','length','\x22\x20for\x20sqlCode\x20','80pPzXrA','startsWith','filter','push','No\x20local\x20SQL\x20files\x20found.','mode','bool','/smartapi/custom/updateUserCustomSql','message','str','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','Push\x20complete:\x20','lastSync','\x20pushed,\x20','\x20skipped,\x20','sqlConfig','lockFilePath','Push\x20local\x20SQL\x20files\x20to\x20remote','toISOString','sqlRootDir','dbName','relativePath','has','utf8','86356MSRjnh','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','20ciwceB','catch','isFinite','2051658prWZKu','validation','hash','54nWnyjf'];a137_0x2ef2=function(){return _0x484980;};return a137_0x2ef2();}import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x2fe429,_0x553535,_0x274113){const _0x16b6a0=a137_0x174a,_0x5d3ade=await scanLocalSqlQueries(_0x2fe429),_0x5d5ede=new Map();for(const _0x19e4bc of _0x5d3ade){if(_0x274113&&_0x19e4bc[_0x16b6a0(0x1c7)]!==_0x274113)continue;const _0x342377=_0x5d5ede['get'](_0x19e4bc['sqlCode'])??[];_0x342377['push'](_0x19e4bc),_0x5d5ede[_0x16b6a0(0x1cd)](_0x19e4bc[_0x16b6a0(0x1c7)],_0x342377);}if(_0x274113&&!_0x5d5ede[_0x16b6a0(0x1b0)](_0x274113))throw CliErrors[_0x16b6a0(0x1b8)](_0x16b6a0(0x196)+_0x274113);const _0x56fe77=[];for(const [_0x3e437b,_0x2bb625]of _0x5d5ede[_0x16b6a0(0x18c)]()){if(_0x2bb625[_0x16b6a0(0x198)]===0x1){_0x56fe77[_0x16b6a0(0x19d)](_0x2bb625[0x0]);continue;}const _0x307285=_0x553535[_0x16b6a0(0x193)][_0x3e437b],_0x105354=_0x307285?.[_0x16b6a0(0x1cc)],_0x131c42=_0x105354?_0x2bb625[_0x16b6a0(0x19c)](_0x25d344=>_0x25d344[_0x16b6a0(0x1af)]!==_0x105354):_0x2bb625;if(_0x307285&&_0x131c42[_0x16b6a0(0x198)]===0x1){_0x56fe77[_0x16b6a0(0x19d)](_0x131c42[0x0]);continue;}throw CliErrors[_0x16b6a0(0x1b8)]('Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20'+_0x3e437b+_0x16b6a0(0x1b3));}return _0x56fe77;}export const sqlPush={'service':a137_0x21b644(0x18f),'command':a137_0x21b644(0x19d),'description':a137_0x21b644(0x1ab),'risk':a137_0x21b644(0x1c8),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a137_0x21b644(0x1bf),'type':a137_0x21b644(0x1bd),'description':a137_0x21b644(0x1c9)}],async 'dryRun'(_0x193aaa){const _0x115627=a137_0x21b644,_0x1e363a=loadSqlProjectConfig(_0x193aaa[_0x115627(0x1c1)]),_0x331065=await readSqlLockFile(_0x1e363a[_0x115627(0x1aa)]),{appLock:_0x6603fd}=ensureSqlLockScope(_0x331065??createEmptySqlLock(),_0x193aaa['appCode'],_0x1e363a['sqlRoot'],'push'),_0x20c5ff=await getTargetSqlQueries(_0x1e363a,_0x6603fd,_0x193aaa[_0x115627(0x1a3)](_0x115627(0x1ca))||undefined),_0x236f8d=[];for(const _0x3d7a99 of _0x20c5ff){const _0x5b0cc8=await computeSqlFileHash(_0x3d7a99[_0x115627(0x190)]),_0x403910=_0x6603fd[_0x115627(0x193)][_0x3d7a99['sqlCode']],_0x15f595=!!_0x403910&&(_0x403910[_0x115627(0x1cc)]!==_0x3d7a99[_0x115627(0x1af)]||!!_0x3d7a99[_0x115627(0x1c4)]&&_0x403910[_0x115627(0x1c4)]!==_0x3d7a99[_0x115627(0x1c4)]);if(!_0x193aaa[_0x115627(0x1a0)]('force')&&_0x403910&&_0x403910['hash']===_0x5b0cc8&&!_0x15f595)continue;_0x236f8d[_0x115627(0x19d)](_0x3d7a99[_0x115627(0x1c7)]);}return{'method':'POST','url':_0x115627(0x1a1),'body':{'sqlCodes':_0x236f8d,'appCode':_0x193aaa[_0x115627(0x1c1)]},'description':_0x115627(0x191)+_0x236f8d[_0x115627(0x198)]+_0x115627(0x1c5)};},async 'execute'(_0x36910a){const _0x1ada4a=a137_0x21b644,_0x8f9f7f=loadSqlProjectConfig(_0x36910a[_0x1ada4a(0x1c1)]),_0x1c1263=await readSqlLockFile(_0x8f9f7f[_0x1ada4a(0x1aa)]),{lockData:_0x93c144,appLock:_0x2b111}=ensureSqlLockScope(_0x1c1263??createEmptySqlLock(),_0x36910a['appCode'],_0x8f9f7f[_0x1ada4a(0x18e)],_0x1ada4a(0x19d)),_0xcc59c2=await getTargetSqlQueries(_0x8f9f7f,_0x2b111,_0x36910a[_0x1ada4a(0x1a3)](_0x1ada4a(0x1ca))||undefined);if(_0xcc59c2[_0x1ada4a(0x198)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x1ada4a(0x19e)};const _0x4643b8=[],_0x2aa9c6=[],_0x3f5835=[];for(const _0x587bdc of _0xcc59c2){const _0x332ab4=_0x2b111[_0x1ada4a(0x193)][_0x587bdc['sqlCode']];if(!_0x332ab4){_0x3f5835[_0x1ada4a(0x19d)]({'sqlCode':_0x587bdc[_0x1ada4a(0x1c7)],'error':_0x1ada4a(0x1be)});continue;}try{const _0x5f4e35=await computeSqlFileHash(_0x587bdc[_0x1ada4a(0x190)]),_0x221306=_0x332ab4['path']!==_0x587bdc[_0x1ada4a(0x1af)]||!!_0x587bdc[_0x1ada4a(0x1c4)]&&_0x332ab4[_0x1ada4a(0x1c4)]!==_0x587bdc[_0x1ada4a(0x1c4)];if(!_0x36910a[_0x1ada4a(0x1a0)](_0x1ada4a(0x1bf))&&_0x332ab4[_0x1ada4a(0x1b9)]===_0x5f4e35&&!_0x221306){_0x2aa9c6[_0x1ada4a(0x19d)]({'sqlCode':_0x587bdc[_0x1ada4a(0x1c7)],'reason':_0x1ada4a(0x194)});continue;}if(_0x332ab4[_0x1ada4a(0x1c6)]==null){_0x3f5835[_0x1ada4a(0x19d)]({'sqlCode':_0x587bdc['sqlCode'],'error':'missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first'});continue;}const _0x4f2a52=await readFile(_0x587bdc[_0x1ada4a(0x190)],_0x1ada4a(0x1b1)),_0x1cd52a=stripLocalSqlMetadata(_0x4f2a52,_0x587bdc[_0x1ada4a(0x19f)]),_0x56852c=_0x587bdc[_0x1ada4a(0x1c4)]||_0x332ab4['sqlName'],_0x1e9c5f=await resolveTargetDbBinding(_0x36910a[_0x1ada4a(0x1c1)],_0x587bdc,_0x332ab4),_0x326f06=await updateSqlQuery({'id':_0x332ab4['remoteId'],'appCode':_0x36910a[_0x1ada4a(0x1c1)],'sqlCode':_0x587bdc[_0x1ada4a(0x1c7)],'sqlName':_0x56852c,'dbId':_0x1e9c5f[_0x1ada4a(0x1bc)],'version':_0x332ab4[_0x1ada4a(0x1c6)],'sqlContent':_0x1cd52a,'sqlConfig':_0x332ab4[_0x1ada4a(0x1a9)]??undefined}),_0x176142=_0x326f06[_0x1ada4a(0x1bc)]?await getDbName(_0x36910a[_0x1ada4a(0x1c1)],Number(_0x326f06[_0x1ada4a(0x1bc)]))[_0x1ada4a(0x1b5)](()=>_0x1e9c5f[_0x1ada4a(0x1ae)]):_0x1e9c5f[_0x1ada4a(0x1ae)];_0x2b111[_0x1ada4a(0x193)][_0x587bdc['sqlCode']]={...buildSqlLockEntry(_0x326f06,_0x1cd52a,_0x5f4e35,{'dbName':_0x176142}),'path':_0x587bdc['relativePath'],'mode':_0x332ab4[_0x1ada4a(0x19f)]},await archivePreviousSqlFileIfNeeded(_0x8f9f7f,_0x332ab4[_0x1ada4a(0x1cc)],_0x587bdc['relativePath']),_0x4643b8[_0x1ada4a(0x19d)]({'sqlCode':_0x587bdc['sqlCode'],'remoteId':_0x332ab4['remoteId']});}catch(_0x3b483a){_0x3f5835['push']({'sqlCode':_0x587bdc[_0x1ada4a(0x1c7)],'error':_0x3b483a instanceof Error?_0x3b483a[_0x1ada4a(0x1a2)]:String(_0x3b483a)});}}return _0x2b111[_0x1ada4a(0x1a6)]=new Date()[_0x1ada4a(0x1ac)](),await writeSqlLockFile(_0x8f9f7f[_0x1ada4a(0x1aa)],_0x93c144),{'ok':_0x3f5835['length']===0x0,'data':{'pushed':_0x4643b8,'skipped':_0x2aa9c6,'failed':_0x3f5835},'message':_0x1ada4a(0x1a5)+_0x4643b8[_0x1ada4a(0x198)]+_0x1ada4a(0x1a7)+_0x2aa9c6['length']+_0x1ada4a(0x1a8)+_0x3f5835[_0x1ada4a(0x198)]+_0x1ada4a(0x1c0)};}};function a137_0x174a(_0x26f7f6,_0x45bdca){_0x26f7f6=_0x26f7f6-0x18c;const _0x2ef245=a137_0x2ef2();let _0x174aad=_0x2ef245[_0x26f7f6];return _0x174aad;}async function archivePreviousSqlFileIfNeeded(_0x43525a,_0x453bfa,_0x514c11){const _0x7feb30=a137_0x21b644;if(!_0x453bfa||_0x453bfa===_0x514c11)return;const _0x561259=join(_0x43525a[_0x7feb30(0x1ad)],_0x453bfa);if(!await fileExists(_0x561259))return;const _0x23e904=await moveToTrash(_0x43525a['projectRoot'],_0x43525a[_0x7feb30(0x18d)],_0x561259);await cleanupEmptyDirectories(dirname(_0x561259),_0x43525a[_0x7feb30(0x1ad)]),void _0x23e904;}async function moveToTrash(_0x2fe335,_0x4afc0a,_0x350436){const _0xece337=a137_0x21b644,_0x396213=new Date()[_0xece337(0x1ac)]()['replace'](/[:.]/g,'-'),_0x4e401b=relative(_0x2fe335,_0x350436),_0x3f9b0f=join(_0x4afc0a,_0x396213,_0x4e401b);return await mkdir(dirname(_0x3f9b0f),{'recursive':!![]}),await rename(_0x350436,_0x3f9b0f),_0x3f9b0f;}async function cleanupEmptyDirectories(_0x27abfb,_0x29f30e){const _0xdb41ae=a137_0x21b644;let _0x4ef1ec=resolve(_0x27abfb);const _0x27b0d5=resolve(_0x29f30e);while(_0x4ef1ec[_0xdb41ae(0x19b)](''+_0x27b0d5+sep)||_0x4ef1ec===_0x27b0d5){if(_0x4ef1ec===_0x27b0d5)return;try{const _0x3333bd=await readdir(_0x4ef1ec);if(_0x3333bd['length']>0x0)return;await rmdir(_0x4ef1ec);}catch{return;}_0x4ef1ec=dirname(_0x4ef1ec);}}async function resolveTargetDbBinding(_0x2fe616,_0x21a234,_0x37ce15){const _0x59edd4=a137_0x21b644,_0x5b26bb=_0x21a234[_0x59edd4(0x1cf)];if(!_0x5b26bb)return{'dbId':_0x37ce15[_0x59edd4(0x1bc)],'dbName':_0x37ce15[_0x59edd4(0x1ae)]};const _0x20ea4b=buildDbDirectoryName(_0x37ce15[_0x59edd4(0x1ae)],_0x37ce15[_0x59edd4(0x1bc)]);if(_0x5b26bb===_0x20ea4b)return{'dbId':_0x37ce15['dbId'],'dbName':_0x37ce15[_0x59edd4(0x1ae)]};const _0x511e00=parseExplicitDbDirectory(_0x5b26bb);if(_0x511e00!=null)return{'dbId':_0x511e00,'dbName':await getDbName(_0x2fe616,_0x511e00)[_0x59edd4(0x1b5)](()=>undefined)};const _0x2ab46f=await listDatabases(_0x2fe616),_0x470388=_0x2ab46f[_0x59edd4(0x19c)](_0x1988b4=>buildDbDirectoryName(_0x1988b4[_0x59edd4(0x1ae)],_0x1988b4['dbId'])===_0x5b26bb);if(_0x470388[_0x59edd4(0x198)]===0x1)return{'dbId':_0x470388[0x0][_0x59edd4(0x1bc)],'dbName':_0x470388[0x0][_0x59edd4(0x1ae)]};if(_0x470388[_0x59edd4(0x198)]===0x0)throw CliErrors[_0x59edd4(0x1b8)](_0x59edd4(0x192)+_0x5b26bb+_0x59edd4(0x199)+_0x21a234['sqlCode']+'.');const _0x5a0aee=_0x470388[_0x59edd4(0x1c2)](_0x522efd=>_0x522efd[_0x59edd4(0x1ae)]+'\x20('+_0x522efd[_0x59edd4(0x1bc)]+')')['join'](',\x20');throw CliErrors['validation']('Local\x20directory\x20\x22'+_0x5b26bb+_0x59edd4(0x1a4)+_0x21a234[_0x59edd4(0x1c7)]+':\x20'+_0x5a0aee);}function parseExplicitDbDirectory(_0xe40fb5){const _0x59ba27=a137_0x21b644,_0x5c20c0=/^db-(\d+)$/['exec'](_0xe40fb5);if(!_0x5c20c0)return null;const _0x2189f0=Number(_0x5c20c0[0x1]);return Number[_0x59ba27(0x1b6)](_0x2189f0)&&_0x2189f0>0x0?_0x2189f0:null;}
|
|
1
|
+
const a138_0x3cc0f7=a138_0x5303;(function(_0x377892,_0x428aed){const _0x9239df=a138_0x5303,_0x4a66fa=_0x377892();while(!![]){try{const _0x4d1f76=-parseInt(_0x9239df(0x9c))/0x1*(parseInt(_0x9239df(0x8a))/0x2)+-parseInt(_0x9239df(0x99))/0x3*(parseInt(_0x9239df(0x80))/0x4)+parseInt(_0x9239df(0xa2))/0x5*(-parseInt(_0x9239df(0x82))/0x6)+-parseInt(_0x9239df(0x7f))/0x7+-parseInt(_0x9239df(0x98))/0x8+-parseInt(_0x9239df(0xb0))/0x9+-parseInt(_0x9239df(0x77))/0xa*(-parseInt(_0x9239df(0xb4))/0xb);if(_0x4d1f76===_0x428aed)break;else _0x4a66fa['push'](_0x4a66fa['shift']());}catch(_0x17e325){_0x4a66fa['push'](_0x4a66fa['shift']());}}}(a138_0x565a,0x8a006));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';function a138_0x565a(){const _0x5c4db8=['Push\x20local\x20SQL\x20files\x20to\x20remote','/smartapi/custom/updateUserCustomSql','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','\x20SQL\x20file(s)','31386LxzCoy','unchanged','get','filePath','toISOString','sqlName','bool','\x20failed','sqlRootDir','version','Would\x20push\x20','sqlCode','exec','Local\x20SQL\x20not\x20found:\x20','8997880ABIBsZ','3RPYZJp','\x20skipped,\x20','sqlConfig','41PmMddi','utf8','sqlcode','lockFilePath','No\x20database\x20matches\x20local\x20directory\x20\x22','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','292310zbJgPD','dbId','str','push','No\x20local\x20SQL\x20files\x20found.','sqls','length','mode','Push\x20complete:\x20','catch','appCode','boolean','isFinite','sqlRoot','1129113cyJXHE','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','path','45265CbsPLJ','sql','POST','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','projectRoot','dbName','startsWith','8440FjQMTK','remoteId','validation','replace','hash','dbDirectory','relativePath','lastSync','845551PqcPGk','299760pvVZKO','force','84jnQoyn','entries','filter','has'];a138_0x565a=function(){return _0x5c4db8;};return a138_0x565a();}import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a138_0x5303(_0x3bcb0f,_0x30b8b3){_0x3bcb0f=_0x3bcb0f-0x73;const _0x565a0b=a138_0x565a();let _0x530384=_0x565a0b[_0x3bcb0f];return _0x530384;}import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x265084,_0x6dde74,_0x3191f6){const _0x296583=a138_0x5303,_0x2febb8=await scanLocalSqlQueries(_0x265084),_0x53bf92=new Map();for(const _0xaf7f54 of _0x2febb8){if(_0x3191f6&&_0xaf7f54[_0x296583(0x95)]!==_0x3191f6)continue;const _0x150199=_0x53bf92[_0x296583(0x8c)](_0xaf7f54[_0x296583(0x95)])??[];_0x150199[_0x296583(0xa5)](_0xaf7f54),_0x53bf92['set'](_0xaf7f54[_0x296583(0x95)],_0x150199);}if(_0x3191f6&&!_0x53bf92[_0x296583(0x85)](_0x3191f6))throw CliErrors['validation'](_0x296583(0x97)+_0x3191f6);const _0x35b560=[];for(const [_0x33270d,_0x50a18f]of _0x53bf92[_0x296583(0x83)]()){if(_0x50a18f[_0x296583(0xa8)]===0x1){_0x35b560[_0x296583(0xa5)](_0x50a18f[0x0]);continue;}const _0x320ff9=_0x6dde74[_0x296583(0xa7)][_0x33270d],_0x2e2549=_0x320ff9?.[_0x296583(0xb3)],_0x5f1892=_0x2e2549?_0x50a18f[_0x296583(0x84)](_0x47d8a1=>_0x47d8a1[_0x296583(0x7d)]!==_0x2e2549):_0x50a18f;if(_0x320ff9&&_0x5f1892[_0x296583(0xa8)]===0x1){_0x35b560['push'](_0x5f1892[0x0]);continue;}throw CliErrors[_0x296583(0x79)](_0x296583(0xb1)+_0x33270d+_0x296583(0x73));}return _0x35b560;}export const sqlPush={'service':a138_0x3cc0f7(0xb5),'command':a138_0x3cc0f7(0xa5),'description':a138_0x3cc0f7(0x86),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a138_0x3cc0f7(0x81),'type':a138_0x3cc0f7(0xad),'description':a138_0x3cc0f7(0x88)}],async 'dryRun'(_0x2fcc79){const _0x3348ba=a138_0x3cc0f7,_0x426b21=loadSqlProjectConfig(_0x2fcc79['appCode']),_0x5cc070=await readSqlLockFile(_0x426b21['lockFilePath']),{appLock:_0x49c3a2}=ensureSqlLockScope(_0x5cc070??createEmptySqlLock(),_0x2fcc79[_0x3348ba(0xac)],_0x426b21[_0x3348ba(0xaf)],_0x3348ba(0xa5)),_0x162300=await getTargetSqlQueries(_0x426b21,_0x49c3a2,_0x2fcc79[_0x3348ba(0xa4)](_0x3348ba(0x9e))||undefined),_0x47cca2=[];for(const _0x285639 of _0x162300){const _0x17b5ff=await computeSqlFileHash(_0x285639['filePath']),_0x3c6125=_0x49c3a2[_0x3348ba(0xa7)][_0x285639[_0x3348ba(0x95)]],_0x2e8e97=!!_0x3c6125&&(_0x3c6125[_0x3348ba(0xb3)]!==_0x285639['relativePath']||!!_0x285639['sqlName']&&_0x3c6125[_0x3348ba(0x8f)]!==_0x285639[_0x3348ba(0x8f)]);if(!_0x2fcc79[_0x3348ba(0x90)](_0x3348ba(0x81))&&_0x3c6125&&_0x3c6125[_0x3348ba(0x7b)]===_0x17b5ff&&!_0x2e8e97)continue;_0x47cca2['push'](_0x285639[_0x3348ba(0x95)]);}return{'method':_0x3348ba(0xb6),'url':_0x3348ba(0x87),'body':{'sqlCodes':_0x47cca2,'appCode':_0x2fcc79[_0x3348ba(0xac)]},'description':_0x3348ba(0x94)+_0x47cca2[_0x3348ba(0xa8)]+_0x3348ba(0x89)};},async 'execute'(_0x145e61){const _0x57b382=a138_0x3cc0f7,_0x582143=loadSqlProjectConfig(_0x145e61[_0x57b382(0xac)]),_0x21ce8f=await readSqlLockFile(_0x582143[_0x57b382(0x9f)]),{lockData:_0x41e6d7,appLock:_0x256263}=ensureSqlLockScope(_0x21ce8f??createEmptySqlLock(),_0x145e61['appCode'],_0x582143[_0x57b382(0xaf)],_0x57b382(0xa5)),_0xc32360=await getTargetSqlQueries(_0x582143,_0x256263,_0x145e61[_0x57b382(0xa4)](_0x57b382(0x9e))||undefined);if(_0xc32360[_0x57b382(0xa8)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x57b382(0xa6)};const _0x396906=[],_0x3242a5=[],_0x468d4a=[];for(const _0x5df7bc of _0xc32360){const _0x2d6579=_0x256263[_0x57b382(0xa7)][_0x5df7bc[_0x57b382(0x95)]];if(!_0x2d6579){_0x468d4a[_0x57b382(0xa5)]({'sqlCode':_0x5df7bc[_0x57b382(0x95)],'error':'local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first'});continue;}try{const _0x2f6c8b=await computeSqlFileHash(_0x5df7bc[_0x57b382(0x8d)]),_0x5bfe1b=_0x2d6579['path']!==_0x5df7bc[_0x57b382(0x7d)]||!!_0x5df7bc[_0x57b382(0x8f)]&&_0x2d6579[_0x57b382(0x8f)]!==_0x5df7bc[_0x57b382(0x8f)];if(!_0x145e61[_0x57b382(0x90)](_0x57b382(0x81))&&_0x2d6579['hash']===_0x2f6c8b&&!_0x5bfe1b){_0x3242a5[_0x57b382(0xa5)]({'sqlCode':_0x5df7bc[_0x57b382(0x95)],'reason':_0x57b382(0x8b)});continue;}if(_0x2d6579[_0x57b382(0x93)]==null){_0x468d4a['push']({'sqlCode':_0x5df7bc[_0x57b382(0x95)],'error':_0x57b382(0xa1)});continue;}const _0x478dfd=await readFile(_0x5df7bc[_0x57b382(0x8d)],_0x57b382(0x9d)),_0x5e6f59=stripLocalSqlMetadata(_0x478dfd,_0x5df7bc[_0x57b382(0xa9)]),_0x4cb2fe=_0x5df7bc[_0x57b382(0x8f)]||_0x2d6579[_0x57b382(0x8f)],_0x29d9a7=await resolveTargetDbBinding(_0x145e61[_0x57b382(0xac)],_0x5df7bc,_0x2d6579),_0x298335=await updateSqlQuery({'id':_0x2d6579['remoteId'],'appCode':_0x145e61[_0x57b382(0xac)],'sqlCode':_0x5df7bc[_0x57b382(0x95)],'sqlName':_0x4cb2fe,'dbId':_0x29d9a7[_0x57b382(0xa3)],'version':_0x2d6579[_0x57b382(0x93)],'sqlContent':_0x5e6f59,'sqlConfig':_0x2d6579[_0x57b382(0x9b)]??undefined}),_0x57c8d2=_0x298335[_0x57b382(0xa3)]?await getDbName(_0x145e61[_0x57b382(0xac)],Number(_0x298335[_0x57b382(0xa3)]))['catch'](()=>_0x29d9a7[_0x57b382(0x75)]):_0x29d9a7[_0x57b382(0x75)];_0x256263[_0x57b382(0xa7)][_0x5df7bc[_0x57b382(0x95)]]={...buildSqlLockEntry(_0x298335,_0x5e6f59,_0x2f6c8b,{'dbName':_0x57c8d2}),'path':_0x5df7bc[_0x57b382(0x7d)],'mode':_0x2d6579[_0x57b382(0xa9)]},await archivePreviousSqlFileIfNeeded(_0x582143,_0x2d6579['path'],_0x5df7bc[_0x57b382(0x7d)]),_0x396906[_0x57b382(0xa5)]({'sqlCode':_0x5df7bc[_0x57b382(0x95)],'remoteId':_0x2d6579[_0x57b382(0x78)]});}catch(_0x2ba4ca){_0x468d4a['push']({'sqlCode':_0x5df7bc[_0x57b382(0x95)],'error':_0x2ba4ca instanceof Error?_0x2ba4ca['message']:String(_0x2ba4ca)});}}return _0x256263[_0x57b382(0x7e)]=new Date()['toISOString'](),await writeSqlLockFile(_0x582143[_0x57b382(0x9f)],_0x41e6d7),{'ok':_0x468d4a[_0x57b382(0xa8)]===0x0,'data':{'pushed':_0x396906,'skipped':_0x3242a5,'failed':_0x468d4a},'message':_0x57b382(0xaa)+_0x396906['length']+'\x20pushed,\x20'+_0x3242a5[_0x57b382(0xa8)]+_0x57b382(0x9a)+_0x468d4a[_0x57b382(0xa8)]+_0x57b382(0x91)};}};async function archivePreviousSqlFileIfNeeded(_0x20f3ec,_0x20ac2a,_0x4f4e08){const _0x272dd1=a138_0x3cc0f7;if(!_0x20ac2a||_0x20ac2a===_0x4f4e08)return;const _0x3b3220=join(_0x20f3ec['sqlRootDir'],_0x20ac2a);if(!await fileExists(_0x3b3220))return;const _0x1d0bf0=await moveToTrash(_0x20f3ec[_0x272dd1(0x74)],_0x20f3ec['trashDir'],_0x3b3220);await cleanupEmptyDirectories(dirname(_0x3b3220),_0x20f3ec[_0x272dd1(0x92)]),void _0x1d0bf0;}async function moveToTrash(_0x12f905,_0x35476c,_0x110ee8){const _0x13bc59=a138_0x3cc0f7,_0x284370=new Date()[_0x13bc59(0x8e)]()[_0x13bc59(0x7a)](/[:.]/g,'-'),_0x553e94=relative(_0x12f905,_0x110ee8),_0x1c5d18=join(_0x35476c,_0x284370,_0x553e94);return await mkdir(dirname(_0x1c5d18),{'recursive':!![]}),await rename(_0x110ee8,_0x1c5d18),_0x1c5d18;}async function cleanupEmptyDirectories(_0x50d4e5,_0x5df95f){const _0x38f588=a138_0x3cc0f7;let _0x1026a1=resolve(_0x50d4e5);const _0x1ab269=resolve(_0x5df95f);while(_0x1026a1[_0x38f588(0x76)](''+_0x1ab269+sep)||_0x1026a1===_0x1ab269){if(_0x1026a1===_0x1ab269)return;try{const _0x24cf0f=await readdir(_0x1026a1);if(_0x24cf0f[_0x38f588(0xa8)]>0x0)return;await rmdir(_0x1026a1);}catch{return;}_0x1026a1=dirname(_0x1026a1);}}async function resolveTargetDbBinding(_0x504932,_0x54c946,_0x14ed1e){const _0x15266c=a138_0x3cc0f7,_0x12e566=_0x54c946[_0x15266c(0x7c)];if(!_0x12e566)return{'dbId':_0x14ed1e[_0x15266c(0xa3)],'dbName':_0x14ed1e['dbName']};const _0x47109e=buildDbDirectoryName(_0x14ed1e['dbName'],_0x14ed1e['dbId']);if(_0x12e566===_0x47109e)return{'dbId':_0x14ed1e['dbId'],'dbName':_0x14ed1e[_0x15266c(0x75)]};const _0x837010=parseExplicitDbDirectory(_0x12e566);if(_0x837010!=null)return{'dbId':_0x837010,'dbName':await getDbName(_0x504932,_0x837010)[_0x15266c(0xab)](()=>undefined)};const _0x45d70b=await listDatabases(_0x504932),_0x14ab2a=_0x45d70b[_0x15266c(0x84)](_0x14932a=>buildDbDirectoryName(_0x14932a['dbName'],_0x14932a[_0x15266c(0xa3)])===_0x12e566);if(_0x14ab2a[_0x15266c(0xa8)]===0x1)return{'dbId':_0x14ab2a[0x0]['dbId'],'dbName':_0x14ab2a[0x0][_0x15266c(0x75)]};if(_0x14ab2a[_0x15266c(0xa8)]===0x0)throw CliErrors[_0x15266c(0x79)](_0x15266c(0xa0)+_0x12e566+'\x22\x20for\x20sqlCode\x20'+_0x54c946[_0x15266c(0x95)]+'.');const _0x5ea6c7=_0x14ab2a['map'](_0x19e63f=>_0x19e63f[_0x15266c(0x75)]+'\x20('+_0x19e63f[_0x15266c(0xa3)]+')')['join'](',\x20');throw CliErrors[_0x15266c(0x79)]('Local\x20directory\x20\x22'+_0x12e566+_0x15266c(0xb2)+_0x54c946[_0x15266c(0x95)]+':\x20'+_0x5ea6c7);}function parseExplicitDbDirectory(_0x5ac461){const _0x35681e=a138_0x3cc0f7,_0x58071d=/^db-(\d+)$/[_0x35681e(0x96)](_0x5ac461);if(!_0x58071d)return null;const _0x55ab4e=Number(_0x58071d[0x1]);return Number[_0x35681e(0xae)](_0x55ab4e)&&_0x55ab4e>0x0?_0x55ab4e:null;}
|
package/lib/commands/sql/save.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a139_0x405dda=a139_0x5b1c;(function(_0x1f3ef5,_0x463f5a){const _0x2b2415=a139_0x5b1c,_0x342034=_0x1f3ef5();while(!![]){try{const _0x4c3c3b=parseInt(_0x2b2415(0x1e1))/0x1*(parseInt(_0x2b2415(0x1ec))/0x2)+parseInt(_0x2b2415(0x1db))/0x3+parseInt(_0x2b2415(0x1e4))/0x4*(parseInt(_0x2b2415(0x1df))/0x5)+-parseInt(_0x2b2415(0x1e9))/0x6+-parseInt(_0x2b2415(0x1e7))/0x7+-parseInt(_0x2b2415(0x1d9))/0x8+parseInt(_0x2b2415(0x1e2))/0x9*(-parseInt(_0x2b2415(0x1e6))/0xa);if(_0x4c3c3b===_0x463f5a)break;else _0x342034['push'](_0x342034['shift']());}catch(_0x4f5857){_0x342034['push'](_0x342034['shift']());}}}(a139_0x37d6,0x93480));function a139_0x37d6(){const _0x37d2c4=['5693SbbMGv','2226006GtAMbx','string','172zQOpCN','SQL\x20query\x20display\x20name','10XHIIsz','1722371tgORKh','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`.','2922630VqltAs','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','validation','84HOcjMv','join','3906752zqzSet','save','3083070mOYSoo','Query\x20description','sql','write','93640oZwnbr','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.'];a139_0x37d6=function(){return _0x37d2c4;};return a139_0x37d6();}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=['`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.',a139_0x405dda(0x1e0),a139_0x405dda(0x1e8)][a139_0x405dda(0x1ed)]('\x0a');function a139_0x5b1c(_0x29ca27,_0x1141b3){_0x29ca27=_0x29ca27-0x1d9;const _0x37d6cd=a139_0x37d6();let _0x5b1cd2=_0x37d6cd[_0x29ca27];return _0x5b1cd2;}export const sqlSave={'service':a139_0x405dda(0x1dd),'command':a139_0x405dda(0x1da),'description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':a139_0x405dda(0x1de),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':'file','type':'string','required':!![],'description':'Path\x20to\x20the\x20SQL\x20file'},SQLCODE_FLAG_OPTIONAL,{'name':'sqlname','type':a139_0x405dda(0x1e3),'description':a139_0x405dda(0x1e5)},{'name':'db','type':a139_0x405dda(0x1e3),'description':a139_0x405dda(0x1ea)},{'name':'description','type':a139_0x405dda(0x1e3),'description':a139_0x405dda(0x1dc)}],async 'validate'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x2c5f72=a139_0x405dda;throw CliErrors[_0x2c5f72(0x1eb)](SQL_SAVE_DEPRECATED_HINT);}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a140_0x12778d=a140_0x2b8f;(function(_0x31f0c8,_0x5d2cf7){const _0x22b1a9=a140_0x2b8f,_0x509a32=_0x31f0c8();while(!![]){try{const _0x2531af=parseInt(_0x22b1a9(0x1a7))/0x1*(parseInt(_0x22b1a9(0x1bf))/0x2)+parseInt(_0x22b1a9(0x1ce))/0x3*(-parseInt(_0x22b1a9(0x1c7))/0x4)+parseInt(_0x22b1a9(0x1c0))/0x5*(-parseInt(_0x22b1a9(0x1c9))/0x6)+-parseInt(_0x22b1a9(0x1b4))/0x7*(-parseInt(_0x22b1a9(0x1ca))/0x8)+parseInt(_0x22b1a9(0x1cc))/0x9*(parseInt(_0x22b1a9(0x1ac))/0xa)+parseInt(_0x22b1a9(0x1b1))/0xb*(parseInt(_0x22b1a9(0x1b7))/0xc)+-parseInt(_0x22b1a9(0x1c3))/0xd;if(_0x2531af===_0x5d2cf7)break;else _0x509a32['push'](_0x509a32['shift']());}catch(_0x4cdadd){_0x509a32['push'](_0x509a32['shift']());}}}(a140_0x1044,0x3732c));function a140_0x2b8f(_0x1facbb,_0xa9e437){_0x1facbb=_0x1facbb-0x1a2;const _0x1044aa=a140_0x1044();let _0x2b8f7e=_0x1044aa[_0x1facbb];return _0x2b8f7e;}import{createInterface}from'node:readline';import{join}from'node:path';function a140_0x1044(){const _0x3ffa27=['sqls','dbName','<!--\x20@lovrabet.','toLowerCase','endsWith','description','11TPsSat','includes','syncedAt','sqlContent','mybatisXml','603210FzLuBf','filter','lastSync','yes','sqlCode','13783MIHxaS','version','apps','7eXioRy','length','path','3864FMdyhi','sqlConfig','trim','close','trimStart','map','.rabetbase/sql','sqlRoot','38358GvLdfa','25fqghAA','mode','stderr','7881107vZGAJU','join','dbId','split','8KAmpqn','test','19554PZOcUc','2741944becEpz','sqlName','36gTAJch','fromEntries','524754hJjnsl','push'];a140_0x1044=function(){return _0x3ffa27;};return a140_0x1044();}import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a140_0x12778d(0x1bd);export function buildSqlLockEntry(_0x23ff09,_0x32ada0,_0x4c8728,_0x301642){const _0x45c3e0=a140_0x12778d,_0x10289b=detectSqlMode(_0x32ada0);return{'path':buildSqlRelativePath(_0x23ff09[_0x45c3e0(0x1b0)],_0x23ff09[_0x45c3e0(0x1cb)],_0x301642?.[_0x45c3e0(0x1a2)],_0x10289b,_0x23ff09[_0x45c3e0(0x1c5)]),'hash':_0x4c8728,'remoteId':_0x23ff09['id'],'version':_0x23ff09[_0x45c3e0(0x1b2)],'dbId':Number(_0x23ff09[_0x45c3e0(0x1c5)]),'dbName':_0x301642?.[_0x45c3e0(0x1a2)],'sqlName':_0x23ff09[_0x45c3e0(0x1cb)],'sqlConfig':_0x23ff09[_0x45c3e0(0x1b8)]??undefined,'mode':_0x10289b};}export function cloneSqlLockData(_0x4a728b){const _0x114463=a140_0x12778d;return{'apps':Object[_0x114463(0x1cd)](Object['entries'](_0x4a728b[_0x114463(0x1b3)])[_0x114463(0x1bc)](([_0x3c7061,_0x342955])=>[_0x3c7061,{'sqlRoot':_0x342955[_0x114463(0x1be)],'lastSync':_0x342955[_0x114463(0x1ae)],'sqls':{..._0x342955[_0x114463(0x1d0)]}}]))};}export function ensureRemoteSqlContent(_0x103f28){const _0x491a40=a140_0x12778d;return _0x103f28[_0x491a40(0x1aa)]??'';}export function buildLocalSqlFileContent(_0x18cea0,_0xcfaee1,_0x257cfe){const _0x3c7152=a140_0x12778d,_0x4592c2=_0x257cfe?.['mode']??detectSqlMode(_0xcfaee1),_0x301986=stripLocalSqlMetadata(_0xcfaee1,_0x4592c2)[_0x3c7152(0x1b9)](),_0x5e20c1=[...buildMetadataHeaderLines({'sqlCode':_0x18cea0[_0x3c7152(0x1b0)],'sqlName':_0x18cea0[_0x3c7152(0x1cb)],'dbId':_0x18cea0['dbId'],'dbName':_0x257cfe?.[_0x3c7152(0x1a2)],'mode':_0x4592c2,'syncedAt':_0x257cfe?.[_0x3c7152(0x1a9)],'description':_0x257cfe?.[_0x3c7152(0x1a6)]},_0x4592c2),'',_0x301986],_0xe930e7=_0x5e20c1[_0x3c7152(0x1c4)]('\x0a');return _0xe930e7[_0x3c7152(0x1a5)]('\x0a')?_0xe930e7:_0xe930e7+'\x0a';}export function stripLocalSqlMetadata(_0x580173,_0x34d8e0){const _0x5a4f99=a140_0x12778d,_0x32bd05=_0x580173['replace'](/\r\n/g,'\x0a')[_0x5a4f99(0x1c6)]('\x0a'),_0x525526=[];let _0x4adf8e=0x0;if(_0x34d8e0===_0x5a4f99(0x1ab))while(_0x4adf8e<_0x32bd05[_0x5a4f99(0x1b5)]){const _0x199414=_0x32bd05[_0x4adf8e]??'';if(/^\s*<!--\s*@lovrabet\./[_0x5a4f99(0x1c8)](_0x199414)){_0x4adf8e++;continue;}if(_0x199414[_0x5a4f99(0x1b9)]()===''&&_0x4adf8e>0x0){_0x4adf8e++;continue;}break;}else while(_0x4adf8e<_0x32bd05['length']){const _0x7d8ef8=_0x32bd05[_0x4adf8e]??'';if(/^\s*--\s*@lovrabet\./[_0x5a4f99(0x1c8)](_0x7d8ef8)){_0x4adf8e++;continue;}if(_0x7d8ef8[_0x5a4f99(0x1b9)]()===''&&_0x4adf8e>0x0){_0x4adf8e++;continue;}break;}for(;_0x4adf8e<_0x32bd05[_0x5a4f99(0x1b5)];_0x4adf8e++){_0x525526[_0x5a4f99(0x1cf)](_0x32bd05[_0x4adf8e]);}return _0x525526[_0x5a4f99(0x1c4)]('\x0a')[_0x5a4f99(0x1bb)]();}export function resolveSqlMode(_0x29bdfc,_0x11c291){const _0x2e2881=a140_0x12778d;if(_0x11c291?.[_0x2e2881(0x1c1)])return _0x11c291[_0x2e2881(0x1c1)];return detectSqlMode(_0x29bdfc);}export function resolveSqlFileName(_0x2edd6b,_0x51b611,_0x34638b){const _0x1ba784=a140_0x12778d;if(_0x34638b?.[_0x1ba784(0x1b6)])return _0x34638b[_0x1ba784(0x1b6)];if(_0x34638b?.[_0x1ba784(0x1cb)]||_0x34638b?.['dbName'])return buildSqlRelativePath(_0x2edd6b,_0x34638b?.[_0x1ba784(0x1cb)],_0x34638b?.[_0x1ba784(0x1a2)],resolveSqlMode(_0x51b611,_0x34638b),_0x34638b?.['dbId']);return buildDefaultSqlFileName(_0x2edd6b,resolveSqlMode(_0x51b611,_0x34638b));}export function resolveSqlLocalDir(_0x3d2963,_0x68c36){return join(_0x3d2963,SQL_LOCAL_REL_DIR,_0x68c36);}export async function confirmForceOverwrite(_0x621952){const _0x3fbf76=a140_0x12778d,_0x48476c=createInterface({'input':process['stdin'],'output':process[_0x3fbf76(0x1c2)]}),_0x1c3706=await new Promise(_0x77300f=>{_0x48476c['question'](_0x621952+'\x20[y/N]\x20',_0x77300f);});return _0x48476c[_0x3fbf76(0x1ba)](),['y',_0x3fbf76(0x1af)][_0x3fbf76(0x1a8)](_0x1c3706['trim']()[_0x3fbf76(0x1a4)]());}export function findSqlLockScope(_0x2bdf95,_0x58e272){return _0x2bdf95['apps'][_0x58e272];}function buildMetadataHeaderLines(_0x5e1e7e,_0x6b410a){const _0x4496cf=a140_0x12778d,_0x33bea8=[['sqlCode',_0x5e1e7e[_0x4496cf(0x1b0)]],['sqlName',_0x5e1e7e['sqlName']],[_0x4496cf(0x1c5),_0x5e1e7e['dbId']],['dbName',_0x5e1e7e[_0x4496cf(0x1a2)]],[_0x4496cf(0x1c1),_0x5e1e7e[_0x4496cf(0x1c1)]],[_0x4496cf(0x1a9),_0x5e1e7e[_0x4496cf(0x1a9)]],['description',_0x5e1e7e[_0x4496cf(0x1a6)]]];if(_0x6b410a===_0x4496cf(0x1ab))return _0x33bea8[_0x4496cf(0x1ad)](([,_0x5ca1d0])=>_0x5ca1d0!==undefined&&_0x5ca1d0!==null&&String(_0x5ca1d0)[_0x4496cf(0x1b9)]()!=='')['map'](([_0x5a42e9,_0x2e9dd3])=>_0x4496cf(0x1a3)+_0x5a42e9+':\x20'+String(_0x2e9dd3)+'\x20-->');return _0x33bea8[_0x4496cf(0x1ad)](([,_0x57d9f2])=>_0x57d9f2!==undefined&&_0x57d9f2!==null&&String(_0x57d9f2)['trim']()!=='')['map'](([_0x228cd6,_0x18a93c])=>'--\x20@lovrabet.'+_0x228cd6+':\x20'+String(_0x18a93c));}
|