@lovrabet/rabetbase-cli 2.3.3 → 2.3.4-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/add.js +1 -1
- package/lib/commands/app/discover.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/remove.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/delete.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/list.js +1 -1
- package/lib/commands/app-config/set.js +1 -1
- package/lib/commands/app-config/shared.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/filter.js +1 -1
- package/lib/commands/data/getOne.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/data/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/generate.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-audit.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/dataset/restore.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/init/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/menu/update.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/standard-page-status.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/project/create/enhanced-guided-create.js +1 -1
- package/lib/commands/project/create/format-elapsed.js +1 -1
- package/lib/commands/project/create/main.js +1 -1
- package/lib/commands/project/create/non-interactive.js +1 -1
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.js +1 -1
- package/lib/commands/project/create/use-format-code.js +1 -1
- package/lib/commands/project/create/use-install-dependencies.js +1 -1
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/init.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/save.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/copy-directory.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/rules-cdn.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +2 -2
- package/lib/commands/app/use.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a128_0x559022=a128_0x15fd;(function(_0x240a31,_0x2c103d){const _0x34dce1=a128_0x15fd,_0xc15632=_0x240a31();while(!![]){try{const _0x45983b=parseInt(_0x34dce1(0x166))/0x1*(-parseInt(_0x34dce1(0x16b))/0x2)+-parseInt(_0x34dce1(0x16e))/0x3+parseInt(_0x34dce1(0x169))/0x4*(parseInt(_0x34dce1(0x13b))/0x5)+-parseInt(_0x34dce1(0x140))/0x6+-parseInt(_0x34dce1(0x173))/0x7+parseInt(_0x34dce1(0x155))/0x8+parseInt(_0x34dce1(0x19a))/0x9;if(_0x45983b===_0x2c103d)break;else _0xc15632['push'](_0xc15632['shift']());}catch(_0x14a9d8){_0xc15632['push'](_0xc15632['shift']());}}}(a128_0x4e45,0xda74b));import a128_0x11574f from'chalk';import a128_0x1fe323 from'ora';import{existsSync,readFileSync,renameSync,rmSync,statSync,unlinkSync,writeFileSync}from'node:fs';import{resolve}from'node:path';import{CONFIG_NAMES,NEW_CONFIG_NAME,readConfigFile,writeConfigFile}from'../../context.js';function a128_0x4e45(){const _0x304e11=['keys','Step\x205/7:\x20Remove\x20old\x20skill\x20—\x20','lovrabet/lovrabet-skill\x20removed','isDirectory','status','\x20→\x20','object','label','args','19807056sZmGWQ','message','bold','entries','path','not\x20found\x20(will\x20create)','exit\x20','stringify','includes','.lovrabet','\x20\x20#\x20or','Remove\x20legacy\x20artifacts','CANCEL','oldArtifacts','green','Step\x201/7:\x20Config\x20migration\x20—\x20','none\x20found','white','.cursor/mcp.json','hasNewConfig','Step\x204/7:\x20Cleaning\x20MCP\x20config...','needed','gray','Step\x205/7:\x20Removing\x20old\x20skill...','step','cwd','skipped\x20(no\x20legacy\x20config)','@lovrabet/dataset-mcp-server','Install\x20new\x20skill','Step\x203/7:\x20Legacy\x20artifacts\x20—\x20','push','no\x20legacy\x20entry','@lovrabet/sdk','6373105nmDHAS','join','\x20\x20Action:\x20remove\x20old\x20lovrabet/lovrabet-skill,\x20add\x20via\x20`','fields','\x20\x20Action:\x20delete','4640718AetTha','Config\x20migration','string','\x20\x20Current\x20version\x20in\x20','yes','files','Upgrade\x20@lovrabet/sdk','already\x20exists\x20(will\x20merge)','latest','Skill\x20swap:','Upgrade\x20cancelled.','red','removed\x20','oldPath','parse','lovrabet/rabetbase','Step\x202/7:\x20Removing\x20.lovrabet/\x20directory...','yellow','succeed','\x20\x20bun\x20install','info','5610584ceJRTd','Remove\x20.lovrabet/','detail','\x20removed\x20(','\x20\x20\x20\x20\x20\x20\x20','Clean\x20MCP\x20config','\x20\x20Action:\x20update\x20package.json\x20(you\x20will\x20need\x20to\x20re-run\x20install)','@lovrabet/sdk:','.claude/skills/lovrabet','mcpServers','no\x20matching\x20entry\x20found','values','isArray','\x20removed','needsSkillSwap','\x20\x20Action:\x20migrate\x20→\x20backup\x20old\x20as\x20.bak','\x20\x20npm\x20install','11WrFgMl','Step\x202/7:\x20.lovrabet/\x20not\x20found,\x20skipped','filter','4qdHhhS','.cursor/rules/lovrabet_rules.mdc','168358LftZPr','skipped\x20(not\x20found\x20or\x20already\x20at\x20latest)','no\x20legacy\x20config\x20found','3217152KtzoDf','configMigration','lovrabet/rabetbase\x20installed\x20globally','Step\x202/7:\x20.lovrabet/\x20directory\x20removed','\x20\x20Step\x20','3570889anaHVF','fail','===\x20Upgrade\x20Summary\x20===','package.json','not\x20found\x20or\x20already\x20at\x20latest','done','failed','dependencies','sdkUpgrade','skipped','inherit','Step\x201/7:\x20Migrating\x20config...','[\x22@lovrabet/sdk\x22]:\x20','Step\x204/7:\x20MCP\x20config\x20—\x20','log','length','cyan','No\x20legacy\x20artifacts\x20found.\x20Your\x20project\x20is\x20already\x20up-to-date.','Some\x20steps\x20failed.\x20Check\x20the\x20summary\x20above\x20for\x20details.','not\x20needed','FOUND','start','Please\x20re-install\x20dependencies\x20to\x20apply\x20the\x20change:','Step\x206/7:\x20Installing\x20new\x20skill...','some','Step\x203/7:\x20Removing\x20legacy\x20IDE\x20skill\x20files...','MCP\x20config:','utf8','Step\x207/7:\x20Upgrading\x20@lovrabet/sdk\x20in\x20package.json...','oldMcpConfig'];a128_0x4e45=function(){return _0x304e11;};return a128_0x4e45();}import{CORE_IDE_CONFIGS}from'../../utils/ai_config.js';import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE,runNpxSkillsAddGlobal,runNpxSkillsRemove}from'../../skills/npx-skills-add.js';import{askConfirm}from'../../commands/menu/shared/inquirer.js';const LEGACY_CONFIG_NAMES=CONFIG_NAMES[a128_0x559022(0x168)](_0x4ba211=>_0x4ba211!==NEW_CONFIG_NAME);function collectIdeSkillFiles(_0xdeed8e){const _0x4fd95d=a128_0x559022,_0x279804=[];for(const _0x25dadf of Object[_0x4fd95d(0x160)](CORE_IDE_CONFIGS)){if(_0x25dadf[_0x4fd95d(0x145)])for(const _0xe36874 of _0x25dadf[_0x4fd95d(0x145)]){_0x279804['push'](resolve(_0xdeed8e,_0xe36874['path']));}}return _0x279804;}function analyse(_0xbf7576){const _0x14f893=a128_0x559022;let _0x194bc5=null;const _0x5d4cbf=resolve(_0xbf7576,NEW_CONFIG_NAME),_0x1364b6=existsSync(_0x5d4cbf);for(const _0x2559aa of LEGACY_CONFIG_NAMES){const _0x333f69=resolve(_0xbf7576,_0x2559aa);if(existsSync(_0x333f69)){const _0x5754a8=readConfigFile(_0x333f69),_0x257e11=Object[_0x14f893(0x191)](_0x5754a8)[_0x14f893(0x168)](_0x154c88=>typeof _0x5754a8[_0x154c88]!=='undefined');_0x194bc5={'oldPath':_0x333f69,'hasNewConfig':_0x1364b6,'fields':_0x257e11};break;}}const _0x1dfb84=[],_0x11b409=resolve(_0xbf7576,_0x14f893(0x1a3));if(existsSync(_0x11b409))_0x1dfb84['push'](_0x11b409);const _0x4b3c3e=resolve(_0xbf7576,_0x14f893(0x16a));if(existsSync(_0x4b3c3e))_0x1dfb84[_0x14f893(0x138)](_0x4b3c3e);const _0x15e6a9=resolve(_0xbf7576,_0x14f893(0x15d));if(existsSync(_0x15e6a9))_0x1dfb84[_0x14f893(0x138)](_0x15e6a9);for(const _0x4947d9 of collectIdeSkillFiles(_0xbf7576)){if(existsSync(_0x4947d9))_0x1dfb84[_0x14f893(0x138)](_0x4947d9);}let _0x451998=null;const _0x17a825=resolve(_0xbf7576,_0x14f893(0x1ac));if(existsSync(_0x17a825))try{const _0x545dda=JSON['parse'](readFileSync(_0x17a825,_0x14f893(0x18e)));if(_0x545dda?.[_0x14f893(0x15e)]&&typeof _0x545dda[_0x14f893(0x15e)]===_0x14f893(0x197)){const _0x5d81f7=[];for(const [_0x37ad49,_0x2a5557]of Object[_0x14f893(0x19d)](_0x545dda[_0x14f893(0x15e)])){const _0x405fe0=_0x2a5557;_0x405fe0?.[_0x14f893(0x199)]&&Array[_0x14f893(0x161)](_0x405fe0[_0x14f893(0x199)])&&_0x405fe0['args'][_0x14f893(0x18b)](_0x31432a=>typeof _0x31432a===_0x14f893(0x142)&&_0x31432a[_0x14f893(0x1a2)](_0x14f893(0x135)))&&_0x5d81f7['push'](_0x37ad49);}_0x5d81f7[_0x14f893(0x182)]>0x0&&(_0x451998={'path':_0x17a825,'keys':_0x5d81f7});}}catch{}const _0x344c53=_0x1dfb84[_0x14f893(0x182)]>0x0||_0x194bc5!==null;let _0x105e27=null;const _0x2e576d=resolve(_0xbf7576,_0x14f893(0x176));if(existsSync(_0x2e576d))try{const _0x48af28=JSON[_0x14f893(0x14e)](readFileSync(_0x2e576d,_0x14f893(0x18e)));for(const _0x5d6458 of[_0x14f893(0x17a),'devDependencies']){const _0x352f2f=_0x48af28?.[_0x5d6458]?.[_0x14f893(0x13a)];if(typeof _0x352f2f===_0x14f893(0x142)){_0x352f2f!=='latest'&&(_0x105e27={'pkgPath':_0x2e576d,'currentVersion':_0x352f2f,'field':_0x5d6458});break;}}}catch{}return{'configMigration':_0x194bc5,'oldArtifacts':_0x1dfb84,'oldMcpConfig':_0x451998,'needsSkillSwap':_0x344c53,'sdkUpgrade':_0x105e27};}function printReport(_0x2d29a9){const _0x5bc5cb=a128_0x559022,{configMigration:_0x2b3eb5,oldArtifacts:_0x1e754e,oldMcpConfig:_0x18e376,needsSkillSwap:_0xd29428}=_0x2d29a9;console['log'](''),console[_0x5bc5cb(0x181)](a128_0x11574f[_0x5bc5cb(0x19c)]('===\x20Upgrade\x20Analysis\x20===')),console[_0x5bc5cb(0x181)]('');_0x2b3eb5?(console['log'](a128_0x11574f[_0x5bc5cb(0x183)]('Config\x20file:')+('\x20\x20'+a128_0x11574f[_0x5bc5cb(0x151)](_0x2b3eb5[_0x5bc5cb(0x14d)]))),console['log']('\x20\x20New\x20config\x20(.rabetbase.json):\x20'+(_0x2b3eb5[_0x5bc5cb(0x1ad)]?a128_0x11574f['green'](_0x5bc5cb(0x147)):a128_0x11574f[_0x5bc5cb(0x1b0)](_0x5bc5cb(0x19f)))),console[_0x5bc5cb(0x181)]('\x20\x20Fields\x20to\x20migrate:\x20'+_0x2b3eb5[_0x5bc5cb(0x13e)][_0x5bc5cb(0x13c)](',\x20')),console['log'](_0x5bc5cb(0x164))):console['log'](a128_0x11574f[_0x5bc5cb(0x183)]('Config\x20file:')+'\x20\x20'+a128_0x11574f[_0x5bc5cb(0x1b0)](_0x5bc5cb(0x16d)));console['log']('');if(_0x1e754e[_0x5bc5cb(0x182)]>0x0){console['log'](a128_0x11574f[_0x5bc5cb(0x183)]('Legacy\x20artifacts:'));for(const _0xbb77e0 of _0x1e754e){console[_0x5bc5cb(0x181)]('\x20\x20'+a128_0x11574f[_0x5bc5cb(0x14b)](_0x5bc5cb(0x187))+'\x20\x20'+_0xbb77e0);}console['log'](_0x5bc5cb(0x13f));}else console[_0x5bc5cb(0x181)](a128_0x11574f['cyan']('Legacy\x20artifacts:')+'\x20\x20'+a128_0x11574f[_0x5bc5cb(0x1b0)](_0x5bc5cb(0x1aa)));console[_0x5bc5cb(0x181)]('');_0x18e376?(console[_0x5bc5cb(0x181)](a128_0x11574f[_0x5bc5cb(0x183)]('MCP\x20config:')+('\x20\x20'+a128_0x11574f[_0x5bc5cb(0x151)](_0x18e376[_0x5bc5cb(0x19e)])+'\x20→\x20keys:\x20'+_0x18e376[_0x5bc5cb(0x191)]['join'](',\x20'))),console[_0x5bc5cb(0x181)]('\x20\x20Action:\x20remove\x20entries\x20containing\x20@lovrabet/dataset-mcp-server')):console[_0x5bc5cb(0x181)](a128_0x11574f[_0x5bc5cb(0x183)](_0x5bc5cb(0x18d))+'\x20\x20'+a128_0x11574f[_0x5bc5cb(0x1b0)](_0x5bc5cb(0x139)));console[_0x5bc5cb(0x181)](''),console[_0x5bc5cb(0x181)](a128_0x11574f['cyan'](_0x5bc5cb(0x149))+('\x20\x20'+(_0xd29428?a128_0x11574f[_0x5bc5cb(0x151)](_0x5bc5cb(0x1af)):a128_0x11574f['green'](_0x5bc5cb(0x186)))));_0xd29428&&console[_0x5bc5cb(0x181)](_0x5bc5cb(0x13d)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+'`');console['log']('');if(_0x2d29a9['sdkUpgrade']){const {currentVersion:_0x47a3b0,field:_0x13896a,pkgPath:_0x1ab796}=_0x2d29a9['sdkUpgrade'];console[_0x5bc5cb(0x181)](a128_0x11574f[_0x5bc5cb(0x183)](_0x5bc5cb(0x15c))+('\x20\x20'+a128_0x11574f[_0x5bc5cb(0x151)](_0x1ab796))),console[_0x5bc5cb(0x181)](_0x5bc5cb(0x143)+_0x13896a+':\x20'+a128_0x11574f[_0x5bc5cb(0x151)](_0x47a3b0)+'\x20→\x20'+a128_0x11574f[_0x5bc5cb(0x1a8)](_0x5bc5cb(0x148))),console[_0x5bc5cb(0x181)](_0x5bc5cb(0x15b));}else console[_0x5bc5cb(0x181)](a128_0x11574f[_0x5bc5cb(0x183)](_0x5bc5cb(0x15c))+'\x20\x20'+a128_0x11574f[_0x5bc5cb(0x1b0)](_0x5bc5cb(0x177)));console[_0x5bc5cb(0x181)]('');}function execConfigMigration(_0x12359b,_0x37ac4b){const _0x51d911=a128_0x559022,{configMigration:_0x32eaca}=_0x12359b;if(!_0x32eaca?.[_0x51d911(0x14d)])return{'step':0x1,'label':_0x51d911(0x141),'ok':!![],'detail':_0x51d911(0x134)};const _0xa85bb8=readConfigFile(_0x32eaca[_0x51d911(0x14d)]),_0x2cb60f=resolve(_0x37ac4b,NEW_CONFIG_NAME),_0x44818a=_0x32eaca[_0x51d911(0x1ad)]?readConfigFile(_0x2cb60f):{};for(const [_0x4644f9,_0x38d46d]of Object[_0x51d911(0x19d)](_0xa85bb8)){!(_0x4644f9 in _0x44818a)&&(_0x44818a[_0x4644f9]=_0x38d46d);}writeConfigFile(_0x2cb60f,_0x44818a);const _0x28a819=_0x32eaca[_0x51d911(0x14d)]+'.bak';return renameSync(_0x32eaca[_0x51d911(0x14d)],_0x28a819),{'step':0x1,'label':_0x51d911(0x141),'ok':!![],'detail':_0x32eaca['oldPath']+_0x51d911(0x196)+_0x2cb60f+'\x20(backup:\x20'+_0x28a819+')'};}function execRemoveOldArtifacts(_0x1033b9){const _0x1f688c=a128_0x559022,_0x308582=[];for(const _0x526e5f of _0x1033b9){try{if(!existsSync(_0x526e5f))continue;const _0x28623f=tryStat(_0x526e5f);_0x28623f?.[_0x1f688c(0x194)]()?rmSync(_0x526e5f,{'recursive':!![],'force':!![]}):unlinkSync(_0x526e5f);}catch(_0x42732f){_0x308582[_0x1f688c(0x138)](_0x526e5f+':\x20'+_0x42732f[_0x1f688c(0x19b)]);}}return{'step':0x3,'label':_0x1f688c(0x1a5),'ok':_0x308582[_0x1f688c(0x182)]===0x0,'detail':_0x308582['length']>0x0?_0x1033b9[_0x1f688c(0x182)]-_0x308582['length']+'/'+_0x1033b9[_0x1f688c(0x182)]+_0x1f688c(0x158)+_0x308582[_0x1f688c(0x13c)](';\x20')+')':_0x1033b9[_0x1f688c(0x182)]+_0x1f688c(0x162)};}function execCleanMcp(_0x3cb187){const _0x384a5e=a128_0x559022;if(!_0x3cb187[_0x384a5e(0x190)])return{'step':0x4,'label':_0x384a5e(0x15a),'ok':!![],'detail':_0x384a5e(0x17c)};try{const _0x501277=readFileSync(_0x3cb187[_0x384a5e(0x190)]['path'],_0x384a5e(0x18e)),_0x5c13d3=JSON[_0x384a5e(0x14e)](_0x501277);if(_0x5c13d3?.[_0x384a5e(0x15e)]&&typeof _0x5c13d3[_0x384a5e(0x15e)]===_0x384a5e(0x197)){const _0x3c58c2=[];for(const [_0x18145a,_0x518bcb]of Object[_0x384a5e(0x19d)](_0x5c13d3[_0x384a5e(0x15e)])){_0x518bcb?.['args']&&Array[_0x384a5e(0x161)](_0x518bcb[_0x384a5e(0x199)])&&_0x518bcb[_0x384a5e(0x199)][_0x384a5e(0x18b)](_0x464677=>typeof _0x464677==='string'&&_0x464677[_0x384a5e(0x1a2)](_0x384a5e(0x135)))&&_0x3c58c2[_0x384a5e(0x138)](_0x18145a);}for(const _0x205de1 of _0x3c58c2){delete _0x5c13d3[_0x384a5e(0x15e)][_0x205de1];}return _0x3c58c2[_0x384a5e(0x182)]>0x0&&writeFileSync(_0x3cb187[_0x384a5e(0x190)][_0x384a5e(0x19e)],JSON[_0x384a5e(0x1a1)](_0x5c13d3,null,0x2)+'\x0a',_0x384a5e(0x18e)),{'step':0x4,'label':_0x384a5e(0x15a),'ok':!![],'detail':_0x384a5e(0x14c)+_0x3c58c2[_0x384a5e(0x13c)](',\x20')+'\x20from\x20'+_0x3cb187[_0x384a5e(0x190)]['path']};}return{'step':0x4,'label':_0x384a5e(0x15a),'ok':!![],'detail':_0x384a5e(0x15f)};}catch(_0x414567){return{'step':0x4,'label':_0x384a5e(0x15a),'ok':![],'detail':_0x414567['message']};}}function execSkillsRemove(_0x53fdf6,_0x384395){const _0x240c1f=a128_0x559022,_0x4a1008=runNpxSkillsRemove(_0x53fdf6,{'stdio':_0x240c1f(0x17d),'yes':_0x384395});return{'step':0x5,'label':'Remove\x20old\x20skill','ok':_0x4a1008['ok'],'detail':_0x4a1008['ok']?_0x240c1f(0x193):_0x4a1008['error']??_0x240c1f(0x1a0)+_0x4a1008[_0x240c1f(0x195)]};}function execSkillsAdd(_0x5c3228,_0x3bd49e){const _0x500fac=a128_0x559022,_0x7f5fde=runNpxSkillsAddGlobal(_0x5c3228,_0x500fac(0x14f),{'stdio':'inherit','yes':_0x3bd49e});return{'step':0x6,'label':_0x500fac(0x136),'ok':_0x7f5fde['ok'],'detail':_0x7f5fde['ok']?_0x500fac(0x170):_0x7f5fde['error']??_0x500fac(0x1a0)+_0x7f5fde[_0x500fac(0x195)]};}function execUpgradeSdk(_0x5bbb78){const _0x291e74=a128_0x559022;if(!_0x5bbb78['sdkUpgrade'])return{'step':0x7,'label':_0x291e74(0x146),'ok':!![],'detail':_0x291e74(0x16c)};const {pkgPath:_0x17127a,currentVersion:_0x46fd09,field:_0x1ddf51}=_0x5bbb78[_0x291e74(0x17b)];try{const _0x241a72=readFileSync(_0x17127a,'utf8'),_0x3e2426=JSON[_0x291e74(0x14e)](_0x241a72);return _0x3e2426[_0x1ddf51][_0x291e74(0x13a)]=_0x291e74(0x148),writeFileSync(_0x17127a,JSON[_0x291e74(0x1a1)](_0x3e2426,null,0x2)+'\x0a','utf8'),{'step':0x7,'label':_0x291e74(0x146),'ok':!![],'detail':_0x1ddf51+_0x291e74(0x17f)+_0x46fd09+'\x20→\x20latest'};}catch(_0x19f276){return{'step':0x7,'label':_0x291e74(0x146),'ok':![],'detail':_0x19f276[_0x291e74(0x19b)]};}}function tryStat(_0xa9d735){try{return statSync(_0xa9d735);}catch{return undefined;}}function a128_0x15fd(_0x421327,_0x2655b9){_0x421327=_0x421327-0x133;const _0x4e45d7=a128_0x4e45();let _0x15fd71=_0x4e45d7[_0x421327];return _0x15fd71;}function printSummary(_0x1a7f3d){const _0x11d861=a128_0x559022;console[_0x11d861(0x181)](''),console[_0x11d861(0x181)](a128_0x11574f[_0x11d861(0x19c)](_0x11d861(0x175))),console[_0x11d861(0x181)]('');for(const _0xec2d0b of _0x1a7f3d){const _0x3ce611=_0xec2d0b['ok']?a128_0x11574f['green']('OK'):a128_0x11574f['red']('FAIL');console[_0x11d861(0x181)]('\x20\x20'+_0x3ce611+_0x11d861(0x172)+_0xec2d0b[_0x11d861(0x1b2)]+':\x20'+_0xec2d0b[_0x11d861(0x198)]);if(_0xec2d0b[_0x11d861(0x157)])console[_0x11d861(0x181)](_0x11d861(0x159)+a128_0x11574f[_0x11d861(0x1b0)](_0xec2d0b[_0x11d861(0x157)]));}console[_0x11d861(0x181)]('');}export async function upgradeApp(_0x4bd5f7,_0x3db4f0){const _0x45c7b7=a128_0x559022,_0x4588cb=process[_0x45c7b7(0x133)](),_0x267a54=analyse(_0x4588cb),_0x4ed8a9=!_0x267a54[_0x45c7b7(0x16f)]&&_0x267a54[_0x45c7b7(0x1a7)]['length']===0x0&&!_0x267a54[_0x45c7b7(0x190)]&&!_0x267a54[_0x45c7b7(0x163)]&&!_0x267a54[_0x45c7b7(0x17b)];if(_0x4ed8a9){console[_0x45c7b7(0x181)](a128_0x11574f[_0x45c7b7(0x1a8)](_0x45c7b7(0x184)));return;}printReport(_0x267a54);const _0x50c165=!!(_0x3db4f0[_0x45c7b7(0x144)]||_0x3db4f0['Y']||_0x4bd5f7);if(!_0x50c165)try{const _0x4510ab=await askConfirm('Proceed\x20with\x20upgrade?');if(!_0x4510ab){console['log'](a128_0x11574f['gray']('Upgrade\x20cancelled.'));return;}}catch(_0x452514){if(_0x452514?.[_0x45c7b7(0x19b)]===_0x45c7b7(0x1a6)){console['log'](a128_0x11574f[_0x45c7b7(0x1b0)](_0x45c7b7(0x14a)));return;}throw _0x452514;}const _0x2e71bc=[],_0x26eb65=a128_0x1fe323({'text':_0x45c7b7(0x17e),'color':_0x45c7b7(0x183)})[_0x45c7b7(0x188)](),_0x44cdb3=execConfigMigration(_0x267a54,_0x4588cb);_0x2e71bc[_0x45c7b7(0x138)](_0x44cdb3),_0x26eb65[_0x44cdb3['ok']?_0x45c7b7(0x152):_0x45c7b7(0x174)](_0x45c7b7(0x1a9)+(_0x44cdb3[_0x45c7b7(0x157)]??(_0x44cdb3['ok']?_0x45c7b7(0x178):'failed')));const _0x1b7140=resolve(_0x4588cb,_0x45c7b7(0x1a3)),_0x116901=a128_0x1fe323({'text':_0x45c7b7(0x150),'color':'cyan'})[_0x45c7b7(0x188)]();if(existsSync(_0x1b7140))try{rmSync(_0x1b7140,{'recursive':!![],'force':!![]}),_0x116901[_0x45c7b7(0x152)](_0x45c7b7(0x171)),_0x2e71bc['push']({'step':0x2,'label':_0x45c7b7(0x156),'ok':!![]});}catch(_0x48146b){_0x116901[_0x45c7b7(0x174)]('Step\x202/7:\x20.lovrabet/\x20removal\x20failed\x20—\x20'+_0x48146b[_0x45c7b7(0x19b)]),_0x2e71bc[_0x45c7b7(0x138)]({'step':0x2,'label':'Remove\x20.lovrabet/','ok':![],'detail':_0x48146b[_0x45c7b7(0x19b)]});}else _0x116901[_0x45c7b7(0x154)](_0x45c7b7(0x167)),_0x2e71bc['push']({'step':0x2,'label':_0x45c7b7(0x156),'ok':!![],'detail':'skipped'});const _0x34502e=a128_0x1fe323({'text':_0x45c7b7(0x18c),'color':_0x45c7b7(0x183)})['start'](),_0x38c5cc=execRemoveOldArtifacts(_0x267a54[_0x45c7b7(0x1a7)]);_0x2e71bc[_0x45c7b7(0x138)](_0x38c5cc),_0x34502e[_0x38c5cc['ok']?'succeed':_0x45c7b7(0x174)](_0x45c7b7(0x137)+(_0x38c5cc[_0x45c7b7(0x157)]??(_0x38c5cc['ok']?_0x45c7b7(0x178):_0x45c7b7(0x179))));const _0x6b6379=a128_0x1fe323({'text':_0x45c7b7(0x1ae),'color':_0x45c7b7(0x183)})[_0x45c7b7(0x188)](),_0x5913f0=execCleanMcp(_0x267a54);_0x2e71bc[_0x45c7b7(0x138)](_0x5913f0),_0x6b6379[_0x5913f0['ok']?_0x45c7b7(0x152):_0x45c7b7(0x174)](_0x45c7b7(0x180)+(_0x5913f0[_0x45c7b7(0x157)]??(_0x5913f0['ok']?_0x45c7b7(0x178):_0x45c7b7(0x179))));const _0x46682e=a128_0x1fe323({'text':_0x45c7b7(0x1b1),'color':_0x45c7b7(0x183)})[_0x45c7b7(0x188)](),_0x53d709=execSkillsRemove(_0x4588cb,_0x50c165);_0x2e71bc[_0x45c7b7(0x138)](_0x53d709),_0x46682e[_0x53d709['ok']?'succeed':'fail'](_0x45c7b7(0x192)+(_0x53d709[_0x45c7b7(0x157)]??(_0x53d709['ok']?_0x45c7b7(0x178):_0x45c7b7(0x179))));const _0x36b592=a128_0x1fe323({'text':_0x45c7b7(0x18a),'color':'cyan'})[_0x45c7b7(0x188)](),_0x3ed8de=execSkillsAdd(_0x4588cb,_0x50c165);_0x2e71bc[_0x45c7b7(0x138)](_0x3ed8de),_0x36b592[_0x3ed8de['ok']?_0x45c7b7(0x152):_0x45c7b7(0x174)]('Step\x206/7:\x20Install\x20new\x20skill\x20—\x20'+(_0x3ed8de[_0x45c7b7(0x157)]??(_0x3ed8de['ok']?_0x45c7b7(0x178):_0x45c7b7(0x179))));const _0x4a659b=a128_0x1fe323({'text':_0x45c7b7(0x18f),'color':_0x45c7b7(0x183)})[_0x45c7b7(0x188)](),_0x12725f=execUpgradeSdk(_0x267a54);_0x2e71bc['push'](_0x12725f),_0x4a659b[_0x12725f['ok']?_0x45c7b7(0x152):_0x45c7b7(0x174)]('Step\x207/7:\x20@lovrabet/sdk\x20—\x20'+(_0x12725f['detail']??(_0x12725f['ok']?_0x45c7b7(0x178):_0x45c7b7(0x179)))),printSummary(_0x2e71bc);const _0x22606b=_0x2e71bc[_0x45c7b7(0x18b)](_0x2deff7=>!_0x2deff7['ok']);_0x22606b?console[_0x45c7b7(0x181)](a128_0x11574f[_0x45c7b7(0x151)](_0x45c7b7(0x185))):console[_0x45c7b7(0x181)](a128_0x11574f[_0x45c7b7(0x1a8)]('Upgrade\x20completed\x20successfully!')),_0x12725f['ok']&&_0x267a54[_0x45c7b7(0x17b)]&&(console[_0x45c7b7(0x181)](''),console['log'](a128_0x11574f['bold']['cyan']('@lovrabet/sdk\x20has\x20been\x20updated\x20to\x20latest\x20in\x20package.json.')),console['log'](a128_0x11574f['cyan'](_0x45c7b7(0x189))),console[_0x45c7b7(0x181)](''),console[_0x45c7b7(0x181)](a128_0x11574f[_0x45c7b7(0x1ab)](_0x45c7b7(0x165))),console[_0x45c7b7(0x181)](a128_0x11574f[_0x45c7b7(0x1ab)](_0x45c7b7(0x1a4))),console[_0x45c7b7(0x181)](a128_0x11574f[_0x45c7b7(0x1ab)](_0x45c7b7(0x153))),console[_0x45c7b7(0x181)](''));}
|
|
1
|
+
const a127_0x361b18=a127_0x3c72;(function(_0x342bae,_0x1aed40){const _0x4010cd=a127_0x3c72,_0x5b04aa=_0x342bae();while(!![]){try{const _0x1a5090=parseInt(_0x4010cd(0xd8))/0x1+-parseInt(_0x4010cd(0xfd))/0x2+-parseInt(_0x4010cd(0xcd))/0x3+parseInt(_0x4010cd(0xd9))/0x4*(parseInt(_0x4010cd(0x125))/0x5)+-parseInt(_0x4010cd(0x137))/0x6*(-parseInt(_0x4010cd(0xf4))/0x7)+-parseInt(_0x4010cd(0x146))/0x8+-parseInt(_0x4010cd(0xd2))/0x9;if(_0x1a5090===_0x1aed40)break;else _0x5b04aa['push'](_0x5b04aa['shift']());}catch(_0x5d4bf6){_0x5b04aa['push'](_0x5b04aa['shift']());}}}(a127_0x4400,0x19c6c));import a127_0xcdf982 from'chalk';import a127_0x29e27a from'ora';import{existsSync,readFileSync,renameSync,rmSync,statSync,unlinkSync,writeFileSync}from'node:fs';import{resolve}from'node:path';import{CONFIG_NAMES,NEW_CONFIG_NAME,readConfigFile,writeConfigFile}from'../../context.js';import{CORE_IDE_CONFIGS}from'../../utils/ai_config.js';import{NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE,runNpxSkillsAddGlobal,runNpxSkillsRemove}from'../../skills/npx-skills-add.js';import{askConfirm}from'../../commands/menu/shared/inquirer.js';const LEGACY_CONFIG_NAMES=CONFIG_NAMES[a127_0x361b18(0x10e)](_0xfaab90=>_0xfaab90!==NEW_CONFIG_NAME);function collectIdeSkillFiles(_0xf6b7b7){const _0x186f3e=a127_0x361b18,_0x23e7a3=[];for(const _0x342e47 of Object[_0x186f3e(0xfb)](CORE_IDE_CONFIGS)){if(_0x342e47[_0x186f3e(0x113)])for(const _0x4a5f35 of _0x342e47[_0x186f3e(0x113)]){_0x23e7a3['push'](resolve(_0xf6b7b7,_0x4a5f35[_0x186f3e(0x129)]));}}return _0x23e7a3;}function analyse(_0xcb137a){const _0x276ecc=a127_0x361b18;let _0x69a3c3=null;const _0x5989b3=resolve(_0xcb137a,NEW_CONFIG_NAME),_0x53e0a8=existsSync(_0x5989b3);for(const _0x59042e of LEGACY_CONFIG_NAMES){const _0x412cb2=resolve(_0xcb137a,_0x59042e);if(existsSync(_0x412cb2)){const _0x2edae7=readConfigFile(_0x412cb2),_0x42381b=Object[_0x276ecc(0xee)](_0x2edae7)[_0x276ecc(0x10e)](_0x433ec4=>typeof _0x2edae7[_0x433ec4]!=='undefined');_0x69a3c3={'oldPath':_0x412cb2,'hasNewConfig':_0x53e0a8,'fields':_0x42381b};break;}}const _0x2b4b2d=[],_0x27b54c=resolve(_0xcb137a,_0x276ecc(0x108));if(existsSync(_0x27b54c))_0x2b4b2d[_0x276ecc(0x134)](_0x27b54c);const _0x44ad7a=resolve(_0xcb137a,_0x276ecc(0x117));if(existsSync(_0x44ad7a))_0x2b4b2d[_0x276ecc(0x134)](_0x44ad7a);const _0x27de10=resolve(_0xcb137a,'.claude/skills/lovrabet');if(existsSync(_0x27de10))_0x2b4b2d[_0x276ecc(0x134)](_0x27de10);for(const _0x3b44b1 of collectIdeSkillFiles(_0xcb137a)){if(existsSync(_0x3b44b1))_0x2b4b2d[_0x276ecc(0x134)](_0x3b44b1);}let _0xc6509d=null;const _0x1e23c0=resolve(_0xcb137a,_0x276ecc(0xe5));if(existsSync(_0x1e23c0))try{const _0x319764=JSON[_0x276ecc(0x10d)](readFileSync(_0x1e23c0,'utf8'));if(_0x319764?.['mcpServers']&&typeof _0x319764[_0x276ecc(0xdb)]===_0x276ecc(0xf5)){const _0x200d25=[];for(const [_0x35d749,_0x4848c1]of Object[_0x276ecc(0x105)](_0x319764[_0x276ecc(0xdb)])){const _0x4c4f85=_0x4848c1;_0x4c4f85?.[_0x276ecc(0xf8)]&&Array['isArray'](_0x4c4f85[_0x276ecc(0xf8)])&&_0x4c4f85['args'][_0x276ecc(0xe8)](_0x3b9f0b=>typeof _0x3b9f0b===_0x276ecc(0xd3)&&_0x3b9f0b[_0x276ecc(0x11e)]('@lovrabet/dataset-mcp-server'))&&_0x200d25[_0x276ecc(0x134)](_0x35d749);}_0x200d25[_0x276ecc(0x14a)]>0x0&&(_0xc6509d={'path':_0x1e23c0,'keys':_0x200d25});}}catch{}const _0x368724=_0x2b4b2d[_0x276ecc(0x14a)]>0x0||_0x69a3c3!==null;let _0x558928=null;const _0x13715e=resolve(_0xcb137a,'package.json');if(existsSync(_0x13715e))try{const _0x56b8e2=JSON['parse'](readFileSync(_0x13715e,'utf8'));for(const _0x433f4d of[_0x276ecc(0x12a),_0x276ecc(0xfc)]){const _0x295cd1=_0x56b8e2?.[_0x433f4d]?.[_0x276ecc(0x110)];if(typeof _0x295cd1===_0x276ecc(0xd3)){_0x295cd1!==_0x276ecc(0xd5)&&(_0x558928={'pkgPath':_0x13715e,'currentVersion':_0x295cd1,'field':_0x433f4d});break;}}}catch{}return{'configMigration':_0x69a3c3,'oldArtifacts':_0x2b4b2d,'oldMcpConfig':_0xc6509d,'needsSkillSwap':_0x368724,'sdkUpgrade':_0x558928};}function printReport(_0x2ec1d5){const _0x579c29=a127_0x361b18,{configMigration:_0x14ea99,oldArtifacts:_0x18bb0f,oldMcpConfig:_0x1002d3,needsSkillSwap:_0x33f34e}=_0x2ec1d5;console[_0x579c29(0x100)](''),console[_0x579c29(0x100)](a127_0xcdf982['bold'](_0x579c29(0xdc))),console['log']('');_0x14ea99?(console['log'](a127_0xcdf982['cyan']('Config\x20file:')+('\x20\x20'+a127_0xcdf982[_0x579c29(0xe0)](_0x14ea99[_0x579c29(0x140)]))),console[_0x579c29(0x100)](_0x579c29(0x120)+(_0x14ea99['hasNewConfig']?a127_0xcdf982['green'](_0x579c29(0xf1)):a127_0xcdf982[_0x579c29(0x14c)](_0x579c29(0x107)))),console[_0x579c29(0x100)](_0x579c29(0x11c)+_0x14ea99[_0x579c29(0x10b)]['join'](',\x20')),console[_0x579c29(0x100)]('\x20\x20Action:\x20migrate\x20→\x20backup\x20old\x20as\x20.bak')):console['log'](a127_0xcdf982[_0x579c29(0x136)](_0x579c29(0x126))+'\x20\x20'+a127_0xcdf982[_0x579c29(0x14c)](_0x579c29(0x143)));console[_0x579c29(0x100)]('');if(_0x18bb0f[_0x579c29(0x14a)]>0x0){console[_0x579c29(0x100)](a127_0xcdf982['cyan'](_0x579c29(0xf3)));for(const _0xd986b7 of _0x18bb0f){console[_0x579c29(0x100)]('\x20\x20'+a127_0xcdf982[_0x579c29(0x132)]('FOUND')+'\x20\x20'+_0xd986b7);}console[_0x579c29(0x100)]('\x20\x20Action:\x20delete');}else console[_0x579c29(0x100)](a127_0xcdf982[_0x579c29(0x136)]('Legacy\x20artifacts:')+'\x20\x20'+a127_0xcdf982[_0x579c29(0x14c)](_0x579c29(0x13a)));console[_0x579c29(0x100)]('');_0x1002d3?(console[_0x579c29(0x100)](a127_0xcdf982['cyan'](_0x579c29(0xd1))+('\x20\x20'+a127_0xcdf982[_0x579c29(0xe0)](_0x1002d3['path'])+_0x579c29(0xea)+_0x1002d3['keys'][_0x579c29(0x121)](',\x20'))),console[_0x579c29(0x100)](_0x579c29(0x149))):console['log'](a127_0xcdf982[_0x579c29(0x136)](_0x579c29(0xd1))+'\x20\x20'+a127_0xcdf982['gray'](_0x579c29(0xcc)));console[_0x579c29(0x100)](''),console[_0x579c29(0x100)](a127_0xcdf982[_0x579c29(0x136)](_0x579c29(0x11b))+('\x20\x20'+(_0x33f34e?a127_0xcdf982[_0x579c29(0xe0)]('needed'):a127_0xcdf982[_0x579c29(0x13d)](_0x579c29(0x13f)))));_0x33f34e&&console[_0x579c29(0x100)](_0x579c29(0xd6)+NPX_SKILLS_ADD_GLOBAL_COMMAND_LINE+'`');console[_0x579c29(0x100)]('');if(_0x2ec1d5[_0x579c29(0x12b)]){const {currentVersion:_0x2a91d0,field:_0x200be5,pkgPath:_0x5e381a}=_0x2ec1d5['sdkUpgrade'];console[_0x579c29(0x100)](a127_0xcdf982[_0x579c29(0x136)](_0x579c29(0x12e))+('\x20\x20'+a127_0xcdf982[_0x579c29(0xe0)](_0x5e381a))),console['log'](_0x579c29(0x135)+_0x200be5+':\x20'+a127_0xcdf982[_0x579c29(0xe0)](_0x2a91d0)+_0x579c29(0x10c)+a127_0xcdf982['green'](_0x579c29(0xd5))),console[_0x579c29(0x100)](_0x579c29(0xf6));}else console[_0x579c29(0x100)](a127_0xcdf982[_0x579c29(0x136)](_0x579c29(0x12e))+'\x20\x20'+a127_0xcdf982[_0x579c29(0x14c)](_0x579c29(0xcf)));console[_0x579c29(0x100)]('');}function execConfigMigration(_0x4cd2e1,_0x468289){const _0x4e3709=a127_0x361b18,{configMigration:_0xeeb21b}=_0x4cd2e1;if(!_0xeeb21b?.['oldPath'])return{'step':0x1,'label':_0x4e3709(0x144),'ok':!![],'detail':'skipped\x20(no\x20legacy\x20config)'};const _0x2e2258=readConfigFile(_0xeeb21b['oldPath']),_0x39950c=resolve(_0x468289,NEW_CONFIG_NAME),_0x5e36df=_0xeeb21b['hasNewConfig']?readConfigFile(_0x39950c):{};for(const [_0xba977d,_0x1e69a2]of Object[_0x4e3709(0x105)](_0x2e2258)){!(_0xba977d in _0x5e36df)&&(_0x5e36df[_0xba977d]=_0x1e69a2);}writeConfigFile(_0x39950c,_0x5e36df);const _0x5082b9=_0xeeb21b[_0x4e3709(0x140)]+_0x4e3709(0x122);return renameSync(_0xeeb21b['oldPath'],_0x5082b9),{'step':0x1,'label':_0x4e3709(0x144),'ok':!![],'detail':_0xeeb21b[_0x4e3709(0x140)]+_0x4e3709(0x10c)+_0x39950c+'\x20(backup:\x20'+_0x5082b9+')'};}function execRemoveOldArtifacts(_0x55901b){const _0x56650a=a127_0x361b18,_0xac4e03=[];for(const _0x119a07 of _0x55901b){try{if(!existsSync(_0x119a07))continue;const _0x1b83d5=tryStat(_0x119a07);_0x1b83d5?.[_0x56650a(0x124)]()?rmSync(_0x119a07,{'recursive':!![],'force':!![]}):unlinkSync(_0x119a07);}catch(_0x46ba5b){_0xac4e03[_0x56650a(0x134)](_0x119a07+':\x20'+_0x46ba5b['message']);}}return{'step':0x3,'label':_0x56650a(0x11a),'ok':_0xac4e03['length']===0x0,'detail':_0xac4e03['length']>0x0?_0x55901b[_0x56650a(0x14a)]-_0xac4e03[_0x56650a(0x14a)]+'/'+_0x55901b[_0x56650a(0x14a)]+_0x56650a(0xf7)+_0xac4e03[_0x56650a(0x121)](';\x20')+')':_0x55901b[_0x56650a(0x14a)]+_0x56650a(0xf2)};}function execCleanMcp(_0x343aea){const _0x1ff75a=a127_0x361b18;if(!_0x343aea['oldMcpConfig'])return{'step':0x4,'label':'Clean\x20MCP\x20config','ok':!![],'detail':'skipped'};try{const _0x34f831=readFileSync(_0x343aea[_0x1ff75a(0x128)]['path'],'utf8'),_0x25cc96=JSON[_0x1ff75a(0x10d)](_0x34f831);if(_0x25cc96?.[_0x1ff75a(0xdb)]&&typeof _0x25cc96[_0x1ff75a(0xdb)]===_0x1ff75a(0xf5)){const _0x4b11f8=[];for(const [_0x20da63,_0x5d8e05]of Object['entries'](_0x25cc96[_0x1ff75a(0xdb)])){_0x5d8e05?.[_0x1ff75a(0xf8)]&&Array[_0x1ff75a(0xdf)](_0x5d8e05[_0x1ff75a(0xf8)])&&_0x5d8e05[_0x1ff75a(0xf8)][_0x1ff75a(0xe8)](_0x5884d9=>typeof _0x5884d9===_0x1ff75a(0xd3)&&_0x5884d9['includes'](_0x1ff75a(0x147)))&&_0x4b11f8[_0x1ff75a(0x134)](_0x20da63);}for(const _0x16001a of _0x4b11f8){delete _0x25cc96['mcpServers'][_0x16001a];}return _0x4b11f8[_0x1ff75a(0x14a)]>0x0&&writeFileSync(_0x343aea[_0x1ff75a(0x128)]['path'],JSON['stringify'](_0x25cc96,null,0x2)+'\x0a','utf8'),{'step':0x4,'label':_0x1ff75a(0x116),'ok':!![],'detail':_0x1ff75a(0xe7)+_0x4b11f8[_0x1ff75a(0x121)](',\x20')+_0x1ff75a(0x119)+_0x343aea['oldMcpConfig'][_0x1ff75a(0x129)]};}return{'step':0x4,'label':_0x1ff75a(0x116),'ok':!![],'detail':_0x1ff75a(0x101)};}catch(_0x1ac717){return{'step':0x4,'label':_0x1ff75a(0x116),'ok':![],'detail':_0x1ac717[_0x1ff75a(0x102)]};}}function execSkillsRemove(_0x2bced9,_0x2b7bba){const _0x46e1df=a127_0x361b18,_0x1d5e3c=runNpxSkillsRemove(_0x2bced9,{'stdio':_0x46e1df(0x11f),'yes':_0x2b7bba});return{'step':0x5,'label':_0x46e1df(0x130),'ok':_0x1d5e3c['ok'],'detail':_0x1d5e3c['ok']?_0x46e1df(0x109):_0x1d5e3c[_0x46e1df(0xed)]??_0x46e1df(0x10a)+_0x1d5e3c['status']};}function a127_0x3c72(_0x522947,_0xc39a34){_0x522947=_0x522947-0xcc;const _0x4400c3=a127_0x4400();let _0x3c72ee=_0x4400c3[_0x522947];return _0x3c72ee;}function a127_0x4400(){const _0x4ace5c=['Config\x20migration','cwd','260904aVndLW','@lovrabet/dataset-mcp-server','needsSkillSwap','\x20\x20Action:\x20remove\x20entries\x20containing\x20@lovrabet/dataset-mcp-server','length','[\x22@lovrabet/sdk\x22]:\x20','gray','no\x20legacy\x20entry','550899patYQR','Step\x202/7:\x20.lovrabet/\x20removal\x20failed\x20—\x20','not\x20found\x20or\x20already\x20at\x20latest','===\x20Upgrade\x20Summary\x20===','MCP\x20config:','1171566Cbwriy','string','Step\x203/7:\x20Legacy\x20artifacts\x20—\x20','latest','\x20\x20Action:\x20remove\x20old\x20lovrabet/lovrabet-skill,\x20add\x20via\x20`','start','196290QYPLqO','8972dRPlNT','Step\x203/7:\x20Removing\x20legacy\x20IDE\x20skill\x20files...','mcpServers','===\x20Upgrade\x20Analysis\x20===','white','skipped\x20(not\x20found\x20or\x20already\x20at\x20latest)','isArray','yellow','Upgrade\x20@lovrabet/sdk','utf8','Step\x202/7:\x20Removing\x20.lovrabet/\x20directory...','Step\x207/7:\x20Upgrading\x20@lovrabet/sdk\x20in\x20package.json...','.cursor/mcp.json','Step\x205/7:\x20Removing\x20old\x20skill...','removed\x20','some','done','\x20→\x20keys:\x20','yes','Step\x205/7:\x20Remove\x20old\x20skill\x20—\x20','error','keys','Some\x20steps\x20failed.\x20Check\x20the\x20summary\x20above\x20for\x20details.','succeed','already\x20exists\x20(will\x20merge)','\x20removed','Legacy\x20artifacts:','348502IrlOqH','object','\x20\x20Action:\x20update\x20package.json\x20(you\x20will\x20need\x20to\x20re-run\x20install)','\x20removed\x20(','args','Step\x207/7:\x20@lovrabet/sdk\x20—\x20','failed','values','devDependencies','70794IAhiuR','Upgrade\x20cancelled.','\x20\x20#\x20or','log','no\x20matching\x20entry\x20found','message','bold','info','entries','Remove\x20.lovrabet/','not\x20found\x20(will\x20create)','.lovrabet','lovrabet/lovrabet-skill\x20removed','exit\x20','fields','\x20→\x20','parse','filter','fail','@lovrabet/sdk','\x20\x20Step\x20','label','files','detail','lovrabet/rabetbase','Clean\x20MCP\x20config','.cursor/rules/lovrabet_rules.mdc','\x20\x20npm\x20install','\x20from\x20','Remove\x20legacy\x20artifacts','Skill\x20swap:','\x20\x20Fields\x20to\x20migrate:\x20','Install\x20new\x20skill','includes','inherit','\x20\x20New\x20config\x20(.rabetbase.json):\x20','join','.bak','Step\x204/7:\x20MCP\x20config\x20—\x20','isDirectory','205LngxkR','Config\x20file:','\x20\x20bun\x20install','oldMcpConfig','path','dependencies','sdkUpgrade','step','Step\x204/7:\x20Cleaning\x20MCP\x20config...','@lovrabet/sdk:','Step\x201/7:\x20Config\x20migration\x20—\x20','Remove\x20old\x20skill','skipped','red','Step\x202/7:\x20.lovrabet/\x20directory\x20removed','push','\x20\x20Current\x20version\x20in\x20','cyan','24ddqVPY','lovrabet/rabetbase\x20installed\x20globally','@lovrabet/sdk\x20has\x20been\x20updated\x20to\x20latest\x20in\x20package.json.','none\x20found','Step\x201/7:\x20Migrating\x20config...','oldArtifacts','green','Proceed\x20with\x20upgrade?','not\x20needed','oldPath','\x20→\x20latest','FAIL','no\x20legacy\x20config\x20found'];a127_0x4400=function(){return _0x4ace5c;};return a127_0x4400();}function execSkillsAdd(_0x62090,_0x2c8699){const _0x2c6656=a127_0x361b18,_0xf91d1d=runNpxSkillsAddGlobal(_0x62090,_0x2c6656(0x115),{'stdio':_0x2c6656(0x11f),'yes':_0x2c8699});return{'step':0x6,'label':_0x2c6656(0x11d),'ok':_0xf91d1d['ok'],'detail':_0xf91d1d['ok']?_0x2c6656(0x138):_0xf91d1d[_0x2c6656(0xed)]??_0x2c6656(0x10a)+_0xf91d1d['status']};}function execUpgradeSdk(_0x526e74){const _0x531743=a127_0x361b18;if(!_0x526e74[_0x531743(0x12b)])return{'step':0x7,'label':'Upgrade\x20@lovrabet/sdk','ok':!![],'detail':_0x531743(0xde)};const {pkgPath:_0x56a116,currentVersion:_0x48e6a0,field:_0x2c16aa}=_0x526e74[_0x531743(0x12b)];try{const _0xc24b6e=readFileSync(_0x56a116,_0x531743(0xe2)),_0x4b7da9=JSON['parse'](_0xc24b6e);return _0x4b7da9[_0x2c16aa]['@lovrabet/sdk']='latest',writeFileSync(_0x56a116,JSON['stringify'](_0x4b7da9,null,0x2)+'\x0a',_0x531743(0xe2)),{'step':0x7,'label':_0x531743(0xe1),'ok':!![],'detail':_0x2c16aa+_0x531743(0x14b)+_0x48e6a0+_0x531743(0x141)};}catch(_0x52fcda){return{'step':0x7,'label':_0x531743(0xe1),'ok':![],'detail':_0x52fcda['message']};}}function tryStat(_0x30a505){try{return statSync(_0x30a505);}catch{return undefined;}}function printSummary(_0x8f4c49){const _0x2debde=a127_0x361b18;console['log'](''),console['log'](a127_0xcdf982[_0x2debde(0x103)](_0x2debde(0xd0))),console[_0x2debde(0x100)]('');for(const _0x5283e6 of _0x8f4c49){const _0x5ae77a=_0x5283e6['ok']?a127_0xcdf982[_0x2debde(0x13d)]('OK'):a127_0xcdf982[_0x2debde(0x132)](_0x2debde(0x142));console[_0x2debde(0x100)]('\x20\x20'+_0x5ae77a+_0x2debde(0x111)+_0x5283e6[_0x2debde(0x12c)]+':\x20'+_0x5283e6[_0x2debde(0x112)]);if(_0x5283e6[_0x2debde(0x114)])console[_0x2debde(0x100)]('\x20\x20\x20\x20\x20\x20\x20'+a127_0xcdf982[_0x2debde(0x14c)](_0x5283e6[_0x2debde(0x114)]));}console['log']('');}export async function upgradeApp(_0x5c6ab8,_0x4310c7){const _0x141b6a=a127_0x361b18,_0x4c26a2=process[_0x141b6a(0x145)](),_0x21581b=analyse(_0x4c26a2),_0x41b581=!_0x21581b['configMigration']&&_0x21581b['oldArtifacts'][_0x141b6a(0x14a)]===0x0&&!_0x21581b[_0x141b6a(0x128)]&&!_0x21581b[_0x141b6a(0x148)]&&!_0x21581b[_0x141b6a(0x12b)];if(_0x41b581){console[_0x141b6a(0x100)](a127_0xcdf982[_0x141b6a(0x13d)]('No\x20legacy\x20artifacts\x20found.\x20Your\x20project\x20is\x20already\x20up-to-date.'));return;}printReport(_0x21581b);const _0x1171d3=!!(_0x4310c7[_0x141b6a(0xeb)]||_0x4310c7['Y']||_0x5c6ab8);if(!_0x1171d3)try{const _0x43c7e1=await askConfirm(_0x141b6a(0x13e));if(!_0x43c7e1){console[_0x141b6a(0x100)](a127_0xcdf982[_0x141b6a(0x14c)](_0x141b6a(0xfe)));return;}}catch(_0x467db2){if(_0x467db2?.['message']==='CANCEL'){console[_0x141b6a(0x100)](a127_0xcdf982['gray'](_0x141b6a(0xfe)));return;}throw _0x467db2;}const _0x4bd044=[],_0x209e57=a127_0x29e27a({'text':_0x141b6a(0x13b),'color':_0x141b6a(0x136)})[_0x141b6a(0xd7)](),_0x281bb3=execConfigMigration(_0x21581b,_0x4c26a2);_0x4bd044[_0x141b6a(0x134)](_0x281bb3),_0x209e57[_0x281bb3['ok']?'succeed':'fail'](_0x141b6a(0x12f)+(_0x281bb3[_0x141b6a(0x114)]??(_0x281bb3['ok']?_0x141b6a(0xe9):_0x141b6a(0xfa))));const _0x5db177=resolve(_0x4c26a2,_0x141b6a(0x108)),_0x588a98=a127_0x29e27a({'text':_0x141b6a(0xe3),'color':_0x141b6a(0x136)})[_0x141b6a(0xd7)]();if(existsSync(_0x5db177))try{rmSync(_0x5db177,{'recursive':!![],'force':!![]}),_0x588a98[_0x141b6a(0xf0)](_0x141b6a(0x133)),_0x4bd044[_0x141b6a(0x134)]({'step':0x2,'label':_0x141b6a(0x106),'ok':!![]});}catch(_0x5ca180){_0x588a98[_0x141b6a(0x10f)](_0x141b6a(0xce)+_0x5ca180[_0x141b6a(0x102)]),_0x4bd044[_0x141b6a(0x134)]({'step':0x2,'label':_0x141b6a(0x106),'ok':![],'detail':_0x5ca180[_0x141b6a(0x102)]});}else _0x588a98[_0x141b6a(0x104)]('Step\x202/7:\x20.lovrabet/\x20not\x20found,\x20skipped'),_0x4bd044[_0x141b6a(0x134)]({'step':0x2,'label':_0x141b6a(0x106),'ok':!![],'detail':_0x141b6a(0x131)});const _0x5743b4=a127_0x29e27a({'text':_0x141b6a(0xda),'color':_0x141b6a(0x136)})[_0x141b6a(0xd7)](),_0x542da4=execRemoveOldArtifacts(_0x21581b[_0x141b6a(0x13c)]);_0x4bd044[_0x141b6a(0x134)](_0x542da4),_0x5743b4[_0x542da4['ok']?_0x141b6a(0xf0):_0x141b6a(0x10f)](_0x141b6a(0xd4)+(_0x542da4[_0x141b6a(0x114)]??(_0x542da4['ok']?_0x141b6a(0xe9):_0x141b6a(0xfa))));const _0xb132f=a127_0x29e27a({'text':_0x141b6a(0x12d),'color':_0x141b6a(0x136)})['start'](),_0x4019f7=execCleanMcp(_0x21581b);_0x4bd044['push'](_0x4019f7),_0xb132f[_0x4019f7['ok']?'succeed':_0x141b6a(0x10f)](_0x141b6a(0x123)+(_0x4019f7[_0x141b6a(0x114)]??(_0x4019f7['ok']?_0x141b6a(0xe9):_0x141b6a(0xfa))));const _0x2fd5d2=a127_0x29e27a({'text':_0x141b6a(0xe6),'color':_0x141b6a(0x136)})[_0x141b6a(0xd7)](),_0x3d535b=execSkillsRemove(_0x4c26a2,_0x1171d3);_0x4bd044[_0x141b6a(0x134)](_0x3d535b),_0x2fd5d2[_0x3d535b['ok']?'succeed':'fail'](_0x141b6a(0xec)+(_0x3d535b[_0x141b6a(0x114)]??(_0x3d535b['ok']?_0x141b6a(0xe9):_0x141b6a(0xfa))));const _0x3d0081=a127_0x29e27a({'text':'Step\x206/7:\x20Installing\x20new\x20skill...','color':_0x141b6a(0x136)})[_0x141b6a(0xd7)](),_0x39bb6a=execSkillsAdd(_0x4c26a2,_0x1171d3);_0x4bd044[_0x141b6a(0x134)](_0x39bb6a),_0x3d0081[_0x39bb6a['ok']?_0x141b6a(0xf0):'fail']('Step\x206/7:\x20Install\x20new\x20skill\x20—\x20'+(_0x39bb6a[_0x141b6a(0x114)]??(_0x39bb6a['ok']?_0x141b6a(0xe9):'failed')));const _0x29c824=a127_0x29e27a({'text':_0x141b6a(0xe4),'color':_0x141b6a(0x136)})[_0x141b6a(0xd7)](),_0x28d659=execUpgradeSdk(_0x21581b);_0x4bd044[_0x141b6a(0x134)](_0x28d659),_0x29c824[_0x28d659['ok']?_0x141b6a(0xf0):_0x141b6a(0x10f)](_0x141b6a(0xf9)+(_0x28d659[_0x141b6a(0x114)]??(_0x28d659['ok']?_0x141b6a(0xe9):_0x141b6a(0xfa)))),printSummary(_0x4bd044);const _0xf4eb6a=_0x4bd044[_0x141b6a(0xe8)](_0x115fd8=>!_0x115fd8['ok']);_0xf4eb6a?console[_0x141b6a(0x100)](a127_0xcdf982[_0x141b6a(0xe0)](_0x141b6a(0xef))):console[_0x141b6a(0x100)](a127_0xcdf982['green']('Upgrade\x20completed\x20successfully!')),_0x28d659['ok']&&_0x21581b[_0x141b6a(0x12b)]&&(console[_0x141b6a(0x100)](''),console['log'](a127_0xcdf982[_0x141b6a(0x103)][_0x141b6a(0x136)](_0x141b6a(0x139))),console[_0x141b6a(0x100)](a127_0xcdf982['cyan']('Please\x20re-install\x20dependencies\x20to\x20apply\x20the\x20change:')),console[_0x141b6a(0x100)](''),console[_0x141b6a(0x100)](a127_0xcdf982[_0x141b6a(0xdd)](_0x141b6a(0x118))),console[_0x141b6a(0x100)](a127_0xcdf982[_0x141b6a(0xdd)](_0x141b6a(0xff))),console[_0x141b6a(0x100)](a127_0xcdf982[_0x141b6a(0xdd)](_0x141b6a(0x127))),console['log'](''));}
|
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a128_0x4e6cb3=a128_0x12ef;(function(_0xf252a2,_0x4e9d5b){const _0x16b4e4=a128_0x12ef,_0x1174ec=_0xf252a2();while(!![]){try{const _0x383509=parseInt(_0x16b4e4(0x10e))/0x1*(-parseInt(_0x16b4e4(0xfa))/0x2)+-parseInt(_0x16b4e4(0xfc))/0x3+parseInt(_0x16b4e4(0x105))/0x4*(-parseInt(_0x16b4e4(0x11b))/0x5)+-parseInt(_0x16b4e4(0x10c))/0x6+parseInt(_0x16b4e4(0x100))/0x7+-parseInt(_0x16b4e4(0x103))/0x8*(-parseInt(_0x16b4e4(0xf9))/0x9)+parseInt(_0x16b4e4(0x11f))/0xa;if(_0x383509===_0x4e9d5b)break;else _0x1174ec['push'](_0x1174ec['shift']());}catch(_0x4be0e4){_0x1174ec['push'](_0x1174ec['shift']());}}}(a128_0x3ada,0xb97be));function a128_0x12ef(_0x53b9fa,_0x443ae4){_0x53b9fa=_0x53b9fa-0xeb;const _0x3ada79=a128_0x3ada();let _0x12efa6=_0x3ada79[_0x53b9fa];return _0x12efa6;}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{appConfigDefinitions}from'../commands/app-config/index.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/index.js';import{doctorDefinition}from'../commands/doctor.js';import{updateDefinition}from'../commands/cli-update.js';import{schemaDefinition}from'../commands/schema.js';import{issueDefinitions}from'../commands/issue/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{projectDefinitions}from'../commands/project/index.js';import{initDefinitions}from'../commands/init/index.js';import{runDefinition}from'../commands/run/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x460194){const _0xbf3eaf=a128_0x12ef;for(const _0x277ba3 of _0x460194){definitions['set'](_0x277ba3['service']+':'+_0x277ba3[_0xbf3eaf(0xee)],_0x277ba3);let _0x184da5=serviceGroups[_0xbf3eaf(0xff)](_0x277ba3[_0xbf3eaf(0x122)]);!_0x184da5&&(_0x184da5=[],serviceGroups[_0xbf3eaf(0xf6)](_0x277ba3[_0xbf3eaf(0x122)],_0x184da5)),_0x184da5[_0xbf3eaf(0xeb)](_0x277ba3);}}function registerDeclarativeService(_0x1585e3,_0x234e8c,_0x2dd073){const _0x17fa26=a128_0x12ef;registerDefinitions(_0x234e8c);_0x2dd073?.[_0x17fa26(0x12b)]&®isterDefinitions([_0x2dd073[_0x17fa26(0x12b)]]);const _0x417eb1=_0x4700ec=>_0x4700ec===_0x17fa26(0xf8)?'':_0x4700ec===_0x17fa26(0x10b)?_0x17fa26(0x102):_0x17fa26(0x112),_0x3e457a={'service':_0x234e8c[0x0]['service'],'label':_0x1585e3,'commands':_0x234e8c[_0x17fa26(0x11c)](_0x362467=>({'command':_0x362467['command'],'description':_0x362467[_0x17fa26(0x127)],'tag':_0x417eb1(_0x362467[_0x17fa26(0x120)])})),'declarative':!![],'defaultCommand':_0x2dd073?.[_0x17fa26(0x101)]??(_0x2dd073?.[_0x17fa26(0x113)]?_0x234e8c[0x0][_0x17fa26(0xee)]:undefined),'wildcardDef':_0x2dd073?.['wildcardDef'],'isSingleCommand':_0x2dd073?.['isSingleCommand']};serviceRegistry[_0x17fa26(0xeb)](_0x3e457a),serviceByName[_0x17fa26(0xf6)](_0x3e457a['service'],_0x3e457a);}registerDeclarativeService(a128_0x4e6cb3(0x108),initDefinitions,{'defaultCommand':a128_0x4e6cb3(0xfe),'isSingleCommand':!![]}),registerDeclarativeService(a128_0x4e6cb3(0xef),projectDefinitions),registerDeclarativeService(a128_0x4e6cb3(0x10f),workspaceDefinitions),registerDeclarativeService(a128_0x4e6cb3(0xf3),appDefinitions),registerDeclarativeService(a128_0x4e6cb3(0x11d),authDefinitions,{'defaultCommand':'login'}),registerDeclarativeService(a128_0x4e6cb3(0x126),datasetDefinitions),registerDeclarativeService('Smart\x20List\x20Pages',pageDefinitions),registerDeclarativeService(a128_0x4e6cb3(0xf1),apiDefinitions),registerDeclarativeService('Instant\x20API',dataDefinitions),registerDeclarativeService('BFF\x20Scripts',bffDefinitions),registerDeclarativeService(a128_0x4e6cb3(0xf2),sqlDefinitions),registerDeclarativeService(a128_0x4e6cb3(0x11e),dbDefinitions),registerDeclarativeService(a128_0x4e6cb3(0xfb),menuDefinitions),registerDeclarativeService(a128_0x4e6cb3(0x12a),appConfigDefinitions),registerDeclarativeService('Platform\x20Issue',issueDefinitions),registerDeclarativeService(a128_0x4e6cb3(0xf5),codegenDefinitions),registerDeclarativeService(a128_0x4e6cb3(0xec),configDefinitions),registerDeclarativeService('Diagnostics',[doctorDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a128_0x4e6cb3(0xf4),[schemaDefinition],{'isSingleCommand':!![]}),registerDeclarativeService(a128_0x4e6cb3(0x115),[updateDefinition],{'isSingleCommand':!![]}),registerDeclarativeService('CLI\x20Built-in\x20Skill',cliSkillDefinitions,{'defaultCommand':'install'}),registerDeclarativeService(a128_0x4e6cb3(0x125),logsDefinitions,{'defaultCommand':'show'}),registerDeclarativeService(a128_0x4e6cb3(0x104),[runDefinition],{'wildcardDef':runDefinition});{const last=serviceRegistry[serviceRegistry[a128_0x4e6cb3(0xfd)]-0x1];last['commands']=[{'command':a128_0x4e6cb3(0xf7),'description':'Run\x20any\x20package.json\x20script','tag':''}];}export const deprecatedAliases={'create':{'service':a128_0x4e6cb3(0x121),'command':a128_0x4e6cb3(0x111)},'start':{'service':'run','command':a128_0x4e6cb3(0xf0)},'build':{'service':a128_0x4e6cb3(0xfe),'command':a128_0x4e6cb3(0x119)},'preview':{'service':'run','command':a128_0x4e6cb3(0x118)},'logout':{'service':'auth','command':a128_0x4e6cb3(0x116)}};const CLI_SKILL_INSTALL_REMOVED_HINT=a128_0x4e6cb3(0x10a),APP_REMOTE_REMOVED_HINT='Use\x20`rabetbase\x20app\x20list\x20--remote`\x20instead.',APP_USE_REMOVED_HINT=a128_0x4e6cb3(0x109);export function resolveRemovedCommand(_0x44f83f,_0x37e0c6){const _0x55d016=a128_0x4e6cb3;if(_0x44f83f===_0x55d016(0xed)){const _0x2e602a=_0x37e0c6?'skill\x20'+_0x37e0c6:_0x55d016(0xed);return{'command':_0x2e602a,'message':'`rabetbase\x20'+_0x2e602a+_0x55d016(0x129),'hint':CLI_SKILL_INSTALL_REMOVED_HINT};}if(_0x44f83f==='skills')return{'command':_0x55d016(0x10d),'message':_0x55d016(0x114),'hint':CLI_SKILL_INSTALL_REMOVED_HINT};if(_0x44f83f===_0x55d016(0x106)&&_0x37e0c6===_0x55d016(0x117))return{'command':'app\x20remote','message':'`rabetbase\x20app\x20remote`\x20has\x20been\x20removed.','hint':APP_REMOTE_REMOVED_HINT};if(_0x44f83f===_0x55d016(0x106)&&_0x37e0c6===_0x55d016(0x124))return{'command':_0x55d016(0x123),'message':_0x55d016(0x110),'hint':APP_USE_REMOVED_HINT};return undefined;}export const deprecatedSubcommands={'bff':{'new':a128_0x4e6cb3(0x111)},'sql':{'new':a128_0x4e6cb3(0x111)}};export function resolveDeprecatedSubcommand(_0x14c969,_0x573081){return deprecatedSubcommands[_0x14c969]?.[_0x573081];}function a128_0x3ada(){const _0x2529aa=['Menu','927960vnAZoI','length','run','get','620438xGLVvo','defaultCommand','\x20\x20[write]','49544TiQSzZ','Run\x20Scripts','326588eMWEYo','app','values','Quick\x20Start','Use\x20`rabetbase\x20workspace\x20use\x20--app\x20<name>`\x20instead.','Use\x20`rabetbase\x20cli-skill\x20install`\x20to\x20refresh\x20the\x20Rabetbase\x20CLI\x20Built-in\x20Skill.\x20To\x20install\x20business\x20Skills,\x20use\x20`lovrabet\x20skill\x20install`.','write','7126410OfvmeK','skills','1mmMYac','Workspace','`rabetbase\x20app\x20use`\x20has\x20been\x20removed.','create','\x20\x20[high-risk-write]','isSingleCommand','`rabetbase\x20skills`\x20has\x20been\x20removed.','Self\x20Update','logout','remote','preview','build','from','20lnYOZq','map','Authentication','Database\x20Connections','33250090AgFWSs','risk','project','service','app\x20use','use','Logs','Dataset\x20&\x20Operations','description','has','`\x20has\x20been\x20removed.','Runtime\x20App\x20Config\x20Management','wildcardDef','push','Configuration','skill','command','Project','start','API\x20Development','SQL\x20Queries','App\x20Management','Schema','Code\x20Generation','set','<script>','read','126uvZwvO','1833920lTxuTP'];a128_0x3ada=function(){return _0x2529aa;};return a128_0x3ada();}export function findDefinition(_0x386090,_0x2f0231){const _0x163536=a128_0x4e6cb3;return definitions[_0x163536(0xff)](_0x386090+':'+_0x2f0231);}export function isKnownService(_0xb75306){const _0x52d62b=a128_0x4e6cb3;return serviceByName[_0x52d62b(0x128)](_0xb75306);}export function isDeclarativeService(_0xc1fe64){const _0x130515=a128_0x4e6cb3;return serviceGroups[_0x130515(0x128)](_0xc1fe64)||serviceByName[_0x130515(0xff)](_0xc1fe64)?.[_0x130515(0x12b)]!==undefined;}export function getServiceEntry(_0x21d556){const _0x433fe2=a128_0x4e6cb3;return serviceByName[_0x433fe2(0xff)](_0x21d556);}export function getLegacyHandler(_0x3987c,_0x34701c){return undefined;}export function getAllDefinitions(){const _0x3125ce=a128_0x4e6cb3;return Array[_0x3125ce(0x11a)](definitions[_0x3125ce(0x107)]());}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a129_0x72e06b=a129_0x3d55;(function(_0x54e745,_0x578ca4){const _0x1838a4=a129_0x3d55,_0x4b9bcb=_0x54e745();while(!![]){try{const _0x50d11d=parseInt(_0x1838a4(0x18d))/0x1+-parseInt(_0x1838a4(0x1a3))/0x2*(parseInt(_0x1838a4(0x19a))/0x3)+-parseInt(_0x1838a4(0x179))/0x4*(-parseInt(_0x1838a4(0x193))/0x5)+-parseInt(_0x1838a4(0x190))/0x6*(parseInt(_0x1838a4(0x19c))/0x7)+parseInt(_0x1838a4(0x177))/0x8+-parseInt(_0x1838a4(0x16b))/0x9+parseInt(_0x1838a4(0x171))/0xa;if(_0x50d11d===_0x578ca4)break;else _0x4b9bcb['push'](_0x4b9bcb['shift']());}catch(_0x1503e5){_0x4b9bcb['push'](_0x4b9bcb['shift']());}}}(a129_0x4e85,0x1e0bf));function a129_0x4e85(){const _0x3df6b7=['\x20\x20EXAMPLES','\x22\x20not\x20found\x20in\x20package.json.','198cWldlF','bool','script','5wEnITY','\x20run\x20<script>\x0a','log','validation','utf-8','bun.lockb','pnpm','128619QWqzMQ','Run\x20a\x20package.json\x20script','46298iZHoLn','\x0a\x20\x20Usage:\x20','needsUpgrade','Enable\x20watch\x20mode\x20for\x20preview','Script\x20name\x20defined\x20in\x20package.json','yarn.lock','.bin','2Hqiqym','vite\x20preview\x20exited\x20with\x20code\x20','\x20run\x20preview\x20--watch','build','No\x20package.json\x20found\x20in\x20current\x20directory.','2173365rlDGiZ','start','join','error','parse','inherit','5247620PzBZuK','\x20run\x20','yarn','all','read','close','712848YvUsji','slice','32436loZnTb','package.json','push','args','\x0a\x20\x20Available\x20scripts:\x0a','dev','npm','--watch','pnpm-lock.yaml','bun','vite','run','has','keys','boolean','\x20\x20\x20\x20','preview','\x20run\x20preview','node_modules','watch','3714gAbcAp'];a129_0x4e85=function(){return _0x3df6b7;};return a129_0x4e85();}import{readFileSync,existsSync}from'node:fs';function a129_0x3d55(_0x42c082,_0x47d6a6){_0x42c082=_0x42c082-0x16a;const _0x4e8532=a129_0x4e85();let _0x3d55b3=_0x4e8532[_0x42c082];return _0x3d55b3;}import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set([a129_0x72e06b(0x16c),a129_0x72e06b(0x17e)]);function readPackageScripts(_0x1422b9){const _0x11fe8e=a129_0x72e06b,_0x3b889e=resolve(_0x1422b9,_0x11fe8e(0x17a));if(!existsSync(_0x3b889e))return null;try{const _0x74c69a=JSON[_0x11fe8e(0x16f)](readFileSync(_0x3b889e,_0x11fe8e(0x197)));return _0x74c69a['scripts']??{};}catch{return null;}}function detectPackageManager(_0x6c9436){const _0x50fb39=a129_0x72e06b;if(existsSync(resolve(_0x6c9436,_0x50fb39(0x198)))||existsSync(resolve(_0x6c9436,'bun.lock')))return _0x50fb39(0x182);if(existsSync(resolve(_0x6c9436,_0x50fb39(0x181))))return _0x50fb39(0x199);if(existsSync(resolve(_0x6c9436,_0x50fb39(0x1a1))))return _0x50fb39(0x173);return _0x50fb39(0x17f);}async function versionCheck(_0x5aac81){const _0x51763c=a129_0x72e06b,_0x41e3b4=await checkCliVersion();(_0x41e3b4[_0x51763c(0x19e)]||_0x41e3b4['belowMinimum'])&&(printCliUpgradeWarning(_0x41e3b4),assertCliVersionSupported(_0x41e3b4));const _0x5a2522=await checkSdkVersion(_0x5aac81);if(_0x5a2522[_0x51763c(0x19e)])printSdkUpgradeWarning(_0x5a2522);}function spawnScript(_0x413336,_0xeb922a,_0x42f1da,_0xbace04){return new Promise((_0x36ec4c,_0x430b63)=>{const _0x2a0434=a129_0x3d55,_0x5b1d19=[_0x2a0434(0x184),_0xeb922a,..._0x42f1da],_0x3b014d=spawn(_0x413336,_0x5b1d19,{'cwd':_0xbace04,'stdio':_0x2a0434(0x170),'shell':!![],'env':{...process.env,'PATH':''+join(_0xbace04,_0x2a0434(0x18b),'.bin')+delimiter+process.env.PATH}});_0x3b014d['on'](_0x2a0434(0x176),_0x4b4415=>{const _0x3d31a4=_0x2a0434;if(_0x4b4415===0x0||_0x4b4415===null)_0x36ec4c();else _0x430b63(new Error(_0x413336+_0x3d31a4(0x172)+_0xeb922a+'\x20exited\x20with\x20code\x20'+_0x4b4415));}),_0x3b014d['on'](_0x2a0434(0x16e),_0x430b63);});}function spawnViteBuildWatch(_0xd0f144){return new Promise((_0x297696,_0xc30ee0)=>{const _0x5b7ce6=a129_0x3d55,_0x22b7c2=spawn(_0x5b7ce6(0x183),[_0x5b7ce6(0x1a6),_0x5b7ce6(0x180)],{'cwd':_0xd0f144,'stdio':_0x5b7ce6(0x170),'shell':!![],'env':{...process.env,'PATH':''+join(_0xd0f144,_0x5b7ce6(0x18b),_0x5b7ce6(0x1a2))+delimiter+process.env.PATH}});_0x22b7c2['on']('close',_0x180165=>{if(_0x180165===0x0||_0x180165===null)_0x297696();else _0xc30ee0(new Error('vite\x20build\x20--watch\x20exited\x20with\x20code\x20'+_0x180165));}),_0x22b7c2['on'](_0x5b7ce6(0x16e),_0xc30ee0);});}function spawnVitePreview(_0x57fa3e){return new Promise((_0x291480,_0x2dcf37)=>{const _0x2b6286=a129_0x3d55,_0x112864=spawn(_0x2b6286(0x183),[_0x2b6286(0x189)],{'cwd':_0x57fa3e,'stdio':_0x2b6286(0x170),'shell':!![],'env':{...process.env,'PATH':''+join(_0x57fa3e,_0x2b6286(0x18b),_0x2b6286(0x1a2))+delimiter+process.env.PATH}});_0x112864['on']('close',_0x235e36=>{const _0x1ca0e2=_0x2b6286;if(_0x235e36===0x0||_0x235e36===null)_0x291480();else _0x2dcf37(new Error(_0x1ca0e2(0x1a4)+_0x235e36));}),_0x112864['on'](_0x2b6286(0x16e),_0x2dcf37);});}const runFlags=[{'name':a129_0x72e06b(0x18c),'type':a129_0x72e06b(0x187),'description':a129_0x72e06b(0x19f),'default':![]}];export const runDefinition={'service':a129_0x72e06b(0x184),'command':'run','description':a129_0x72e06b(0x19b),'risk':a129_0x72e06b(0x175),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a129_0x72e06b(0x192),'description':a129_0x72e06b(0x1a0),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x2cb609=a129_0x72e06b,_0x1420be=[];return _0x1420be[_0x2cb609(0x17b)](_0x2cb609(0x18e)),_0x1420be['push']('\x20\x20\x20\x20'+CLI_BIN_NAME+'\x20run\x20start'),_0x1420be['push']('\x20\x20\x20\x20'+CLI_BIN_NAME+'\x20run\x20build'),_0x1420be[_0x2cb609(0x17b)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x2cb609(0x18a)),_0x1420be[_0x2cb609(0x17b)](_0x2cb609(0x188)+CLI_BIN_NAME+_0x2cb609(0x1a5)),_0x1420be[_0x2cb609(0x16d)]('\x0a');},async 'execute'(_0x235ea3){const _0x44e5c3=a129_0x72e06b,_0x2bcd1c=process['cwd'](),_0x4e2834=_0x235ea3[_0x44e5c3(0x17c)][0x0],_0x4aa8c2=_0x235ea3[_0x44e5c3(0x17c)][_0x44e5c3(0x178)](0x1),_0x29aa19=readPackageScripts(_0x2bcd1c);if(!_0x29aa19)throw CliErrors[_0x44e5c3(0x196)](_0x44e5c3(0x16a));if(!_0x4e2834){const _0x558538=Object[_0x44e5c3(0x186)](_0x29aa19);if(_0x558538['length']===0x0)console['log']('No\x20scripts\x20defined\x20in\x20package.json.');else{console[_0x44e5c3(0x195)](_0x44e5c3(0x17d));for(const _0x49a446 of _0x558538){console[_0x44e5c3(0x195)](_0x44e5c3(0x188)+_0x49a446);}console[_0x44e5c3(0x195)](_0x44e5c3(0x19d)+CLI_BIN_NAME+_0x44e5c3(0x194));}return{'ok':!![]};}if(!_0x29aa19[_0x4e2834])throw CliErrors['validation']('Script\x20\x22'+_0x4e2834+_0x44e5c3(0x18f),'Available:\x20'+(Object[_0x44e5c3(0x186)](_0x29aa19)['join'](',\x20')||'(none)'));const _0x461fc3=detectPackageManager(_0x2bcd1c);VERSION_CHECK_SCRIPTS[_0x44e5c3(0x185)](_0x4e2834)&&await versionCheck(_0x2bcd1c);if(_0x4e2834===_0x44e5c3(0x189)&&_0x235ea3[_0x44e5c3(0x191)](_0x44e5c3(0x18c)))return await Promise[_0x44e5c3(0x174)]([spawnViteBuildWatch(_0x2bcd1c),spawnVitePreview(_0x2bcd1c)]),{'ok':!![]};return await spawnScript(_0x461fc3,_0x4e2834,_0x4aa8c2,_0x2bcd1c),{'ok':!![]};}};
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a130_0x36fe87=a130_0x5e47;function a130_0x5ec3(){const _0x33247f=['17127salbel','11219362plnlEk','json','40043DzZPkL','8418465PjLYzz','read','3179124hPuotd','618ViUeVL','720bzQiQl','11516deSSNq','schema','141624XacVNU','Export\x20machine-readable\x20command\x20schema\x20(JSON)'];a130_0x5ec3=function(){return _0x33247f;};return a130_0x5ec3();}(function(_0x4537ef,_0x5e168f){const _0x28308f=a130_0x5e47,_0x1b6252=_0x4537ef();while(!![]){try{const _0x3c47c9=-parseInt(_0x28308f(0x8a))/0x1+parseInt(_0x28308f(0x85))/0x2+parseInt(_0x28308f(0x81))/0x3*(parseInt(_0x28308f(0x83))/0x4)+-parseInt(_0x28308f(0x7e))/0x5+parseInt(_0x28308f(0x80))/0x6+parseInt(_0x28308f(0x88))/0x7+-parseInt(_0x28308f(0x82))/0x8*(parseInt(_0x28308f(0x87))/0x9);if(_0x3c47c9===_0x5e168f)break;else _0x1b6252['push'](_0x1b6252['shift']());}catch(_0x1ea31c){_0x1b6252['push'](_0x1b6252['shift']());}}}(a130_0x5ec3,0xdc17c));import{buildSchemaPayload}from'../framework/schema-export.js';function a130_0x5e47(_0x34db7c,_0x59eaeb){_0x34db7c=_0x34db7c-0x7e;const _0x5ec3fc=a130_0x5ec3();let _0x5e4767=_0x5ec3fc[_0x34db7c];return _0x5e4767;}async function execute(_0x2df451){const _0x59215c=await buildSchemaPayload();return{'ok':!![],'data':_0x59215c};}export const schemaDefinition={'service':a130_0x36fe87(0x84),'command':'export','description':a130_0x36fe87(0x86),'risk':a130_0x36fe87(0x7f),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a130_0x36fe87(0x89),'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a132_0x5b041e=a132_0x5a95;(function(_0xe51b8c,_0x440505){const _0x5b04a3=a132_0x5a95,_0x1fa8e=_0xe51b8c();while(!![]){try{const _0x2e5a6e=parseInt(_0x5b04a3(0x1bd))/0x1*(parseInt(_0x5b04a3(0x1ab))/0x2)+-parseInt(_0x5b04a3(0x1a8))/0x3*(parseInt(_0x5b04a3(0x198))/0x4)+-parseInt(_0x5b04a3(0x17f))/0x5*(-parseInt(_0x5b04a3(0x179))/0x6)+parseInt(_0x5b04a3(0x187))/0x7*(-parseInt(_0x5b04a3(0x18e))/0x8)+-parseInt(_0x5b04a3(0x1be))/0x9+-parseInt(_0x5b04a3(0x1bb))/0xa+-parseInt(_0x5b04a3(0x177))/0xb*(-parseInt(_0x5b04a3(0x17b))/0xc);if(_0x2e5a6e===_0x440505)break;else _0x1fa8e['push'](_0x1fa8e['shift']());}catch(_0x356496){_0x1fa8e['push'](_0x1fa8e['shift']());}}}(a132_0x3cd4,0x5cf38));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(_0xddc6e7){const _0x71af08=a132_0x5a95;if(_0xddc6e7==='mybatisXml')return[_0x71af08(0x195),_0x71af08(0x1a2),_0x71af08(0x185),''][_0x71af08(0x1b6)]('\x0a');return['SELECT\x201\x20AS\x20id;',''][_0x71af08(0x1b6)]('\x0a');}export const sqlCreate={'service':a132_0x5b041e(0x1b3),'command':a132_0x5b041e(0x1a3),'description':'Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','risk':a132_0x5b041e(0x191),'flags':[{'name':a132_0x5b041e(0x190),'type':'string','description':a132_0x5b041e(0x1b7)},{'name':'db-id','type':'number','description':a132_0x5b041e(0x1a5)},{'name':a132_0x5b041e(0x19f),'type':a132_0x5b041e(0x1c1),'enum':['sql',a132_0x5b041e(0x194)],'description':a132_0x5b041e(0x1a4)}],async 'validate'(_0x40877f){const _0x38c4fd=a132_0x5b041e;if(!_0x40877f[_0x38c4fd(0x186)])return;if(!_0x40877f[_0x38c4fd(0x17a)](_0x38c4fd(0x190))[_0x38c4fd(0x1a7)]())throw CliErrors[_0x38c4fd(0x19b)]('name',_0x38c4fd(0x178));const _0x17c89c=resolveProvidedDbId(_0x40877f);if(typeof _0x17c89c!==_0x38c4fd(0x18f)||!Number[_0x38c4fd(0x1bf)](_0x17c89c)||_0x17c89c<=0x0)throw CliErrors['flagMissing'](_0x38c4fd(0x181),_0x38c4fd(0x1b9));if(!_0x40877f['str'](_0x38c4fd(0x19f))['trim']())throw CliErrors[_0x38c4fd(0x19b)]('mode',_0x38c4fd(0x1ac));},async 'dryRun'(_0xd862e){const _0x691c32=a132_0x5b041e,_0xe6cddf=loadSqlProjectConfig(_0xd862e[_0x691c32(0x196)]),{sqlName:_0x1bbe81,dbId:_0x374372,dbName:_0x14f1d5,mode:_0xd865bf}=await resolveSqlNewInputs(_0xd862e),_0x1371f5=buildSqlRelativePath(_0x691c32(0x18c),_0x1bbe81,_0x14f1d5,_0xd865bf,_0x374372),_0x6ef2b9=_0xe6cddf[_0x691c32(0x1b0)]+'/'+_0x1371f5;return{'method':_0x691c32(0x18a),'url':'/smartapi/custom/saveUserCustomSql','body':{'appCode':_0xd862e[_0x691c32(0x196)],'sqlName':_0x1bbe81,'dbId':_0x374372,'mode':_0xd865bf,'localPath':_0x6ef2b9},'description':_0x691c32(0x19c)+_0xe6cddf['sqlRootDir']};},async 'execute'(_0x1d744b){const _0x188f07=a132_0x5b041e,_0x311030=loadSqlProjectConfig(_0x1d744b['appCode']),{sqlName:_0x1aa890,dbId:_0x88f595,dbName:_0x269064,mode:_0x5c98ee}=await resolveSqlNewInputs(_0x1d744b),_0x39ea4b=generateSqlTemplate(_0x5c98ee),_0x23129f=await createSqlQuery({'appCode':_0x1d744b[_0x188f07(0x196)],'sqlName':_0x1aa890,'dbId':_0x88f595,'sqlContent':_0x39ea4b}),_0x1a22a9=ensureRemoteSqlContent(_0x23129f),_0x3beb18=_0x269064||await getDbName(_0x1d744b[_0x188f07(0x196)],_0x88f595)[_0x188f07(0x1b8)](()=>undefined),_0xa50e3=buildSqlRelativePath(_0x23129f['sqlCode'],_0x23129f[_0x188f07(0x19a)],_0x3beb18,_0x5c98ee,_0x88f595),_0x96bb4d=_0x311030[_0x188f07(0x1b0)]+'/'+_0xa50e3,_0x234849=buildLocalSqlFileContent({'sqlCode':_0x23129f[_0x188f07(0x1b1)],'sqlName':_0x23129f[_0x188f07(0x19a)],'dbId':_0x23129f['dbId']},_0x1a22a9,{'dbName':_0x3beb18,'mode':_0x5c98ee,'syncedAt':new Date()[_0x188f07(0x1a0)](),'description':_0x23129f[_0x188f07(0x17e)]});if(await fileExists(_0x96bb4d))throw CliErrors['validation'](_0x188f07(0x188)+_0x96bb4d);await ensureParentDirectory(_0x96bb4d),await writeFile(_0x96bb4d,_0x234849,_0x188f07(0x183));const _0x359f5a=await readSqlLockFile(_0x311030[_0x188f07(0x199)]),{lockData:_0x4d5165,appLock:_0x582dac}=ensureSqlLockScope(_0x359f5a??createEmptySqlLock(),_0x311030[_0x188f07(0x196)],_0x311030[_0x188f07(0x1a6)],_0x188f07(0x19d));return _0x582dac[_0x188f07(0x1aa)][_0x23129f['sqlCode']]={...buildSqlLockEntry(_0x23129f,_0x1a22a9,computeSqlContentHash(_0x234849),{'dbName':_0x3beb18}),'path':_0xa50e3,'mode':_0x5c98ee},_0x582dac[_0x188f07(0x189)]=new Date()[_0x188f07(0x1a0)](),await writeSqlLockFile(_0x311030['lockFilePath'],_0x4d5165),{'ok':!![],'data':{'id':_0x23129f['id'],'sqlCode':_0x23129f[_0x188f07(0x1b1)],'sqlName':_0x23129f['sqlName'],'dbId':_0x23129f[_0x188f07(0x1c2)],'path':_0x96bb4d,'mode':_0x5c98ee},'message':_0x188f07(0x180)+_0x23129f[_0x188f07(0x1b1)]};}};async function resolveSqlNewInputs(_0x45f51a){const _0x1b247d=await resolveSqlNameInput(_0x45f51a),{dbId:_0x25d504,dbName:_0x43f7da}=await resolveDbSelection(_0x45f51a),_0x22054c=await resolveSqlModeInput(_0x45f51a);return{'sqlName':_0x1b247d,'dbId':_0x25d504,'dbName':_0x43f7da,'mode':_0x22054c};}function a132_0x3cd4(){const _0x3def05=['mybatisXml','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','appCode','stringify','22556UeSXDL','lockFilePath','sqlName','flagMissing','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','new','flag','mode','toISOString','请输入目标数据库\x20dbId:','\x20\x20SELECT\x201\x20AS\x20id','create','Local\x20SQL\x20file\x20mode','Target\x20database\x20ID','sqlRoot','trim','348CHECOg','MyBatis\x20XML(mybatisXml)','sqls','65458NpvxKM','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','dbId\x20必须为正整数','请输入\x20SQL\x20名称:','✎\x20手动输入\x20dbId','sqlRootDir','sqlCode','map','sql','parse','validation','join','SQL\x20query\x20display\x20name','catch','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','__manual__','3373010XWCaPY','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','4UzNInw','2426634cfNCEA','isFinite','普通\x20SQL(sql)','string','dbId','22EwMHJq','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','8706gIabPv','str','11328612ofLjrh','length','dbId\x20不能为空','description','995WGMaHo','Created\x20SQL\x20query\x20','db-id','SQL\x20名称不能为空','utf8','dbName','</select>','nonInteractive','388493JeSLrC','File\x20already\x20exists:\x20','lastSync','POST','请选择本地\x20SQL\x20模式:','<server-generated-sqlCode>','请选择目标数据库:','96fGfwub','number','name','high-risk-write','isInteger','Invalid\x20database\x20selection\x20payload:\x20'];a132_0x3cd4=function(){return _0x3def05;};return a132_0x3cd4();}async function resolveSqlNameInput(_0x127ce5){const _0xa971d=a132_0x5b041e,_0x34d070=_0x127ce5[_0xa971d(0x17a)]('name')[_0xa971d(0x1a7)]();if(_0x34d070)return _0x34d070;if(_0x127ce5['nonInteractive'])throw CliErrors['flagMissing']('name',_0xa971d(0x178));return(await input({'message':_0xa971d(0x1ae),'validate':_0x57ef6b=>_0x57ef6b[_0xa971d(0x1a7)]()?!![]:_0xa971d(0x182)}))[_0xa971d(0x1a7)]();}async function resolveDbSelection(_0x180533){const _0x271828=a132_0x5b041e,_0x4eda68=resolveProvidedDbId(_0x180533);if(typeof _0x4eda68==='number'&&Number[_0x271828(0x1bf)](_0x4eda68)&&_0x4eda68>0x0)return{'dbId':_0x4eda68,'dbName':await getDbName(_0x180533[_0x271828(0x196)],_0x4eda68)[_0x271828(0x1b8)](()=>undefined)};if(_0x180533[_0x271828(0x186)])throw CliErrors[_0x271828(0x19b)](_0x271828(0x181),_0x271828(0x1b9));const _0xab3d7e=await listDatabases(_0x180533['appCode'])[_0x271828(0x1b8)](()=>[]);if(_0xab3d7e[_0x271828(0x17c)]===0x1)return{'dbId':_0xab3d7e[0x0][_0x271828(0x1c2)],'dbName':_0xab3d7e[0x0][_0x271828(0x184)]};if(_0xab3d7e[_0x271828(0x17c)]>0x1){const _0x4a7729=await select({'message':_0x271828(0x18d),'choices':[..._0xab3d7e[_0x271828(0x1b2)](_0x6a0c40=>({'name':_0x6a0c40[_0x271828(0x184)]+'\x20('+_0x6a0c40['dbId']+')','value':serializeDbSelection(_0x6a0c40)})),{'name':_0x271828(0x1af),'value':_0x271828(0x1ba)}]});if(_0x4a7729!==_0x271828(0x1ba))return deserializeDbSelection(_0x4a7729);}const _0x14feaf=await input({'message':_0x271828(0x1a1),'validate':_0x386889=>{const _0x5a62a2=_0x271828,_0x2a6ba2=_0x386889[_0x5a62a2(0x1a7)]();if(!_0x2a6ba2)return _0x5a62a2(0x17d);const _0x200382=Number(_0x2a6ba2);if(!Number[_0x5a62a2(0x192)](_0x200382)||_0x200382<=0x0)return _0x5a62a2(0x1ad);return!![];}});return{'dbId':Number(_0x14feaf['trim']())};}function a132_0x5a95(_0x3ff84b,_0x2e7837){_0x3ff84b=_0x3ff84b-0x177;const _0x3cd4eb=a132_0x3cd4();let _0x5a95cd=_0x3cd4eb[_0x3ff84b];return _0x5a95cd;}async function resolveSqlModeInput(_0x54f249){const _0xbad40c=a132_0x5b041e,_0x209f0b=_0x54f249[_0xbad40c(0x17a)]('mode')[_0xbad40c(0x1a7)]();if(_0x209f0b===_0xbad40c(0x1b3)||_0x209f0b===_0xbad40c(0x194))return _0x209f0b;if(_0x54f249['nonInteractive'])throw CliErrors[_0xbad40c(0x19b)](_0xbad40c(0x19f),_0xbad40c(0x1ac));return await select({'message':_0xbad40c(0x18b),'choices':[{'name':_0xbad40c(0x1c0),'value':_0xbad40c(0x1b3),'description':_0xbad40c(0x1bc)},{'name':_0xbad40c(0x1a9),'value':_0xbad40c(0x194),'description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x4e928e){const _0x4939a9=a132_0x5b041e;return JSON[_0x4939a9(0x197)]({'dbId':_0x4e928e[_0x4939a9(0x1c2)],'dbName':_0x4e928e[_0x4939a9(0x184)]});}function deserializeDbSelection(_0x1fa776){const _0x2f8f62=a132_0x5b041e;try{const _0x1e3a1b=JSON[_0x2f8f62(0x1b4)](_0x1fa776);if(typeof _0x1e3a1b[_0x2f8f62(0x1c2)]===_0x2f8f62(0x18f)&&Number[_0x2f8f62(0x1bf)](_0x1e3a1b['dbId']))return{'dbId':_0x1e3a1b[_0x2f8f62(0x1c2)],'dbName':_0x1e3a1b[_0x2f8f62(0x184)]};}catch{}throw CliErrors[_0x2f8f62(0x1b5)](_0x2f8f62(0x193)+_0x1fa776);}function resolveProvidedDbId(_0x5926d4){const _0x16c42d=a132_0x5b041e,_0x470e93=_0x5926d4[_0x16c42d(0x19e)](_0x16c42d(0x181));if(typeof _0x470e93===_0x16c42d(0x18f)&&Number[_0x16c42d(0x1bf)](_0x470e93))return _0x470e93;return undefined;}
|
|
1
|
+
const a131_0x9936c7=a131_0x194a;(function(_0x31aad2,_0x52b8f5){const _0x5d808e=a131_0x194a,_0xaa8cbc=_0x31aad2();while(!![]){try{const _0x50dbad=parseInt(_0x5d808e(0x1c9))/0x1*(parseInt(_0x5d808e(0x1cb))/0x2)+-parseInt(_0x5d808e(0x1b1))/0x3+parseInt(_0x5d808e(0x1de))/0x4*(-parseInt(_0x5d808e(0x1e2))/0x5)+parseInt(_0x5d808e(0x1bc))/0x6+-parseInt(_0x5d808e(0x1cf))/0x7*(-parseInt(_0x5d808e(0x1ce))/0x8)+-parseInt(_0x5d808e(0x1a8))/0x9*(-parseInt(_0x5d808e(0x1b3))/0xa)+-parseInt(_0x5d808e(0x1ae))/0xb*(-parseInt(_0x5d808e(0x1b7))/0xc);if(_0x50dbad===_0x52b8f5)break;else _0xaa8cbc['push'](_0xaa8cbc['shift']());}catch(_0x52cdbf){_0xaa8cbc['push'](_0xaa8cbc['shift']());}}}(a131_0xe812,0x8c61f));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x1e133f){const _0xed12b6=a131_0x194a;if(_0x1e133f===_0xed12b6(0x1ab))return[_0xed12b6(0x1d3),_0xed12b6(0x1c5),'</select>','']['join']('\x0a');return[_0xed12b6(0x1b6),''][_0xed12b6(0x1a5)]('\x0a');}export const sqlCreate={'service':a131_0x9936c7(0x1b9),'command':'create','description':a131_0x9936c7(0x1e4),'risk':a131_0x9936c7(0x1d6),'flags':[{'name':a131_0x9936c7(0x1a4),'type':'string','description':a131_0x9936c7(0x1ca)},{'name':a131_0x9936c7(0x1d1),'type':a131_0x9936c7(0x1d8),'description':a131_0x9936c7(0x1df)},{'name':a131_0x9936c7(0x1bb),'type':a131_0x9936c7(0x1ac),'enum':[a131_0x9936c7(0x1b9),a131_0x9936c7(0x1ab)],'description':a131_0x9936c7(0x1d2)}],async 'validate'(_0x2dd4b1){const _0x2caa92=a131_0x9936c7;if(!_0x2dd4b1[_0x2caa92(0x1c0)])return;if(!_0x2dd4b1['str'](_0x2caa92(0x1a4))[_0x2caa92(0x1b8)]())throw CliErrors['flagMissing']('name',_0x2caa92(0x1c4));const _0x99a22c=resolveProvidedDbId(_0x2dd4b1);if(typeof _0x99a22c!==_0x2caa92(0x1d8)||!Number[_0x2caa92(0x1c8)](_0x99a22c)||_0x99a22c<=0x0)throw CliErrors[_0x2caa92(0x1cc)]('db-id','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x2dd4b1[_0x2caa92(0x1a2)](_0x2caa92(0x1bb))[_0x2caa92(0x1b8)]())throw CliErrors[_0x2caa92(0x1cc)](_0x2caa92(0x1bb),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x5eab3d){const _0x28a6ba=a131_0x9936c7,_0x295160=loadSqlProjectConfig(_0x5eab3d[_0x28a6ba(0x1a7)]),{sqlName:_0xc09506,dbId:_0x5be8da,dbName:_0x38bc0f,mode:_0x1fd607}=await resolveSqlNewInputs(_0x5eab3d),_0x380d5e=buildSqlRelativePath(_0x28a6ba(0x1db),_0xc09506,_0x38bc0f,_0x1fd607,_0x5be8da),_0x57d06f=_0x295160[_0x28a6ba(0x1dc)]+'/'+_0x380d5e;return{'method':_0x28a6ba(0x1e1),'url':'/smartapi/custom/saveUserCustomSql','body':{'appCode':_0x5eab3d[_0x28a6ba(0x1a7)],'sqlName':_0xc09506,'dbId':_0x5be8da,'mode':_0x1fd607,'localPath':_0x57d06f},'description':_0x28a6ba(0x1ad)+_0x295160[_0x28a6ba(0x1dc)]};},async 'execute'(_0x52d874){const _0x715bbe=a131_0x9936c7,_0x32604e=loadSqlProjectConfig(_0x52d874[_0x715bbe(0x1a7)]),{sqlName:_0x1f85a0,dbId:_0x4ecd47,dbName:_0x354eff,mode:_0x1576f7}=await resolveSqlNewInputs(_0x52d874),_0x106198=generateSqlTemplate(_0x1576f7),_0x3c67ef=await createSqlQuery({'appCode':_0x52d874['appCode'],'sqlName':_0x1f85a0,'dbId':_0x4ecd47,'sqlContent':_0x106198}),_0x51229d=ensureRemoteSqlContent(_0x3c67ef),_0x23bcfa=_0x354eff||await getDbName(_0x52d874[_0x715bbe(0x1a7)],_0x4ecd47)[_0x715bbe(0x1c3)](()=>undefined),_0x3a1637=buildSqlRelativePath(_0x3c67ef[_0x715bbe(0x1cd)],_0x3c67ef[_0x715bbe(0x1af)],_0x23bcfa,_0x1576f7,_0x4ecd47),_0x1fdd86=_0x32604e['sqlRootDir']+'/'+_0x3a1637,_0x1031ff=buildLocalSqlFileContent({'sqlCode':_0x3c67ef[_0x715bbe(0x1cd)],'sqlName':_0x3c67ef[_0x715bbe(0x1af)],'dbId':_0x3c67ef['dbId']},_0x51229d,{'dbName':_0x23bcfa,'mode':_0x1576f7,'syncedAt':new Date()[_0x715bbe(0x1c2)](),'description':_0x3c67ef[_0x715bbe(0x1a9)]});if(await fileExists(_0x1fdd86))throw CliErrors[_0x715bbe(0x1d4)]('File\x20already\x20exists:\x20'+_0x1fdd86);await ensureParentDirectory(_0x1fdd86),await writeFile(_0x1fdd86,_0x1031ff,_0x715bbe(0x1a3));const _0x3d8da3=await readSqlLockFile(_0x32604e['lockFilePath']),{lockData:_0x25ff6c,appLock:_0x5b71b9}=ensureSqlLockScope(_0x3d8da3??createEmptySqlLock(),_0x32604e[_0x715bbe(0x1a7)],_0x32604e['sqlRoot'],'new');return _0x5b71b9[_0x715bbe(0x1e3)][_0x3c67ef[_0x715bbe(0x1cd)]]={...buildSqlLockEntry(_0x3c67ef,_0x51229d,computeSqlContentHash(_0x1031ff),{'dbName':_0x23bcfa}),'path':_0x3a1637,'mode':_0x1576f7},_0x5b71b9[_0x715bbe(0x1aa)]=new Date()['toISOString'](),await writeSqlLockFile(_0x32604e[_0x715bbe(0x1be)],_0x25ff6c),{'ok':!![],'data':{'id':_0x3c67ef['id'],'sqlCode':_0x3c67ef[_0x715bbe(0x1cd)],'sqlName':_0x3c67ef[_0x715bbe(0x1af)],'dbId':_0x3c67ef[_0x715bbe(0x1ba)],'path':_0x1fdd86,'mode':_0x1576f7},'message':'Created\x20SQL\x20query\x20'+_0x3c67ef[_0x715bbe(0x1cd)]};}};async function resolveSqlNewInputs(_0x522203){const _0x4c99b1=await resolveSqlNameInput(_0x522203),{dbId:_0x663b68,dbName:_0x54fabd}=await resolveDbSelection(_0x522203),_0x36fab6=await resolveSqlModeInput(_0x522203);return{'sqlName':_0x4c99b1,'dbId':_0x663b68,'dbName':_0x54fabd,'mode':_0x36fab6};}function a131_0x194a(_0x46219a,_0x11d8d7){_0x46219a=_0x46219a-0x1a1;const _0xe812c7=a131_0xe812();let _0x194a05=_0xe812c7[_0x46219a];return _0x194a05;}function a131_0xe812(){const _0x4b0ef7=['stringify','819009emdAEQ','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','10gKyQzI','dbId\x20不能为空','SQL\x20名称不能为空','SELECT\x201\x20AS\x20id;','228PcyraH','trim','sql','dbId','mode','602640uhZQTX','适合带动态标签的\x20MyBatis\x20XML\x20SQL','lockFilePath','请输入目标数据库\x20dbId:','nonInteractive','__manual__','toISOString','catch','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','\x20\x20SELECT\x201\x20AS\x20id','flag','isInteger','isFinite','113722SSFyoL','SQL\x20query\x20display\x20name','14DhYvKn','flagMissing','sqlCode','24xevGme','747285BfORiD','请选择本地\x20SQL\x20模式:','db-id','Local\x20SQL\x20file\x20mode','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','validation','Invalid\x20database\x20selection\x20payload:\x20','high-risk-write','parse','number','MyBatis\x20XML(mybatisXml)','请输入\x20SQL\x20名称:','<server-generated-sqlCode>','sqlRootDir','length','76ycSyVo','Target\x20database\x20ID','✎\x20手动输入\x20dbId','POST','197375cDlFvH','sqls','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','str','utf8','name','join','dbName','appCode','244899UIQRqq','description','lastSync','mybatisXml','string','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','204985okXpVY','sqlName'];a131_0xe812=function(){return _0x4b0ef7;};return a131_0xe812();}async function resolveSqlNameInput(_0x58d21b){const _0x44bbf1=a131_0x9936c7,_0x18b6f4=_0x58d21b['str'](_0x44bbf1(0x1a4))[_0x44bbf1(0x1b8)]();if(_0x18b6f4)return _0x18b6f4;if(_0x58d21b[_0x44bbf1(0x1c0)])throw CliErrors['flagMissing'](_0x44bbf1(0x1a4),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x44bbf1(0x1da),'validate':_0x2da0b8=>_0x2da0b8['trim']()?!![]:_0x44bbf1(0x1b5)}))[_0x44bbf1(0x1b8)]();}async function resolveDbSelection(_0x10548c){const _0x1ee96e=a131_0x9936c7,_0xf83287=resolveProvidedDbId(_0x10548c);if(typeof _0xf83287===_0x1ee96e(0x1d8)&&Number[_0x1ee96e(0x1c8)](_0xf83287)&&_0xf83287>0x0)return{'dbId':_0xf83287,'dbName':await getDbName(_0x10548c['appCode'],_0xf83287)['catch'](()=>undefined)};if(_0x10548c[_0x1ee96e(0x1c0)])throw CliErrors[_0x1ee96e(0x1cc)](_0x1ee96e(0x1d1),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x1dc9bb=await listDatabases(_0x10548c[_0x1ee96e(0x1a7)])[_0x1ee96e(0x1c3)](()=>[]);if(_0x1dc9bb[_0x1ee96e(0x1dd)]===0x1)return{'dbId':_0x1dc9bb[0x0][_0x1ee96e(0x1ba)],'dbName':_0x1dc9bb[0x0]['dbName']};if(_0x1dc9bb[_0x1ee96e(0x1dd)]>0x1){const _0x28fd58=await select({'message':'请选择目标数据库:','choices':[..._0x1dc9bb['map'](_0x5e6b07=>({'name':_0x5e6b07[_0x1ee96e(0x1a6)]+'\x20('+_0x5e6b07[_0x1ee96e(0x1ba)]+')','value':serializeDbSelection(_0x5e6b07)})),{'name':_0x1ee96e(0x1e0),'value':_0x1ee96e(0x1c1)}]});if(_0x28fd58!==_0x1ee96e(0x1c1))return deserializeDbSelection(_0x28fd58);}const _0x3a4abe=await input({'message':_0x1ee96e(0x1bf),'validate':_0x1e45f9=>{const _0x2ab102=_0x1ee96e,_0x2f5918=_0x1e45f9[_0x2ab102(0x1b8)]();if(!_0x2f5918)return _0x2ab102(0x1b4);const _0x582177=Number(_0x2f5918);if(!Number[_0x2ab102(0x1c7)](_0x582177)||_0x582177<=0x0)return'dbId\x20必须为正整数';return!![];}});return{'dbId':Number(_0x3a4abe[_0x1ee96e(0x1b8)]())};}async function resolveSqlModeInput(_0x486ddb){const _0x5dc999=a131_0x9936c7,_0x35909f=_0x486ddb['str'](_0x5dc999(0x1bb))[_0x5dc999(0x1b8)]();if(_0x35909f===_0x5dc999(0x1b9)||_0x35909f===_0x5dc999(0x1ab))return _0x35909f;if(_0x486ddb[_0x5dc999(0x1c0)])throw CliErrors[_0x5dc999(0x1cc)](_0x5dc999(0x1bb),_0x5dc999(0x1b2));return await select({'message':_0x5dc999(0x1d0),'choices':[{'name':'普通\x20SQL(sql)','value':_0x5dc999(0x1b9),'description':_0x5dc999(0x1a1)},{'name':_0x5dc999(0x1d9),'value':'mybatisXml','description':_0x5dc999(0x1bd)}]});}function serializeDbSelection(_0x91ee9f){const _0x5200a1=a131_0x9936c7;return JSON[_0x5200a1(0x1b0)]({'dbId':_0x91ee9f[_0x5200a1(0x1ba)],'dbName':_0x91ee9f[_0x5200a1(0x1a6)]});}function deserializeDbSelection(_0x2527bf){const _0x34a7a0=a131_0x9936c7;try{const _0x460800=JSON[_0x34a7a0(0x1d7)](_0x2527bf);if(typeof _0x460800[_0x34a7a0(0x1ba)]===_0x34a7a0(0x1d8)&&Number[_0x34a7a0(0x1c8)](_0x460800[_0x34a7a0(0x1ba)]))return{'dbId':_0x460800['dbId'],'dbName':_0x460800['dbName']};}catch{}throw CliErrors[_0x34a7a0(0x1d4)](_0x34a7a0(0x1d5)+_0x2527bf);}function resolveProvidedDbId(_0x2f0a8b){const _0x2d0bf5=a131_0x9936c7,_0x134e26=_0x2f0a8b[_0x2d0bf5(0x1c6)](_0x2d0bf5(0x1d1));if(typeof _0x134e26===_0x2d0bf5(0x1d8)&&Number[_0x2d0bf5(0x1c8)](_0x134e26))return _0x134e26;return undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a132_0x14f117=a132_0x15e8;(function(_0xa992f2,_0x468651){const _0xeb3288=a132_0x15e8,_0x40cf3c=_0xa992f2();while(!![]){try{const _0x5ae1a4=parseInt(_0xeb3288(0x97))/0x1+parseInt(_0xeb3288(0x89))/0x2+-parseInt(_0xeb3288(0x85))/0x3+parseInt(_0xeb3288(0x96))/0x4+parseInt(_0xeb3288(0xa1))/0x5*(-parseInt(_0xeb3288(0x91))/0x6)+parseInt(_0xeb3288(0x90))/0x7*(parseInt(_0xeb3288(0xa0))/0x8)+parseInt(_0xeb3288(0xa4))/0x9*(-parseInt(_0xeb3288(0x9b))/0xa);if(_0x5ae1a4===_0x468651)break;else _0x40cf3c['push'](_0x40cf3c['shift']());}catch(_0x260936){_0x40cf3c['push'](_0x40cf3c['shift']());}}}(a132_0x1faf,0x6e8f8));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';function a132_0x15e8(_0x4d399d,_0xeb2053){_0x4d399d=_0x4d399d-0x85;const _0x1faf24=a132_0x1faf();let _0x15e85b=_0x1faf24[_0x4d399d];return _0x15e85b;}function a132_0x1faf(){const _0x148a5c=['validation','sqlRoot','1234098WBUpKx','str','replace','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','sqlRootDir','projectRoot','sql','7JLxFAH','31854GCmdIK','startsWith','entries','sqlcode','lockFilePath','1333268RcWJJR','759308xVuqNr','high-risk-write','sqls','/smartapi/custom/deleteUserCustomSql','10LOCIYw','trashedTo','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','remoteId','delete','2892064WONACt','10wLdGxU','Would\x20delete\x20SQL\x20','trashDir','13175928XxtNhI','appCode','431148nKopFN','toISOString'];a132_0x1faf=function(){return _0x148a5c;};return a132_0x1faf();}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a132_0x14f117(0x8f),'command':'delete','description':a132_0x14f117(0x9d),'risk':a132_0x14f117(0x98),'flags':[SQLCODE_FLAG],async 'validate'(_0xd2b135){const _0x14dab9=a132_0x14f117,_0x5b82b0=loadSqlProjectConfig(_0xd2b135[_0x14dab9(0xa5)]),_0x33fd1a=await readSqlLockFile(_0x5b82b0['lockFilePath']);if(!_0x33fd1a)throw CliErrors[_0x14dab9(0x87)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x11f90c){const _0xc451a4=a132_0x14f117,_0x13b979=loadSqlProjectConfig(_0x11f90c[_0xc451a4(0xa5)]),_0x787c65=await readSqlLockFile(_0x13b979[_0xc451a4(0x95)]);if(!_0x787c65)throw CliErrors[_0xc451a4(0x87)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x26d69b}=ensureSqlLockScope(_0x787c65,_0x11f90c[_0xc451a4(0xa5)],_0x13b979[_0xc451a4(0x88)],_0xc451a4(0x9f)),_0x43c80f=_0x11f90c[_0xc451a4(0x8a)]('sqlcode'),_0x446c4f=_0x26d69b[_0xc451a4(0x99)][_0x43c80f];if(!_0x446c4f)throw CliErrors[_0xc451a4(0x87)]('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x43c80f+'\x22.');return{'method':'POST','url':_0xc451a4(0x9a),'body':{'sqlCode':_0x43c80f,'id':_0x446c4f[_0xc451a4(0x9e)],'localPath':resolveLocalSqlFilePath(_0x13b979,_0x43c80f,_0x446c4f)},'description':_0xc451a4(0xa2)+_0x43c80f+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0x13b979[_0xc451a4(0xa3)]};},async 'execute'(_0x5b45ef){const _0x49e77c=a132_0x14f117,_0x516ee0=loadSqlProjectConfig(_0x5b45ef[_0x49e77c(0xa5)]),_0x67fc9c=await readSqlLockFile(_0x516ee0[_0x49e77c(0x95)]);if(!_0x67fc9c)throw CliErrors[_0x49e77c(0x87)]('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x2f04f3,appLock:_0x502d0f}=ensureSqlLockScope(_0x67fc9c,_0x5b45ef[_0x49e77c(0xa5)],_0x516ee0[_0x49e77c(0x88)],_0x49e77c(0x9f)),_0x1309a0=_0x5b45ef[_0x49e77c(0x8a)](_0x49e77c(0x94)),_0x33de90=_0x502d0f['sqls'][_0x1309a0];if(!_0x33de90)throw CliErrors[_0x49e77c(0x87)](_0x49e77c(0x8c)+_0x1309a0+'\x22.');await deleteSqlQuery({'id':_0x33de90[_0x49e77c(0x9e)],'sqlCode':_0x1309a0}),_0x502d0f[_0x49e77c(0x99)]=Object['fromEntries'](Object[_0x49e77c(0x93)](_0x502d0f[_0x49e77c(0x99)])['filter'](([_0x92cd31])=>_0x92cd31!==_0x1309a0)),_0x502d0f['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x516ee0[_0x49e77c(0x95)],_0x2f04f3);const _0x5bf879=resolveLocalSqlFilePath(_0x516ee0,_0x1309a0,_0x33de90);let _0x4f82d3;await fileExists(_0x5bf879)&&(_0x4f82d3=await moveToTrash(_0x516ee0[_0x49e77c(0x8e)],_0x516ee0[_0x49e77c(0xa3)],_0x5bf879),await cleanupEmptyDirectories(dirname(_0x5bf879),_0x516ee0[_0x49e77c(0x8d)]));const _0x215748={'deleted':_0x1309a0,'remoteId':_0x33de90['remoteId']};if(_0x4f82d3)_0x215748[_0x49e77c(0x9c)]=_0x4f82d3;return{'ok':!![],'data':_0x215748,'message':'Deleted\x20'+_0x1309a0+(_0x4f82d3?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0x407dcb,_0x537b03,_0x671901){const _0x549a84=a132_0x14f117,_0x5d41eb=new Date()[_0x549a84(0x86)]()[_0x549a84(0x8b)](/[:.]/g,'-'),_0x46482c=relative(_0x407dcb,_0x671901),_0x40a79f=join(_0x537b03,_0x5d41eb,_0x46482c);return await mkdir(dirname(_0x40a79f),{'recursive':!![]}),await rename(_0x671901,_0x40a79f),_0x40a79f;}async function cleanupEmptyDirectories(_0x28c272,_0x295ea4){const _0x46d43b=a132_0x14f117;let _0xc27030=resolve(_0x28c272);const _0x2b9ac0=resolve(_0x295ea4);while(_0xc27030[_0x46d43b(0x92)](''+_0x2b9ac0+sep)||_0xc27030===_0x2b9ac0){if(_0xc27030===_0x2b9ac0)return;try{const _0x4a72ba=await readdir(_0xc27030);if(_0x4a72ba['length']>0x0)return;await rmdir(_0xc27030);}catch{return;}_0xc27030=dirname(_0xc27030);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a133_0x2b2fbd=a133_0xec5a;(function(_0x32656c,_0x34895a){const _0x4f6c17=a133_0xec5a,_0x31cc5a=_0x32656c();while(!![]){try{const _0x2f4317=-parseInt(_0x4f6c17(0xc4))/0x1+-parseInt(_0x4f6c17(0xc7))/0x2*(parseInt(_0x4f6c17(0xc1))/0x3)+-parseInt(_0x4f6c17(0xb8))/0x4+-parseInt(_0x4f6c17(0xc2))/0x5+-parseInt(_0x4f6c17(0xb4))/0x6*(parseInt(_0x4f6c17(0xb5))/0x7)+-parseInt(_0x4f6c17(0xc6))/0x8+-parseInt(_0x4f6c17(0xbe))/0x9*(-parseInt(_0x4f6c17(0xbd))/0xa);if(_0x2f4317===_0x34895a)break;else _0x31cc5a['push'](_0x31cc5a['shift']());}catch(_0x389c61){_0x31cc5a['push'](_0x31cc5a['shift']());}}}(a133_0x39ea,0x70b87));import{getSqlQueryInfo}from'../../core/api-client.js';function a133_0x39ea(){const _0x19d30b=['str','1966180QAKNkL','sql','appCode','read','boolean','40063490SOthyr','9URcJMc','sqlName','verbose','3RivKJQ','4539765LlhGpb','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','304457YugaDS','Return\x20full\x20raw\x20SQL\x20query\x20object','4819312BEfvDk','1795934DEmgNR','sqlContent','2041860imJYsu','7KhGVAE','dbId'];a133_0x39ea=function(){return _0x19d30b;};return a133_0x39ea();}import{getDbName}from'../../core/db-resolver.js';function a133_0xec5a(_0x4e9bab,_0x129a0f){_0x4e9bab=_0x4e9bab-0xb4;const _0x39ea1c=a133_0x39ea();let _0xec5a19=_0x39ea1c[_0x4e9bab];return _0xec5a19;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a133_0x2b2fbd(0xb9),'command':'detail','description':a133_0x2b2fbd(0xc3),'risk':a133_0x2b2fbd(0xbb),'flags':[SQLCODE_FLAG,{'name':a133_0x2b2fbd(0xc0),'type':a133_0x2b2fbd(0xbc),'description':a133_0x2b2fbd(0xc5)}],async 'execute'(_0x5ab407){const _0x1ea8fa=a133_0x2b2fbd,_0x29af61=await getSqlQueryInfo(_0x5ab407[_0x1ea8fa(0xba)],_0x5ab407[_0x1ea8fa(0xb7)]('sqlcode')),_0xffeb70=_0x5ab407['bool'](_0x1ea8fa(0xc0));if(_0xffeb70)return{'ok':!![],'data':_0x29af61};const _0x1ed9ce=_0x29af61[_0x1ea8fa(0xb6)]?await getDbName(_0x5ab407['appCode'],_0x29af61[_0x1ea8fa(0xb6)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x29af61['sqlCode'],'sqlName':_0x29af61[_0x1ea8fa(0xbf)],'db':_0x1ed9ce?_0x1ed9ce+'\x20('+_0x29af61['dbId']+')':_0x29af61[_0x1ea8fa(0xb6)]??'','description':_0x29af61['description']??'','sqlContent':_0x29af61[_0x1ea8fa(0xc8)]??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a134_0x25ccde=a134_0x17ad;function a134_0x5ebd(){const _0x2da873=['3249210rmaPjm','now','execResult','617085klNxnl','str','sql','appCode','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','params','30684lggqKz','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','56SCwLyg','\x20row(s)\x20in\x20','6GjbnAH','length','sqlcode','isArray','40768880pyMFXw','SQL\x20execution\x20failed','4359870pYzEHg','879869ExbURI','execError','395OsNOdc','Returned\x20','1979924xkpKXB'];a134_0x5ebd=function(){return _0x2da873;};return a134_0x5ebd();}(function(_0x5b59d4,_0x4fb363){const _0x76d87f=a134_0x17ad,_0x31a4db=_0x5b59d4();while(!![]){try{const _0x3e3fe7=parseInt(_0x76d87f(0xc4))/0x1+-parseInt(_0x76d87f(0xc9))/0x2+-parseInt(_0x76d87f(0xbd))/0x3*(parseInt(_0x76d87f(0xc8))/0x4)+parseInt(_0x76d87f(0xc6))/0x5*(-parseInt(_0x76d87f(0xd2))/0x6)+-parseInt(_0x76d87f(0xcc))/0x7*(parseInt(_0x76d87f(0xd4))/0x8)+-parseInt(_0x76d87f(0xc3))/0x9+parseInt(_0x76d87f(0xc1))/0xa;if(_0x3e3fe7===_0x4fb363)break;else _0x31a4db['push'](_0x31a4db['shift']());}catch(_0x11f267){_0x31a4db['push'](_0x31a4db['shift']());}}}(a134_0x5ebd,0xcc43d));import{executeSql}from'../../core/api-client.js';function a134_0x17ad(_0x4660e7,_0x503fb3){_0x4660e7=_0x4660e7-0xbd;const _0x5ebd88=a134_0x5ebd();let _0x17ad2=_0x5ebd88[_0x4660e7];return _0x17ad2;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a134_0x25ccde(0xce),'command':'exec','description':a134_0x25ccde(0xd0),'risk':'read','flags':[SQLCODE_FLAG,{'name':a134_0x25ccde(0xd1),'type':'string','description':a134_0x25ccde(0xd3)}],async 'execute'(_0x1ceeed){const _0xc80293=a134_0x25ccde,_0x30d0b2=parseJsonParams(_0x1ceeed[_0xc80293(0xcd)](_0xc80293(0xd1))),_0x1e9ec8=Date[_0xc80293(0xca)](),_0x5ca742=await executeSql(_0x1ceeed[_0xc80293(0xcf)],_0x1ceeed['str'](_0xc80293(0xbf)),_0x30d0b2),_0x309313=Date[_0xc80293(0xca)]()-_0x1e9ec8,_0x313b6f=_0x5ca742?.[_0xc80293(0xcb)]??_0x5ca742,_0x29bab2=_0x5ca742?.['execSuccess']??!![];if(!_0x29bab2)return{'ok':![],'data':{'error':_0x5ca742?.[_0xc80293(0xc5)]||_0xc80293(0xc2),'elapsed':_0x309313},'message':'SQL\x20execution\x20failed'};const _0x511e63=Array[_0xc80293(0xc0)](_0x313b6f)?_0x313b6f:[];return{'ok':!![],'data':{'rows':_0x511e63,'rowCount':_0x511e63[_0xc80293(0xbe)],'elapsed':_0x309313},'message':_0xc80293(0xc7)+_0x511e63['length']+_0xc80293(0xd5)+_0x309313+'ms'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x13fe68,_0x165ea5){const _0x2440b5=a135_0x1e1d,_0x2a90c4=_0x13fe68();while(!![]){try{const _0x1c973c=-parseInt(_0x2440b5(0x84))/0x1*(parseInt(_0x2440b5(0x87))/0x2)+-parseInt(_0x2440b5(0x7f))/0x3+parseInt(_0x2440b5(0x86))/0x4+-parseInt(_0x2440b5(0x7d))/0x5*(-parseInt(_0x2440b5(0x81))/0x6)+parseInt(_0x2440b5(0x82))/0x7*(parseInt(_0x2440b5(0x80))/0x8)+-parseInt(_0x2440b5(0x83))/0x9*(parseInt(_0x2440b5(0x7c))/0xa)+-parseInt(_0x2440b5(0x7e))/0xb*(-parseInt(_0x2440b5(0x85))/0xc);if(_0x1c973c===_0x165ea5)break;else _0x2a90c4['push'](_0x2a90c4['shift']());}catch(_0x230787){_0x2a90c4['push'](_0x2a90c4['shift']());}}}(a135_0x3d23,0x1aa35));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 a135_0x1e1d(_0x3462c7,_0x406243){_0x3462c7=_0x3462c7-0x7c;const _0x3d230f=a135_0x3d23();let _0x1e1dfd=_0x3d230f[_0x3462c7];return _0x1e1dfd;}import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';function a135_0x3d23(){const _0x363de8=['21zTPrkN','9iUVJRN','19196QEWjlK','12hJdMdJ','196456NvVnDy','16IVQBHK','1475520FiJWfc','169555mToQYQ','4251533gMPXGD','434466LgnxtB','137632TfIObO','12PzlyHC'];a135_0x3d23=function(){return _0x363de8;};return a135_0x3d23();}import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
|
package/lib/commands/sql/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a136_0x47336e=a136_0x3bdd;(function(_0x59775a,_0x2d784d){const _0x4dc760=a136_0x3bdd,_0xf1df19=_0x59775a();while(!![]){try{const _0x4fac39=parseInt(_0x4dc760(0x12d))/0x1+parseInt(_0x4dc760(0x111))/0x2*(parseInt(_0x4dc760(0x124))/0x3)+parseInt(_0x4dc760(0x133))/0x4*(-parseInt(_0x4dc760(0x11d))/0x5)+parseInt(_0x4dc760(0x130))/0x6+-parseInt(_0x4dc760(0x12a))/0x7+-parseInt(_0x4dc760(0x115))/0x8+parseInt(_0x4dc760(0x12b))/0x9;if(_0x4fac39===_0x2d784d)break;else _0xf1df19['push'](_0xf1df19['shift']());}catch(_0x557ddd){_0xf1df19['push'](_0xf1df19['shift']());}}}(a136_0x3e73,0xec028));import{listSqlQueries}from'../../core/api-client.js';function a136_0x3bdd(_0x2d780d,_0x2d9b8e){_0x2d780d=_0x2d780d-0x110;const _0x3e736c=a136_0x3e73();let _0x3bdd98=_0x3e736c[_0x2d780d];return _0x3bdd98;}function a136_0x3e73(){const _0x1cf118=['sqlName','sqlcode','9404654xtNGuR','11230506ORJMnj','length','675908uDGKsM','Page\x20number','sqlCode','498522GYpYQx','sql','Page\x20size','8zrbUho','number','2627844MYkLEA','\x20SQL\x20queries\x20(total:\x20','bool','dbId','986200jFjOHe','name','verbose','all','List\x20custom\x20SQL\x20queries','paging','appCode','pagesize','2218145hEyiYs','read','tableData','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','str','num','Filter\x20by\x20SQL\x20name','3IVFYIt','map','boolean','page'];a136_0x3e73=function(){return _0x1cf118;};return a136_0x3e73();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a136_0x47336e(0x131),'command':'list','description':a136_0x47336e(0x119),'risk':a136_0x47336e(0x11e),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a136_0x47336e(0x116),'type':'string','description':a136_0x47336e(0x123)},{'name':a136_0x47336e(0x127),'type':a136_0x47336e(0x110),'description':a136_0x47336e(0x12e),'default':0x1},{'name':'pagesize','type':a136_0x47336e(0x110),'description':a136_0x47336e(0x132)},{'name':a136_0x47336e(0x117),'type':a136_0x47336e(0x126),'description':a136_0x47336e(0x120)}],async 'execute'(_0x45b30b){const _0x2829b2=a136_0x47336e,_0x22072c=await listSqlQueries(_0x45b30b[_0x2829b2(0x11b)],{'sqlCode':_0x45b30b['str'](_0x2829b2(0x129))||undefined,'sqlName':_0x45b30b[_0x2829b2(0x121)](_0x2829b2(0x116))||undefined,'currentPage':_0x45b30b[_0x2829b2(0x122)](_0x2829b2(0x127)),'pageSize':_0x45b30b[_0x2829b2(0x122)](_0x2829b2(0x11c),0x32)}),_0x5b5795=_0x45b30b[_0x2829b2(0x113)](_0x2829b2(0x117)),_0x3857f5=_0x22072c[_0x2829b2(0x11f)]??[],_0x5a80f8=_0x22072c[_0x2829b2(0x11a)]?.['totalCount']??_0x3857f5['length'];let _0x486dfe;return _0x5b5795?_0x486dfe=_0x3857f5:_0x486dfe=await Promise[_0x2829b2(0x118)](_0x3857f5[_0x2829b2(0x125)](async _0x209f16=>{const _0x2248fd=_0x2829b2;let _0x5209f5;try{_0x5209f5=_0x209f16['dbId']?await getDbName(_0x45b30b[_0x2248fd(0x11b)],_0x209f16[_0x2248fd(0x114)]):undefined;}catch{}return{'sqlCode':_0x209f16[_0x2248fd(0x12f)],'sqlName':_0x209f16[_0x2248fd(0x128)],'description':_0x209f16['description']??'','db':_0x5209f5?_0x5209f5+'\x20('+_0x209f16[_0x2248fd(0x114)]+')':_0x209f16[_0x2248fd(0x114)]??''};})),{'ok':!![],'data':_0x486dfe,'message':_0x3857f5[_0x2829b2(0x12c)]===0x0?'No\x20custom\x20SQL\x20queries\x20found.':'Found\x20'+_0x3857f5['length']+_0x2829b2(0x112)+_0x5a80f8+').'};}};
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a138_0x1f1a2b=a138_0x1990;(function(_0x16bc18,_0x576945){const _0x1a2bfb=a138_0x1990,_0x22586f=_0x16bc18();while(!![]){try{const _0x4ac773=parseInt(_0x1a2bfb(0x104))/0x1*(-parseInt(_0x1a2bfb(0x107))/0x2)+-parseInt(_0x1a2bfb(0x130))/0x3*(-parseInt(_0x1a2bfb(0x132))/0x4)+parseInt(_0x1a2bfb(0x12d))/0x5*(-parseInt(_0x1a2bfb(0x126))/0x6)+-parseInt(_0x1a2bfb(0x129))/0x7*(parseInt(_0x1a2bfb(0x118))/0x8)+-parseInt(_0x1a2bfb(0x119))/0x9+-parseInt(_0x1a2bfb(0x123))/0xa*(-parseInt(_0x1a2bfb(0x12f))/0xb)+parseInt(_0x1a2bfb(0x10c))/0xc;if(_0x4ac773===_0x576945)break;else _0x22586f['push'](_0x22586f['shift']());}catch(_0x31b30f){_0x22586f['push'](_0x22586f['shift']());}}}(a138_0x241f,0xc33ba));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;async function fetchAllSqlQueries(_0x22f0ad,_0x388ad2){const _0x530dbf=a138_0x1990,_0x3efe1b=[];let _0x2752bb=0x1;while(!![]){const _0x533a30=await listSqlQueries(_0x22f0ad,{'currentPage':_0x2752bb,'pageSize':PAGE_SIZE,'sqlCode':_0x388ad2[_0x530dbf(0x102)],'sqlName':_0x388ad2[_0x530dbf(0xfb)]}),_0x439253=_0x533a30[_0x530dbf(0x112)]??[];_0x3efe1b[_0x530dbf(0x127)](..._0x439253);if(_0x439253[_0x530dbf(0x134)]===0x0)break;const _0x10e63b=_0x533a30['paging']?.[_0x530dbf(0x135)];if(_0x10e63b!=null?_0x3efe1b[_0x530dbf(0x134)]>=_0x10e63b:_0x439253[_0x530dbf(0x134)]<PAGE_SIZE)break;_0x2752bb++;}return _0x3efe1b;}async function ensureSqlContent(_0x47ffba){const _0x4408f3=a138_0x1990;if(_0x47ffba[_0x4408f3(0x137)]!=null&&String(_0x47ffba[_0x4408f3(0x137)])[_0x4408f3(0x134)]>0x0)return _0x47ffba;return getSqlQueryDetail(_0x47ffba[_0x4408f3(0x102)]);}export const sqlPull={'service':a138_0x1f1a2b(0x139),'command':a138_0x1f1a2b(0x120),'description':a138_0x1f1a2b(0x117),'risk':a138_0x1f1a2b(0x103),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a138_0x1f1a2b(0x11d),'type':a138_0x1f1a2b(0x100),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':'force','type':a138_0x1f1a2b(0x13c),'description':a138_0x1f1a2b(0x12c)}],async 'dryRun'(_0x54be42){const _0xbe7031=a138_0x1f1a2b,_0xc446d9=loadSqlProjectConfig(_0x54be42[_0xbe7031(0xfc)]),_0x2b6acf=await readSqlLockFile(_0xc446d9[_0xbe7031(0x128)]),{appLock:_0x3bd9cb}=ensureSqlLockScope(_0x2b6acf??createEmptySqlLock(),_0xc446d9[_0xbe7031(0xfc)],_0xc446d9['sqlRoot'],'pull'),_0x5e77dc=await fetchAllSqlQueries(_0x54be42[_0xbe7031(0xfc)],{'sqlCode':_0x54be42[_0xbe7031(0x125)](_0xbe7031(0x106))||undefined,'sqlName':_0x54be42[_0xbe7031(0x125)](_0xbe7031(0x11d))||undefined}),_0x2834aa=[];for(const _0x443b31 of _0x5e77dc){const _0x294018=await ensureSqlContent(_0x443b31),_0xf32844=ensureRemoteSqlContent(_0x294018),_0x37e507=detectModeFromSql(_0x294018),_0x4f77f2=_0x294018[_0xbe7031(0x105)]?await getDbName(_0x54be42[_0xbe7031(0xfc)],Number(_0x294018[_0xbe7031(0x105)]))[_0xbe7031(0x121)](()=>undefined):undefined,_0x8d633c=buildLocalSqlFileContent({'sqlCode':_0x294018[_0xbe7031(0x102)],'sqlName':_0x294018[_0xbe7031(0xfb)],'dbId':_0x294018[_0xbe7031(0x105)]},_0xf32844,{'dbName':_0x4f77f2,'mode':_0x37e507,'syncedAt':new Date()['toISOString'](),'description':_0x294018[_0xbe7031(0x11f)]}),_0x263fa6=buildSqlLockEntry(_0x294018,_0xf32844,'',{'dbName':_0x4f77f2}),_0x5cfaa5=resolveLocalSqlFilePath(_0xc446d9,_0x294018[_0xbe7031(0x102)],_0x263fa6);let _0x5f496c=_0xbe7031(0x10a),_0x4d67df;if(await fileExists(_0x5cfaa5)){const _0x19b82d=await readFile(_0x5cfaa5,'utf8');isEquivalentPulledSqlFile(_0x19b82d,_0x8d633c,_0x37e507)?(_0x5f496c=_0xbe7031(0xfd),_0x4d67df='unchanged'):(_0x5f496c=_0xbe7031(0x138),_0x4d67df=_0xbe7031(0x10f));}_0x2834aa[_0xbe7031(0x127)]({'sqlCode':_0x294018[_0xbe7031(0x102)],'sqlName':_0x294018[_0xbe7031(0xfb)],'filePath':_0x5cfaa5,'status':_0x5f496c,'reason':_0x4d67df});}return{'method':_0xbe7031(0x136),'url':_0xbe7031(0x115),'body':{'appCode':_0x54be42[_0xbe7031(0xfc)],'sqlCode':_0x54be42['str']('sqlcode')||null,'sqlName':_0x54be42[_0xbe7031(0x125)](_0xbe7031(0x11d))||null,'files':_0x2834aa},'description':_0xbe7031(0x124)+_0x2834aa[_0xbe7031(0x134)]+_0xbe7031(0x110)+_0xc446d9['sqlRootDir']};},async 'execute'(_0xdfebc5){const _0xf9301c=a138_0x1f1a2b,_0x4241ec=loadSqlProjectConfig(_0xdfebc5['appCode']),_0x16dbc7=await readSqlLockFile(_0x4241ec['lockFilePath']),{lockData:_0x49d76a,appLock:_0x30c90b}=ensureSqlLockScope(_0x16dbc7??createEmptySqlLock(),_0x4241ec['appCode'],_0x4241ec[_0xf9301c(0x11e)],'pull'),_0x4506c8=_0xdfebc5[_0xf9301c(0x12a)](_0xf9301c(0x11c)),_0x4a485e=await fetchAllSqlQueries(_0xdfebc5['appCode'],{'sqlCode':_0xdfebc5[_0xf9301c(0x125)]('sqlcode')||undefined,'sqlName':_0xdfebc5[_0xf9301c(0x125)](_0xf9301c(0x11d))||undefined});if(_0x4a485e[_0xf9301c(0x134)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0xf9301c(0x111)};const _0x276510=[],_0x4e0439=[];for(const _0xc2ccf4 of _0x4a485e){try{_0x276510[_0xf9301c(0x127)](await ensureSqlContent(_0xc2ccf4));}catch(_0x18c3a2){_0x4e0439[_0xf9301c(0x127)]({'sqlCode':_0xc2ccf4['sqlCode'],'error':_0x18c3a2 instanceof Error?_0x18c3a2[_0xf9301c(0x12e)]:String(_0x18c3a2)});}}if(_0x4506c8&&!_0xdfebc5[_0xf9301c(0x122)]){let _0x3fb09f=![];for(const _0x29a200 of _0x276510){const _0x5f511d=detectModeFromSql(_0x29a200),_0x4ef6c7=_0x29a200[_0xf9301c(0x105)]?await getDbName(_0xdfebc5['appCode'],Number(_0x29a200[_0xf9301c(0x105)]))[_0xf9301c(0x121)](()=>undefined):undefined,_0x50a2c9=buildLocalSqlFileContent({'sqlCode':_0x29a200[_0xf9301c(0x102)],'sqlName':_0x29a200[_0xf9301c(0xfb)],'dbId':_0x29a200[_0xf9301c(0x105)]},ensureRemoteSqlContent(_0x29a200),{'dbName':_0x4ef6c7,'mode':_0x5f511d,'syncedAt':new Date()[_0xf9301c(0x113)](),'description':_0x29a200['description']}),_0x2194cd=resolveLocalSqlFilePath(_0x4241ec,_0x29a200[_0xf9301c(0x102)],buildSqlLockEntry(_0x29a200,ensureRemoteSqlContent(_0x29a200),'',{'dbName':_0x4ef6c7}));if(await fileExists(_0x2194cd)){const _0x596bf1=await readFile(_0x2194cd,_0xf9301c(0x12b));if(!isEquivalentPulledSqlFile(_0x596bf1,_0x50a2c9,_0x5f511d)){_0x3fb09f=!![];break;}}}if(_0x3fb09f){const _0x1407ba=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x1407ba)throw CliErrors['cancelled'](_0xf9301c(0x114));}}const _0x86f617=cloneSqlLockData(_0x49d76a),_0x321f88=_0x86f617['apps'][_0x4241ec[_0xf9301c(0xfc)]],_0x38d7d8=[],_0x3e505a=[];for(const _0x1031fa of _0x276510){const _0x2ab657=_0x321f88[_0xf9301c(0x11a)][_0x1031fa[_0xf9301c(0x102)]],_0x107351=ensureRemoteSqlContent(_0x1031fa),_0x32da39=detectModeFromSql(_0x1031fa),_0x3a739d=_0x1031fa[_0xf9301c(0x105)]?await getDbName(_0xdfebc5['appCode'],Number(_0x1031fa[_0xf9301c(0x105)]))[_0xf9301c(0x121)](()=>undefined):undefined,_0x2ee37f=buildLocalSqlFileContent({'sqlCode':_0x1031fa[_0xf9301c(0x102)],'sqlName':_0x1031fa['sqlName'],'dbId':_0x1031fa[_0xf9301c(0x105)]},_0x107351,{'dbName':_0x3a739d,'mode':_0x32da39,'syncedAt':new Date()[_0xf9301c(0x113)](),'description':_0x1031fa[_0xf9301c(0x11f)]}),_0x188767=buildSqlLockEntry(_0x1031fa,_0x107351,computeSqlContentHash(_0x2ee37f),{'dbName':_0x3a739d}),_0x5a5530=_0x188767[_0xf9301c(0x116)],_0x4fc952=join(_0x4241ec[_0xf9301c(0x10d)],_0x5a5530);try{if(await fileExists(_0x4fc952)){const _0x45919e=await readFile(_0x4fc952,_0xf9301c(0x12b));if(isEquivalentPulledSqlFile(_0x45919e,_0x2ee37f,_0x32da39)){_0x3e505a[_0xf9301c(0x127)]({'sqlCode':_0x1031fa['sqlCode'],'reason':_0xf9301c(0x101)}),_0x321f88['sqls'][_0x1031fa[_0xf9301c(0x102)]]={..._0x188767,'hash':computeSqlContentHash(_0x45919e),'path':_0x5a5530};continue;}if(!_0x4506c8){_0x3e505a[_0xf9301c(0x127)]({'sqlCode':_0x1031fa[_0xf9301c(0x102)],'reason':_0xf9301c(0x109)});continue;}}const _0x1969f9=_0x2ab657?.['path']?join(_0x4241ec[_0xf9301c(0x10d)],_0x2ab657[_0xf9301c(0x116)]):undefined;_0x1969f9&&_0x1969f9!==_0x4fc952&&await fileExists(_0x1969f9)&&await rm(_0x1969f9,{'force':!![]}),await ensureParentDirectory(_0x4fc952),await writeFile(_0x4fc952,_0x2ee37f,'utf8'),_0x321f88['sqls'][_0x1031fa['sqlCode']]={..._0x188767,'path':_0x5a5530},_0x38d7d8['push']({'sqlCode':_0x1031fa[_0xf9301c(0x102)],'filePath':_0x4fc952});}catch(_0x172ef0){_0x4e0439[_0xf9301c(0x127)]({'sqlCode':_0x1031fa[_0xf9301c(0x102)],'error':_0x172ef0 instanceof Error?_0x172ef0[_0xf9301c(0x12e)]:String(_0x172ef0)});}}return _0x321f88[_0xf9301c(0xff)]=new Date()[_0xf9301c(0x113)](),await writeSqlLockFile(_0x4241ec[_0xf9301c(0x128)],_0x86f617),{'ok':_0x4e0439['length']===0x0,'data':{'pulled':_0x38d7d8,'skipped':_0x3e505a,'failed':_0x4e0439},'message':_0xf9301c(0x13a)+_0x38d7d8['length']+_0xf9301c(0x10b)+_0x3e505a[_0xf9301c(0x134)]+'\x20skipped,\x20'+_0x4e0439[_0xf9301c(0x134)]+_0xf9301c(0xfe)};}};function detectModeFromSql(_0x5667cd){const _0x27ad67=a138_0x1f1a2b,_0x351238=ensureRemoteSqlContent(_0x5667cd),_0x57da7f=stripLocalSqlMetadata(_0x351238,_0x27ad67(0x131))[_0x27ad67(0x133)]();if(/^<(select|insert|update|delete)\b/i[_0x27ad67(0x13b)](_0x57da7f))return _0x27ad67(0x131);return _0x27ad67(0x139);}function a138_0x1990(_0x12c4b3,_0xb2cdc1){_0x12c4b3=_0x12c4b3-0xfb;const _0x241ffb=a138_0x241f();let _0x1990b9=_0x241ffb[_0x12c4b3];return _0x1990b9;}function a138_0x241f(){const _0x13c878=['pull','catch','nonInteractive','2410tvmawo','Would\x20pull\x20','str','4637562YroofL','push','lockFilePath','11683wIZJTX','bool','utf8','Force\x20overwrite\x20local\x20unsynced\x20changes','10eoinOU','message','28523YiQDhJ','29373oLyjCk','mybatisXml','428QNpiTl','trimStart','length','totalCount','POST','sqlContent','conflict','sql','Pull\x20complete:\x20','test','boolean','sqlName','appCode','skipped','\x20failed','lastSync','string','unchanged','sqlCode','write','97smcMvU','dbId','sqlcode','11326oofxhK','filter','local\x20differs\x20from\x20remote','would_pull','\x20written,\x20','29487456XBpKCv','sqlRootDir','replace','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','\x20SQL\x20file(s)\x20into\x20','No\x20remote\x20SQL\x20queries\x20matched.','tableData','toISOString','Force\x20pull\x20cancelled.','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','path','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','1432tVAibp','8426232YUQHJX','sqls','join','force','name','sqlRoot','description'];a138_0x241f=function(){return _0x13c878;};return a138_0x241f();}function isEquivalentPulledSqlFile(_0x19b17c,_0x44d98a,_0x1c031d){return normalizePullComparableContent(_0x19b17c,_0x1c031d)===normalizePullComparableContent(_0x44d98a,_0x1c031d);}function normalizePullComparableContent(_0xd302eb,_0x47a9a9){const _0x52302f=a138_0x1f1a2b,_0x58a8fd=_0xd302eb[_0x52302f(0x10e)](/\r\n/g,'\x0a')['split']('\x0a'),_0x339dbd=_0x58a8fd[_0x52302f(0x108)](_0x5e5b84=>!isSyncedAtMetadataLine(_0x5e5b84,_0x47a9a9));return _0x339dbd[_0x52302f(0x11b)]('\x0a');}function isSyncedAtMetadataLine(_0xe8118c,_0x23ff65){const _0x3ad89a=a138_0x1f1a2b;if(_0x23ff65===_0x3ad89a(0x131))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x3ad89a(0x13b)](_0xe8118c);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x3ad89a(0x13b)](_0xe8118c);}
|
|
1
|
+
const a137_0x442a42=a137_0x24aa;(function(_0x123f2a,_0x4cd3ba){const _0x3e9254=a137_0x24aa,_0x2c338f=_0x123f2a();while(!![]){try{const _0x360635=-parseInt(_0x3e9254(0xd4))/0x1*(parseInt(_0x3e9254(0xc7))/0x2)+-parseInt(_0x3e9254(0xba))/0x3*(parseInt(_0x3e9254(0xcd))/0x4)+parseInt(_0x3e9254(0xd2))/0x5*(parseInt(_0x3e9254(0xcc))/0x6)+-parseInt(_0x3e9254(0xb9))/0x7+-parseInt(_0x3e9254(0xe1))/0x8+parseInt(_0x3e9254(0xc6))/0x9+parseInt(_0x3e9254(0xbe))/0xa;if(_0x360635===_0x4cd3ba)break;else _0x2c338f['push'](_0x2c338f['shift']());}catch(_0x54084b){_0x2c338f['push'](_0x2c338f['shift']());}}}(a137_0x29f1,0x47ebc));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a137_0x29f1(){const _0x20aa3f=['appCode','utf8','nonInteractive','path','sqlRoot','dbId','test','\x20skipped,\x20','Pull\x20complete:\x20','str','2208736iJROuV','write','bool','description','\x20SQL\x20file(s)\x20into\x20','join','cancelled','trimStart','local\x20differs\x20from\x20remote','totalCount','would_pull','sqlCode','toISOString','tableData','message','string','lastSync','filter','split','unchanged','865060xmGwYs','76647oHvhtL','sql','length','skipped','12054380VFTQlx','replace','pull','Force\x20overwrite\x20local\x20unsynced\x20changes','push','Force\x20pull\x20cancelled.','name','sqlcode','480861PppoVH','2WpvYJv','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','sqlContent','sqls','sqlName','6ipemJS','84TFLQFR','lockFilePath','Would\x20pull\x20','sqlRootDir','mybatisXml','587720fuFnXL','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','145622XWflCV','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','conflict'];a137_0x29f1=function(){return _0x20aa3f;};return a137_0x29f1();}import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0xb883,_0x20c3a4){const _0x14d03b=a137_0x24aa,_0x30cc68=[];let _0x2d62a9=0x1;while(!![]){const _0x151aa0=await listSqlQueries(_0xb883,{'currentPage':_0x2d62a9,'pageSize':PAGE_SIZE,'sqlCode':_0x20c3a4['sqlCode'],'sqlName':_0x20c3a4[_0x14d03b(0xcb)]}),_0x287572=_0x151aa0[_0x14d03b(0xb2)]??[];_0x30cc68['push'](..._0x287572);if(_0x287572[_0x14d03b(0xbc)]===0x0)break;const _0xd3d5b3=_0x151aa0['paging']?.[_0x14d03b(0xae)];if(_0xd3d5b3!=null?_0x30cc68['length']>=_0xd3d5b3:_0x287572[_0x14d03b(0xbc)]<PAGE_SIZE)break;_0x2d62a9++;}return _0x30cc68;}function a137_0x24aa(_0x593947,_0x3dba2b){_0x593947=_0x593947-0xad;const _0x29f13e=a137_0x29f1();let _0x24aafe=_0x29f13e[_0x593947];return _0x24aafe;}async function ensureSqlContent(_0x1a2e3c){const _0x3200b8=a137_0x24aa;if(_0x1a2e3c[_0x3200b8(0xc9)]!=null&&String(_0x1a2e3c[_0x3200b8(0xc9)])[_0x3200b8(0xbc)]>0x0)return _0x1a2e3c;return getSqlQueryDetail(_0x1a2e3c[_0x3200b8(0xb0)]);}export const sqlPull={'service':a137_0x442a42(0xbb),'command':a137_0x442a42(0xc0),'description':a137_0x442a42(0xd5),'risk':a137_0x442a42(0xe2),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a137_0x442a42(0xc4),'type':a137_0x442a42(0xb4),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':'force','type':'boolean','description':a137_0x442a42(0xc1)}],async 'dryRun'(_0x460717){const _0x450713=a137_0x442a42,_0x7a1b56=loadSqlProjectConfig(_0x460717[_0x450713(0xd7)]),_0xb243bd=await readSqlLockFile(_0x7a1b56['lockFilePath']),{appLock:_0x17a30e}=ensureSqlLockScope(_0xb243bd??createEmptySqlLock(),_0x7a1b56[_0x450713(0xd7)],_0x7a1b56[_0x450713(0xdb)],_0x450713(0xc0)),_0x171149=await fetchAllSqlQueries(_0x460717['appCode'],{'sqlCode':_0x460717['str'](_0x450713(0xc5))||undefined,'sqlName':_0x460717['str'](_0x450713(0xc4))||undefined}),_0x300638=[];for(const _0x3d0be5 of _0x171149){const _0x59f696=await ensureSqlContent(_0x3d0be5),_0x5be776=ensureRemoteSqlContent(_0x59f696),_0x546866=detectModeFromSql(_0x59f696),_0x2fc3b3=_0x59f696[_0x450713(0xdc)]?await getDbName(_0x460717[_0x450713(0xd7)],Number(_0x59f696['dbId']))['catch'](()=>undefined):undefined,_0x1adb58=buildLocalSqlFileContent({'sqlCode':_0x59f696[_0x450713(0xb0)],'sqlName':_0x59f696[_0x450713(0xcb)],'dbId':_0x59f696[_0x450713(0xdc)]},_0x5be776,{'dbName':_0x2fc3b3,'mode':_0x546866,'syncedAt':new Date()[_0x450713(0xb1)](),'description':_0x59f696['description']}),_0x441988=buildSqlLockEntry(_0x59f696,_0x5be776,'',{'dbName':_0x2fc3b3}),_0x2dbcd8=resolveLocalSqlFilePath(_0x7a1b56,_0x59f696[_0x450713(0xb0)],_0x441988);let _0x10c2c5=_0x450713(0xaf),_0x229b50;if(await fileExists(_0x2dbcd8)){const _0x3309eb=await readFile(_0x2dbcd8,'utf8');isEquivalentPulledSqlFile(_0x3309eb,_0x1adb58,_0x546866)?(_0x10c2c5=_0x450713(0xbd),_0x229b50=_0x450713(0xb8)):(_0x10c2c5=_0x450713(0xd6),_0x229b50=_0x450713(0xc8));}_0x300638['push']({'sqlCode':_0x59f696[_0x450713(0xb0)],'sqlName':_0x59f696[_0x450713(0xcb)],'filePath':_0x2dbcd8,'status':_0x10c2c5,'reason':_0x229b50});}return{'method':'POST','url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x460717[_0x450713(0xd7)],'sqlCode':_0x460717['str'](_0x450713(0xc5))||null,'sqlName':_0x460717[_0x450713(0xe0)](_0x450713(0xc4))||null,'files':_0x300638},'description':_0x450713(0xcf)+_0x300638[_0x450713(0xbc)]+_0x450713(0xe5)+_0x7a1b56[_0x450713(0xd0)]};},async 'execute'(_0x3ad8a8){const _0x487424=a137_0x442a42,_0x2a2995=loadSqlProjectConfig(_0x3ad8a8[_0x487424(0xd7)]),_0x127ba7=await readSqlLockFile(_0x2a2995[_0x487424(0xce)]),{lockData:_0x298597,appLock:_0x5df18b}=ensureSqlLockScope(_0x127ba7??createEmptySqlLock(),_0x2a2995[_0x487424(0xd7)],_0x2a2995[_0x487424(0xdb)],_0x487424(0xc0)),_0x144b76=_0x3ad8a8[_0x487424(0xe3)]('force'),_0x19e26c=await fetchAllSqlQueries(_0x3ad8a8[_0x487424(0xd7)],{'sqlCode':_0x3ad8a8[_0x487424(0xe0)](_0x487424(0xc5))||undefined,'sqlName':_0x3ad8a8[_0x487424(0xe0)](_0x487424(0xc4))||undefined});if(_0x19e26c[_0x487424(0xbc)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':'No\x20remote\x20SQL\x20queries\x20matched.'};const _0x59691d=[],_0x5d89b3=[];for(const _0x2a3fbb of _0x19e26c){try{_0x59691d[_0x487424(0xc2)](await ensureSqlContent(_0x2a3fbb));}catch(_0x683a13){_0x5d89b3['push']({'sqlCode':_0x2a3fbb[_0x487424(0xb0)],'error':_0x683a13 instanceof Error?_0x683a13[_0x487424(0xb3)]:String(_0x683a13)});}}if(_0x144b76&&!_0x3ad8a8[_0x487424(0xd9)]){let _0x4fa69f=![];for(const _0x384469 of _0x59691d){const _0x2d049f=detectModeFromSql(_0x384469),_0x445ed4=_0x384469[_0x487424(0xdc)]?await getDbName(_0x3ad8a8[_0x487424(0xd7)],Number(_0x384469[_0x487424(0xdc)]))['catch'](()=>undefined):undefined,_0x2f0e63=buildLocalSqlFileContent({'sqlCode':_0x384469[_0x487424(0xb0)],'sqlName':_0x384469[_0x487424(0xcb)],'dbId':_0x384469[_0x487424(0xdc)]},ensureRemoteSqlContent(_0x384469),{'dbName':_0x445ed4,'mode':_0x2d049f,'syncedAt':new Date()[_0x487424(0xb1)](),'description':_0x384469['description']}),_0x3bfc87=resolveLocalSqlFilePath(_0x2a2995,_0x384469['sqlCode'],buildSqlLockEntry(_0x384469,ensureRemoteSqlContent(_0x384469),'',{'dbName':_0x445ed4}));if(await fileExists(_0x3bfc87)){const _0x2a443d=await readFile(_0x3bfc87,_0x487424(0xd8));if(!isEquivalentPulledSqlFile(_0x2a443d,_0x2f0e63,_0x2d049f)){_0x4fa69f=!![];break;}}}if(_0x4fa69f){const _0x300d52=await confirmForceOverwrite(_0x487424(0xd3));if(!_0x300d52)throw CliErrors[_0x487424(0xe7)](_0x487424(0xc3));}}const _0x4274c4=cloneSqlLockData(_0x298597),_0x3006a6=_0x4274c4['apps'][_0x2a2995['appCode']],_0xa432e5=[],_0x21b7de=[];for(const _0x3ae6d0 of _0x59691d){const _0x218784=_0x3006a6['sqls'][_0x3ae6d0[_0x487424(0xb0)]],_0xea8c25=ensureRemoteSqlContent(_0x3ae6d0),_0x20be56=detectModeFromSql(_0x3ae6d0),_0x194211=_0x3ae6d0[_0x487424(0xdc)]?await getDbName(_0x3ad8a8[_0x487424(0xd7)],Number(_0x3ae6d0[_0x487424(0xdc)]))['catch'](()=>undefined):undefined,_0x2ccfaf=buildLocalSqlFileContent({'sqlCode':_0x3ae6d0[_0x487424(0xb0)],'sqlName':_0x3ae6d0['sqlName'],'dbId':_0x3ae6d0[_0x487424(0xdc)]},_0xea8c25,{'dbName':_0x194211,'mode':_0x20be56,'syncedAt':new Date()['toISOString'](),'description':_0x3ae6d0[_0x487424(0xe4)]}),_0x71d41f=buildSqlLockEntry(_0x3ae6d0,_0xea8c25,computeSqlContentHash(_0x2ccfaf),{'dbName':_0x194211}),_0x495b01=_0x71d41f['path'],_0x4d8f6b=join(_0x2a2995['sqlRootDir'],_0x495b01);try{if(await fileExists(_0x4d8f6b)){const _0x254d5e=await readFile(_0x4d8f6b,_0x487424(0xd8));if(isEquivalentPulledSqlFile(_0x254d5e,_0x2ccfaf,_0x20be56)){_0x21b7de[_0x487424(0xc2)]({'sqlCode':_0x3ae6d0[_0x487424(0xb0)],'reason':'unchanged'}),_0x3006a6[_0x487424(0xca)][_0x3ae6d0['sqlCode']]={..._0x71d41f,'hash':computeSqlContentHash(_0x254d5e),'path':_0x495b01};continue;}if(!_0x144b76){_0x21b7de[_0x487424(0xc2)]({'sqlCode':_0x3ae6d0[_0x487424(0xb0)],'reason':_0x487424(0xad)});continue;}}const _0x11d7f7=_0x218784?.[_0x487424(0xda)]?join(_0x2a2995[_0x487424(0xd0)],_0x218784[_0x487424(0xda)]):undefined;_0x11d7f7&&_0x11d7f7!==_0x4d8f6b&&await fileExists(_0x11d7f7)&&await rm(_0x11d7f7,{'force':!![]}),await ensureParentDirectory(_0x4d8f6b),await writeFile(_0x4d8f6b,_0x2ccfaf,'utf8'),_0x3006a6[_0x487424(0xca)][_0x3ae6d0['sqlCode']]={..._0x71d41f,'path':_0x495b01},_0xa432e5[_0x487424(0xc2)]({'sqlCode':_0x3ae6d0[_0x487424(0xb0)],'filePath':_0x4d8f6b});}catch(_0x79a231){_0x5d89b3[_0x487424(0xc2)]({'sqlCode':_0x3ae6d0[_0x487424(0xb0)],'error':_0x79a231 instanceof Error?_0x79a231['message']:String(_0x79a231)});}}return _0x3006a6[_0x487424(0xb5)]=new Date()['toISOString'](),await writeSqlLockFile(_0x2a2995['lockFilePath'],_0x4274c4),{'ok':_0x5d89b3[_0x487424(0xbc)]===0x0,'data':{'pulled':_0xa432e5,'skipped':_0x21b7de,'failed':_0x5d89b3},'message':_0x487424(0xdf)+_0xa432e5[_0x487424(0xbc)]+'\x20written,\x20'+_0x21b7de[_0x487424(0xbc)]+_0x487424(0xde)+_0x5d89b3[_0x487424(0xbc)]+'\x20failed'};}};function detectModeFromSql(_0x4db731){const _0x46b49f=a137_0x442a42,_0x4afa03=ensureRemoteSqlContent(_0x4db731),_0x3849ad=stripLocalSqlMetadata(_0x4afa03,_0x46b49f(0xd1))[_0x46b49f(0xe8)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x3849ad))return _0x46b49f(0xd1);return _0x46b49f(0xbb);}function isEquivalentPulledSqlFile(_0x5e24e9,_0x1e4a73,_0x4dd3b8){return normalizePullComparableContent(_0x5e24e9,_0x4dd3b8)===normalizePullComparableContent(_0x1e4a73,_0x4dd3b8);}function normalizePullComparableContent(_0xd24155,_0x1ce4cc){const _0xa9af90=a137_0x442a42,_0x2565d2=_0xd24155[_0xa9af90(0xbf)](/\r\n/g,'\x0a')[_0xa9af90(0xb7)]('\x0a'),_0x5dc53d=_0x2565d2[_0xa9af90(0xb6)](_0x44a607=>!isSyncedAtMetadataLine(_0x44a607,_0x1ce4cc));return _0x5dc53d[_0xa9af90(0xe6)]('\x0a');}function isSyncedAtMetadataLine(_0x2e1b01,_0x334e15){const _0x4b73e0=a137_0x442a42;if(_0x334e15===_0x4b73e0(0xd1))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x2e1b01);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x4b73e0(0xdd)](_0x2e1b01);}
|