@lovrabet/rabetbase-cli 2.1.7-beta.2 → 2.1.7-beta.3
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/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-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/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/link-create.js +1 -1
- package/lib/commands/dataset/link-delete.js +1 -1
- package/lib/commands/dataset/link-shared.js +1 -1
- package/lib/commands/dataset/link-update.js +1 -1
- package/lib/commands/dataset/links.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.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/report.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/index.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/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/skill/index.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/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.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/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 a110_0x6fce1e=a110_0xdac6;(function(_0x11aae9,_0x1728fb){const _0x4d2804=a110_0xdac6,_0x6f9f95=_0x11aae9();while(!![]){try{const _0x504107=parseInt(_0x4d2804(0x148))/0x1*(parseInt(_0x4d2804(0x142))/0x2)+-parseInt(_0x4d2804(0x14e))/0x3+parseInt(_0x4d2804(0x121))/0x4+-parseInt(_0x4d2804(0x13b))/0x5*(-parseInt(_0x4d2804(0x144))/0x6)+parseInt(_0x4d2804(0x13e))/0x7*(-parseInt(_0x4d2804(0x11c))/0x8)+-parseInt(_0x4d2804(0x120))/0x9*(-parseInt(_0x4d2804(0x143))/0xa)+-parseInt(_0x4d2804(0x12d))/0xb*(parseInt(_0x4d2804(0x12a))/0xc);if(_0x504107===_0x1728fb)break;else _0x6f9f95['push'](_0x6f9f95['shift']());}catch(_0x3ab20f){_0x6f9f95['push'](_0x6f9f95['shift']());}}}(a110_0x19b1,0xd28dc));import{apiDefinitions}from'../commands/api/index.js';import{bffDefinitions}from'../commands/bff/index.js';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{configDefinitions}from'../commands/config/index.js';import{doctorDefinition}from'../commands/doctor.js';import{updateDefinition}from'../commands/cli-update.js';import{schemaDefinition}from'../commands/schema.js';import{issueDefinitions}from'../commands/issue/index.js';import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{skillDefinitions}from'../commands/skill/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();function a110_0xdac6(_0x3052d5,_0x41fba9){_0x3052d5=_0x3052d5-0x119;const _0x19b170=a110_0x19b1();let _0xdac67=_0x19b170[_0x3052d5];return _0xdac67;}export const serviceGroups=new Map();function registerDefinitions(_0x13c901){const _0x4f9510=a110_0xdac6;for(const _0x3b4766 of _0x13c901){definitions[_0x4f9510(0x134)](_0x3b4766[_0x4f9510(0x147)]+':'+_0x3b4766[_0x4f9510(0x12f)],_0x3b4766);let _0x53a7e2=serviceGroups[_0x4f9510(0x136)](_0x3b4766[_0x4f9510(0x147)]);!_0x53a7e2&&(_0x53a7e2=[],serviceGroups[_0x4f9510(0x134)](_0x3b4766[_0x4f9510(0x147)],_0x53a7e2)),_0x53a7e2['push'](_0x3b4766);}}function registerDeclarativeService(_0x600229,_0xd4a57d,_0x47b406){const _0x36507b=a110_0xdac6;registerDefinitions(_0xd4a57d);_0x47b406?.[_0x36507b(0x128)]&®isterDefinitions([_0x47b406[_0x36507b(0x128)]]);const _0x493651=_0x36415f=>_0x36415f===_0x36507b(0x119)?'':_0x36415f===_0x36507b(0x11d)?'\x20\x20[write]':_0x36507b(0x135),_0xe2b8c8={'service':_0xd4a57d[0x0][_0x36507b(0x147)],'label':_0x600229,'commands':_0xd4a57d[_0x36507b(0x133)](_0x6a1355=>({'command':_0x6a1355[_0x36507b(0x12f)],'description':_0x6a1355[_0x36507b(0x12e)],'tag':_0x493651(_0x6a1355[_0x36507b(0x13c)])})),'declarative':!![],'defaultCommand':_0x47b406?.[_0x36507b(0x12b)]??(_0x47b406?.[_0x36507b(0x127)]?_0xd4a57d[0x0][_0x36507b(0x12f)]:undefined),'wildcardDef':_0x47b406?.[_0x36507b(0x128)],'isSingleCommand':_0x47b406?.[_0x36507b(0x127)]};serviceRegistry[_0x36507b(0x122)](_0xe2b8c8),serviceByName[_0x36507b(0x134)](_0xe2b8c8[_0x36507b(0x147)],_0xe2b8c8);}registerDeclarativeService('Quick\x20Start',initDefinitions,{'defaultCommand':'run','isSingleCommand':!![]}),registerDeclarativeService(a110_0x6fce1e(0x11b),projectDefinitions),registerDeclarativeService(a110_0x6fce1e(0x124),appDefinitions),registerDeclarativeService('Run\x20Scripts',[runDefinition],{'wildcardDef':runDefinition});{const last=serviceRegistry[serviceRegistry['length']-0x1];last[a110_0x6fce1e(0x11e)]=[{'command':'<script>','description':a110_0x6fce1e(0x13a),'tag':''}];}registerDeclarativeService(a110_0x6fce1e(0x130),authDefinitions,{'defaultCommand':a110_0x6fce1e(0x138)}),registerDeclarativeService(a110_0x6fce1e(0x131),[updateDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a110_0x6fce1e(0x132),[doctorDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a110_0x6fce1e(0x14c),[schemaDefinition],{'isSingleCommand':!![]}),registerDeclarativeService('Configuration',configDefinitions),registerDeclarativeService('Platform\x20Issue',issueDefinitions),registerDeclarativeService(a110_0x6fce1e(0x14f),apiDefinitions),registerDeclarativeService(a110_0x6fce1e(0x11f),menuDefinitions),registerDeclarativeService(a110_0x6fce1e(0x123),dbDefinitions),registerDeclarativeService(a110_0x6fce1e(0x126),datasetDefinitions),registerDeclarativeService(a110_0x6fce1e(0x125),pageDefinitions),registerDeclarativeService(a110_0x6fce1e(0x140),dataDefinitions),registerDeclarativeService('BFF\x20Scripts',bffDefinitions),registerDeclarativeService(a110_0x6fce1e(0x149),sqlDefinitions),registerDeclarativeService(a110_0x6fce1e(0x141),codegenDefinitions),registerDeclarativeService('Skills',skillDefinitions),registerDeclarativeService(a110_0x6fce1e(0x11a),logsDefinitions,{'defaultCommand':a110_0x6fce1e(0x12c)});export const deprecatedAliases={'create':{'service':a110_0x6fce1e(0x14d),'command':a110_0x6fce1e(0x137)},'start':{'service':a110_0x6fce1e(0x145),'command':'start'},'build':{'service':a110_0x6fce1e(0x145),'command':a110_0x6fce1e(0x14b)},'preview':{'service':a110_0x6fce1e(0x145),'command':'preview'},'logout':{'service':a110_0x6fce1e(0x14a),'command':a110_0x6fce1e(0x139)},'skills':{'service':a110_0x6fce1e(0x13f),'command':'install'}};export const deprecatedSubcommands={'bff':{'new':a110_0x6fce1e(0x137)},'sql':{'new':a110_0x6fce1e(0x137)}};export function resolveDeprecatedSubcommand(_0x246cfa,_0x86c308){return deprecatedSubcommands[_0x246cfa]?.[_0x86c308];}export function findDefinition(_0x1ec12e,_0x1d2d9a){const _0x427af8=a110_0x6fce1e;return definitions[_0x427af8(0x136)](_0x1ec12e+':'+_0x1d2d9a);}export function isKnownService(_0x1f993f){const _0x20abec=a110_0x6fce1e;return serviceByName[_0x20abec(0x129)](_0x1f993f);}export function isDeclarativeService(_0x110617){const _0x35ac35=a110_0x6fce1e;return serviceGroups[_0x35ac35(0x129)](_0x110617)||serviceByName[_0x35ac35(0x136)](_0x110617)?.[_0x35ac35(0x128)]!==undefined;}export function getServiceEntry(_0x3cb0df){return serviceByName['get'](_0x3cb0df);}export function getLegacyHandler(_0x54981a,_0x25d327){return undefined;}function a110_0x19b1(){const _0xab184=['Logs','Project','92096HyOsaz','write','commands','Menu','81EaNNkk','1976952dVZSMK','push','Database\x20Connections','App\x20Management','Pages','Dataset\x20&\x20Operations','isSingleCommand','wildcardDef','has','3078336rSxWMu','defaultCommand','show','33XNSulh','description','command','Authentication','Self\x20Update','Diagnostics','map','set','\x20\x20[high-risk-write]','get','create','login','logout','Run\x20any\x20package.json\x20script','5qLmQMA','risk','values','994fulRpq','skill','Data\x20Query','Code\x20Generation','101098zsSSIX','1632730DpTFre','6765954ReqgOc','run','from','service','18mbpEkd','SQL\x20Queries','auth','build','Schema','project','2203560wlojYV','API','read'];a110_0x19b1=function(){return _0xab184;};return a110_0x19b1();}export function getAllDefinitions(){const _0x267511=a110_0x6fce1e;return Array[_0x267511(0x146)](definitions[_0x267511(0x13d)]());}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a111_0x137354=a111_0x1825;(function(_0x2a4e65,_0x267cea){const _0xf2eba2=a111_0x1825,_0x2fcb3e=_0x2a4e65();while(!![]){try{const _0x4fbf4f=parseInt(_0xf2eba2(0xf9))/0x1*(parseInt(_0xf2eba2(0x102))/0x2)+parseInt(_0xf2eba2(0x12a))/0x3*(parseInt(_0xf2eba2(0x134))/0x4)+parseInt(_0xf2eba2(0x10c))/0x5*(parseInt(_0xf2eba2(0x10d))/0x6)+parseInt(_0xf2eba2(0x121))/0x7*(parseInt(_0xf2eba2(0x113))/0x8)+-parseInt(_0xf2eba2(0x136))/0x9+-parseInt(_0xf2eba2(0x10a))/0xa*(-parseInt(_0xf2eba2(0x110))/0xb)+-parseInt(_0xf2eba2(0x123))/0xc;if(_0x4fbf4f===_0x267cea)break;else _0x2fcb3e['push'](_0x2fcb3e['shift']());}catch(_0x3930e2){_0x2fcb3e['push'](_0x2fcb3e['shift']());}}}(a111_0x3d12,0x3ed15));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([a111_0x137354(0x10f),a111_0x137354(0x125)]);function readPackageScripts(_0x62f5b9){const _0x351361=a111_0x137354,_0x2bb0d9=resolve(_0x62f5b9,_0x351361(0xfd));if(!existsSync(_0x2bb0d9))return null;try{const _0x2e646e=JSON['parse'](readFileSync(_0x2bb0d9,'utf-8'));return _0x2e646e[_0x351361(0xfc)]??{};}catch{return null;}}function a111_0x3d12(){const _0x50fcc0=['package.json','entries','inherit','cwd','--watch','36gmnSxk','\x20run\x20preview','push','pnpm-lock.yaml','error','keys','validation','length','2870220CWXZtm','No\x20scripts\x20defined\x20in\x20package.json.','2089415mdGGAX','6YDxwDC','bun','start','11TTkQwd','No\x20package.json\x20found\x20in\x20current\x20directory.','\x22\x20not\x20found\x20in\x20package.json.','16zczIWV','yarn','yarn.lock','read','bun.lock','Enable\x20watch\x20mode\x20for\x20preview','has','\x20\x20\x20\x20','padEnd','\x20run\x20<script>\x0a','run','\x20run\x20preview\x20--watch\x20\x20\x20#\x20parallel\x20build\x20--watch\x20+\x20preview','\x20run\x20','bool','1280482PMAZtf','belowMinimum','14351496AkClJI','pnpm','dev','map','Available:\x20','vite\x20preview\x20exited\x20with\x20code\x20','log','1486755cHTrPQ','npm','join','vite','Run\x20a\x20package.json\x20script','build','script','.bin','watch','\x20run\x20build','4padIGo','needsUpgrade','3296115mGwyeO','\x20\x20AVAILABLE\x20SCRIPTS\x20\x20(current\x20project)','preview','args','node_modules','close','bun.lockb','boolean','\x0a\x20\x20Available\x20scripts:\x0a','14064ybuiSs','\x20exited\x20with\x20code\x20','max','scripts'];a111_0x3d12=function(){return _0x50fcc0;};return a111_0x3d12();}function detectPackageManager(_0xe9c316){const _0x4b6257=a111_0x137354;if(existsSync(resolve(_0xe9c316,_0x4b6257(0x13c)))||existsSync(resolve(_0xe9c316,_0x4b6257(0x117))))return _0x4b6257(0x10e);if(existsSync(resolve(_0xe9c316,_0x4b6257(0x105))))return _0x4b6257(0x124);if(existsSync(resolve(_0xe9c316,_0x4b6257(0x115))))return _0x4b6257(0x114);return _0x4b6257(0x12b);}async function versionCheck(_0x2bfa70){const _0x475ba2=a111_0x137354,_0x735c7d=await checkCliVersion();(_0x735c7d[_0x475ba2(0x135)]||_0x735c7d[_0x475ba2(0x122)])&&(printCliUpgradeWarning(_0x735c7d),assertCliVersionSupported(_0x735c7d));const _0x4edac9=await checkSdkVersion(_0x2bfa70);if(_0x4edac9[_0x475ba2(0x135)])printSdkUpgradeWarning(_0x4edac9);}function spawnScript(_0x281c0b,_0x527355,_0x2844d1,_0x1f5a4b){return new Promise((_0xdf49b8,_0x29714f)=>{const _0x5394ba=a111_0x1825,_0x17b2a9=[_0x5394ba(0x11d),_0x527355,..._0x2844d1],_0xe887e1=spawn(_0x281c0b,_0x17b2a9,{'cwd':_0x1f5a4b,'stdio':_0x5394ba(0xff),'shell':!![],'env':{...process.env,'PATH':''+join(_0x1f5a4b,_0x5394ba(0x13a),_0x5394ba(0x131))+delimiter+process.env.PATH}});_0xe887e1['on']('close',_0x22e043=>{const _0x415405=_0x5394ba;if(_0x22e043===0x0||_0x22e043===null)_0xdf49b8();else _0x29714f(new Error(_0x281c0b+_0x415405(0x11f)+_0x527355+_0x415405(0xfa)+_0x22e043));}),_0xe887e1['on']('error',_0x29714f);});}function spawnViteBuildWatch(_0xd39876){return new Promise((_0x23c636,_0x186f2e)=>{const _0x413575=a111_0x1825,_0x34df0b=spawn(_0x413575(0x12d),[_0x413575(0x12f),_0x413575(0x101)],{'cwd':_0xd39876,'stdio':_0x413575(0xff),'shell':!![],'env':{...process.env,'PATH':''+join(_0xd39876,'node_modules',_0x413575(0x131))+delimiter+process.env.PATH}});_0x34df0b['on']('close',_0x33eec1=>{if(_0x33eec1===0x0||_0x33eec1===null)_0x23c636();else _0x186f2e(new Error('vite\x20build\x20--watch\x20exited\x20with\x20code\x20'+_0x33eec1));}),_0x34df0b['on']('error',_0x186f2e);});}function spawnVitePreview(_0x5e65b6){return new Promise((_0x1d7fe8,_0x39a200)=>{const _0x1b0f77=a111_0x1825,_0x2e4972=spawn(_0x1b0f77(0x12d),[_0x1b0f77(0x138)],{'cwd':_0x5e65b6,'stdio':_0x1b0f77(0xff),'shell':!![],'env':{...process.env,'PATH':''+join(_0x5e65b6,'node_modules',_0x1b0f77(0x131))+delimiter+process.env.PATH}});_0x2e4972['on'](_0x1b0f77(0x13b),_0xbb510a=>{const _0x532a06=_0x1b0f77;if(_0xbb510a===0x0||_0xbb510a===null)_0x1d7fe8();else _0x39a200(new Error(_0x532a06(0x128)+_0xbb510a));}),_0x2e4972['on'](_0x1b0f77(0x106),_0x39a200);});}const runFlags=[{'name':'watch','type':a111_0x137354(0x13d),'description':a111_0x137354(0x118),'default':![]}];function a111_0x1825(_0x2759db,_0x3d376a){_0x2759db=_0x2759db-0xf8;const _0x3d124b=a111_0x3d12();let _0x1825eb=_0x3d124b[_0x2759db];return _0x1825eb;}export const runDefinition={'service':a111_0x137354(0x11d),'command':a111_0x137354(0x11d),'description':a111_0x137354(0x12e),'risk':a111_0x137354(0x116),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a111_0x137354(0x130),'description':'Script\x20name\x20defined\x20in\x20package.json','required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x4c7a58=a111_0x137354,_0x3f973a=readPackageScripts(process[_0x4c7a58(0x100)]()),_0x4364ba=[];if(_0x3f973a&&Object['keys'](_0x3f973a)[_0x4c7a58(0x109)]>0x0){const _0x999bdf=Object['keys'](_0x3f973a),_0xaa019f=Math[_0x4c7a58(0xfb)](..._0x999bdf[_0x4c7a58(0x126)](_0x1bf304=>_0x1bf304[_0x4c7a58(0x109)]));_0x4364ba['push'](_0x4c7a58(0x137));for(const [_0x195107,_0xf0e247]of Object[_0x4c7a58(0xfe)](_0x3f973a)){_0x4364ba[_0x4c7a58(0x104)](_0x4c7a58(0x11a)+CLI_BIN_NAME+_0x4c7a58(0x11f)+_0x195107['padEnd'](_0xaa019f+0x2)+'#\x20'+_0xf0e247);}}else _0x4364ba[_0x4c7a58(0x104)]('\x20\x20EXAMPLES'),_0x4364ba['push'](_0x4c7a58(0x11a)+CLI_BIN_NAME+'\x20run\x20start'),_0x4364ba['push']('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x4c7a58(0x133)),_0x4364ba[_0x4c7a58(0x104)](_0x4c7a58(0x11a)+CLI_BIN_NAME+_0x4c7a58(0x103)),_0x4364ba['push'](_0x4c7a58(0x11a)+CLI_BIN_NAME+_0x4c7a58(0x11e));return _0x4364ba[_0x4c7a58(0x12c)]('\x0a');},async 'execute'(_0x4b2d10){const _0x27fb1e=a111_0x137354,_0x2ff04a=process[_0x27fb1e(0x100)](),_0xc76fe1=_0x4b2d10['args'][0x0],_0x1c414b=_0x4b2d10[_0x27fb1e(0x139)]['slice'](0x1),_0x17dbb8=readPackageScripts(_0x2ff04a);if(!_0x17dbb8)throw CliErrors['validation'](_0x27fb1e(0x111));if(!_0xc76fe1){const _0x582cfe=Object[_0x27fb1e(0x107)](_0x17dbb8);if(_0x582cfe[_0x27fb1e(0x109)]===0x0)console[_0x27fb1e(0x129)](_0x27fb1e(0x10b));else{console[_0x27fb1e(0x129)](_0x27fb1e(0xf8));const _0x515b98=Math[_0x27fb1e(0xfb)](..._0x582cfe[_0x27fb1e(0x126)](_0x1dba2d=>_0x1dba2d['length']));for(const [_0x29e912,_0x790106]of Object[_0x27fb1e(0xfe)](_0x17dbb8)){console[_0x27fb1e(0x129)]('\x20\x20\x20\x20'+_0x29e912[_0x27fb1e(0x11b)](_0x515b98+0x2)+_0x790106);}console[_0x27fb1e(0x129)]('\x0a\x20\x20Usage:\x20'+CLI_BIN_NAME+_0x27fb1e(0x11c));}return{'ok':!![]};}if(!_0x17dbb8[_0xc76fe1])throw CliErrors[_0x27fb1e(0x108)]('Script\x20\x22'+_0xc76fe1+_0x27fb1e(0x112),_0x27fb1e(0x127)+(Object[_0x27fb1e(0x107)](_0x17dbb8)[_0x27fb1e(0x12c)](',\x20')||'(none)'));const _0x1dcc8a=detectPackageManager(_0x2ff04a);VERSION_CHECK_SCRIPTS[_0x27fb1e(0x119)](_0xc76fe1)&&await versionCheck(_0x2ff04a);if(_0xc76fe1===_0x27fb1e(0x138)&&_0x4b2d10[_0x27fb1e(0x120)](_0x27fb1e(0x132)))return await Promise['all']([spawnViteBuildWatch(_0x2ff04a),spawnVitePreview(_0x2ff04a)]),{'ok':!![]};return await spawnScript(_0x1dcc8a,_0xc76fe1,_0x1c414b,_0x2ff04a),{'ok':!![]};}};
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a112_0x13a01f=a112_0xb921;function a112_0x3fe4(){const _0x1b17ed=['8754earJoY','1159214eTOkiy','read','8Xdkokp','70aawVQb','Export\x20machine-readable\x20command\x20schema\x20(JSON)','15qeOnwj','557674nySPGW','json','1004iFxUrO','69350CQIkmt','export','120ZnqbFN','174295VcLvLh','1036506idIrvu','297sOYvps','2823CzwuyD','5MzvKIy'];a112_0x3fe4=function(){return _0x1b17ed;};return a112_0x3fe4();}function a112_0xb921(_0x30314e,_0x32502a){_0x30314e=_0x30314e-0x171;const _0x3fe4bb=a112_0x3fe4();let _0xb92100=_0x3fe4bb[_0x30314e];return _0xb92100;}(function(_0x2b6aa2,_0x2a8dd3){const _0x154962=a112_0xb921,_0x1693c2=_0x2b6aa2();while(!![]){try{const _0x5368e7=parseInt(_0x154962(0x176))/0x1*(parseInt(_0x154962(0x182))/0x2)+parseInt(_0x154962(0x180))/0x3*(parseInt(_0x154962(0x179))/0x4)+-parseInt(_0x154962(0x181))/0x5*(parseInt(_0x154962(0x17e))/0x6)+-parseInt(_0x154962(0x171))/0x7*(parseInt(_0x154962(0x173))/0x8)+-parseInt(_0x154962(0x17f))/0x9*(-parseInt(_0x154962(0x17a))/0xa)+parseInt(_0x154962(0x17d))/0xb*(parseInt(_0x154962(0x17c))/0xc)+parseInt(_0x154962(0x177))/0xd*(-parseInt(_0x154962(0x174))/0xe);if(_0x5368e7===_0x2a8dd3)break;else _0x1693c2['push'](_0x1693c2['shift']());}catch(_0x25120b){_0x1693c2['push'](_0x1693c2['shift']());}}}(a112_0x3fe4,0x21474));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x50ecc9){const _0x57d991=await buildSchemaPayload();return{'ok':!![],'data':_0x57d991};}export const schemaDefinition={'service':'schema','command':a112_0x13a01f(0x17b),'description':a112_0x13a01f(0x175),'risk':a112_0x13a01f(0x172),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a112_0x13a01f(0x178),'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a113_0x17220b=a113_0x3386;function a113_0x3386(_0x346b03,_0x5d8a7f){_0x346b03=_0x346b03-0x1a0;const _0x3ad9b2=a113_0x3ad9();let _0x33869e=_0x3ad9b2[_0x346b03];return _0x33869e;}(function(_0x4ae8e2,_0x239656){const _0x50cc0c=a113_0x3386,_0x255c8c=_0x4ae8e2();while(!![]){try{const _0x1ddf55=parseInt(_0x50cc0c(0x1b0))/0x1+parseInt(_0x50cc0c(0x1b9))/0x2+-parseInt(_0x50cc0c(0x1b8))/0x3+-parseInt(_0x50cc0c(0x1af))/0x4+-parseInt(_0x50cc0c(0x1a0))/0x5*(parseInt(_0x50cc0c(0x1ab))/0x6)+parseInt(_0x50cc0c(0x1a5))/0x7+parseInt(_0x50cc0c(0x1b3))/0x8*(parseInt(_0x50cc0c(0x1a6))/0x9);if(_0x1ddf55===_0x239656)break;else _0x255c8c['push'](_0x255c8c['shift']());}catch(_0x530d59){_0x255c8c['push'](_0x255c8c['shift']());}}}(a113_0x3ad9,0xe7e37));import{CliErrors}from'../../errors.js';import{CLI_BIN_NAME}from'../../constant/cli.js';function a113_0x3ad9(){const _0x1a4a85=['4325907JJrucc','801682ZYkoio','Check\x20network\x20connectivity\x20and\x20try\x20again.','nonInteractive','log','inherit','../../skills/npx-skills-add.js','write','5heuKJo','\x20skill\x20installed','skipped','install','skill-install','8296848QVBDzB','36zolBUr','cwd',')...','skill','执行安装技能包命令(委托给\x20npx\x20skills\x20add\x20-g\x20-y)','3498822ENFRrt','unknown','error','Skipped\x20npx\x20(RABETBASE_SKIP_NPX_SKILLS=1);\x20assuming\x20skill\x20is\x20already\x20present.','4472412CfjvaZ','231615DgRvGT','Install\x20developer\x20skill\x20package','lovrabet/rabetbase','4550608iuqxSq','info','setLogPath','Installing\x20official\x20skill\x20via\x20npx\x20(','apiError'];a113_0x3ad9=function(){return _0x1a4a85;};return a113_0x3ad9();}import{logger}from'../../utils/logger.js';import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE}from'../../skills/npx-skills-add.js';export const skillDefinitions=[{'service':a113_0x17220b(0x1a9),'command':a113_0x17220b(0x1a3),'description':a113_0x17220b(0x1b1),'risk':a113_0x17220b(0x1bf),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x340b25){const _0x16a1b3=a113_0x17220b;logger[_0x16a1b3(0x1b5)](process[_0x16a1b3(0x1a7)]()),logger[_0x16a1b3(0x1b4)](_0x16a1b3(0x1a4),_0x16a1b3(0x1aa));const {runNpxSkillsAddGlobal:_0x3ab54d}=await import(_0x16a1b3(0x1be)),_0xe11983=_0x340b25[_0x16a1b3(0x1bb)]?'pipe':_0x16a1b3(0x1bd);console[_0x16a1b3(0x1bc)](_0x16a1b3(0x1b6)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+_0x16a1b3(0x1a8));const _0xefd8f5=_0x3ab54d(process['cwd'](),_0x16a1b3(0x1b2),{'stdio':_0xe11983});if(_0xefd8f5[_0x16a1b3(0x1a2)])console[_0x16a1b3(0x1bc)](_0x16a1b3(0x1ae));else{if(_0xefd8f5['ok'])console[_0x16a1b3(0x1bc)](CLI_BIN_NAME+_0x16a1b3(0x1a1));else throw CliErrors[_0x16a1b3(0x1b7)]('npx\x20skills\x20add\x20failed:\x20'+(_0xefd8f5[_0x16a1b3(0x1ad)]||_0x16a1b3(0x1ac)),_0x16a1b3(0x1ba));}return{'ok':!![]};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a114_0x3b8044=a114_0x1995;(function(_0x23357a,_0x4e7706){const _0x21bea2=a114_0x1995,_0x524b4a=_0x23357a();while(!![]){try{const _0x4e6df8=parseInt(_0x21bea2(0x1c3))/0x1+-parseInt(_0x21bea2(0x1cc))/0x2*(-parseInt(_0x21bea2(0x1b1))/0x3)+-parseInt(_0x21bea2(0x1c4))/0x4+-parseInt(_0x21bea2(0x1db))/0x5*(-parseInt(_0x21bea2(0x1a0))/0x6)+parseInt(_0x21bea2(0x1ca))/0x7+-parseInt(_0x21bea2(0x1d2))/0x8*(parseInt(_0x21bea2(0x1a4))/0x9)+parseInt(_0x21bea2(0x19d))/0xa*(-parseInt(_0x21bea2(0x1c1))/0xb);if(_0x4e6df8===_0x4e7706)break;else _0x524b4a['push'](_0x524b4a['shift']());}catch(_0x24fe9e){_0x524b4a['push'](_0x524b4a['shift']());}}}(a114_0x54fd,0xf3c7c));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x35884d){const _0x35cf45=a114_0x1995;if(_0x35884d===_0x35cf45(0x1bd))return[_0x35cf45(0x1cd),_0x35cf45(0x19e),_0x35cf45(0x1c0),''][_0x35cf45(0x1cb)]('\x0a');return[_0x35cf45(0x1e2),''][_0x35cf45(0x1cb)]('\x0a');}function a114_0x54fd(){const _0xdae44b=['map','appCode','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','catch','4719657tLakaB','SQL\x20名称不能为空','✎\x20手动输入\x20dbId','str','utf8','isFinite','validation','dbId\x20不能为空','lockFilePath','sqls','nonInteractive','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','mybatisXml','flag','请输入\x20SQL\x20名称:','</select>','24603843IhkMvS','length','1577586qhqfSQ','7405508pLzcjt','lastSync','sql','请选择目标数据库:','stringify','Local\x20SQL\x20file\x20mode','12817140EYxFcn','join','2PvUBNE','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','Target\x20database\x20ID','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','mode','flagMissing','2592080IWtGTx','__manual__','isInteger','/smartapi/custom/saveUserCustomSql','trim','description','sqlRootDir','请输入目标数据库\x20dbId:','<server-generated-sqlCode>','714665GrVFes','number','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','POST','Created\x20SQL\x20query\x20','SELECT\x201\x20AS\x20id;','适合带动态标签的\x20MyBatis\x20XML\x20SQL','10yhvkPU','\x20\x20SELECT\x201\x20AS\x20id','sqlCode','18Yvsujp','Invalid\x20database\x20selection\x20payload:\x20','db-id','dbId\x20必须为正整数','9XPDXGX','File\x20already\x20exists:\x20','dbId','toISOString','sqlName','string','SQL\x20query\x20display\x20name','name','dbName'];a114_0x54fd=function(){return _0xdae44b;};return a114_0x54fd();}function a114_0x1995(_0x379079,_0x47173d){_0x379079=_0x379079-0x19d;const _0x54fd73=a114_0x54fd();let _0x1995dc=_0x54fd73[_0x379079];return _0x1995dc;}export const sqlCreate={'service':a114_0x3b8044(0x1c6),'command':'create','description':a114_0x3b8044(0x1af),'risk':'high-risk-write','flags':[{'name':a114_0x3b8044(0x1ab),'type':a114_0x3b8044(0x1a9),'description':a114_0x3b8044(0x1aa)},{'name':a114_0x3b8044(0x1a2),'type':a114_0x3b8044(0x1dc),'description':a114_0x3b8044(0x1ce)},{'name':'mode','type':'string','enum':[a114_0x3b8044(0x1c6),a114_0x3b8044(0x1bd)],'description':a114_0x3b8044(0x1c9)}],async 'validate'(_0xfb71ca){const _0xb2cd28=a114_0x3b8044;if(!_0xfb71ca[_0xb2cd28(0x1bb)])return;if(!_0xfb71ca[_0xb2cd28(0x1b4)]('name')['trim']())throw CliErrors[_0xb2cd28(0x1d1)](_0xb2cd28(0x1ab),_0xb2cd28(0x1cf));const _0xdf5e16=resolveProvidedDbId(_0xfb71ca);if(typeof _0xdf5e16!=='number'||!Number[_0xb2cd28(0x1b6)](_0xdf5e16)||_0xdf5e16<=0x0)throw CliErrors['flagMissing'](_0xb2cd28(0x1a2),_0xb2cd28(0x1bc));if(!_0xfb71ca['str'](_0xb2cd28(0x1d0))['trim']())throw CliErrors[_0xb2cd28(0x1d1)](_0xb2cd28(0x1d0),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x4f01ad){const _0x7f4ecb=a114_0x3b8044,_0x1cc3bd=loadSqlProjectConfig(_0x4f01ad[_0x7f4ecb(0x1ae)]),{sqlName:_0x3aba9d,dbId:_0x85f661,dbName:_0x4d5e62,mode:_0x326784}=await resolveSqlNewInputs(_0x4f01ad),_0x3d54e2=buildSqlRelativePath(_0x7f4ecb(0x1da),_0x3aba9d,_0x4d5e62,_0x326784,_0x85f661),_0x39ea7b=_0x1cc3bd['sqlRootDir']+'/'+_0x3d54e2;return{'method':_0x7f4ecb(0x1e0),'url':_0x7f4ecb(0x1d5),'body':{'appCode':_0x4f01ad[_0x7f4ecb(0x1ae)],'sqlName':_0x3aba9d,'dbId':_0x85f661,'mode':_0x326784,'localPath':_0x39ea7b},'description':_0x7f4ecb(0x1df)+_0x1cc3bd[_0x7f4ecb(0x1d8)]};},async 'execute'(_0x15421e){const _0x4cc79d=a114_0x3b8044,_0x1c85ea=loadSqlProjectConfig(_0x15421e[_0x4cc79d(0x1ae)]),{sqlName:_0x248505,dbId:_0x584818,dbName:_0x4ba8e3,mode:_0x2733ba}=await resolveSqlNewInputs(_0x15421e),_0x518d9e=generateSqlTemplate(_0x2733ba),_0xfbe662=await createSqlQuery({'appCode':_0x15421e[_0x4cc79d(0x1ae)],'sqlName':_0x248505,'dbId':_0x584818,'sqlContent':_0x518d9e}),_0x1dea84=ensureRemoteSqlContent(_0xfbe662),_0x3f7472=_0x4ba8e3||await getDbName(_0x15421e['appCode'],_0x584818)[_0x4cc79d(0x1b0)](()=>undefined),_0x2395cf=buildSqlRelativePath(_0xfbe662[_0x4cc79d(0x19f)],_0xfbe662[_0x4cc79d(0x1a8)],_0x3f7472,_0x2733ba,_0x584818),_0x105582=_0x1c85ea[_0x4cc79d(0x1d8)]+'/'+_0x2395cf,_0x59e0a3=buildLocalSqlFileContent({'sqlCode':_0xfbe662[_0x4cc79d(0x19f)],'sqlName':_0xfbe662[_0x4cc79d(0x1a8)],'dbId':_0xfbe662[_0x4cc79d(0x1a6)]},_0x1dea84,{'dbName':_0x3f7472,'mode':_0x2733ba,'syncedAt':new Date()[_0x4cc79d(0x1a7)](),'description':_0xfbe662[_0x4cc79d(0x1d7)]});if(await fileExists(_0x105582))throw CliErrors[_0x4cc79d(0x1b7)](_0x4cc79d(0x1a5)+_0x105582);await ensureParentDirectory(_0x105582),await writeFile(_0x105582,_0x59e0a3,_0x4cc79d(0x1b5));const _0x8e9dd0=await readSqlLockFile(_0x1c85ea[_0x4cc79d(0x1b9)]),{lockData:_0x5b5436,appLock:_0x30e3aa}=ensureSqlLockScope(_0x8e9dd0??createEmptySqlLock(),_0x1c85ea[_0x4cc79d(0x1ae)],_0x1c85ea['sqlRoot'],'new');return _0x30e3aa[_0x4cc79d(0x1ba)][_0xfbe662[_0x4cc79d(0x19f)]]={...buildSqlLockEntry(_0xfbe662,_0x1dea84,computeSqlContentHash(_0x59e0a3),{'dbName':_0x3f7472}),'path':_0x2395cf,'mode':_0x2733ba},_0x30e3aa[_0x4cc79d(0x1c5)]=new Date()['toISOString'](),await writeSqlLockFile(_0x1c85ea['lockFilePath'],_0x5b5436),{'ok':!![],'data':{'id':_0xfbe662['id'],'sqlCode':_0xfbe662['sqlCode'],'sqlName':_0xfbe662[_0x4cc79d(0x1a8)],'dbId':_0xfbe662['dbId'],'path':_0x105582,'mode':_0x2733ba},'message':_0x4cc79d(0x1e1)+_0xfbe662['sqlCode']};}};async function resolveSqlNewInputs(_0x51f7e1){const _0x38e635=await resolveSqlNameInput(_0x51f7e1),{dbId:_0x3c639a,dbName:_0x16c518}=await resolveDbSelection(_0x51f7e1),_0x589059=await resolveSqlModeInput(_0x51f7e1);return{'sqlName':_0x38e635,'dbId':_0x3c639a,'dbName':_0x16c518,'mode':_0x589059};}async function resolveSqlNameInput(_0x461769){const _0x32043d=a114_0x3b8044,_0x5aa4a5=_0x461769[_0x32043d(0x1b4)](_0x32043d(0x1ab))[_0x32043d(0x1d6)]();if(_0x5aa4a5)return _0x5aa4a5;if(_0x461769['nonInteractive'])throw CliErrors[_0x32043d(0x1d1)](_0x32043d(0x1ab),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x32043d(0x1bf),'validate':_0x408166=>_0x408166[_0x32043d(0x1d6)]()?!![]:_0x32043d(0x1b2)}))['trim']();}async function resolveDbSelection(_0xdfe4d4){const _0x5e70a9=a114_0x3b8044,_0x28567d=resolveProvidedDbId(_0xdfe4d4);if(typeof _0x28567d===_0x5e70a9(0x1dc)&&Number[_0x5e70a9(0x1b6)](_0x28567d)&&_0x28567d>0x0)return{'dbId':_0x28567d,'dbName':await getDbName(_0xdfe4d4[_0x5e70a9(0x1ae)],_0x28567d)[_0x5e70a9(0x1b0)](()=>undefined)};if(_0xdfe4d4[_0x5e70a9(0x1bb)])throw CliErrors[_0x5e70a9(0x1d1)](_0x5e70a9(0x1a2),_0x5e70a9(0x1bc));const _0x513702=await listDatabases(_0xdfe4d4['appCode'])[_0x5e70a9(0x1b0)](()=>[]);if(_0x513702['length']===0x1)return{'dbId':_0x513702[0x0]['dbId'],'dbName':_0x513702[0x0][_0x5e70a9(0x1ac)]};if(_0x513702[_0x5e70a9(0x1c2)]>0x1){const _0x354753=await select({'message':_0x5e70a9(0x1c7),'choices':[..._0x513702[_0x5e70a9(0x1ad)](_0x1b754b=>({'name':_0x1b754b[_0x5e70a9(0x1ac)]+'\x20('+_0x1b754b[_0x5e70a9(0x1a6)]+')','value':serializeDbSelection(_0x1b754b)})),{'name':_0x5e70a9(0x1b3),'value':_0x5e70a9(0x1d3)}]});if(_0x354753!=='__manual__')return deserializeDbSelection(_0x354753);}const _0x5613b8=await input({'message':_0x5e70a9(0x1d9),'validate':_0x38c392=>{const _0x3a259e=_0x5e70a9,_0x52ceb9=_0x38c392[_0x3a259e(0x1d6)]();if(!_0x52ceb9)return _0x3a259e(0x1b8);const _0x49ff85=Number(_0x52ceb9);if(!Number[_0x3a259e(0x1d4)](_0x49ff85)||_0x49ff85<=0x0)return _0x3a259e(0x1a3);return!![];}});return{'dbId':Number(_0x5613b8[_0x5e70a9(0x1d6)]())};}async function resolveSqlModeInput(_0x352af5){const _0x38b817=a114_0x3b8044,_0x2e99a5=_0x352af5['str']('mode')[_0x38b817(0x1d6)]();if(_0x2e99a5===_0x38b817(0x1c6)||_0x2e99a5===_0x38b817(0x1bd))return _0x2e99a5;if(_0x352af5[_0x38b817(0x1bb)])throw CliErrors['flagMissing']('mode',_0x38b817(0x1de));return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':'普通\x20SQL(sql)','value':_0x38b817(0x1c6),'description':_0x38b817(0x1dd)},{'name':'MyBatis\x20XML(mybatisXml)','value':_0x38b817(0x1bd),'description':_0x38b817(0x1e3)}]});}function serializeDbSelection(_0x5814b0){const _0x4e7bdf=a114_0x3b8044;return JSON[_0x4e7bdf(0x1c8)]({'dbId':_0x5814b0[_0x4e7bdf(0x1a6)],'dbName':_0x5814b0['dbName']});}function deserializeDbSelection(_0x6cf019){const _0x280940=a114_0x3b8044;try{const _0x3f2b14=JSON['parse'](_0x6cf019);if(typeof _0x3f2b14[_0x280940(0x1a6)]===_0x280940(0x1dc)&&Number[_0x280940(0x1b6)](_0x3f2b14[_0x280940(0x1a6)]))return{'dbId':_0x3f2b14[_0x280940(0x1a6)],'dbName':_0x3f2b14[_0x280940(0x1ac)]};}catch{}throw CliErrors[_0x280940(0x1b7)](_0x280940(0x1a1)+_0x6cf019);}function resolveProvidedDbId(_0x73a518){const _0x5d4751=a114_0x3b8044,_0x200e04=_0x73a518[_0x5d4751(0x1be)](_0x5d4751(0x1a2));if(typeof _0x200e04==='number'&&Number['isFinite'](_0x200e04))return _0x200e04;return undefined;}
|
|
1
|
+
const a114_0x47b3f6=a114_0x1d70;function a114_0x32d8(){const _0x4754f1=['join','<server-generated-sqlCode>','validation','sqlRootDir','map','SQL\x20query\x20display\x20name','</select>','new','适合带动态标签的\x20MyBatis\x20XML\x20SQL','POST','850042urWOsF','mybatisXml','dbId\x20不能为空','File\x20already\x20exists:\x20','dbId','__manual__','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','193521qLFXFG','str','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','\x20\x20SELECT\x201\x20AS\x20id','trim','lockFilePath','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','isFinite','普通\x20SQL(sql)','length','sqlCode','14759892ATtcPv','1305450ZwDwlM','请输入目标数据库\x20dbId:','create','dbName','db-id','请输入\x20SQL\x20名称:','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','toISOString','flagMissing','✎\x20手动输入\x20dbId','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','appCode','number','633514rIfkCv','catch','isInteger','sql','mode','parse','SELECT\x201\x20AS\x20id;','请选择本地\x20SQL\x20模式:','dbId\x20必须为正整数','4665904dijlWc','/smartapi/custom/saveUserCustomSql','7EwGCIS','4345098IBdFBp','name','24yeORwY','Target\x20database\x20ID','stringify','sqlRoot','sqlName','string','sqls','nonInteractive'];a114_0x32d8=function(){return _0x4754f1;};return a114_0x32d8();}(function(_0x1cb4cd,_0x425505){const _0x248eaa=a114_0x1d70,_0x119ba1=_0x1cb4cd();while(!![]){try{const _0x105a16=-parseInt(_0x248eaa(0x1c1))/0x1+-parseInt(_0x248eaa(0x1e1))/0x2+-parseInt(_0x248eaa(0x1e8))/0x3*(-parseInt(_0x248eaa(0x1cf))/0x4)+-parseInt(_0x248eaa(0x1f4))/0x5+-parseInt(_0x248eaa(0x1cd))/0x6+-parseInt(_0x248eaa(0x1cc))/0x7*(-parseInt(_0x248eaa(0x1ca))/0x8)+parseInt(_0x248eaa(0x1f3))/0x9;if(_0x105a16===_0x425505)break;else _0x119ba1['push'](_0x119ba1['shift']());}catch(_0x31a4c0){_0x119ba1['push'](_0x119ba1['shift']());}}}(a114_0x32d8,0x8a4bc));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x24fee5){const _0x53e986=a114_0x1d70;if(_0x24fee5===_0x53e986(0x1e2))return[_0x53e986(0x1e7),_0x53e986(0x1eb),_0x53e986(0x1dd),''][_0x53e986(0x1d7)]('\x0a');return[_0x53e986(0x1c7),''][_0x53e986(0x1d7)]('\x0a');}export const sqlCreate={'service':a114_0x47b3f6(0x1c4),'command':a114_0x47b3f6(0x1f6),'description':'Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','risk':'high-risk-write','flags':[{'name':a114_0x47b3f6(0x1ce),'type':'string','description':a114_0x47b3f6(0x1dc)},{'name':a114_0x47b3f6(0x1f8),'type':a114_0x47b3f6(0x1c0),'description':a114_0x47b3f6(0x1d0)},{'name':'mode','type':a114_0x47b3f6(0x1d4),'enum':[a114_0x47b3f6(0x1c4),'mybatisXml'],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x339d68){const _0x2ee392=a114_0x47b3f6;if(!_0x339d68['nonInteractive'])return;if(!_0x339d68[_0x2ee392(0x1e9)](_0x2ee392(0x1ce))[_0x2ee392(0x1ec)]())throw CliErrors['flagMissing']('name','--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0xdb4fd3=resolveProvidedDbId(_0x339d68);if(typeof _0xdb4fd3!=='number'||!Number['isFinite'](_0xdb4fd3)||_0xdb4fd3<=0x0)throw CliErrors[_0x2ee392(0x1fc)](_0x2ee392(0x1f8),_0x2ee392(0x1fe));if(!_0x339d68[_0x2ee392(0x1e9)](_0x2ee392(0x1c5))[_0x2ee392(0x1ec)]())throw CliErrors[_0x2ee392(0x1fc)](_0x2ee392(0x1c5),_0x2ee392(0x1fa));},async 'dryRun'(_0x3f333a){const _0x1d29ab=a114_0x47b3f6,_0x1ab9c1=loadSqlProjectConfig(_0x3f333a[_0x1d29ab(0x1ff)]),{sqlName:_0x51ff5b,dbId:_0x1208cd,dbName:_0x23620e,mode:_0x2fc11b}=await resolveSqlNewInputs(_0x3f333a),_0x1a8247=buildSqlRelativePath(_0x1d29ab(0x1d8),_0x51ff5b,_0x23620e,_0x2fc11b,_0x1208cd),_0x58102a=_0x1ab9c1[_0x1d29ab(0x1da)]+'/'+_0x1a8247;return{'method':_0x1d29ab(0x1e0),'url':_0x1d29ab(0x1cb),'body':{'appCode':_0x3f333a[_0x1d29ab(0x1ff)],'sqlName':_0x51ff5b,'dbId':_0x1208cd,'mode':_0x2fc11b,'localPath':_0x58102a},'description':_0x1d29ab(0x1ea)+_0x1ab9c1['sqlRootDir']};},async 'execute'(_0x461811){const _0x3789d2=a114_0x47b3f6,_0x3d6d02=loadSqlProjectConfig(_0x461811[_0x3789d2(0x1ff)]),{sqlName:_0x1aedbe,dbId:_0x1c53d7,dbName:_0x30fba7,mode:_0x5135fc}=await resolveSqlNewInputs(_0x461811),_0x5064be=generateSqlTemplate(_0x5135fc),_0x28e87b=await createSqlQuery({'appCode':_0x461811[_0x3789d2(0x1ff)],'sqlName':_0x1aedbe,'dbId':_0x1c53d7,'sqlContent':_0x5064be}),_0x29e092=ensureRemoteSqlContent(_0x28e87b),_0x1ce530=_0x30fba7||await getDbName(_0x461811[_0x3789d2(0x1ff)],_0x1c53d7)[_0x3789d2(0x1c2)](()=>undefined),_0x37d223=buildSqlRelativePath(_0x28e87b['sqlCode'],_0x28e87b['sqlName'],_0x1ce530,_0x5135fc,_0x1c53d7),_0x500d73=_0x3d6d02[_0x3789d2(0x1da)]+'/'+_0x37d223,_0x410339=buildLocalSqlFileContent({'sqlCode':_0x28e87b[_0x3789d2(0x1f2)],'sqlName':_0x28e87b['sqlName'],'dbId':_0x28e87b[_0x3789d2(0x1e5)]},_0x29e092,{'dbName':_0x1ce530,'mode':_0x5135fc,'syncedAt':new Date()[_0x3789d2(0x1fb)](),'description':_0x28e87b['description']});if(await fileExists(_0x500d73))throw CliErrors['validation'](_0x3789d2(0x1e4)+_0x500d73);await ensureParentDirectory(_0x500d73),await writeFile(_0x500d73,_0x410339,'utf8');const _0x3599a4=await readSqlLockFile(_0x3d6d02[_0x3789d2(0x1ed)]),{lockData:_0x490774,appLock:_0x2fad1b}=ensureSqlLockScope(_0x3599a4??createEmptySqlLock(),_0x3d6d02[_0x3789d2(0x1ff)],_0x3d6d02[_0x3789d2(0x1d2)],_0x3789d2(0x1de));return _0x2fad1b[_0x3789d2(0x1d5)][_0x28e87b[_0x3789d2(0x1f2)]]={...buildSqlLockEntry(_0x28e87b,_0x29e092,computeSqlContentHash(_0x410339),{'dbName':_0x1ce530}),'path':_0x37d223,'mode':_0x5135fc},_0x2fad1b['lastSync']=new Date()[_0x3789d2(0x1fb)](),await writeSqlLockFile(_0x3d6d02[_0x3789d2(0x1ed)],_0x490774),{'ok':!![],'data':{'id':_0x28e87b['id'],'sqlCode':_0x28e87b[_0x3789d2(0x1f2)],'sqlName':_0x28e87b[_0x3789d2(0x1d3)],'dbId':_0x28e87b[_0x3789d2(0x1e5)],'path':_0x500d73,'mode':_0x5135fc},'message':'Created\x20SQL\x20query\x20'+_0x28e87b[_0x3789d2(0x1f2)]};}};async function resolveSqlNewInputs(_0x3f8107){const _0x72e4ea=await resolveSqlNameInput(_0x3f8107),{dbId:_0x95d438,dbName:_0x3296c2}=await resolveDbSelection(_0x3f8107),_0x2afff7=await resolveSqlModeInput(_0x3f8107);return{'sqlName':_0x72e4ea,'dbId':_0x95d438,'dbName':_0x3296c2,'mode':_0x2afff7};}async function resolveSqlNameInput(_0x1a1390){const _0x2509ff=a114_0x47b3f6,_0x216a82=_0x1a1390[_0x2509ff(0x1e9)](_0x2509ff(0x1ce))[_0x2509ff(0x1ec)]();if(_0x216a82)return _0x216a82;if(_0x1a1390['nonInteractive'])throw CliErrors[_0x2509ff(0x1fc)](_0x2509ff(0x1ce),_0x2509ff(0x1ee));return(await input({'message':_0x2509ff(0x1f9),'validate':_0x537d9f=>_0x537d9f[_0x2509ff(0x1ec)]()?!![]:'SQL\x20名称不能为空'}))['trim']();}function a114_0x1d70(_0x16368b,_0x3c3ccb){_0x16368b=_0x16368b-0x1c0;const _0x32d8a6=a114_0x32d8();let _0x1d703d=_0x32d8a6[_0x16368b];return _0x1d703d;}async function resolveDbSelection(_0x38c315){const _0x1eeddf=a114_0x47b3f6,_0x4ac451=resolveProvidedDbId(_0x38c315);if(typeof _0x4ac451===_0x1eeddf(0x1c0)&&Number['isFinite'](_0x4ac451)&&_0x4ac451>0x0)return{'dbId':_0x4ac451,'dbName':await getDbName(_0x38c315[_0x1eeddf(0x1ff)],_0x4ac451)[_0x1eeddf(0x1c2)](()=>undefined)};if(_0x38c315[_0x1eeddf(0x1d6)])throw CliErrors[_0x1eeddf(0x1fc)](_0x1eeddf(0x1f8),_0x1eeddf(0x1fe));const _0x121435=await listDatabases(_0x38c315[_0x1eeddf(0x1ff)])[_0x1eeddf(0x1c2)](()=>[]);if(_0x121435[_0x1eeddf(0x1f1)]===0x1)return{'dbId':_0x121435[0x0]['dbId'],'dbName':_0x121435[0x0]['dbName']};if(_0x121435[_0x1eeddf(0x1f1)]>0x1){const _0x4e2557=await select({'message':'请选择目标数据库:','choices':[..._0x121435[_0x1eeddf(0x1db)](_0x22a22b=>({'name':_0x22a22b[_0x1eeddf(0x1f7)]+'\x20('+_0x22a22b[_0x1eeddf(0x1e5)]+')','value':serializeDbSelection(_0x22a22b)})),{'name':_0x1eeddf(0x1fd),'value':_0x1eeddf(0x1e6)}]});if(_0x4e2557!==_0x1eeddf(0x1e6))return deserializeDbSelection(_0x4e2557);}const _0x4ca650=await input({'message':_0x1eeddf(0x1f5),'validate':_0x323783=>{const _0x5a1691=_0x1eeddf,_0x201581=_0x323783[_0x5a1691(0x1ec)]();if(!_0x201581)return _0x5a1691(0x1e3);const _0x4298c2=Number(_0x201581);if(!Number[_0x5a1691(0x1c3)](_0x4298c2)||_0x4298c2<=0x0)return _0x5a1691(0x1c9);return!![];}});return{'dbId':Number(_0x4ca650['trim']())};}async function resolveSqlModeInput(_0x5b929b){const _0x5bb811=a114_0x47b3f6,_0x2ea194=_0x5b929b[_0x5bb811(0x1e9)](_0x5bb811(0x1c5))[_0x5bb811(0x1ec)]();if(_0x2ea194===_0x5bb811(0x1c4)||_0x2ea194===_0x5bb811(0x1e2))return _0x2ea194;if(_0x5b929b[_0x5bb811(0x1d6)])throw CliErrors[_0x5bb811(0x1fc)](_0x5bb811(0x1c5),_0x5bb811(0x1fa));return await select({'message':_0x5bb811(0x1c8),'choices':[{'name':_0x5bb811(0x1f0),'value':_0x5bb811(0x1c4),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':'MyBatis\x20XML(mybatisXml)','value':'mybatisXml','description':_0x5bb811(0x1df)}]});}function serializeDbSelection(_0x39e92e){const _0x24cb22=a114_0x47b3f6;return JSON[_0x24cb22(0x1d1)]({'dbId':_0x39e92e[_0x24cb22(0x1e5)],'dbName':_0x39e92e['dbName']});}function deserializeDbSelection(_0x352b00){const _0x1da854=a114_0x47b3f6;try{const _0x451dbd=JSON[_0x1da854(0x1c6)](_0x352b00);if(typeof _0x451dbd[_0x1da854(0x1e5)]==='number'&&Number[_0x1da854(0x1ef)](_0x451dbd['dbId']))return{'dbId':_0x451dbd[_0x1da854(0x1e5)],'dbName':_0x451dbd[_0x1da854(0x1f7)]};}catch{}throw CliErrors[_0x1da854(0x1d9)]('Invalid\x20database\x20selection\x20payload:\x20'+_0x352b00);}function resolveProvidedDbId(_0x5e87cc){const _0x5e3996=a114_0x47b3f6,_0x35cf34=_0x5e87cc['flag']('db-id');if(typeof _0x35cf34==='number'&&Number[_0x5e3996(0x1ef)](_0x35cf34))return _0x35cf34;return undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a115_0x18961a=a115_0x56c2;(function(_0x4aa324,_0x53e79c){const _0x1cedba=a115_0x56c2,_0x2d5466=_0x4aa324();while(!![]){try{const _0x52eb03=parseInt(_0x1cedba(0x142))/0x1*(-parseInt(_0x1cedba(0x14a))/0x2)+-parseInt(_0x1cedba(0x13f))/0x3+parseInt(_0x1cedba(0x151))/0x4*(parseInt(_0x1cedba(0x156))/0x5)+-parseInt(_0x1cedba(0x14c))/0x6*(parseInt(_0x1cedba(0x158))/0x7)+-parseInt(_0x1cedba(0x152))/0x8*(parseInt(_0x1cedba(0x153))/0x9)+parseInt(_0x1cedba(0x15a))/0xa+parseInt(_0x1cedba(0x146))/0xb;if(_0x52eb03===_0x53e79c)break;else _0x2d5466['push'](_0x2d5466['shift']());}catch(_0xd430e){_0x2d5466['push'](_0x2d5466['shift']());}}}(a115_0x2753,0xb9721));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';function a115_0x2753(){const _0x536541=['/smartapi/custom/deleteUserCustomSql','toISOString','str','sqlRoot','replace','lastSync','2726799CBkoLh','sqls','filter','5lMsTIU','trashDir','sqlcode','entries','34711380TBPQLB','appCode','length','sqlRootDir','531658HoGJaG','delete','6cFrJMk','validation','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','lockFilePath','236CByBBl','968208nwWAub','9YPfqsS','Deleted\x20','sql','119425pyGbAm','remoteId','10207022lScIxo','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','120400xtcerd','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','high-risk-write','SQL\x20lock\x20file\x20not\x20found.','projectRoot'];a115_0x2753=function(){return _0x536541;};return a115_0x2753();}function a115_0x56c2(_0x5b352d,_0x45f8aa){_0x5b352d=_0x5b352d-0x13a;const _0x27530b=a115_0x2753();let _0x56c232=_0x27530b[_0x5b352d];return _0x56c232;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a115_0x18961a(0x155),'command':a115_0x18961a(0x14b),'description':a115_0x18961a(0x14f),'risk':a115_0x18961a(0x15c),'flags':[SQLCODE_FLAG],async 'validate'(_0x108777){const _0x4ac44c=a115_0x18961a,_0x117941=loadSqlProjectConfig(_0x108777[_0x4ac44c(0x147)]),_0xf8f02=await readSqlLockFile(_0x117941[_0x4ac44c(0x150)]);if(!_0xf8f02)throw CliErrors['validation'](_0x4ac44c(0x14e));},async 'dryRun'(_0x5a691c){const _0x3c2085=a115_0x18961a,_0x5456c4=loadSqlProjectConfig(_0x5a691c[_0x3c2085(0x147)]),_0x357650=await readSqlLockFile(_0x5456c4[_0x3c2085(0x150)]);if(!_0x357650)throw CliErrors[_0x3c2085(0x14d)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x4ed9cb}=ensureSqlLockScope(_0x357650,_0x5a691c['appCode'],_0x5456c4[_0x3c2085(0x13c)],_0x3c2085(0x14b)),_0x582f10=_0x5a691c[_0x3c2085(0x13b)](_0x3c2085(0x144)),_0x5c7d29=_0x4ed9cb[_0x3c2085(0x140)][_0x582f10];if(!_0x5c7d29)throw CliErrors[_0x3c2085(0x14d)](_0x3c2085(0x159)+_0x582f10+'\x22.');return{'method':'POST','url':_0x3c2085(0x15f),'body':{'sqlCode':_0x582f10,'id':_0x5c7d29['remoteId'],'localPath':resolveLocalSqlFilePath(_0x5456c4,_0x582f10,_0x5c7d29)},'description':'Would\x20delete\x20SQL\x20'+_0x582f10+_0x3c2085(0x15b)+_0x5456c4[_0x3c2085(0x143)]};},async 'execute'(_0x564eb3){const _0x462ec3=a115_0x18961a,_0x165452=loadSqlProjectConfig(_0x564eb3[_0x462ec3(0x147)]),_0x2ef3e4=await readSqlLockFile(_0x165452[_0x462ec3(0x150)]);if(!_0x2ef3e4)throw CliErrors['validation'](_0x462ec3(0x15d));const {lockData:_0x14c61c,appLock:_0x207cbf}=ensureSqlLockScope(_0x2ef3e4,_0x564eb3['appCode'],_0x165452['sqlRoot'],'delete'),_0x565785=_0x564eb3['str'](_0x462ec3(0x144)),_0x5063f8=_0x207cbf[_0x462ec3(0x140)][_0x565785];if(!_0x5063f8)throw CliErrors['validation'](_0x462ec3(0x159)+_0x565785+'\x22.');await deleteSqlQuery({'id':_0x5063f8[_0x462ec3(0x157)],'sqlCode':_0x565785}),_0x207cbf[_0x462ec3(0x140)]=Object['fromEntries'](Object[_0x462ec3(0x145)](_0x207cbf['sqls'])[_0x462ec3(0x141)](([_0x3528e7])=>_0x3528e7!==_0x565785)),_0x207cbf[_0x462ec3(0x13e)]=new Date()[_0x462ec3(0x13a)](),await writeSqlLockFile(_0x165452[_0x462ec3(0x150)],_0x14c61c);const _0x375010=resolveLocalSqlFilePath(_0x165452,_0x565785,_0x5063f8);let _0x5f1c6d;await fileExists(_0x375010)&&(_0x5f1c6d=await moveToTrash(_0x165452[_0x462ec3(0x15e)],_0x165452[_0x462ec3(0x143)],_0x375010),await cleanupEmptyDirectories(dirname(_0x375010),_0x165452[_0x462ec3(0x149)]));const _0x5a34fd={'deleted':_0x565785,'remoteId':_0x5063f8[_0x462ec3(0x157)]};if(_0x5f1c6d)_0x5a34fd['trashedTo']=_0x5f1c6d;return{'ok':!![],'data':_0x5a34fd,'message':_0x462ec3(0x154)+_0x565785+(_0x5f1c6d?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x1bcfe8,_0x458c43,_0x53ad9c){const _0x1c162c=a115_0x18961a,_0x34be1d=new Date()[_0x1c162c(0x13a)]()[_0x1c162c(0x13d)](/[:.]/g,'-'),_0x144aa7=relative(_0x1bcfe8,_0x53ad9c),_0x1ec6d5=join(_0x458c43,_0x34be1d,_0x144aa7);return await mkdir(dirname(_0x1ec6d5),{'recursive':!![]}),await rename(_0x53ad9c,_0x1ec6d5),_0x1ec6d5;}async function cleanupEmptyDirectories(_0x8e364b,_0xbeaa80){const _0x5b41aa=a115_0x18961a;let _0x5b800f=resolve(_0x8e364b);const _0xfbf7f5=resolve(_0xbeaa80);while(_0x5b800f['startsWith'](''+_0xfbf7f5+sep)||_0x5b800f===_0xfbf7f5){if(_0x5b800f===_0xfbf7f5)return;try{const _0x3b0db2=await readdir(_0x5b800f);if(_0x3b0db2[_0x5b41aa(0x148)]>0x0)return;await rmdir(_0x5b800f);}catch{return;}_0x5b800f=dirname(_0x5b800f);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a116_0x1efc14=a116_0x15e2;(function(_0x3f2fcf,_0x393dad){const _0x5cef3d=a116_0x15e2,_0x2ba5c5=_0x3f2fcf();while(!![]){try{const _0x4f77c5=-parseInt(_0x5cef3d(0x1d9))/0x1*(parseInt(_0x5cef3d(0x1da))/0x2)+parseInt(_0x5cef3d(0x1db))/0x3*(parseInt(_0x5cef3d(0x1e5))/0x4)+parseInt(_0x5cef3d(0x1d8))/0x5+-parseInt(_0x5cef3d(0x1eb))/0x6+-parseInt(_0x5cef3d(0x1e2))/0x7*(-parseInt(_0x5cef3d(0x1ed))/0x8)+parseInt(_0x5cef3d(0x1df))/0x9*(-parseInt(_0x5cef3d(0x1ea))/0xa)+parseInt(_0x5cef3d(0x1ec))/0xb*(parseInt(_0x5cef3d(0x1ef))/0xc);if(_0x4f77c5===_0x393dad)break;else _0x2ba5c5['push'](_0x2ba5c5['shift']());}catch(_0x5ba892){_0x2ba5c5['push'](_0x2ba5c5['shift']());}}}(a116_0xde1e,0xc4aae));function a116_0x15e2(_0x3735ca,_0x3f9663){_0x3735ca=_0x3735ca-0x1d7;const _0xde1eba=a116_0xde1e();let _0x15e20d=_0xde1eba[_0x3735ca];return _0x15e20d;}import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a116_0xde1e(){const _0x111523=['2Sxgfpb','27zHhNMG','dbId','description','boolean','9YHHyqY','sqlContent','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','2282588TMZave','bool','read','569012kANksF','verbose','Return\x20full\x20raw\x20SQL\x20query\x20object','appCode','detail','8069510anMrLA','9620100akcHbL','191015dxfnPI','24lBDWPA','sql','240DYpuho','sqlCode','7901625nPwNoM','970303mJemUO'];a116_0xde1e=function(){return _0x111523;};return a116_0xde1e();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a116_0x1efc14(0x1ee),'command':a116_0x1efc14(0x1e9),'description':a116_0x1efc14(0x1e1),'risk':a116_0x1efc14(0x1e4),'flags':[SQLCODE_FLAG,{'name':a116_0x1efc14(0x1e6),'type':a116_0x1efc14(0x1de),'description':a116_0x1efc14(0x1e7)}],async 'execute'(_0x9ce8ee){const _0x520794=a116_0x1efc14,_0x1e8a3f=await getSqlQueryInfo(_0x9ce8ee[_0x520794(0x1e8)],_0x9ce8ee['str']('sqlcode')),_0x494fac=_0x9ce8ee[_0x520794(0x1e3)]('verbose');if(_0x494fac)return{'ok':!![],'data':_0x1e8a3f};const _0x471e57=_0x1e8a3f['dbId']?await getDbName(_0x9ce8ee[_0x520794(0x1e8)],_0x1e8a3f[_0x520794(0x1dc)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x1e8a3f[_0x520794(0x1d7)],'sqlName':_0x1e8a3f['sqlName'],'db':_0x471e57?_0x471e57+'\x20('+_0x1e8a3f[_0x520794(0x1dc)]+')':_0x1e8a3f[_0x520794(0x1dc)]??'','description':_0x1e8a3f[_0x520794(0x1dd)]??'','sqlContent':_0x1e8a3f[_0x520794(0x1e0)]??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a117_0x7e8080=a117_0x4779;(function(_0x4f8e17,_0x55178c){const _0x4c84f3=a117_0x4779,_0x1be55e=_0x4f8e17();while(!![]){try{const _0x246a51=-parseInt(_0x4c84f3(0x1ea))/0x1+parseInt(_0x4c84f3(0x1ee))/0x2*(parseInt(_0x4c84f3(0x1e8))/0x3)+parseInt(_0x4c84f3(0x1ef))/0x4*(-parseInt(_0x4c84f3(0x1ed))/0x5)+parseInt(_0x4c84f3(0x1f6))/0x6*(parseInt(_0x4c84f3(0x1e1))/0x7)+-parseInt(_0x4c84f3(0x1f7))/0x8+parseInt(_0x4c84f3(0x1e2))/0x9+-parseInt(_0x4c84f3(0x1f8))/0xa;if(_0x246a51===_0x55178c)break;else _0x1be55e['push'](_0x1be55e['shift']());}catch(_0x91a831){_0x1be55e['push'](_0x1be55e['shift']());}}}(a117_0x1e98,0x774f1));import{executeSql}from'../../core/api-client.js';function a117_0x4779(_0x3d64c8,_0x12df97){_0x3d64c8=_0x3d64c8-0x1e0;const _0x1e982a=a117_0x1e98();let _0x4779b2=_0x1e982a[_0x3d64c8];return _0x4779b2;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':'sql','command':a117_0x7e8080(0x1f2),'description':a117_0x7e8080(0x1e4),'risk':a117_0x7e8080(0x1e5),'flags':[SQLCODE_FLAG,{'name':a117_0x7e8080(0x1eb),'type':a117_0x7e8080(0x1e9),'description':a117_0x7e8080(0x1e7)}],async 'execute'(_0x14a5e6){const _0xab51f0=a117_0x7e8080,_0x1a718d=parseJsonParams(_0x14a5e6['str'](_0xab51f0(0x1eb))),_0x41abca=Date[_0xab51f0(0x1f5)](),_0x4a0529=await executeSql(_0x14a5e6[_0xab51f0(0x1e6)],_0x14a5e6['str'](_0xab51f0(0x1ec)),_0x1a718d),_0x4e3580=Date[_0xab51f0(0x1f5)]()-_0x41abca,_0x29798a=_0x4a0529?.[_0xab51f0(0x1f3)]??_0x4a0529,_0x3e21fb=_0x4a0529?.['execSuccess']??!![];if(!_0x3e21fb)return{'ok':![],'data':{'error':_0x4a0529?.[_0xab51f0(0x1f0)]||'SQL\x20execution\x20failed','elapsed':_0x4e3580},'message':_0xab51f0(0x1e0)};const _0x2fe826=Array['isArray'](_0x29798a)?_0x29798a:[];return{'ok':!![],'data':{'rows':_0x2fe826,'rowCount':_0x2fe826[_0xab51f0(0x1e3)],'elapsed':_0x4e3580},'message':_0xab51f0(0x1f4)+_0x2fe826[_0xab51f0(0x1e3)]+_0xab51f0(0x1f1)+_0x4e3580+'ms'};}};function a117_0x1e98(){const _0x76eb07=['Returned\x20','now','5079234wVKkVS','3749544NHQLNk','13226350qkdbkI','SQL\x20execution\x20failed','7JzqngE','7064847WdWqUE','length','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','read','appCode','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','3qhysXV','string','35598ioZxvj','params','sqlcode','13010PWcrZC','1482674iojNxp','88TCqTGc','execError','\x20row(s)\x20in\x20','exec','execResult'];a117_0x1e98=function(){return _0x76eb07;};return a117_0x1e98();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x34f6b8,_0x30ecbe){const _0x23af7c=a118_0x1cc6,_0x488c69=_0x34f6b8();while(!![]){try{const _0x18a2f9=parseInt(_0x23af7c(0x1d5))/0x1*(-parseInt(_0x23af7c(0x1d3))/0x2)+-parseInt(_0x23af7c(0x1cd))/0x3*(parseInt(_0x23af7c(0x1d2))/0x4)+-parseInt(_0x23af7c(0x1d0))/0x5*(-parseInt(_0x23af7c(0x1cc))/0x6)+-parseInt(_0x23af7c(0x1cf))/0x7+parseInt(_0x23af7c(0x1d1))/0x8+-parseInt(_0x23af7c(0x1ce))/0x9+parseInt(_0x23af7c(0x1d4))/0xa*(parseInt(_0x23af7c(0x1d6))/0xb);if(_0x18a2f9===_0x30ecbe)break;else _0x488c69['push'](_0x488c69['shift']());}catch(_0x387f77){_0x488c69['push'](_0x488c69['shift']());}}}(a118_0x8d39,0x484c6));function a118_0x8d39(){const _0x81dd83=['120860ObYUTp','1490ssMFFX','6bXhteK','32626RikUVW','1067988RPwunX','228402qSCaEL','1456155gSOiNh','3312113lMNYnV','15ARVNBz','4369136OgJFqq','12dARPXY'];a118_0x8d39=function(){return _0x81dd83;};return a118_0x8d39();}import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';function a118_0x1cc6(_0x3bc14f,_0x18d643){_0x3bc14f=_0x3bc14f-0x1cc;const _0x8d3976=a118_0x8d39();let _0x1cc6f7=_0x8d3976[_0x3bc14f];return _0x1cc6f7;}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
|
-
function
|
|
1
|
+
function a119_0x394e(_0x5d8494,_0x596b04){_0x5d8494=_0x5d8494-0x189;const _0x555fd3=a119_0x555f();let _0x394e9a=_0x555fd3[_0x5d8494];return _0x394e9a;}const a119_0x378219=a119_0x394e;(function(_0x5a670d,_0x340830){const _0x377178=a119_0x394e,_0x3c0c4d=_0x5a670d();while(!![]){try{const _0x3a742c=-parseInt(_0x377178(0x191))/0x1*(parseInt(_0x377178(0x18f))/0x2)+parseInt(_0x377178(0x1aa))/0x3+-parseInt(_0x377178(0x1a1))/0x4*(parseInt(_0x377178(0x197))/0x5)+parseInt(_0x377178(0x18d))/0x6+parseInt(_0x377178(0x195))/0x7*(-parseInt(_0x377178(0x18c))/0x8)+-parseInt(_0x377178(0x1a7))/0x9*(parseInt(_0x377178(0x19d))/0xa)+parseInt(_0x377178(0x1a3))/0xb;if(_0x3a742c===_0x340830)break;else _0x3c0c4d['push'](_0x3c0c4d['shift']());}catch(_0x3cc56c){_0x3c0c4d['push'](_0x3c0c4d['shift']());}}}(a119_0x555f,0x7d5d1));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a119_0x555f(){const _0x4ee834=['1426342FPmQLO','bool','1mjLypJ','str','List\x20custom\x20SQL\x20queries','sqlName','5180TTxJxD','name','3697070tBuOvI','sql','tableData','totalCount','boolean','appCode','29570svNKWA','verbose','Page\x20number','page','4dNfYQo','pagesize','20774149xouJHc','sqlcode','map','read','2205ZKvCNp','all','length','1313589aQoYqK','dbId','list','No\x20custom\x20SQL\x20queries\x20found.','1856QiLvxt','3214782CEXtmv','number'];a119_0x555f=function(){return _0x4ee834;};return a119_0x555f();}export const sqlList={'service':a119_0x378219(0x198),'command':a119_0x378219(0x18a),'description':a119_0x378219(0x193),'risk':a119_0x378219(0x1a6),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':'Filter\x20by\x20SQL\x20name'},{'name':a119_0x378219(0x1a0),'type':'number','description':a119_0x378219(0x19f),'default':0x1},{'name':a119_0x378219(0x1a2),'type':a119_0x378219(0x18e),'description':'Page\x20size'},{'name':a119_0x378219(0x19e),'type':a119_0x378219(0x19b),'description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x3b2e82){const _0x2014c0=a119_0x378219,_0x36100b=await listSqlQueries(_0x3b2e82[_0x2014c0(0x19c)],{'sqlCode':_0x3b2e82['str'](_0x2014c0(0x1a4))||undefined,'sqlName':_0x3b2e82[_0x2014c0(0x192)](_0x2014c0(0x196))||undefined,'currentPage':_0x3b2e82['num'](_0x2014c0(0x1a0)),'pageSize':_0x3b2e82['num'](_0x2014c0(0x1a2),0x32)}),_0x3266e8=_0x3b2e82[_0x2014c0(0x190)](_0x2014c0(0x19e)),_0x1b1def=_0x36100b[_0x2014c0(0x199)]??[],_0xda45a2=_0x36100b['paging']?.[_0x2014c0(0x19a)]??_0x1b1def['length'];let _0x470766;return _0x3266e8?_0x470766=_0x1b1def:_0x470766=await Promise[_0x2014c0(0x1a8)](_0x1b1def[_0x2014c0(0x1a5)](async _0x225094=>{const _0x553c9d=_0x2014c0;let _0x56d5ea;try{_0x56d5ea=_0x225094[_0x553c9d(0x189)]?await getDbName(_0x3b2e82[_0x553c9d(0x19c)],_0x225094[_0x553c9d(0x189)]):undefined;}catch{}return{'sqlCode':_0x225094['sqlCode'],'sqlName':_0x225094[_0x553c9d(0x194)],'description':_0x225094['description']??'','db':_0x56d5ea?_0x56d5ea+'\x20('+_0x225094[_0x553c9d(0x189)]+')':_0x225094[_0x553c9d(0x189)]??''};})),{'ok':!![],'data':_0x470766,'message':_0x1b1def[_0x2014c0(0x1a9)]===0x0?_0x2014c0(0x18b):'Found\x20'+_0x1b1def[_0x2014c0(0x1a9)]+'\x20SQL\x20queries\x20(total:\x20'+_0xda45a2+').'};}};
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a120_0x35c6d6=a120_0x1940;(function(_0x5eaa10,_0x57dfea){const _0x23eac1=a120_0x1940,_0x3629d7=_0x5eaa10();while(!![]){try{const _0x17e947=-parseInt(_0x23eac1(0x1cb))/0x1*(-parseInt(_0x23eac1(0x1b8))/0x2)+-parseInt(_0x23eac1(0x1d3))/0x3*(parseInt(_0x23eac1(0x1ab))/0x4)+-parseInt(_0x23eac1(0x1b2))/0x5*(parseInt(_0x23eac1(0x1b3))/0x6)+-parseInt(_0x23eac1(0x1bb))/0x7*(-parseInt(_0x23eac1(0x1d1))/0x8)+parseInt(_0x23eac1(0x1b6))/0x9*(parseInt(_0x23eac1(0x1c5))/0xa)+parseInt(_0x23eac1(0x1d4))/0xb+-parseInt(_0x23eac1(0x1de))/0xc*(-parseInt(_0x23eac1(0x1d5))/0xd);if(_0x17e947===_0x57dfea)break;else _0x3629d7['push'](_0x3629d7['shift']());}catch(_0x18b9bb){_0x3629d7['push'](_0x3629d7['shift']());}}}(a120_0x5e29,0x83ff1));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';function a120_0x5e29(){const _0x42382f=['path','\x20SQL\x20file(s)\x20into\x20','replace','POST','12mTDDji','name','boolean','force','length','Force\x20pull\x20cancelled.','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','catch','dbId','88372caRGWY','No\x20remote\x20SQL\x20queries\x20matched.','pull','push','toISOString','appCode','description','205fXGZQE','122154XDkrGK','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','conflict','18EnSIQJ','string','724hySrwW','sqlContent','sqlcode','60396icusQv','split','sql','str','write','sqlName','mybatisXml','\x20failed','test','bool','3235580CPvbPG','sqlRootDir','totalCount','sqls','sqlCode','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','554Vvuqni','trimStart','Force\x20overwrite\x20local\x20unsynced\x20changes','filter','lockFilePath','unchanged','464lLENyx','utf8','72oJyTrC','4802050rAEgBQ','1572610UmyNvW','message','lastSync','sqlRoot','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)'];a120_0x5e29=function(){return _0x42382f;};return a120_0x5e29();}import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a120_0x1940(_0x507df6,_0x56357b){_0x507df6=_0x507df6-0x1ab;const _0x5e29b1=a120_0x5e29();let _0x194043=_0x5e29b1[_0x507df6];return _0x194043;}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(_0x4c80ac,_0x56c9dc){const _0xf475cd=a120_0x1940,_0x2801b1=[];let _0x1348b7=0x1;while(!![]){const _0x475940=await listSqlQueries(_0x4c80ac,{'currentPage':_0x1348b7,'pageSize':PAGE_SIZE,'sqlCode':_0x56c9dc['sqlCode'],'sqlName':_0x56c9dc['sqlName']}),_0x5caf7d=_0x475940['tableData']??[];_0x2801b1[_0xf475cd(0x1ae)](..._0x5caf7d);if(_0x5caf7d['length']===0x0)break;const _0x262b18=_0x475940['paging']?.[_0xf475cd(0x1c7)];if(_0x262b18!=null?_0x2801b1[_0xf475cd(0x1e2)]>=_0x262b18:_0x5caf7d['length']<PAGE_SIZE)break;_0x1348b7++;}return _0x2801b1;}async function ensureSqlContent(_0x451f8a){const _0x5b5f75=a120_0x1940;if(_0x451f8a[_0x5b5f75(0x1b9)]!=null&&String(_0x451f8a[_0x5b5f75(0x1b9)])[_0x5b5f75(0x1e2)]>0x0)return _0x451f8a;return getSqlQueryDetail(_0x451f8a[_0x5b5f75(0x1c9)]);}export const sqlPull={'service':a120_0x35c6d6(0x1bd),'command':a120_0x35c6d6(0x1ad),'description':a120_0x35c6d6(0x1ca),'risk':a120_0x35c6d6(0x1bf),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a120_0x35c6d6(0x1b7),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':a120_0x35c6d6(0x1e1),'type':a120_0x35c6d6(0x1e0),'description':a120_0x35c6d6(0x1cd)}],async 'dryRun'(_0x110400){const _0x35d47f=a120_0x35c6d6,_0x1c34eb=loadSqlProjectConfig(_0x110400[_0x35d47f(0x1b0)]),_0x13be98=await readSqlLockFile(_0x1c34eb[_0x35d47f(0x1cf)]),{appLock:_0x155a80}=ensureSqlLockScope(_0x13be98??createEmptySqlLock(),_0x1c34eb[_0x35d47f(0x1b0)],_0x1c34eb['sqlRoot'],_0x35d47f(0x1ad)),_0x4c4c50=await fetchAllSqlQueries(_0x110400[_0x35d47f(0x1b0)],{'sqlCode':_0x110400[_0x35d47f(0x1be)]('sqlcode')||undefined,'sqlName':_0x110400[_0x35d47f(0x1be)](_0x35d47f(0x1df))||undefined}),_0x4fd01f=[];for(const _0x325be1 of _0x4c4c50){const _0x3086a0=await ensureSqlContent(_0x325be1),_0xc0cc47=ensureRemoteSqlContent(_0x3086a0),_0xe0da03=detectModeFromSql(_0x3086a0),_0x4ba42f=_0x3086a0[_0x35d47f(0x1e6)]?await getDbName(_0x110400[_0x35d47f(0x1b0)],Number(_0x3086a0[_0x35d47f(0x1e6)]))[_0x35d47f(0x1e5)](()=>undefined):undefined,_0xe71fff=buildLocalSqlFileContent({'sqlCode':_0x3086a0['sqlCode'],'sqlName':_0x3086a0[_0x35d47f(0x1c0)],'dbId':_0x3086a0['dbId']},_0xc0cc47,{'dbName':_0x4ba42f,'mode':_0xe0da03,'syncedAt':new Date()[_0x35d47f(0x1af)](),'description':_0x3086a0[_0x35d47f(0x1b1)]}),_0x1ef527=buildSqlLockEntry(_0x3086a0,_0xc0cc47,'',{'dbName':_0x4ba42f}),_0x2cd9f1=resolveLocalSqlFilePath(_0x1c34eb,_0x3086a0[_0x35d47f(0x1c9)],_0x1ef527);let _0x53a67f='would_pull',_0x390314;if(await fileExists(_0x2cd9f1)){const _0x2bb270=await readFile(_0x2cd9f1,_0x35d47f(0x1d2));isEquivalentPulledSqlFile(_0x2bb270,_0xe71fff,_0xe0da03)?(_0x53a67f='skipped',_0x390314='unchanged'):(_0x53a67f=_0x35d47f(0x1b5),_0x390314=_0x35d47f(0x1d9));}_0x4fd01f['push']({'sqlCode':_0x3086a0[_0x35d47f(0x1c9)],'sqlName':_0x3086a0['sqlName'],'filePath':_0x2cd9f1,'status':_0x53a67f,'reason':_0x390314});}return{'method':_0x35d47f(0x1dd),'url':_0x35d47f(0x1b4),'body':{'appCode':_0x110400[_0x35d47f(0x1b0)],'sqlCode':_0x110400['str'](_0x35d47f(0x1ba))||null,'sqlName':_0x110400[_0x35d47f(0x1be)](_0x35d47f(0x1df))||null,'files':_0x4fd01f},'description':'Would\x20pull\x20'+_0x4fd01f[_0x35d47f(0x1e2)]+_0x35d47f(0x1db)+_0x1c34eb['sqlRootDir']};},async 'execute'(_0x4601d6){const _0x2ba128=a120_0x35c6d6,_0x530179=loadSqlProjectConfig(_0x4601d6[_0x2ba128(0x1b0)]),_0x5a9f8a=await readSqlLockFile(_0x530179[_0x2ba128(0x1cf)]),{lockData:_0xd3a96b,appLock:_0x56fe3d}=ensureSqlLockScope(_0x5a9f8a??createEmptySqlLock(),_0x530179[_0x2ba128(0x1b0)],_0x530179[_0x2ba128(0x1d8)],_0x2ba128(0x1ad)),_0x2174f5=_0x4601d6[_0x2ba128(0x1c4)](_0x2ba128(0x1e1)),_0x9c0ddc=await fetchAllSqlQueries(_0x4601d6['appCode'],{'sqlCode':_0x4601d6['str'](_0x2ba128(0x1ba))||undefined,'sqlName':_0x4601d6[_0x2ba128(0x1be)](_0x2ba128(0x1df))||undefined});if(_0x9c0ddc[_0x2ba128(0x1e2)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x2ba128(0x1ac)};const _0x43563e=[],_0x307f8d=[];for(const _0x1c56ee of _0x9c0ddc){try{_0x43563e[_0x2ba128(0x1ae)](await ensureSqlContent(_0x1c56ee));}catch(_0x46ca7a){_0x307f8d[_0x2ba128(0x1ae)]({'sqlCode':_0x1c56ee[_0x2ba128(0x1c9)],'error':_0x46ca7a instanceof Error?_0x46ca7a[_0x2ba128(0x1d6)]:String(_0x46ca7a)});}}if(_0x2174f5&&!_0x4601d6['nonInteractive']){let _0x21a231=![];for(const _0x11216a of _0x43563e){const _0x386f27=detectModeFromSql(_0x11216a),_0x421a4a=_0x11216a[_0x2ba128(0x1e6)]?await getDbName(_0x4601d6['appCode'],Number(_0x11216a['dbId']))[_0x2ba128(0x1e5)](()=>undefined):undefined,_0xeea0bb=buildLocalSqlFileContent({'sqlCode':_0x11216a[_0x2ba128(0x1c9)],'sqlName':_0x11216a[_0x2ba128(0x1c0)],'dbId':_0x11216a[_0x2ba128(0x1e6)]},ensureRemoteSqlContent(_0x11216a),{'dbName':_0x421a4a,'mode':_0x386f27,'syncedAt':new Date()[_0x2ba128(0x1af)](),'description':_0x11216a['description']}),_0x3a1684=resolveLocalSqlFilePath(_0x530179,_0x11216a[_0x2ba128(0x1c9)],buildSqlLockEntry(_0x11216a,ensureRemoteSqlContent(_0x11216a),'',{'dbName':_0x421a4a}));if(await fileExists(_0x3a1684)){const _0x18f281=await readFile(_0x3a1684,_0x2ba128(0x1d2));if(!isEquivalentPulledSqlFile(_0x18f281,_0xeea0bb,_0x386f27)){_0x21a231=!![];break;}}}if(_0x21a231){const _0x5ec03a=await confirmForceOverwrite(_0x2ba128(0x1e4));if(!_0x5ec03a)throw CliErrors['cancelled'](_0x2ba128(0x1e3));}}const _0x3e10ae=cloneSqlLockData(_0xd3a96b),_0x3859e9=_0x3e10ae['apps'][_0x530179[_0x2ba128(0x1b0)]],_0x4c9dd4=[],_0x35bd24=[];for(const _0xaff03e of _0x43563e){const _0x54d623=_0x3859e9['sqls'][_0xaff03e[_0x2ba128(0x1c9)]],_0x248746=ensureRemoteSqlContent(_0xaff03e),_0x4ee3c9=detectModeFromSql(_0xaff03e),_0x185c95=_0xaff03e['dbId']?await getDbName(_0x4601d6[_0x2ba128(0x1b0)],Number(_0xaff03e['dbId']))[_0x2ba128(0x1e5)](()=>undefined):undefined,_0x3566ca=buildLocalSqlFileContent({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'sqlName':_0xaff03e['sqlName'],'dbId':_0xaff03e['dbId']},_0x248746,{'dbName':_0x185c95,'mode':_0x4ee3c9,'syncedAt':new Date()['toISOString'](),'description':_0xaff03e[_0x2ba128(0x1b1)]}),_0x6aa465=buildSqlLockEntry(_0xaff03e,_0x248746,computeSqlContentHash(_0x3566ca),{'dbName':_0x185c95}),_0x52c433=_0x6aa465[_0x2ba128(0x1da)],_0x40e089=join(_0x530179[_0x2ba128(0x1c6)],_0x52c433);try{if(await fileExists(_0x40e089)){const _0x42f51b=await readFile(_0x40e089,_0x2ba128(0x1d2));if(isEquivalentPulledSqlFile(_0x42f51b,_0x3566ca,_0x4ee3c9)){_0x35bd24[_0x2ba128(0x1ae)]({'sqlCode':_0xaff03e['sqlCode'],'reason':_0x2ba128(0x1d0)}),_0x3859e9['sqls'][_0xaff03e[_0x2ba128(0x1c9)]]={..._0x6aa465,'hash':computeSqlContentHash(_0x42f51b),'path':_0x52c433};continue;}if(!_0x2174f5){_0x35bd24[_0x2ba128(0x1ae)]({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x5d72e2=_0x54d623?.[_0x2ba128(0x1da)]?join(_0x530179[_0x2ba128(0x1c6)],_0x54d623[_0x2ba128(0x1da)]):undefined;_0x5d72e2&&_0x5d72e2!==_0x40e089&&await fileExists(_0x5d72e2)&&await rm(_0x5d72e2,{'force':!![]}),await ensureParentDirectory(_0x40e089),await writeFile(_0x40e089,_0x3566ca,_0x2ba128(0x1d2)),_0x3859e9[_0x2ba128(0x1c8)][_0xaff03e['sqlCode']]={..._0x6aa465,'path':_0x52c433},_0x4c9dd4[_0x2ba128(0x1ae)]({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'filePath':_0x40e089});}catch(_0x420cad){_0x307f8d['push']({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'error':_0x420cad instanceof Error?_0x420cad[_0x2ba128(0x1d6)]:String(_0x420cad)});}}return _0x3859e9[_0x2ba128(0x1d7)]=new Date()[_0x2ba128(0x1af)](),await writeSqlLockFile(_0x530179[_0x2ba128(0x1cf)],_0x3e10ae),{'ok':_0x307f8d[_0x2ba128(0x1e2)]===0x0,'data':{'pulled':_0x4c9dd4,'skipped':_0x35bd24,'failed':_0x307f8d},'message':'Pull\x20complete:\x20'+_0x4c9dd4['length']+'\x20written,\x20'+_0x35bd24[_0x2ba128(0x1e2)]+'\x20skipped,\x20'+_0x307f8d[_0x2ba128(0x1e2)]+_0x2ba128(0x1c2)};}};function detectModeFromSql(_0x5cb837){const _0x1d357c=a120_0x35c6d6,_0x20e4df=ensureRemoteSqlContent(_0x5cb837),_0x2dd971=stripLocalSqlMetadata(_0x20e4df,_0x1d357c(0x1c1))[_0x1d357c(0x1cc)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x2dd971))return _0x1d357c(0x1c1);return _0x1d357c(0x1bd);}function isEquivalentPulledSqlFile(_0x445b8a,_0x5a93f4,_0x5351ac){return normalizePullComparableContent(_0x445b8a,_0x5351ac)===normalizePullComparableContent(_0x5a93f4,_0x5351ac);}function normalizePullComparableContent(_0x30cfbc,_0x45be4a){const _0x3b6f5f=a120_0x35c6d6,_0x539a88=_0x30cfbc[_0x3b6f5f(0x1dc)](/\r\n/g,'\x0a')[_0x3b6f5f(0x1bc)]('\x0a'),_0x4bef43=_0x539a88[_0x3b6f5f(0x1ce)](_0x1477b9=>!isSyncedAtMetadataLine(_0x1477b9,_0x45be4a));return _0x4bef43['join']('\x0a');}function isSyncedAtMetadataLine(_0xb824fa,_0x37e9ea){const _0x472879=a120_0x35c6d6;if(_0x37e9ea===_0x472879(0x1c1))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x472879(0x1c3)](_0xb824fa);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x472879(0x1c3)](_0xb824fa);}
|
|
1
|
+
const a120_0x522f46=a120_0x114a;function a120_0x3821(){const _0x53ee0b=['812UoZreF','sqlContent','sqlCode','POST','382571YZctuE','sqlName','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','message','bool','Filter\x20by\x20SQL\x20display\x20name','tableData','dbId','description','catch','\x20SQL\x20file(s)\x20into\x20','trimStart','\x20written,\x20','test','3344830pAkZbt','skipped','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','1984730DjOIQU','appCode','lockFilePath','sqls','lastSync','filter','cancelled','580utHDbN','mybatisXml','name','push','pull','toISOString','write','force','sqlRootDir','local\x20differs\x20from\x20remote','sqlcode','5550147ErEzRw','sql','length','conflict','utf8','Force\x20overwrite\x20local\x20unsynced\x20changes','unchanged','20624SOzMci','str','2232348ZfQYWQ','15969FBuTiU','replace','\x20failed','No\x20remote\x20SQL\x20queries\x20matched.','Pull\x20complete:\x20','split','Force\x20pull\x20cancelled.','boolean','path','sqlRoot'];a120_0x3821=function(){return _0x53ee0b;};return a120_0x3821();}(function(_0x2beaac,_0x45a93c){const _0x24f3e8=a120_0x114a,_0x1e750f=_0x2beaac();while(!![]){try{const _0x128cd8=-parseInt(_0x24f3e8(0x162))/0x1+-parseInt(_0x24f3e8(0x138))/0x2+parseInt(_0x24f3e8(0x154))/0x3*(parseInt(_0x24f3e8(0x13f))/0x4)+parseInt(_0x24f3e8(0x170))/0x5+-parseInt(_0x24f3e8(0x153))/0x6+parseInt(_0x24f3e8(0x15e))/0x7*(parseInt(_0x24f3e8(0x151))/0x8)+parseInt(_0x24f3e8(0x14a))/0x9;if(_0x128cd8===_0x45a93c)break;else _0x1e750f['push'](_0x1e750f['shift']());}catch(_0x263af9){_0x1e750f['push'](_0x1e750f['shift']());}}}(a120_0x3821,0x94d02));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 a120_0x114a(_0x594e5a,_0x40c650){_0x594e5a=_0x594e5a-0x137;const _0x38219e=a120_0x3821();let _0x114ad9=_0x38219e[_0x594e5a];return _0x114ad9;}async function fetchAllSqlQueries(_0x45b908,_0x89301b){const _0x202349=a120_0x114a,_0x37d94c=[];let _0x1b904d=0x1;while(!![]){const _0x237220=await listSqlQueries(_0x45b908,{'currentPage':_0x1b904d,'pageSize':PAGE_SIZE,'sqlCode':_0x89301b[_0x202349(0x160)],'sqlName':_0x89301b[_0x202349(0x163)]}),_0x128f5b=_0x237220[_0x202349(0x168)]??[];_0x37d94c['push'](..._0x128f5b);if(_0x128f5b[_0x202349(0x14c)]===0x0)break;const _0x43b8c0=_0x237220['paging']?.['totalCount'];if(_0x43b8c0!=null?_0x37d94c['length']>=_0x43b8c0:_0x128f5b[_0x202349(0x14c)]<PAGE_SIZE)break;_0x1b904d++;}return _0x37d94c;}async function ensureSqlContent(_0x4d10ea){const _0x1b1141=a120_0x114a;if(_0x4d10ea[_0x1b1141(0x15f)]!=null&&String(_0x4d10ea[_0x1b1141(0x15f)])[_0x1b1141(0x14c)]>0x0)return _0x4d10ea;return getSqlQueryDetail(_0x4d10ea['sqlCode']);}export const sqlPull={'service':a120_0x522f46(0x14b),'command':a120_0x522f46(0x143),'description':'Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','risk':a120_0x522f46(0x145),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a120_0x522f46(0x141),'type':'string','description':a120_0x522f46(0x167)},{'name':'force','type':a120_0x522f46(0x15b),'description':a120_0x522f46(0x14f)}],async 'dryRun'(_0x29515b){const _0x115213=a120_0x522f46,_0x1d1901=loadSqlProjectConfig(_0x29515b['appCode']),_0x2018a4=await readSqlLockFile(_0x1d1901[_0x115213(0x13a)]),{appLock:_0x352e2d}=ensureSqlLockScope(_0x2018a4??createEmptySqlLock(),_0x1d1901[_0x115213(0x139)],_0x1d1901[_0x115213(0x15d)],_0x115213(0x143)),_0x51bee9=await fetchAllSqlQueries(_0x29515b[_0x115213(0x139)],{'sqlCode':_0x29515b[_0x115213(0x152)]('sqlcode')||undefined,'sqlName':_0x29515b[_0x115213(0x152)](_0x115213(0x141))||undefined}),_0x4f0e41=[];for(const _0x2e003f of _0x51bee9){const _0x434c70=await ensureSqlContent(_0x2e003f),_0xf51ef=ensureRemoteSqlContent(_0x434c70),_0x497139=detectModeFromSql(_0x434c70),_0x544e74=_0x434c70['dbId']?await getDbName(_0x29515b['appCode'],Number(_0x434c70[_0x115213(0x169)]))[_0x115213(0x16b)](()=>undefined):undefined,_0x4e4420=buildLocalSqlFileContent({'sqlCode':_0x434c70[_0x115213(0x160)],'sqlName':_0x434c70['sqlName'],'dbId':_0x434c70['dbId']},_0xf51ef,{'dbName':_0x544e74,'mode':_0x497139,'syncedAt':new Date()['toISOString'](),'description':_0x434c70[_0x115213(0x16a)]}),_0x5d2821=buildSqlLockEntry(_0x434c70,_0xf51ef,'',{'dbName':_0x544e74}),_0x93107b=resolveLocalSqlFilePath(_0x1d1901,_0x434c70[_0x115213(0x160)],_0x5d2821);let _0x39620c='would_pull',_0x4d0d12;if(await fileExists(_0x93107b)){const _0x1146bf=await readFile(_0x93107b,_0x115213(0x14e));isEquivalentPulledSqlFile(_0x1146bf,_0x4e4420,_0x497139)?(_0x39620c=_0x115213(0x171),_0x4d0d12=_0x115213(0x150)):(_0x39620c=_0x115213(0x14d),_0x4d0d12=_0x115213(0x164));}_0x4f0e41[_0x115213(0x142)]({'sqlCode':_0x434c70[_0x115213(0x160)],'sqlName':_0x434c70[_0x115213(0x163)],'filePath':_0x93107b,'status':_0x39620c,'reason':_0x4d0d12});}return{'method':_0x115213(0x161),'url':_0x115213(0x137),'body':{'appCode':_0x29515b[_0x115213(0x139)],'sqlCode':_0x29515b['str']('sqlcode')||null,'sqlName':_0x29515b[_0x115213(0x152)]('name')||null,'files':_0x4f0e41},'description':'Would\x20pull\x20'+_0x4f0e41['length']+_0x115213(0x16c)+_0x1d1901[_0x115213(0x147)]};},async 'execute'(_0x917a0f){const _0x3051a1=a120_0x522f46,_0x471018=loadSqlProjectConfig(_0x917a0f[_0x3051a1(0x139)]),_0x57248b=await readSqlLockFile(_0x471018[_0x3051a1(0x13a)]),{lockData:_0x141be0,appLock:_0x2727e3}=ensureSqlLockScope(_0x57248b??createEmptySqlLock(),_0x471018[_0x3051a1(0x139)],_0x471018[_0x3051a1(0x15d)],_0x3051a1(0x143)),_0x5a99a7=_0x917a0f[_0x3051a1(0x166)](_0x3051a1(0x146)),_0x40737c=await fetchAllSqlQueries(_0x917a0f[_0x3051a1(0x139)],{'sqlCode':_0x917a0f['str'](_0x3051a1(0x149))||undefined,'sqlName':_0x917a0f['str']('name')||undefined});if(_0x40737c[_0x3051a1(0x14c)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x3051a1(0x157)};const _0xde4294=[],_0x401aea=[];for(const _0x1a26d9 of _0x40737c){try{_0xde4294[_0x3051a1(0x142)](await ensureSqlContent(_0x1a26d9));}catch(_0x30ff94){_0x401aea[_0x3051a1(0x142)]({'sqlCode':_0x1a26d9['sqlCode'],'error':_0x30ff94 instanceof Error?_0x30ff94[_0x3051a1(0x165)]:String(_0x30ff94)});}}if(_0x5a99a7&&!_0x917a0f['nonInteractive']){let _0x1625b2=![];for(const _0xe5fc2d of _0xde4294){const _0x5c8820=detectModeFromSql(_0xe5fc2d),_0x15d6e8=_0xe5fc2d[_0x3051a1(0x169)]?await getDbName(_0x917a0f[_0x3051a1(0x139)],Number(_0xe5fc2d[_0x3051a1(0x169)]))[_0x3051a1(0x16b)](()=>undefined):undefined,_0x5ee666=buildLocalSqlFileContent({'sqlCode':_0xe5fc2d[_0x3051a1(0x160)],'sqlName':_0xe5fc2d[_0x3051a1(0x163)],'dbId':_0xe5fc2d['dbId']},ensureRemoteSqlContent(_0xe5fc2d),{'dbName':_0x15d6e8,'mode':_0x5c8820,'syncedAt':new Date()[_0x3051a1(0x144)](),'description':_0xe5fc2d[_0x3051a1(0x16a)]}),_0x4204a1=resolveLocalSqlFilePath(_0x471018,_0xe5fc2d['sqlCode'],buildSqlLockEntry(_0xe5fc2d,ensureRemoteSqlContent(_0xe5fc2d),'',{'dbName':_0x15d6e8}));if(await fileExists(_0x4204a1)){const _0x52b04b=await readFile(_0x4204a1,_0x3051a1(0x14e));if(!isEquivalentPulledSqlFile(_0x52b04b,_0x5ee666,_0x5c8820)){_0x1625b2=!![];break;}}}if(_0x1625b2){const _0x1315c4=await confirmForceOverwrite(_0x3051a1(0x172));if(!_0x1315c4)throw CliErrors[_0x3051a1(0x13e)](_0x3051a1(0x15a));}}const _0x1c18c8=cloneSqlLockData(_0x141be0),_0xbea6fc=_0x1c18c8['apps'][_0x471018[_0x3051a1(0x139)]],_0x1cc0bb=[],_0x32cd1a=[];for(const _0x5c431c of _0xde4294){const _0x3935ec=_0xbea6fc['sqls'][_0x5c431c[_0x3051a1(0x160)]],_0x372210=ensureRemoteSqlContent(_0x5c431c),_0xef3863=detectModeFromSql(_0x5c431c),_0x7d2a9d=_0x5c431c['dbId']?await getDbName(_0x917a0f[_0x3051a1(0x139)],Number(_0x5c431c[_0x3051a1(0x169)]))[_0x3051a1(0x16b)](()=>undefined):undefined,_0x549aec=buildLocalSqlFileContent({'sqlCode':_0x5c431c[_0x3051a1(0x160)],'sqlName':_0x5c431c[_0x3051a1(0x163)],'dbId':_0x5c431c[_0x3051a1(0x169)]},_0x372210,{'dbName':_0x7d2a9d,'mode':_0xef3863,'syncedAt':new Date()[_0x3051a1(0x144)](),'description':_0x5c431c['description']}),_0x53167c=buildSqlLockEntry(_0x5c431c,_0x372210,computeSqlContentHash(_0x549aec),{'dbName':_0x7d2a9d}),_0x588af1=_0x53167c[_0x3051a1(0x15c)],_0xde30b6=join(_0x471018[_0x3051a1(0x147)],_0x588af1);try{if(await fileExists(_0xde30b6)){const _0xc31283=await readFile(_0xde30b6,_0x3051a1(0x14e));if(isEquivalentPulledSqlFile(_0xc31283,_0x549aec,_0xef3863)){_0x32cd1a[_0x3051a1(0x142)]({'sqlCode':_0x5c431c[_0x3051a1(0x160)],'reason':_0x3051a1(0x150)}),_0xbea6fc[_0x3051a1(0x13b)][_0x5c431c[_0x3051a1(0x160)]]={..._0x53167c,'hash':computeSqlContentHash(_0xc31283),'path':_0x588af1};continue;}if(!_0x5a99a7){_0x32cd1a[_0x3051a1(0x142)]({'sqlCode':_0x5c431c['sqlCode'],'reason':_0x3051a1(0x148)});continue;}}const _0x145ef6=_0x3935ec?.['path']?join(_0x471018[_0x3051a1(0x147)],_0x3935ec[_0x3051a1(0x15c)]):undefined;_0x145ef6&&_0x145ef6!==_0xde30b6&&await fileExists(_0x145ef6)&&await rm(_0x145ef6,{'force':!![]}),await ensureParentDirectory(_0xde30b6),await writeFile(_0xde30b6,_0x549aec,_0x3051a1(0x14e)),_0xbea6fc[_0x3051a1(0x13b)][_0x5c431c[_0x3051a1(0x160)]]={..._0x53167c,'path':_0x588af1},_0x1cc0bb[_0x3051a1(0x142)]({'sqlCode':_0x5c431c[_0x3051a1(0x160)],'filePath':_0xde30b6});}catch(_0x57055a){_0x401aea['push']({'sqlCode':_0x5c431c[_0x3051a1(0x160)],'error':_0x57055a instanceof Error?_0x57055a['message']:String(_0x57055a)});}}return _0xbea6fc[_0x3051a1(0x13c)]=new Date()[_0x3051a1(0x144)](),await writeSqlLockFile(_0x471018[_0x3051a1(0x13a)],_0x1c18c8),{'ok':_0x401aea[_0x3051a1(0x14c)]===0x0,'data':{'pulled':_0x1cc0bb,'skipped':_0x32cd1a,'failed':_0x401aea},'message':_0x3051a1(0x158)+_0x1cc0bb[_0x3051a1(0x14c)]+_0x3051a1(0x16e)+_0x32cd1a[_0x3051a1(0x14c)]+'\x20skipped,\x20'+_0x401aea[_0x3051a1(0x14c)]+_0x3051a1(0x156)};}};function detectModeFromSql(_0x834047){const _0x3bb1ca=a120_0x522f46,_0x3862c7=ensureRemoteSqlContent(_0x834047),_0x3002c9=stripLocalSqlMetadata(_0x3862c7,_0x3bb1ca(0x140))[_0x3bb1ca(0x16d)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x3002c9))return _0x3bb1ca(0x140);return _0x3bb1ca(0x14b);}function isEquivalentPulledSqlFile(_0x15678a,_0x228a9f,_0x5995ab){return normalizePullComparableContent(_0x15678a,_0x5995ab)===normalizePullComparableContent(_0x228a9f,_0x5995ab);}function normalizePullComparableContent(_0x2b3451,_0x5991fc){const _0x3ca414=a120_0x522f46,_0x37e575=_0x2b3451[_0x3ca414(0x155)](/\r\n/g,'\x0a')[_0x3ca414(0x159)]('\x0a'),_0x440183=_0x37e575[_0x3ca414(0x13d)](_0x35f680=>!isSyncedAtMetadataLine(_0x35f680,_0x5991fc));return _0x440183['join']('\x0a');}function isSyncedAtMetadataLine(_0x2aec85,_0x1e4a5b){const _0xe0c16a=a120_0x522f46;if(_0x1e4a5b===_0xe0c16a(0x140))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0xe0c16a(0x16f)](_0x2aec85);return/^\s*--\s*@lovrabet\.syncedAt:/[_0xe0c16a(0x16f)](_0x2aec85);}
|
package/lib/commands/sql/push.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function a121_0x2ab4(_0x3a8a34,_0x40c71d){_0x3a8a34=_0x3a8a34-0xea;const _0x3c0447=a121_0x3c04();let _0x2ab48d=_0x3c0447[_0x3a8a34];return _0x2ab48d;}function a121_0x3c04(){const _0x947a5=['Would\x20push\x20','sqlCode','replace','143595uBFbEr','sqlConfig','27377qfHSmZ','sqlRootDir','/smartapi/custom/updateUserCustomSql','catch','set','force','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','12iNUcEC','No\x20database\x20matches\x20local\x20directory\x20\x22','Push\x20complete:\x20','remoteId','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','Local\x20SQL\x20not\x20found:\x20','entries','\x22\x20for\x20sqlCode\x20','length','exec','validation','version','sqlRoot','appCode','startsWith','sql','path','lastSync','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','\x20SQL\x20file(s)','\x20skipped,\x20','140bJlbTd','toISOString','hash','117845SQlqfN','get','sqlName','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','10lkkPkW','message','relativePath','filter','map','has','join','295815XFCWoB','dbName','Push\x20local\x20SQL\x20files\x20to\x20remote','POST','174jpatEb','bool','filePath','313893TjTInt','utf8','isFinite','sqlcode','mode','252JwUzxR','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','dbDirectory','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','trashDir','unchanged','dbId','lockFilePath','sqls','24IyTxLc','push','\x20failed','55913loLOhK','45077tEeuHt'];a121_0x3c04=function(){return _0x947a5;};return a121_0x3c04();}const a121_0x39bd3c=a121_0x2ab4;(function(_0x5698b2,_0x3193df){const _0x3e45ea=a121_0x2ab4,_0x164957=_0x5698b2();while(!![]){try{const _0x2e12ae=parseInt(_0x3e45ea(0xed))/0x1*(parseInt(_0x3e45ea(0x116))/0x2)+-parseInt(_0x3e45ea(0x124))/0x3*(parseInt(_0x3e45ea(0xfa))/0x4)+parseInt(_0x3e45ea(0x11d))/0x5+-parseInt(_0x3e45ea(0x121))/0x6*(parseInt(_0x3e45ea(0xf3))/0x7)+-parseInt(_0x3e45ea(0x132))/0x8*(-parseInt(_0x3e45ea(0xf1))/0x9)+parseInt(_0x3e45ea(0x10f))/0xa*(parseInt(_0x3e45ea(0xec))/0xb)+-parseInt(_0x3e45ea(0x129))/0xc*(-parseInt(_0x3e45ea(0x112))/0xd);if(_0x2e12ae===_0x3193df)break;else _0x164957['push'](_0x164957['shift']());}catch(_0x25aecd){_0x164957['push'](_0x164957['shift']());}}}(a121_0x3c04,0x28ae4));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x2b4629,_0x15bfbf,_0x132ea5){const _0x2de150=a121_0x2ab4,_0x1d977b=await scanLocalSqlQueries(_0x2b4629),_0x18d172=new Map();for(const _0xa740ed of _0x1d977b){if(_0x132ea5&&_0xa740ed[_0x2de150(0xef)]!==_0x132ea5)continue;const _0x132ef1=_0x18d172[_0x2de150(0x113)](_0xa740ed['sqlCode'])??[];_0x132ef1[_0x2de150(0xea)](_0xa740ed),_0x18d172[_0x2de150(0xf7)](_0xa740ed[_0x2de150(0xef)],_0x132ef1);}if(_0x132ea5&&!_0x18d172[_0x2de150(0x11b)](_0x132ea5))throw CliErrors['validation'](_0x2de150(0xff)+_0x132ea5);const _0x36dc20=[];for(const [_0x574e01,_0x2b0632]of _0x18d172[_0x2de150(0x100)]()){if(_0x2b0632[_0x2de150(0x102)]===0x1){_0x36dc20[_0x2de150(0xea)](_0x2b0632[0x0]);continue;}const _0x2eace0=_0x15bfbf[_0x2de150(0x131)][_0x574e01],_0x3a37c8=_0x2eace0?.['path'],_0x1662ea=_0x3a37c8?_0x2b0632[_0x2de150(0x119)](_0x82d99c=>_0x82d99c[_0x2de150(0x118)]!==_0x3a37c8):_0x2b0632;if(_0x2eace0&&_0x1662ea['length']===0x1){_0x36dc20[_0x2de150(0xea)](_0x1662ea[0x0]);continue;}throw CliErrors[_0x2de150(0x104)](_0x2de150(0xf9)+_0x574e01+_0x2de150(0x12a));}return _0x36dc20;}export const sqlPush={'service':a121_0x39bd3c(0x109),'command':'push','description':a121_0x39bd3c(0x11f),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':'boolean','description':a121_0x39bd3c(0x10c)}],async 'dryRun'(_0x24847e){const _0x1a108e=a121_0x39bd3c,_0x29a9a2=loadSqlProjectConfig(_0x24847e['appCode']),_0x142d29=await readSqlLockFile(_0x29a9a2[_0x1a108e(0x130)]),{appLock:_0x39a974}=ensureSqlLockScope(_0x142d29??createEmptySqlLock(),_0x24847e[_0x1a108e(0x107)],_0x29a9a2[_0x1a108e(0x106)],_0x1a108e(0xea)),_0x119d49=await getTargetSqlQueries(_0x29a9a2,_0x39a974,_0x24847e['str'](_0x1a108e(0x127))||undefined),_0x1c0d12=[];for(const _0x4f4c29 of _0x119d49){const _0x2b82e6=await computeSqlFileHash(_0x4f4c29[_0x1a108e(0x123)]),_0x1a7d5c=_0x39a974[_0x1a108e(0x131)][_0x4f4c29[_0x1a108e(0xef)]],_0x48f8a3=!!_0x1a7d5c&&(_0x1a7d5c[_0x1a108e(0x10a)]!==_0x4f4c29['relativePath']||!!_0x4f4c29[_0x1a108e(0x114)]&&_0x1a7d5c[_0x1a108e(0x114)]!==_0x4f4c29['sqlName']);if(!_0x24847e[_0x1a108e(0x122)](_0x1a108e(0xf8))&&_0x1a7d5c&&_0x1a7d5c[_0x1a108e(0x111)]===_0x2b82e6&&!_0x48f8a3)continue;_0x1c0d12[_0x1a108e(0xea)](_0x4f4c29[_0x1a108e(0xef)]);}return{'method':_0x1a108e(0x120),'url':_0x1a108e(0xf5),'body':{'sqlCodes':_0x1c0d12,'appCode':_0x24847e[_0x1a108e(0x107)]},'description':_0x1a108e(0xee)+_0x1c0d12[_0x1a108e(0x102)]+_0x1a108e(0x10d)};},async 'execute'(_0x18f806){const _0x227226=a121_0x39bd3c,_0x10189e=loadSqlProjectConfig(_0x18f806[_0x227226(0x107)]),_0x1cb3c8=await readSqlLockFile(_0x10189e[_0x227226(0x130)]),{lockData:_0x566ef5,appLock:_0x28ba13}=ensureSqlLockScope(_0x1cb3c8??createEmptySqlLock(),_0x18f806[_0x227226(0x107)],_0x10189e[_0x227226(0x106)],_0x227226(0xea)),_0x310b7f=await getTargetSqlQueries(_0x10189e,_0x28ba13,_0x18f806['str']('sqlcode')||undefined);if(_0x310b7f[_0x227226(0x102)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x230002=[],_0xc61247=[],_0x38aa26=[];for(const _0x55ac55 of _0x310b7f){const _0x31af8c=_0x28ba13[_0x227226(0x131)][_0x55ac55[_0x227226(0xef)]];if(!_0x31af8c){_0x38aa26[_0x227226(0xea)]({'sqlCode':_0x55ac55[_0x227226(0xef)],'error':_0x227226(0x115)});continue;}try{const _0x1394ca=await computeSqlFileHash(_0x55ac55[_0x227226(0x123)]),_0x12e999=_0x31af8c[_0x227226(0x10a)]!==_0x55ac55[_0x227226(0x118)]||!!_0x55ac55[_0x227226(0x114)]&&_0x31af8c[_0x227226(0x114)]!==_0x55ac55[_0x227226(0x114)];if(!_0x18f806[_0x227226(0x122)](_0x227226(0xf8))&&_0x31af8c['hash']===_0x1394ca&&!_0x12e999){_0xc61247[_0x227226(0xea)]({'sqlCode':_0x55ac55['sqlCode'],'reason':_0x227226(0x12e)});continue;}if(_0x31af8c[_0x227226(0x105)]==null){_0x38aa26['push']({'sqlCode':_0x55ac55['sqlCode'],'error':_0x227226(0xfe)});continue;}const _0x253c5c=await readFile(_0x55ac55['filePath'],_0x227226(0x125)),_0x463df1=stripLocalSqlMetadata(_0x253c5c,_0x55ac55[_0x227226(0x128)]),_0x490cc7=_0x55ac55[_0x227226(0x114)]||_0x31af8c[_0x227226(0x114)],_0xb15e9b=await resolveTargetDbBinding(_0x18f806[_0x227226(0x107)],_0x55ac55,_0x31af8c),_0x2e159f=await updateSqlQuery({'id':_0x31af8c[_0x227226(0xfd)],'appCode':_0x18f806[_0x227226(0x107)],'sqlCode':_0x55ac55[_0x227226(0xef)],'sqlName':_0x490cc7,'dbId':_0xb15e9b[_0x227226(0x12f)],'version':_0x31af8c[_0x227226(0x105)],'sqlContent':_0x463df1,'sqlConfig':_0x31af8c[_0x227226(0xf2)]??undefined}),_0x3dc808=_0x2e159f['dbId']?await getDbName(_0x18f806[_0x227226(0x107)],Number(_0x2e159f[_0x227226(0x12f)]))[_0x227226(0xf6)](()=>_0xb15e9b[_0x227226(0x11e)]):_0xb15e9b[_0x227226(0x11e)];_0x28ba13[_0x227226(0x131)][_0x55ac55[_0x227226(0xef)]]={...buildSqlLockEntry(_0x2e159f,_0x463df1,_0x1394ca,{'dbName':_0x3dc808}),'path':_0x55ac55[_0x227226(0x118)],'mode':_0x31af8c['mode']},await archivePreviousSqlFileIfNeeded(_0x10189e,_0x31af8c[_0x227226(0x10a)],_0x55ac55[_0x227226(0x118)]),_0x230002['push']({'sqlCode':_0x55ac55['sqlCode'],'remoteId':_0x31af8c[_0x227226(0xfd)]});}catch(_0x45e184){_0x38aa26[_0x227226(0xea)]({'sqlCode':_0x55ac55[_0x227226(0xef)],'error':_0x45e184 instanceof Error?_0x45e184[_0x227226(0x117)]:String(_0x45e184)});}}return _0x28ba13[_0x227226(0x10b)]=new Date()['toISOString'](),await writeSqlLockFile(_0x10189e[_0x227226(0x130)],_0x566ef5),{'ok':_0x38aa26['length']===0x0,'data':{'pushed':_0x230002,'skipped':_0xc61247,'failed':_0x38aa26},'message':_0x227226(0xfc)+_0x230002['length']+'\x20pushed,\x20'+_0xc61247[_0x227226(0x102)]+_0x227226(0x10e)+_0x38aa26[_0x227226(0x102)]+_0x227226(0xeb)};}};async function archivePreviousSqlFileIfNeeded(_0x228daf,_0x1ab527,_0x56444c){const _0x19ef4c=a121_0x39bd3c;if(!_0x1ab527||_0x1ab527===_0x56444c)return;const _0x37acad=join(_0x228daf[_0x19ef4c(0xf4)],_0x1ab527);if(!await fileExists(_0x37acad))return;const _0x2a07b4=await moveToTrash(_0x228daf['projectRoot'],_0x228daf[_0x19ef4c(0x12d)],_0x37acad);await cleanupEmptyDirectories(dirname(_0x37acad),_0x228daf[_0x19ef4c(0xf4)]),void _0x2a07b4;}async function moveToTrash(_0x15c945,_0x1a7ff9,_0xdd613a){const _0x4eba33=a121_0x39bd3c,_0x10dafd=new Date()[_0x4eba33(0x110)]()[_0x4eba33(0xf0)](/[:.]/g,'-'),_0x2e88ba=relative(_0x15c945,_0xdd613a),_0x2f6a2f=join(_0x1a7ff9,_0x10dafd,_0x2e88ba);return await mkdir(dirname(_0x2f6a2f),{'recursive':!![]}),await rename(_0xdd613a,_0x2f6a2f),_0x2f6a2f;}async function cleanupEmptyDirectories(_0x16bb3f,_0x43b63a){const _0x4de4cc=a121_0x39bd3c;let _0x206c94=resolve(_0x16bb3f);const _0x3a4452=resolve(_0x43b63a);while(_0x206c94[_0x4de4cc(0x108)](''+_0x3a4452+sep)||_0x206c94===_0x3a4452){if(_0x206c94===_0x3a4452)return;try{const _0x56c81b=await readdir(_0x206c94);if(_0x56c81b[_0x4de4cc(0x102)]>0x0)return;await rmdir(_0x206c94);}catch{return;}_0x206c94=dirname(_0x206c94);}}async function resolveTargetDbBinding(_0x31b4f6,_0x2a76ef,_0x374a91){const _0x2c5b18=a121_0x39bd3c,_0x35bae8=_0x2a76ef[_0x2c5b18(0x12b)];if(!_0x35bae8)return{'dbId':_0x374a91['dbId'],'dbName':_0x374a91[_0x2c5b18(0x11e)]};const _0x2a4a79=buildDbDirectoryName(_0x374a91['dbName'],_0x374a91['dbId']);if(_0x35bae8===_0x2a4a79)return{'dbId':_0x374a91[_0x2c5b18(0x12f)],'dbName':_0x374a91['dbName']};const _0x9db42e=parseExplicitDbDirectory(_0x35bae8);if(_0x9db42e!=null)return{'dbId':_0x9db42e,'dbName':await getDbName(_0x31b4f6,_0x9db42e)[_0x2c5b18(0xf6)](()=>undefined)};const _0x37074f=await listDatabases(_0x31b4f6),_0xdafd01=_0x37074f[_0x2c5b18(0x119)](_0x44d976=>buildDbDirectoryName(_0x44d976['dbName'],_0x44d976[_0x2c5b18(0x12f)])===_0x35bae8);if(_0xdafd01[_0x2c5b18(0x102)]===0x1)return{'dbId':_0xdafd01[0x0][_0x2c5b18(0x12f)],'dbName':_0xdafd01[0x0]['dbName']};if(_0xdafd01[_0x2c5b18(0x102)]===0x0)throw CliErrors[_0x2c5b18(0x104)](_0x2c5b18(0xfb)+_0x35bae8+_0x2c5b18(0x101)+_0x2a76ef[_0x2c5b18(0xef)]+'.');const _0x976dc2=_0xdafd01[_0x2c5b18(0x11a)](_0x4d94c2=>_0x4d94c2[_0x2c5b18(0x11e)]+'\x20('+_0x4d94c2[_0x2c5b18(0x12f)]+')')[_0x2c5b18(0x11c)](',\x20');throw CliErrors[_0x2c5b18(0x104)]('Local\x20directory\x20\x22'+_0x35bae8+_0x2c5b18(0x12c)+_0x2a76ef[_0x2c5b18(0xef)]+':\x20'+_0x976dc2);}function parseExplicitDbDirectory(_0x417c4b){const _0x9a4bcf=a121_0x39bd3c,_0x5a9b43=/^db-(\d+)$/[_0x9a4bcf(0x103)](_0x417c4b);if(!_0x5a9b43)return null;const _0x13a202=Number(_0x5a9b43[0x1]);return Number[_0x9a4bcf(0x126)](_0x13a202)&&_0x13a202>0x0?_0x13a202:null;}
|
|
1
|
+
const a121_0x2e0ece=a121_0x12d7;(function(_0x45d804,_0x3dbe72){const _0xbe75c=a121_0x12d7,_0x2f1038=_0x45d804();while(!![]){try{const _0x105183=-parseInt(_0xbe75c(0x87))/0x1*(-parseInt(_0xbe75c(0xa7))/0x2)+parseInt(_0xbe75c(0xa8))/0x3+parseInt(_0xbe75c(0x8c))/0x4*(-parseInt(_0xbe75c(0x67))/0x5)+-parseInt(_0xbe75c(0xa4))/0x6*(-parseInt(_0xbe75c(0x78))/0x7)+-parseInt(_0xbe75c(0x80))/0x8*(-parseInt(_0xbe75c(0x89))/0x9)+-parseInt(_0xbe75c(0x96))/0xa*(-parseInt(_0xbe75c(0xa5))/0xb)+parseInt(_0xbe75c(0x68))/0xc*(-parseInt(_0xbe75c(0x97))/0xd);if(_0x105183===_0x3dbe72)break;else _0x2f1038['push'](_0x2f1038['shift']());}catch(_0x2d7fb8){_0x2f1038['push'](_0x2f1038['shift']());}}}(a121_0x1b0f,0xb048e));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';function a121_0x12d7(_0x1d28a7,_0x288940){_0x1d28a7=_0x1d28a7-0x67;const _0x1b0f48=a121_0x1b0f();let _0x12d755=_0x1b0f48[_0x1d28a7];return _0x12d755;}import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x42908b,_0x5ade2b,_0x1d0ca1){const _0x227cf1=a121_0x12d7,_0x4b800d=await scanLocalSqlQueries(_0x42908b),_0x314212=new Map();for(const _0x1e8703 of _0x4b800d){if(_0x1d0ca1&&_0x1e8703[_0x227cf1(0x9d)]!==_0x1d0ca1)continue;const _0x3853e8=_0x314212[_0x227cf1(0x75)](_0x1e8703[_0x227cf1(0x9d)])??[];_0x3853e8[_0x227cf1(0x72)](_0x1e8703),_0x314212[_0x227cf1(0xa0)](_0x1e8703[_0x227cf1(0x9d)],_0x3853e8);}if(_0x1d0ca1&&!_0x314212[_0x227cf1(0x84)](_0x1d0ca1))throw CliErrors[_0x227cf1(0x6b)](_0x227cf1(0x6e)+_0x1d0ca1);const _0x44c1ce=[];for(const [_0x4fc31b,_0x505768]of _0x314212['entries']()){if(_0x505768[_0x227cf1(0x70)]===0x1){_0x44c1ce[_0x227cf1(0x72)](_0x505768[0x0]);continue;}const _0x5d2f90=_0x5ade2b[_0x227cf1(0x7e)][_0x4fc31b],_0x1ea271=_0x5d2f90?.['path'],_0x46426c=_0x1ea271?_0x505768[_0x227cf1(0x73)](_0x6ad6b5=>_0x6ad6b5[_0x227cf1(0x6c)]!==_0x1ea271):_0x505768;if(_0x5d2f90&&_0x46426c['length']===0x1){_0x44c1ce[_0x227cf1(0x72)](_0x46426c[0x0]);continue;}throw CliErrors['validation'](_0x227cf1(0x8a)+_0x4fc31b+_0x227cf1(0x9b));}return _0x44c1ce;}export const sqlPush={'service':'sql','command':a121_0x2e0ece(0x72),'description':a121_0x2e0ece(0x99),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':'boolean','description':a121_0x2e0ece(0x7f)}],async 'dryRun'(_0x4d1490){const _0x22d890=a121_0x2e0ece,_0x8e1bde=loadSqlProjectConfig(_0x4d1490[_0x22d890(0x86)]),_0x1621ab=await readSqlLockFile(_0x8e1bde['lockFilePath']),{appLock:_0x2735b5}=ensureSqlLockScope(_0x1621ab??createEmptySqlLock(),_0x4d1490[_0x22d890(0x86)],_0x8e1bde['sqlRoot'],'push'),_0xbc754b=await getTargetSqlQueries(_0x8e1bde,_0x2735b5,_0x4d1490[_0x22d890(0x9f)](_0x22d890(0x7a))||undefined),_0x305548=[];for(const _0x7ea8a7 of _0xbc754b){const _0x3e3ed1=await computeSqlFileHash(_0x7ea8a7[_0x22d890(0x98)]),_0x12b5a6=_0x2735b5[_0x22d890(0x7e)][_0x7ea8a7[_0x22d890(0x9d)]],_0xd65402=!!_0x12b5a6&&(_0x12b5a6[_0x22d890(0x85)]!==_0x7ea8a7[_0x22d890(0x6c)]||!!_0x7ea8a7['sqlName']&&_0x12b5a6['sqlName']!==_0x7ea8a7['sqlName']);if(!_0x4d1490['bool'](_0x22d890(0xaa))&&_0x12b5a6&&_0x12b5a6[_0x22d890(0xa3)]===_0x3e3ed1&&!_0xd65402)continue;_0x305548['push'](_0x7ea8a7['sqlCode']);}return{'method':_0x22d890(0x6d),'url':'/smartapi/custom/updateUserCustomSql','body':{'sqlCodes':_0x305548,'appCode':_0x4d1490['appCode']},'description':_0x22d890(0x7d)+_0x305548[_0x22d890(0x70)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x1c380d){const _0x1a3886=a121_0x2e0ece,_0x422000=loadSqlProjectConfig(_0x1c380d[_0x1a3886(0x86)]),_0x36a3a3=await readSqlLockFile(_0x422000[_0x1a3886(0x9c)]),{lockData:_0x5325ee,appLock:_0x87d590}=ensureSqlLockScope(_0x36a3a3??createEmptySqlLock(),_0x1c380d[_0x1a3886(0x86)],_0x422000[_0x1a3886(0x7c)],_0x1a3886(0x72)),_0x2bcad7=await getTargetSqlQueries(_0x422000,_0x87d590,_0x1c380d[_0x1a3886(0x9f)]('sqlcode')||undefined);if(_0x2bcad7[_0x1a3886(0x70)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x1a3886(0xa6)};const _0x51024b=[],_0x334de2=[],_0x18f232=[];for(const _0x5d6cb7 of _0x2bcad7){const _0x17fe0e=_0x87d590[_0x1a3886(0x7e)][_0x5d6cb7[_0x1a3886(0x9d)]];if(!_0x17fe0e){_0x18f232['push']({'sqlCode':_0x5d6cb7['sqlCode'],'error':_0x1a3886(0xa9)});continue;}try{const _0x431323=await computeSqlFileHash(_0x5d6cb7['filePath']),_0x5074d2=_0x17fe0e[_0x1a3886(0x85)]!==_0x5d6cb7['relativePath']||!!_0x5d6cb7[_0x1a3886(0x76)]&&_0x17fe0e[_0x1a3886(0x76)]!==_0x5d6cb7['sqlName'];if(!_0x1c380d[_0x1a3886(0x71)](_0x1a3886(0xaa))&&_0x17fe0e[_0x1a3886(0xa3)]===_0x431323&&!_0x5074d2){_0x334de2['push']({'sqlCode':_0x5d6cb7[_0x1a3886(0x9d)],'reason':'unchanged'});continue;}if(_0x17fe0e[_0x1a3886(0x7b)]==null){_0x18f232[_0x1a3886(0x72)]({'sqlCode':_0x5d6cb7[_0x1a3886(0x9d)],'error':_0x1a3886(0x9e)});continue;}const _0x2f3ba9=await readFile(_0x5d6cb7['filePath'],_0x1a3886(0x95)),_0x5d5af5=stripLocalSqlMetadata(_0x2f3ba9,_0x5d6cb7[_0x1a3886(0x6f)]),_0x5ac0ef=_0x5d6cb7[_0x1a3886(0x76)]||_0x17fe0e[_0x1a3886(0x76)],_0x20f641=await resolveTargetDbBinding(_0x1c380d[_0x1a3886(0x86)],_0x5d6cb7,_0x17fe0e),_0x315447=await updateSqlQuery({'id':_0x17fe0e['remoteId'],'appCode':_0x1c380d[_0x1a3886(0x86)],'sqlCode':_0x5d6cb7[_0x1a3886(0x9d)],'sqlName':_0x5ac0ef,'dbId':_0x20f641['dbId'],'version':_0x17fe0e['version'],'sqlContent':_0x5d5af5,'sqlConfig':_0x17fe0e[_0x1a3886(0x8e)]??undefined}),_0x447a83=_0x315447[_0x1a3886(0x93)]?await getDbName(_0x1c380d[_0x1a3886(0x86)],Number(_0x315447[_0x1a3886(0x93)]))['catch'](()=>_0x20f641[_0x1a3886(0x74)]):_0x20f641[_0x1a3886(0x74)];_0x87d590[_0x1a3886(0x7e)][_0x5d6cb7[_0x1a3886(0x9d)]]={...buildSqlLockEntry(_0x315447,_0x5d5af5,_0x431323,{'dbName':_0x447a83}),'path':_0x5d6cb7['relativePath'],'mode':_0x17fe0e[_0x1a3886(0x6f)]},await archivePreviousSqlFileIfNeeded(_0x422000,_0x17fe0e[_0x1a3886(0x85)],_0x5d6cb7['relativePath']),_0x51024b[_0x1a3886(0x72)]({'sqlCode':_0x5d6cb7[_0x1a3886(0x9d)],'remoteId':_0x17fe0e[_0x1a3886(0x83)]});}catch(_0x10ed0b){_0x18f232[_0x1a3886(0x72)]({'sqlCode':_0x5d6cb7[_0x1a3886(0x9d)],'error':_0x10ed0b instanceof Error?_0x10ed0b[_0x1a3886(0x77)]:String(_0x10ed0b)});}}return _0x87d590[_0x1a3886(0x92)]=new Date()[_0x1a3886(0x8d)](),await writeSqlLockFile(_0x422000[_0x1a3886(0x9c)],_0x5325ee),{'ok':_0x18f232[_0x1a3886(0x70)]===0x0,'data':{'pushed':_0x51024b,'skipped':_0x334de2,'failed':_0x18f232},'message':'Push\x20complete:\x20'+_0x51024b[_0x1a3886(0x70)]+'\x20pushed,\x20'+_0x334de2[_0x1a3886(0x70)]+_0x1a3886(0x88)+_0x18f232[_0x1a3886(0x70)]+_0x1a3886(0x91)};}};async function archivePreviousSqlFileIfNeeded(_0x3982bb,_0x29667d,_0x5e4b33){const _0x5ec4b5=a121_0x2e0ece;if(!_0x29667d||_0x29667d===_0x5e4b33)return;const _0x558bb7=join(_0x3982bb[_0x5ec4b5(0x6a)],_0x29667d);if(!await fileExists(_0x558bb7))return;const _0x10ca4c=await moveToTrash(_0x3982bb[_0x5ec4b5(0x79)],_0x3982bb[_0x5ec4b5(0x82)],_0x558bb7);await cleanupEmptyDirectories(dirname(_0x558bb7),_0x3982bb['sqlRootDir']),void _0x10ca4c;}async function moveToTrash(_0x29c8d9,_0x503ad7,_0x7a2255){const _0x388fcd=a121_0x2e0ece,_0x545052=new Date()['toISOString']()[_0x388fcd(0x8f)](/[:.]/g,'-'),_0x5b0056=relative(_0x29c8d9,_0x7a2255),_0x11d19f=join(_0x503ad7,_0x545052,_0x5b0056);return await mkdir(dirname(_0x11d19f),{'recursive':!![]}),await rename(_0x7a2255,_0x11d19f),_0x11d19f;}async function cleanupEmptyDirectories(_0x467531,_0x39a853){const _0x4fe855=a121_0x2e0ece;let _0x333e10=resolve(_0x467531);const _0x169bd1=resolve(_0x39a853);while(_0x333e10[_0x4fe855(0x81)](''+_0x169bd1+sep)||_0x333e10===_0x169bd1){if(_0x333e10===_0x169bd1)return;try{const _0xc215a4=await readdir(_0x333e10);if(_0xc215a4[_0x4fe855(0x70)]>0x0)return;await rmdir(_0x333e10);}catch{return;}_0x333e10=dirname(_0x333e10);}}function a121_0x1b0f(){const _0x3577db=['version','sqlRoot','Would\x20push\x20','sqls','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','28984NQOXfG','startsWith','trashDir','remoteId','has','path','appCode','3jMONgQ','\x20skipped,\x20','2880OusOHb','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','map','8jfaQDo','toISOString','sqlConfig','replace','\x22\x20for\x20sqlCode\x20','\x20failed','lastSync','dbId','catch','utf8','1405710ILfarL','6456710wjfpUT','filePath','Push\x20local\x20SQL\x20files\x20to\x20remote','join','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','lockFilePath','sqlCode','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','str','set','isFinite','No\x20database\x20matches\x20local\x20directory\x20\x22','hash','894RVnnZk','22pxzWPu','No\x20local\x20SQL\x20files\x20found.','716122Keqezn','1802163ySlBoQ','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','force','2160235uWlXgB','48TucMma','exec','sqlRootDir','validation','relativePath','POST','Local\x20SQL\x20not\x20found:\x20','mode','length','bool','push','filter','dbName','get','sqlName','message','21490sXfyYu','projectRoot','sqlcode'];a121_0x1b0f=function(){return _0x3577db;};return a121_0x1b0f();}async function resolveTargetDbBinding(_0x54ffab,_0x5390f4,_0x4a6d19){const _0x334f75=a121_0x2e0ece,_0x379fc7=_0x5390f4['dbDirectory'];if(!_0x379fc7)return{'dbId':_0x4a6d19[_0x334f75(0x93)],'dbName':_0x4a6d19[_0x334f75(0x74)]};const _0xeff393=buildDbDirectoryName(_0x4a6d19[_0x334f75(0x74)],_0x4a6d19[_0x334f75(0x93)]);if(_0x379fc7===_0xeff393)return{'dbId':_0x4a6d19[_0x334f75(0x93)],'dbName':_0x4a6d19[_0x334f75(0x74)]};const _0xa40703=parseExplicitDbDirectory(_0x379fc7);if(_0xa40703!=null)return{'dbId':_0xa40703,'dbName':await getDbName(_0x54ffab,_0xa40703)[_0x334f75(0x94)](()=>undefined)};const _0xa08413=await listDatabases(_0x54ffab),_0x174cca=_0xa08413[_0x334f75(0x73)](_0x545899=>buildDbDirectoryName(_0x545899['dbName'],_0x545899[_0x334f75(0x93)])===_0x379fc7);if(_0x174cca[_0x334f75(0x70)]===0x1)return{'dbId':_0x174cca[0x0]['dbId'],'dbName':_0x174cca[0x0][_0x334f75(0x74)]};if(_0x174cca[_0x334f75(0x70)]===0x0)throw CliErrors['validation'](_0x334f75(0xa2)+_0x379fc7+_0x334f75(0x90)+_0x5390f4['sqlCode']+'.');const _0x41f5d9=_0x174cca[_0x334f75(0x8b)](_0x24aaf9=>_0x24aaf9['dbName']+'\x20('+_0x24aaf9[_0x334f75(0x93)]+')')[_0x334f75(0x9a)](',\x20');throw CliErrors['validation']('Local\x20directory\x20\x22'+_0x379fc7+'\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20'+_0x5390f4[_0x334f75(0x9d)]+':\x20'+_0x41f5d9);}function parseExplicitDbDirectory(_0x50afdd){const _0x241307=a121_0x2e0ece,_0xfef79f=/^db-(\d+)$/[_0x241307(0x69)](_0x50afdd);if(!_0xfef79f)return null;const _0x5a651c=Number(_0xfef79f[0x1]);return Number[_0x241307(0xa1)](_0x5a651c)&&_0x5a651c>0x0?_0x5a651c:null;}
|
package/lib/commands/sql/save.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a122_0x37e3(_0x2fe1be,_0x2e4aca){_0x2fe1be=_0x2fe1be-0x12c;const _0x1d37a8=a122_0x1d37();let _0x37e326=_0x1d37a8[_0x2fe1be];return _0x37e326;}const a122_0x47293c=a122_0x37e3;(function(_0x5c8a1f,_0x2d1dec){const _0x3dcc7b=a122_0x37e3,_0x515afa=_0x5c8a1f();while(!![]){try{const _0x4ff9ee=-parseInt(_0x3dcc7b(0x134))/0x1*(parseInt(_0x3dcc7b(0x145))/0x2)+-parseInt(_0x3dcc7b(0x12d))/0x3*(-parseInt(_0x3dcc7b(0x131))/0x4)+-parseInt(_0x3dcc7b(0x144))/0x5*(-parseInt(_0x3dcc7b(0x135))/0x6)+parseInt(_0x3dcc7b(0x140))/0x7+-parseInt(_0x3dcc7b(0x136))/0x8*(-parseInt(_0x3dcc7b(0x137))/0x9)+parseInt(_0x3dcc7b(0x130))/0xa*(parseInt(_0x3dcc7b(0x13f))/0xb)+parseInt(_0x3dcc7b(0x13e))/0xc*(-parseInt(_0x3dcc7b(0x138))/0xd);if(_0x4ff9ee===_0x2d1dec)break;else _0x515afa['push'](_0x515afa['shift']());}catch(_0x18429a){_0x515afa['push'](_0x515afa['shift']());}}}(a122_0x1d37,0xa57b3));function a122_0x1d37(){const _0x469bca=['696054CxmwbT','description','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','621160rflwQm','4mRBIXe','write','save','145037KndnBs','12ErEPnq','497416fSjkHs','9RxrSaz','78xPfmcM','string','Path\x20to\x20the\x20SQL\x20file','validation','Query\x20description','sqlname','1735320hrsyZD','66TFXQQh','5858629iWRoOl','sql','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','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`.','466675jDvcGN','2pSgmRq','file'];a122_0x1d37=function(){return _0x469bca;};return a122_0x1d37();}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a122_0x47293c(0x142),'Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.',a122_0x47293c(0x143)]['join']('\x0a');export const sqlSave={'service':a122_0x47293c(0x141),'command':a122_0x47293c(0x133),'description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':a122_0x47293c(0x132),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a122_0x47293c(0x12c),'type':'string','required':!![],'description':a122_0x47293c(0x13a)},SQLCODE_FLAG_OPTIONAL,{'name':a122_0x47293c(0x13d),'type':a122_0x47293c(0x139),'description':'SQL\x20query\x20display\x20name'},{'name':'db','type':'string','description':a122_0x47293c(0x12f)},{'name':a122_0x47293c(0x12e),'type':a122_0x47293c(0x139),'description':a122_0x47293c(0x13c)}],async 'validate'(){const _0x14720c=a122_0x47293c;throw CliErrors[_0x14720c(0x13b)](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0x391324=a122_0x47293c;throw CliErrors[_0x391324(0x13b)](SQL_SAVE_DEPRECATED_HINT);}};
|