@lovrabet/rabetbase-cli 2.1.6 → 2.1.7-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/add.js +1 -1
- package/lib/commands/app/discover.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/remove.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app/use.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/filter.js +1 -1
- package/lib/commands/data/getOne.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/data/shared.js +1 -1
- package/lib/commands/dataset/delete.js +1 -0
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/link-create.js +1 -0
- package/lib/commands/dataset/link-delete.js +1 -0
- package/lib/commands/dataset/link-shared.js +1 -0
- package/lib/commands/dataset/link-update.js +1 -0
- package/lib/commands/dataset/links.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/init/index.js +1 -1
- package/lib/commands/issue/index.js +1 -0
- package/lib/commands/issue/report.js +1 -0
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/menu/update.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/standard-page-status.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/project/create/enhanced-guided-create.js +1 -1
- package/lib/commands/project/create/format-elapsed.js +1 -1
- package/lib/commands/project/create/main.js +1 -1
- package/lib/commands/project/create/non-interactive.js +1 -1
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.js +1 -1
- package/lib/commands/project/create/use-format-code.js +1 -1
- package/lib/commands/project/create/use-install-dependencies.js +1 -1
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/init.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/save.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -0
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/copy-directory.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/rules-cdn.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a115_0x3e0c82=a115_0x4f6a;(function(_0x38c193,_0x427777){const _0x409a6e=a115_0x4f6a,_0x315599=_0x38c193();while(!![]){try{const _0x25a467=parseInt(_0x409a6e(0x1ab))/0x1+parseInt(_0x409a6e(0x1b4))/0x2*(-parseInt(_0x409a6e(0x1b0))/0x3)+parseInt(_0x409a6e(0x1b9))/0x4+parseInt(_0x409a6e(0x19f))/0x5*(-parseInt(_0x409a6e(0x1b2))/0x6)+parseInt(_0x409a6e(0x1b3))/0x7+-parseInt(_0x409a6e(0x1af))/0x8+parseInt(_0x409a6e(0x1a2))/0x9;if(_0x25a467===_0x427777)break;else _0x315599['push'](_0x315599['shift']());}catch(_0x4cb8da){_0x315599['push'](_0x315599['shift']());}}}(a115_0x363a,0xc3043));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';function a115_0x4f6a(_0x80bfec,_0x32f3fd){_0x80bfec=_0x80bfec-0x195;const _0x363a94=a115_0x363a();let _0x4f6aea=_0x363a94[_0x80bfec];return _0x4f6aea;}import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';function a115_0x363a(){const _0x53d9a4=['2435Kzxewv','POST','str','3885876ijaBAo','\x20(local\x20file\x20moved\x20to\x20trash)','replace','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','trashedTo','fromEntries','remoteId','startsWith','Deleted\x20','1172812iujctF','trashDir','sqlcode','SQL\x20lock\x20file\x20not\x20found.','368824HAbjdE','768198CRSNBf','length','4398tWjTun','1043126ostUJK','12ORRQet','sqlRoot','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','sqls','Would\x20delete\x20SQL\x20','3938652ilvrbM','lockFilePath','sqlRootDir','sql','high-risk-write','/smartapi/custom/deleteUserCustomSql','appCode','delete','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','validation'];a115_0x363a=function(){return _0x53d9a4;};return a115_0x363a();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a115_0x3e0c82(0x197),'command':a115_0x3e0c82(0x19b),'description':a115_0x3e0c82(0x19c),'risk':a115_0x3e0c82(0x198),'flags':[SQLCODE_FLAG],async 'validate'(_0x2a6d01){const _0x54d3a4=a115_0x3e0c82,_0x1ee375=loadSqlProjectConfig(_0x2a6d01[_0x54d3a4(0x19a)]),_0x214463=await readSqlLockFile(_0x1ee375['lockFilePath']);if(!_0x214463)throw CliErrors[_0x54d3a4(0x19e)](_0x54d3a4(0x19d));},async 'dryRun'(_0x24fdad){const _0x2e7516=a115_0x3e0c82,_0x2dfbc8=loadSqlProjectConfig(_0x24fdad[_0x2e7516(0x19a)]),_0x558ca3=await readSqlLockFile(_0x2dfbc8[_0x2e7516(0x195)]);if(!_0x558ca3)throw CliErrors[_0x2e7516(0x19e)](_0x2e7516(0x19d));const {appLock:_0x584230}=ensureSqlLockScope(_0x558ca3,_0x24fdad['appCode'],_0x2dfbc8[_0x2e7516(0x1b5)],'delete'),_0x11a6d4=_0x24fdad[_0x2e7516(0x1a1)](_0x2e7516(0x1ad)),_0x1384bb=_0x584230[_0x2e7516(0x1b7)][_0x11a6d4];if(!_0x1384bb)throw CliErrors[_0x2e7516(0x19e)](_0x2e7516(0x1a5)+_0x11a6d4+'\x22.');return{'method':_0x2e7516(0x1a0),'url':_0x2e7516(0x199),'body':{'sqlCode':_0x11a6d4,'id':_0x1384bb[_0x2e7516(0x1a8)],'localPath':resolveLocalSqlFilePath(_0x2dfbc8,_0x11a6d4,_0x1384bb)},'description':_0x2e7516(0x1b8)+_0x11a6d4+_0x2e7516(0x1b6)+_0x2dfbc8[_0x2e7516(0x1ac)]};},async 'execute'(_0x46a81c){const _0x56c88d=a115_0x3e0c82,_0x384cae=loadSqlProjectConfig(_0x46a81c['appCode']),_0x142ed1=await readSqlLockFile(_0x384cae[_0x56c88d(0x195)]);if(!_0x142ed1)throw CliErrors[_0x56c88d(0x19e)](_0x56c88d(0x1ae));const {lockData:_0x216e01,appLock:_0x56a2a2}=ensureSqlLockScope(_0x142ed1,_0x46a81c[_0x56c88d(0x19a)],_0x384cae['sqlRoot'],_0x56c88d(0x19b)),_0xd2dc90=_0x46a81c[_0x56c88d(0x1a1)]('sqlcode'),_0x547c5e=_0x56a2a2[_0x56c88d(0x1b7)][_0xd2dc90];if(!_0x547c5e)throw CliErrors['validation'](_0x56c88d(0x1a5)+_0xd2dc90+'\x22.');await deleteSqlQuery({'id':_0x547c5e[_0x56c88d(0x1a8)],'sqlCode':_0xd2dc90}),_0x56a2a2['sqls']=Object[_0x56c88d(0x1a7)](Object['entries'](_0x56a2a2['sqls'])['filter'](([_0x22ad45])=>_0x22ad45!==_0xd2dc90)),_0x56a2a2['lastSync']=new Date()['toISOString'](),await writeSqlLockFile(_0x384cae[_0x56c88d(0x195)],_0x216e01);const _0x869c67=resolveLocalSqlFilePath(_0x384cae,_0xd2dc90,_0x547c5e);let _0x5819e7;await fileExists(_0x869c67)&&(_0x5819e7=await moveToTrash(_0x384cae['projectRoot'],_0x384cae[_0x56c88d(0x1ac)],_0x869c67),await cleanupEmptyDirectories(dirname(_0x869c67),_0x384cae[_0x56c88d(0x196)]));const _0x5c7564={'deleted':_0xd2dc90,'remoteId':_0x547c5e[_0x56c88d(0x1a8)]};if(_0x5819e7)_0x5c7564[_0x56c88d(0x1a6)]=_0x5819e7;return{'ok':!![],'data':_0x5c7564,'message':_0x56c88d(0x1aa)+_0xd2dc90+(_0x5819e7?_0x56c88d(0x1a3):'')};}};async function moveToTrash(_0x25815b,_0x3edaa2,_0x28754d){const _0x23d32e=a115_0x3e0c82,_0x1d044a=new Date()['toISOString']()[_0x23d32e(0x1a4)](/[:.]/g,'-'),_0x27e6fa=relative(_0x25815b,_0x28754d),_0x4d29c5=join(_0x3edaa2,_0x1d044a,_0x27e6fa);return await mkdir(dirname(_0x4d29c5),{'recursive':!![]}),await rename(_0x28754d,_0x4d29c5),_0x4d29c5;}async function cleanupEmptyDirectories(_0x542d81,_0x26166d){const _0x473082=a115_0x3e0c82;let _0x2563db=resolve(_0x542d81);const _0x10b43a=resolve(_0x26166d);while(_0x2563db[_0x473082(0x1a9)](''+_0x10b43a+sep)||_0x2563db===_0x10b43a){if(_0x2563db===_0x10b43a)return;try{const _0x2c5a57=await readdir(_0x2563db);if(_0x2c5a57[_0x473082(0x1b1)]>0x0)return;await rmdir(_0x2563db);}catch{return;}_0x2563db=dirname(_0x2563db);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a116_0x3f0d(_0xd669ff,_0x40dd5b){_0xd669ff=_0xd669ff-0xf9;const _0x141938=a116_0x1419();let _0x3f0d63=_0x141938[_0xd669ff];return _0x3f0d63;}const a116_0x5c05c3=a116_0x3f0d;(function(_0x502e15,_0x32aa9d){const _0x377720=a116_0x3f0d,_0x1a0d8a=_0x502e15();while(!![]){try{const _0x163f53=-parseInt(_0x377720(0x106))/0x1*(-parseInt(_0x377720(0x10b))/0x2)+-parseInt(_0x377720(0x107))/0x3*(-parseInt(_0x377720(0x108))/0x4)+-parseInt(_0x377720(0x101))/0x5*(-parseInt(_0x377720(0xfc))/0x6)+parseInt(_0x377720(0xf9))/0x7*(-parseInt(_0x377720(0x103))/0x8)+-parseInt(_0x377720(0xfa))/0x9+parseInt(_0x377720(0x10a))/0xa+-parseInt(_0x377720(0x10c))/0xb;if(_0x163f53===_0x32aa9d)break;else _0x1a0d8a['push'](_0x1a0d8a['shift']());}catch(_0xb87cf1){_0x1a0d8a['push'](_0x1a0d8a['shift']());}}}(a116_0x1419,0x7e483));import{getSqlQueryInfo}from'../../core/api-client.js';function a116_0x1419(){const _0x634c5e=['389270HLrRUe','sqlContent','296viJfsM','sqlCode','bool','1jUxpAv','3qfoHpt','3909476APILlQ','str','5776490icjoYq','936578mDzwvw','8928260YyNIai','appCode','33047amtZeV','5378157qzPraD','sqlName','6HEqwpY','verbose','dbId','description','sqlcode'];a116_0x1419=function(){return _0x634c5e;};return a116_0x1419();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':'sql','command':'detail','description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':a116_0x5c05c3(0xfd),'type':'boolean','description':'Return\x20full\x20raw\x20SQL\x20query\x20object'}],async 'execute'(_0x386df7){const _0x225467=a116_0x5c05c3,_0xcc556d=await getSqlQueryInfo(_0x386df7[_0x225467(0x10d)],_0x386df7[_0x225467(0x109)](_0x225467(0x100))),_0x3cedde=_0x386df7[_0x225467(0x105)](_0x225467(0xfd));if(_0x3cedde)return{'ok':!![],'data':_0xcc556d};const _0x40aa86=_0xcc556d[_0x225467(0xfe)]?await getDbName(_0x386df7[_0x225467(0x10d)],_0xcc556d['dbId']):undefined;return{'ok':!![],'data':{'sqlCode':_0xcc556d[_0x225467(0x104)],'sqlName':_0xcc556d[_0x225467(0xfb)],'db':_0x40aa86?_0x40aa86+'\x20('+_0xcc556d[_0x225467(0xfe)]+')':_0xcc556d[_0x225467(0xfe)]??'','description':_0xcc556d[_0x225467(0xff)]??'','sqlContent':_0xcc556d[_0x225467(0x102)]??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a117_0x41d245=a117_0x577e;(function(_0x32869c,_0x2b31fa){const _0x10a5f4=a117_0x577e,_0x2d6b03=_0x32869c();while(!![]){try{const _0x281c6b=parseInt(_0x10a5f4(0x93))/0x1*(parseInt(_0x10a5f4(0x9a))/0x2)+-parseInt(_0x10a5f4(0x9f))/0x3+parseInt(_0x10a5f4(0x91))/0x4+parseInt(_0x10a5f4(0xa0))/0x5*(parseInt(_0x10a5f4(0x99))/0x6)+parseInt(_0x10a5f4(0xa1))/0x7+parseInt(_0x10a5f4(0x8a))/0x8+parseInt(_0x10a5f4(0x8f))/0x9*(-parseInt(_0x10a5f4(0x95))/0xa);if(_0x281c6b===_0x2b31fa)break;else _0x2d6b03['push'](_0x2d6b03['shift']());}catch(_0x130640){_0x2d6b03['push'](_0x2d6b03['shift']());}}}(a117_0x275b,0x20c95));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a117_0x577e(_0x2d5d56,_0x43b506){_0x2d5d56=_0x2d5d56-0x8a;const _0x275b03=a117_0x275b();let _0x577e8b=_0x275b03[_0x2d5d56];return _0x577e8b;}function a117_0x275b(){const _0x22e621=['5699385cwTxYT','read','983628PLCuuy','params','203071LydMwG','appCode','10tyGhsc','SQL\x20execution\x20failed','sqlcode','length','12mTphBN','2HoejnJ','execError','exec','execResult','string','179544JecSjN','396310oXMObA','1425648fXuPqz','129920SiNrby','isArray','\x20row(s)\x20in\x20','now','sql'];a117_0x275b=function(){return _0x22e621;};return a117_0x275b();}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a117_0x41d245(0x8e),'command':a117_0x41d245(0x9c),'description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':a117_0x41d245(0x90),'flags':[SQLCODE_FLAG,{'name':a117_0x41d245(0x92),'type':a117_0x41d245(0x9e),'description':'SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)'}],async 'execute'(_0x503030){const _0x282e3d=a117_0x41d245,_0x1d1864=parseJsonParams(_0x503030['str'](_0x282e3d(0x92))),_0x14d97e=Date[_0x282e3d(0x8d)](),_0x497ebe=await executeSql(_0x503030[_0x282e3d(0x94)],_0x503030['str'](_0x282e3d(0x97)),_0x1d1864),_0x3e50d5=Date[_0x282e3d(0x8d)]()-_0x14d97e,_0x2784df=_0x497ebe?.[_0x282e3d(0x9d)]??_0x497ebe,_0x4dd592=_0x497ebe?.['execSuccess']??!![];if(!_0x4dd592)return{'ok':![],'data':{'error':_0x497ebe?.[_0x282e3d(0x9b)]||_0x282e3d(0x96),'elapsed':_0x3e50d5},'message':_0x282e3d(0x96)};const _0x45b080=Array[_0x282e3d(0x8b)](_0x2784df)?_0x2784df:[];return{'ok':!![],'data':{'rows':_0x45b080,'rowCount':_0x45b080[_0x282e3d(0x98)],'elapsed':_0x3e50d5},'message':'Returned\x20'+_0x45b080[_0x282e3d(0x98)]+_0x282e3d(0x8c)+_0x3e50d5+'ms'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x5225b7,_0x52ca16){const _0x150b83=a118_0x3be8,_0x725b47=_0x5225b7();while(!![]){try{const _0x600445=-parseInt(_0x150b83(0xff))/0x1*(parseInt(_0x150b83(0x101))/0x2)+parseInt(_0x150b83(0x100))/0x3*(-parseInt(_0x150b83(0x105))/0x4)+-parseInt(_0x150b83(0x103))/0x5*(-parseInt(_0x150b83(0x104))/0x6)+parseInt(_0x150b83(0x106))/0x7+-parseInt(_0x150b83(0x108))/0x8*(-parseInt(_0x150b83(0xfd))/0x9)+-parseInt(_0x150b83(0x102))/0xa*(-parseInt(_0x150b83(0x107))/0xb)+-parseInt(_0x150b83(0xfe))/0xc*(parseInt(_0x150b83(0x109))/0xd);if(_0x600445===_0x52ca16)break;else _0x725b47['push'](_0x725b47['shift']());}catch(_0x3b3ced){_0x725b47['push'](_0x725b47['shift']());}}}(a118_0xe9b7,0xb8fe2));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';function a118_0xe9b7(){const _0x3842d7=['184NSMLyc','13451074PehYdH','126405RGjpeD','12okwcwR','1246510vIPVTn','249bZfMVs','2OdrnRF','47490GFqFfm','95VjvrOA','408978ejsBAJ','13868hTqFbR','4580023eOQkjn','2442oeoqrj'];a118_0xe9b7=function(){return _0x3842d7;};return a118_0xe9b7();}import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';function a118_0x3be8(_0x4290e6,_0x3a17a2){_0x4290e6=_0x4290e6-0xfd;const _0xe9b710=a118_0xe9b7();let _0x3be8a2=_0xe9b710[_0x4290e6];return _0x3be8a2;}import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
|
package/lib/commands/sql/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a119_0x50c1(_0x11259d,_0x17b7ce){_0x11259d=_0x11259d-0x9d;const _0x16b927=a119_0x16b9();let _0x50c17d=_0x16b927[_0x11259d];return _0x50c17d;}function a119_0x16b9(){const _0x542874=['bool','List\x20custom\x20SQL\x20queries','34095366DcDLyZ','1069217IfwysZ','sqlName','read','pagesize','str','tableData','appCode','1667208AFmwZn','length','sqlcode','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','verbose','Found\x20','all','Page\x20size','name','7047FOFRHe','string','1275326bXqrPw','map','number','description','21FuyVEb','sqlCode','sql','8314020AMGvit','5529966xxJAlY','paging','num','dbId','208NAnANl','page','totalCount'];a119_0x16b9=function(){return _0x542874;};return a119_0x16b9();}const a119_0x18d99e=a119_0x50c1;(function(_0x25311e,_0x438979){const _0x212f28=a119_0x50c1,_0x270f00=_0x25311e();while(!![]){try{const _0x29d637=-parseInt(_0x212f28(0xaf))/0x1+-parseInt(_0x212f28(0x9d))/0x2+parseInt(_0x212f28(0xbf))/0x3*(parseInt(_0x212f28(0xa9))/0x4)+-parseInt(_0x212f28(0xa4))/0x5+parseInt(_0x212f28(0xa5))/0x6+-parseInt(_0x212f28(0xa1))/0x7*(parseInt(_0x212f28(0xb6))/0x8)+parseInt(_0x212f28(0xae))/0x9;if(_0x29d637===_0x438979)break;else _0x270f00['push'](_0x270f00['shift']());}catch(_0x1b8182){_0x270f00['push'](_0x270f00['shift']());}}}(a119_0x16b9,0xcc6b0));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a119_0x18d99e(0xa3),'command':'list','description':a119_0x18d99e(0xad),'risk':a119_0x18d99e(0xb1),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a119_0x18d99e(0xbe),'type':a119_0x18d99e(0xc0),'description':'Filter\x20by\x20SQL\x20name'},{'name':a119_0x18d99e(0xaa),'type':a119_0x18d99e(0x9f),'description':'Page\x20number','default':0x1},{'name':'pagesize','type':'number','description':a119_0x18d99e(0xbd)},{'name':'verbose','type':'boolean','description':a119_0x18d99e(0xb9)}],async 'execute'(_0x4bda5a){const _0x576115=a119_0x18d99e,_0x55a84a=await listSqlQueries(_0x4bda5a[_0x576115(0xb5)],{'sqlCode':_0x4bda5a[_0x576115(0xb3)](_0x576115(0xb8))||undefined,'sqlName':_0x4bda5a[_0x576115(0xb3)]('name')||undefined,'currentPage':_0x4bda5a[_0x576115(0xa7)]('page'),'pageSize':_0x4bda5a[_0x576115(0xa7)](_0x576115(0xb2),0x32)}),_0xf9e988=_0x4bda5a[_0x576115(0xac)](_0x576115(0xba)),_0x2d4636=_0x55a84a[_0x576115(0xb4)]??[],_0xc5775=_0x55a84a[_0x576115(0xa6)]?.[_0x576115(0xab)]??_0x2d4636[_0x576115(0xb7)];let _0x3e2f51;return _0xf9e988?_0x3e2f51=_0x2d4636:_0x3e2f51=await Promise[_0x576115(0xbc)](_0x2d4636[_0x576115(0x9e)](async _0x59541c=>{const _0x1f7fd4=_0x576115;let _0x3d9cce;try{_0x3d9cce=_0x59541c[_0x1f7fd4(0xa8)]?await getDbName(_0x4bda5a[_0x1f7fd4(0xb5)],_0x59541c[_0x1f7fd4(0xa8)]):undefined;}catch{}return{'sqlCode':_0x59541c[_0x1f7fd4(0xa2)],'sqlName':_0x59541c[_0x1f7fd4(0xb0)],'description':_0x59541c[_0x1f7fd4(0xa0)]??'','db':_0x3d9cce?_0x3d9cce+'\x20('+_0x59541c[_0x1f7fd4(0xa8)]+')':_0x59541c[_0x1f7fd4(0xa8)]??''};})),{'ok':!![],'data':_0x3e2f51,'message':_0x2d4636['length']===0x0?'No\x20custom\x20SQL\x20queries\x20found.':_0x576115(0xbb)+_0x2d4636['length']+'\x20SQL\x20queries\x20(total:\x20'+_0xc5775+').'};}};
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a113_0x1cf11c=a113_0x5330;(function(_0x23a7c4,_0x5d51de){const _0xba1654=a113_0x5330,_0x522069=_0x23a7c4();while(!![]){try{const _0x4a076=-parseInt(_0xba1654(0xe9))/0x1*(-parseInt(_0xba1654(0xf0))/0x2)+-parseInt(_0xba1654(0x113))/0x3*(parseInt(_0xba1654(0xd9))/0x4)+parseInt(_0xba1654(0xea))/0x5*(-parseInt(_0xba1654(0xe7))/0x6)+-parseInt(_0xba1654(0xdf))/0x7+-parseInt(_0xba1654(0xe8))/0x8*(-parseInt(_0xba1654(0xf9))/0x9)+-parseInt(_0xba1654(0x107))/0xa*(parseInt(_0xba1654(0x10d))/0xb)+parseInt(_0xba1654(0xed))/0xc;if(_0x4a076===_0x5d51de)break;else _0x522069['push'](_0x522069['shift']());}catch(_0x33537d){_0x522069['push'](_0x522069['shift']());}}}(a113_0x1376,0xb5909));function a113_0x1376(){const _0x150923=['filter','skipped','write','name','appCode','bool','description','6MBukoS','65232jtLbQG','125mppoRz','3723605yEfKsn','unchanged','test','32104236FThzRD','path','lastSync','11420vBCUfv','Pull\x20complete:\x20','toISOString','mybatisXml','message','length','Force\x20overwrite\x20local\x20unsynced\x20changes','paging','Would\x20pull\x20','567UpFEoA','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','lockFilePath','sqlContent','sqlName','\x20skipped,\x20','Filter\x20by\x20SQL\x20display\x20name','sqlRootDir','\x20failed','sql','str','sqlcode','force','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','110gaxUvo','catch','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','POST','\x20written,\x20','tableData','680471lqxTAo','nonInteractive','sqls','sqlCode','sqlRoot','utf8','312891PaGbmx','string','No\x20remote\x20SQL\x20queries\x20matched.','replace','join','push','44PGatgg','conflict','boolean','dbId','pull','local\x20differs\x20from\x20remote','4106599HwluCr'];a113_0x1376=function(){return _0x150923;};return a113_0x1376();}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(_0x1e4127,_0x1a74ec){const _0x3cb3d3=a113_0x5330,_0x583309=[];let _0x10bd70=0x1;while(!![]){const _0x25ce9c=await listSqlQueries(_0x1e4127,{'currentPage':_0x10bd70,'pageSize':PAGE_SIZE,'sqlCode':_0x1a74ec[_0x3cb3d3(0x110)],'sqlName':_0x1a74ec['sqlName']}),_0x398979=_0x25ce9c[_0x3cb3d3(0x10c)]??[];_0x583309[_0x3cb3d3(0xd8)](..._0x398979);if(_0x398979[_0x3cb3d3(0xf5)]===0x0)break;const _0x436c01=_0x25ce9c[_0x3cb3d3(0xf7)]?.['totalCount'];if(_0x436c01!=null?_0x583309[_0x3cb3d3(0xf5)]>=_0x436c01:_0x398979[_0x3cb3d3(0xf5)]<PAGE_SIZE)break;_0x10bd70++;}return _0x583309;}async function ensureSqlContent(_0x5e4bb5){const _0x1a5bb9=a113_0x5330;if(_0x5e4bb5[_0x1a5bb9(0xfc)]!=null&&String(_0x5e4bb5['sqlContent'])['length']>0x0)return _0x5e4bb5;return getSqlQueryDetail(_0x5e4bb5[_0x1a5bb9(0x110)]);}export const sqlPull={'service':'sql','command':a113_0x1cf11c(0xdd),'description':a113_0x1cf11c(0xfa),'risk':a113_0x1cf11c(0xe2),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a113_0x1cf11c(0xe3),'type':a113_0x1cf11c(0x114),'description':a113_0x1cf11c(0xff)},{'name':a113_0x1cf11c(0x105),'type':a113_0x1cf11c(0xdb),'description':a113_0x1cf11c(0xf6)}],async 'dryRun'(_0x13874f){const _0x3a0b60=a113_0x1cf11c,_0x1a7fb0=loadSqlProjectConfig(_0x13874f[_0x3a0b60(0xe4)]),_0x3408a9=await readSqlLockFile(_0x1a7fb0[_0x3a0b60(0xfb)]),{appLock:_0x35b949}=ensureSqlLockScope(_0x3408a9??createEmptySqlLock(),_0x1a7fb0['appCode'],_0x1a7fb0['sqlRoot'],'pull'),_0x9fe2eb=await fetchAllSqlQueries(_0x13874f[_0x3a0b60(0xe4)],{'sqlCode':_0x13874f[_0x3a0b60(0x103)]('sqlcode')||undefined,'sqlName':_0x13874f[_0x3a0b60(0x103)](_0x3a0b60(0xe3))||undefined}),_0x16bb60=[];for(const _0x1f76bb of _0x9fe2eb){const _0x392cd1=await ensureSqlContent(_0x1f76bb),_0x4c8fa4=ensureRemoteSqlContent(_0x392cd1),_0x31b79c=detectModeFromSql(_0x392cd1),_0x2673c9=_0x392cd1[_0x3a0b60(0xdc)]?await getDbName(_0x13874f[_0x3a0b60(0xe4)],Number(_0x392cd1['dbId']))[_0x3a0b60(0x108)](()=>undefined):undefined,_0x289e2d=buildLocalSqlFileContent({'sqlCode':_0x392cd1['sqlCode'],'sqlName':_0x392cd1[_0x3a0b60(0xfd)],'dbId':_0x392cd1[_0x3a0b60(0xdc)]},_0x4c8fa4,{'dbName':_0x2673c9,'mode':_0x31b79c,'syncedAt':new Date()[_0x3a0b60(0xf2)](),'description':_0x392cd1[_0x3a0b60(0xe6)]}),_0x23afb5=buildSqlLockEntry(_0x392cd1,_0x4c8fa4,'',{'dbName':_0x2673c9}),_0x951126=resolveLocalSqlFilePath(_0x1a7fb0,_0x392cd1[_0x3a0b60(0x110)],_0x23afb5);let _0x30cc18='would_pull',_0x29f25e;if(await fileExists(_0x951126)){const _0x339b56=await readFile(_0x951126,_0x3a0b60(0x112));isEquivalentPulledSqlFile(_0x339b56,_0x289e2d,_0x31b79c)?(_0x30cc18=_0x3a0b60(0xe1),_0x29f25e=_0x3a0b60(0xeb)):(_0x30cc18=_0x3a0b60(0xda),_0x29f25e='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x16bb60[_0x3a0b60(0xd8)]({'sqlCode':_0x392cd1['sqlCode'],'sqlName':_0x392cd1['sqlName'],'filePath':_0x951126,'status':_0x30cc18,'reason':_0x29f25e});}return{'method':_0x3a0b60(0x10a),'url':_0x3a0b60(0x109),'body':{'appCode':_0x13874f['appCode'],'sqlCode':_0x13874f[_0x3a0b60(0x103)](_0x3a0b60(0x104))||null,'sqlName':_0x13874f['str'](_0x3a0b60(0xe3))||null,'files':_0x16bb60},'description':_0x3a0b60(0xf8)+_0x16bb60[_0x3a0b60(0xf5)]+'\x20SQL\x20file(s)\x20into\x20'+_0x1a7fb0[_0x3a0b60(0x100)]};},async 'execute'(_0x316a51){const _0x9c0a08=a113_0x1cf11c,_0x6e37ce=loadSqlProjectConfig(_0x316a51[_0x9c0a08(0xe4)]),_0x4f3a25=await readSqlLockFile(_0x6e37ce[_0x9c0a08(0xfb)]),{lockData:_0x2c2bad,appLock:_0x4d1bbc}=ensureSqlLockScope(_0x4f3a25??createEmptySqlLock(),_0x6e37ce[_0x9c0a08(0xe4)],_0x6e37ce[_0x9c0a08(0x111)],_0x9c0a08(0xdd)),_0x1e406e=_0x316a51[_0x9c0a08(0xe5)](_0x9c0a08(0x105)),_0x31e06e=await fetchAllSqlQueries(_0x316a51[_0x9c0a08(0xe4)],{'sqlCode':_0x316a51[_0x9c0a08(0x103)](_0x9c0a08(0x104))||undefined,'sqlName':_0x316a51[_0x9c0a08(0x103)]('name')||undefined});if(_0x31e06e[_0x9c0a08(0xf5)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x9c0a08(0x115)};const _0x52148a=[],_0x306c1e=[];for(const _0x117375 of _0x31e06e){try{_0x52148a[_0x9c0a08(0xd8)](await ensureSqlContent(_0x117375));}catch(_0x1a6487){_0x306c1e[_0x9c0a08(0xd8)]({'sqlCode':_0x117375[_0x9c0a08(0x110)],'error':_0x1a6487 instanceof Error?_0x1a6487[_0x9c0a08(0xf4)]:String(_0x1a6487)});}}if(_0x1e406e&&!_0x316a51[_0x9c0a08(0x10e)]){let _0x3ff22f=![];for(const _0x12ed1e of _0x52148a){const _0xe1b03f=detectModeFromSql(_0x12ed1e),_0x275fa5=_0x12ed1e[_0x9c0a08(0xdc)]?await getDbName(_0x316a51['appCode'],Number(_0x12ed1e['dbId']))[_0x9c0a08(0x108)](()=>undefined):undefined,_0x193a9c=buildLocalSqlFileContent({'sqlCode':_0x12ed1e['sqlCode'],'sqlName':_0x12ed1e[_0x9c0a08(0xfd)],'dbId':_0x12ed1e[_0x9c0a08(0xdc)]},ensureRemoteSqlContent(_0x12ed1e),{'dbName':_0x275fa5,'mode':_0xe1b03f,'syncedAt':new Date()[_0x9c0a08(0xf2)](),'description':_0x12ed1e[_0x9c0a08(0xe6)]}),_0x481fda=resolveLocalSqlFilePath(_0x6e37ce,_0x12ed1e[_0x9c0a08(0x110)],buildSqlLockEntry(_0x12ed1e,ensureRemoteSqlContent(_0x12ed1e),'',{'dbName':_0x275fa5}));if(await fileExists(_0x481fda)){const _0x50cd47=await readFile(_0x481fda,'utf8');if(!isEquivalentPulledSqlFile(_0x50cd47,_0x193a9c,_0xe1b03f)){_0x3ff22f=!![];break;}}}if(_0x3ff22f){const _0x4b2cba=await confirmForceOverwrite(_0x9c0a08(0x106));if(!_0x4b2cba)throw CliErrors['cancelled']('Force\x20pull\x20cancelled.');}}const _0x59a28c=cloneSqlLockData(_0x2c2bad),_0x9b09b0=_0x59a28c['apps'][_0x6e37ce['appCode']],_0x1176df=[],_0x24f404=[];for(const _0x42f7df of _0x52148a){const _0x597e22=_0x9b09b0[_0x9c0a08(0x10f)][_0x42f7df[_0x9c0a08(0x110)]],_0x483370=ensureRemoteSqlContent(_0x42f7df),_0x208c03=detectModeFromSql(_0x42f7df),_0x4dd589=_0x42f7df[_0x9c0a08(0xdc)]?await getDbName(_0x316a51[_0x9c0a08(0xe4)],Number(_0x42f7df['dbId']))[_0x9c0a08(0x108)](()=>undefined):undefined,_0x5d3e31=buildLocalSqlFileContent({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'sqlName':_0x42f7df[_0x9c0a08(0xfd)],'dbId':_0x42f7df[_0x9c0a08(0xdc)]},_0x483370,{'dbName':_0x4dd589,'mode':_0x208c03,'syncedAt':new Date()['toISOString'](),'description':_0x42f7df['description']}),_0x40cdeb=buildSqlLockEntry(_0x42f7df,_0x483370,computeSqlContentHash(_0x5d3e31),{'dbName':_0x4dd589}),_0xcdf2a1=_0x40cdeb[_0x9c0a08(0xee)],_0x753eea=join(_0x6e37ce['sqlRootDir'],_0xcdf2a1);try{if(await fileExists(_0x753eea)){const _0x21dcca=await readFile(_0x753eea,'utf8');if(isEquivalentPulledSqlFile(_0x21dcca,_0x5d3e31,_0x208c03)){_0x24f404['push']({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'reason':_0x9c0a08(0xeb)}),_0x9b09b0[_0x9c0a08(0x10f)][_0x42f7df['sqlCode']]={..._0x40cdeb,'hash':computeSqlContentHash(_0x21dcca),'path':_0xcdf2a1};continue;}if(!_0x1e406e){_0x24f404['push']({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'reason':_0x9c0a08(0xde)});continue;}}const _0x3622eb=_0x597e22?.[_0x9c0a08(0xee)]?join(_0x6e37ce[_0x9c0a08(0x100)],_0x597e22[_0x9c0a08(0xee)]):undefined;_0x3622eb&&_0x3622eb!==_0x753eea&&await fileExists(_0x3622eb)&&await rm(_0x3622eb,{'force':!![]}),await ensureParentDirectory(_0x753eea),await writeFile(_0x753eea,_0x5d3e31,_0x9c0a08(0x112)),_0x9b09b0[_0x9c0a08(0x10f)][_0x42f7df[_0x9c0a08(0x110)]]={..._0x40cdeb,'path':_0xcdf2a1},_0x1176df[_0x9c0a08(0xd8)]({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'filePath':_0x753eea});}catch(_0x43c82a){_0x306c1e['push']({'sqlCode':_0x42f7df[_0x9c0a08(0x110)],'error':_0x43c82a instanceof Error?_0x43c82a[_0x9c0a08(0xf4)]:String(_0x43c82a)});}}return _0x9b09b0[_0x9c0a08(0xef)]=new Date()[_0x9c0a08(0xf2)](),await writeSqlLockFile(_0x6e37ce[_0x9c0a08(0xfb)],_0x59a28c),{'ok':_0x306c1e[_0x9c0a08(0xf5)]===0x0,'data':{'pulled':_0x1176df,'skipped':_0x24f404,'failed':_0x306c1e},'message':_0x9c0a08(0xf1)+_0x1176df[_0x9c0a08(0xf5)]+_0x9c0a08(0x10b)+_0x24f404[_0x9c0a08(0xf5)]+_0x9c0a08(0xfe)+_0x306c1e[_0x9c0a08(0xf5)]+_0x9c0a08(0x101)};}};function detectModeFromSql(_0x2e6a9e){const _0xbb0826=a113_0x1cf11c,_0x4ddd9f=ensureRemoteSqlContent(_0x2e6a9e),_0x284bb4=stripLocalSqlMetadata(_0x4ddd9f,_0xbb0826(0xf3))['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0xbb0826(0xec)](_0x284bb4))return _0xbb0826(0xf3);return _0xbb0826(0x102);}function isEquivalentPulledSqlFile(_0x383418,_0x488c44,_0x35513b){return normalizePullComparableContent(_0x383418,_0x35513b)===normalizePullComparableContent(_0x488c44,_0x35513b);}function normalizePullComparableContent(_0x1e2416,_0x9e6759){const _0x6ffc27=a113_0x1cf11c,_0x474d1a=_0x1e2416[_0x6ffc27(0xd6)](/\r\n/g,'\x0a')['split']('\x0a'),_0x1344e0=_0x474d1a[_0x6ffc27(0xe0)](_0xa61ed=>!isSyncedAtMetadataLine(_0xa61ed,_0x9e6759));return _0x1344e0[_0x6ffc27(0xd7)]('\x0a');}function a113_0x5330(_0x59a9d2,_0x35e7c4){_0x59a9d2=_0x59a9d2-0xd6;const _0x137638=a113_0x1376();let _0x533057=_0x137638[_0x59a9d2];return _0x533057;}function isSyncedAtMetadataLine(_0xe37525,_0x26f000){const _0x23469b=a113_0x1cf11c;if(_0x26f000==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x23469b(0xec)](_0xe37525);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x23469b(0xec)](_0xe37525);}
|
|
1
|
+
const a120_0x35c6d6=a120_0x1940;(function(_0x5eaa10,_0x57dfea){const _0x23eac1=a120_0x1940,_0x3629d7=_0x5eaa10();while(!![]){try{const _0x17e947=-parseInt(_0x23eac1(0x1cb))/0x1*(-parseInt(_0x23eac1(0x1b8))/0x2)+-parseInt(_0x23eac1(0x1d3))/0x3*(parseInt(_0x23eac1(0x1ab))/0x4)+-parseInt(_0x23eac1(0x1b2))/0x5*(parseInt(_0x23eac1(0x1b3))/0x6)+-parseInt(_0x23eac1(0x1bb))/0x7*(-parseInt(_0x23eac1(0x1d1))/0x8)+parseInt(_0x23eac1(0x1b6))/0x9*(parseInt(_0x23eac1(0x1c5))/0xa)+parseInt(_0x23eac1(0x1d4))/0xb+-parseInt(_0x23eac1(0x1de))/0xc*(-parseInt(_0x23eac1(0x1d5))/0xd);if(_0x17e947===_0x57dfea)break;else _0x3629d7['push'](_0x3629d7['shift']());}catch(_0x18b9bb){_0x3629d7['push'](_0x3629d7['shift']());}}}(a120_0x5e29,0x83ff1));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';function a120_0x5e29(){const _0x42382f=['path','\x20SQL\x20file(s)\x20into\x20','replace','POST','12mTDDji','name','boolean','force','length','Force\x20pull\x20cancelled.','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','catch','dbId','88372caRGWY','No\x20remote\x20SQL\x20queries\x20matched.','pull','push','toISOString','appCode','description','205fXGZQE','122154XDkrGK','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','conflict','18EnSIQJ','string','724hySrwW','sqlContent','sqlcode','60396icusQv','split','sql','str','write','sqlName','mybatisXml','\x20failed','test','bool','3235580CPvbPG','sqlRootDir','totalCount','sqls','sqlCode','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','554Vvuqni','trimStart','Force\x20overwrite\x20local\x20unsynced\x20changes','filter','lockFilePath','unchanged','464lLENyx','utf8','72oJyTrC','4802050rAEgBQ','1572610UmyNvW','message','lastSync','sqlRoot','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)'];a120_0x5e29=function(){return _0x42382f;};return a120_0x5e29();}import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';function a120_0x1940(_0x507df6,_0x56357b){_0x507df6=_0x507df6-0x1ab;const _0x5e29b1=a120_0x5e29();let _0x194043=_0x5e29b1[_0x507df6];return _0x194043;}import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x4c80ac,_0x56c9dc){const _0xf475cd=a120_0x1940,_0x2801b1=[];let _0x1348b7=0x1;while(!![]){const _0x475940=await listSqlQueries(_0x4c80ac,{'currentPage':_0x1348b7,'pageSize':PAGE_SIZE,'sqlCode':_0x56c9dc['sqlCode'],'sqlName':_0x56c9dc['sqlName']}),_0x5caf7d=_0x475940['tableData']??[];_0x2801b1[_0xf475cd(0x1ae)](..._0x5caf7d);if(_0x5caf7d['length']===0x0)break;const _0x262b18=_0x475940['paging']?.[_0xf475cd(0x1c7)];if(_0x262b18!=null?_0x2801b1[_0xf475cd(0x1e2)]>=_0x262b18:_0x5caf7d['length']<PAGE_SIZE)break;_0x1348b7++;}return _0x2801b1;}async function ensureSqlContent(_0x451f8a){const _0x5b5f75=a120_0x1940;if(_0x451f8a[_0x5b5f75(0x1b9)]!=null&&String(_0x451f8a[_0x5b5f75(0x1b9)])[_0x5b5f75(0x1e2)]>0x0)return _0x451f8a;return getSqlQueryDetail(_0x451f8a[_0x5b5f75(0x1c9)]);}export const sqlPull={'service':a120_0x35c6d6(0x1bd),'command':a120_0x35c6d6(0x1ad),'description':a120_0x35c6d6(0x1ca),'risk':a120_0x35c6d6(0x1bf),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a120_0x35c6d6(0x1b7),'description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':a120_0x35c6d6(0x1e1),'type':a120_0x35c6d6(0x1e0),'description':a120_0x35c6d6(0x1cd)}],async 'dryRun'(_0x110400){const _0x35d47f=a120_0x35c6d6,_0x1c34eb=loadSqlProjectConfig(_0x110400[_0x35d47f(0x1b0)]),_0x13be98=await readSqlLockFile(_0x1c34eb[_0x35d47f(0x1cf)]),{appLock:_0x155a80}=ensureSqlLockScope(_0x13be98??createEmptySqlLock(),_0x1c34eb[_0x35d47f(0x1b0)],_0x1c34eb['sqlRoot'],_0x35d47f(0x1ad)),_0x4c4c50=await fetchAllSqlQueries(_0x110400[_0x35d47f(0x1b0)],{'sqlCode':_0x110400[_0x35d47f(0x1be)]('sqlcode')||undefined,'sqlName':_0x110400[_0x35d47f(0x1be)](_0x35d47f(0x1df))||undefined}),_0x4fd01f=[];for(const _0x325be1 of _0x4c4c50){const _0x3086a0=await ensureSqlContent(_0x325be1),_0xc0cc47=ensureRemoteSqlContent(_0x3086a0),_0xe0da03=detectModeFromSql(_0x3086a0),_0x4ba42f=_0x3086a0[_0x35d47f(0x1e6)]?await getDbName(_0x110400[_0x35d47f(0x1b0)],Number(_0x3086a0[_0x35d47f(0x1e6)]))[_0x35d47f(0x1e5)](()=>undefined):undefined,_0xe71fff=buildLocalSqlFileContent({'sqlCode':_0x3086a0['sqlCode'],'sqlName':_0x3086a0[_0x35d47f(0x1c0)],'dbId':_0x3086a0['dbId']},_0xc0cc47,{'dbName':_0x4ba42f,'mode':_0xe0da03,'syncedAt':new Date()[_0x35d47f(0x1af)](),'description':_0x3086a0[_0x35d47f(0x1b1)]}),_0x1ef527=buildSqlLockEntry(_0x3086a0,_0xc0cc47,'',{'dbName':_0x4ba42f}),_0x2cd9f1=resolveLocalSqlFilePath(_0x1c34eb,_0x3086a0[_0x35d47f(0x1c9)],_0x1ef527);let _0x53a67f='would_pull',_0x390314;if(await fileExists(_0x2cd9f1)){const _0x2bb270=await readFile(_0x2cd9f1,_0x35d47f(0x1d2));isEquivalentPulledSqlFile(_0x2bb270,_0xe71fff,_0xe0da03)?(_0x53a67f='skipped',_0x390314='unchanged'):(_0x53a67f=_0x35d47f(0x1b5),_0x390314=_0x35d47f(0x1d9));}_0x4fd01f['push']({'sqlCode':_0x3086a0[_0x35d47f(0x1c9)],'sqlName':_0x3086a0['sqlName'],'filePath':_0x2cd9f1,'status':_0x53a67f,'reason':_0x390314});}return{'method':_0x35d47f(0x1dd),'url':_0x35d47f(0x1b4),'body':{'appCode':_0x110400[_0x35d47f(0x1b0)],'sqlCode':_0x110400['str'](_0x35d47f(0x1ba))||null,'sqlName':_0x110400[_0x35d47f(0x1be)](_0x35d47f(0x1df))||null,'files':_0x4fd01f},'description':'Would\x20pull\x20'+_0x4fd01f[_0x35d47f(0x1e2)]+_0x35d47f(0x1db)+_0x1c34eb['sqlRootDir']};},async 'execute'(_0x4601d6){const _0x2ba128=a120_0x35c6d6,_0x530179=loadSqlProjectConfig(_0x4601d6[_0x2ba128(0x1b0)]),_0x5a9f8a=await readSqlLockFile(_0x530179[_0x2ba128(0x1cf)]),{lockData:_0xd3a96b,appLock:_0x56fe3d}=ensureSqlLockScope(_0x5a9f8a??createEmptySqlLock(),_0x530179[_0x2ba128(0x1b0)],_0x530179[_0x2ba128(0x1d8)],_0x2ba128(0x1ad)),_0x2174f5=_0x4601d6[_0x2ba128(0x1c4)](_0x2ba128(0x1e1)),_0x9c0ddc=await fetchAllSqlQueries(_0x4601d6['appCode'],{'sqlCode':_0x4601d6['str'](_0x2ba128(0x1ba))||undefined,'sqlName':_0x4601d6[_0x2ba128(0x1be)](_0x2ba128(0x1df))||undefined});if(_0x9c0ddc[_0x2ba128(0x1e2)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x2ba128(0x1ac)};const _0x43563e=[],_0x307f8d=[];for(const _0x1c56ee of _0x9c0ddc){try{_0x43563e[_0x2ba128(0x1ae)](await ensureSqlContent(_0x1c56ee));}catch(_0x46ca7a){_0x307f8d[_0x2ba128(0x1ae)]({'sqlCode':_0x1c56ee[_0x2ba128(0x1c9)],'error':_0x46ca7a instanceof Error?_0x46ca7a[_0x2ba128(0x1d6)]:String(_0x46ca7a)});}}if(_0x2174f5&&!_0x4601d6['nonInteractive']){let _0x21a231=![];for(const _0x11216a of _0x43563e){const _0x386f27=detectModeFromSql(_0x11216a),_0x421a4a=_0x11216a[_0x2ba128(0x1e6)]?await getDbName(_0x4601d6['appCode'],Number(_0x11216a['dbId']))[_0x2ba128(0x1e5)](()=>undefined):undefined,_0xeea0bb=buildLocalSqlFileContent({'sqlCode':_0x11216a[_0x2ba128(0x1c9)],'sqlName':_0x11216a[_0x2ba128(0x1c0)],'dbId':_0x11216a[_0x2ba128(0x1e6)]},ensureRemoteSqlContent(_0x11216a),{'dbName':_0x421a4a,'mode':_0x386f27,'syncedAt':new Date()[_0x2ba128(0x1af)](),'description':_0x11216a['description']}),_0x3a1684=resolveLocalSqlFilePath(_0x530179,_0x11216a[_0x2ba128(0x1c9)],buildSqlLockEntry(_0x11216a,ensureRemoteSqlContent(_0x11216a),'',{'dbName':_0x421a4a}));if(await fileExists(_0x3a1684)){const _0x18f281=await readFile(_0x3a1684,_0x2ba128(0x1d2));if(!isEquivalentPulledSqlFile(_0x18f281,_0xeea0bb,_0x386f27)){_0x21a231=!![];break;}}}if(_0x21a231){const _0x5ec03a=await confirmForceOverwrite(_0x2ba128(0x1e4));if(!_0x5ec03a)throw CliErrors['cancelled'](_0x2ba128(0x1e3));}}const _0x3e10ae=cloneSqlLockData(_0xd3a96b),_0x3859e9=_0x3e10ae['apps'][_0x530179[_0x2ba128(0x1b0)]],_0x4c9dd4=[],_0x35bd24=[];for(const _0xaff03e of _0x43563e){const _0x54d623=_0x3859e9['sqls'][_0xaff03e[_0x2ba128(0x1c9)]],_0x248746=ensureRemoteSqlContent(_0xaff03e),_0x4ee3c9=detectModeFromSql(_0xaff03e),_0x185c95=_0xaff03e['dbId']?await getDbName(_0x4601d6[_0x2ba128(0x1b0)],Number(_0xaff03e['dbId']))[_0x2ba128(0x1e5)](()=>undefined):undefined,_0x3566ca=buildLocalSqlFileContent({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'sqlName':_0xaff03e['sqlName'],'dbId':_0xaff03e['dbId']},_0x248746,{'dbName':_0x185c95,'mode':_0x4ee3c9,'syncedAt':new Date()['toISOString'](),'description':_0xaff03e[_0x2ba128(0x1b1)]}),_0x6aa465=buildSqlLockEntry(_0xaff03e,_0x248746,computeSqlContentHash(_0x3566ca),{'dbName':_0x185c95}),_0x52c433=_0x6aa465[_0x2ba128(0x1da)],_0x40e089=join(_0x530179[_0x2ba128(0x1c6)],_0x52c433);try{if(await fileExists(_0x40e089)){const _0x42f51b=await readFile(_0x40e089,_0x2ba128(0x1d2));if(isEquivalentPulledSqlFile(_0x42f51b,_0x3566ca,_0x4ee3c9)){_0x35bd24[_0x2ba128(0x1ae)]({'sqlCode':_0xaff03e['sqlCode'],'reason':_0x2ba128(0x1d0)}),_0x3859e9['sqls'][_0xaff03e[_0x2ba128(0x1c9)]]={..._0x6aa465,'hash':computeSqlContentHash(_0x42f51b),'path':_0x52c433};continue;}if(!_0x2174f5){_0x35bd24[_0x2ba128(0x1ae)]({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x5d72e2=_0x54d623?.[_0x2ba128(0x1da)]?join(_0x530179[_0x2ba128(0x1c6)],_0x54d623[_0x2ba128(0x1da)]):undefined;_0x5d72e2&&_0x5d72e2!==_0x40e089&&await fileExists(_0x5d72e2)&&await rm(_0x5d72e2,{'force':!![]}),await ensureParentDirectory(_0x40e089),await writeFile(_0x40e089,_0x3566ca,_0x2ba128(0x1d2)),_0x3859e9[_0x2ba128(0x1c8)][_0xaff03e['sqlCode']]={..._0x6aa465,'path':_0x52c433},_0x4c9dd4[_0x2ba128(0x1ae)]({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'filePath':_0x40e089});}catch(_0x420cad){_0x307f8d['push']({'sqlCode':_0xaff03e[_0x2ba128(0x1c9)],'error':_0x420cad instanceof Error?_0x420cad[_0x2ba128(0x1d6)]:String(_0x420cad)});}}return _0x3859e9[_0x2ba128(0x1d7)]=new Date()[_0x2ba128(0x1af)](),await writeSqlLockFile(_0x530179[_0x2ba128(0x1cf)],_0x3e10ae),{'ok':_0x307f8d[_0x2ba128(0x1e2)]===0x0,'data':{'pulled':_0x4c9dd4,'skipped':_0x35bd24,'failed':_0x307f8d},'message':'Pull\x20complete:\x20'+_0x4c9dd4['length']+'\x20written,\x20'+_0x35bd24[_0x2ba128(0x1e2)]+'\x20skipped,\x20'+_0x307f8d[_0x2ba128(0x1e2)]+_0x2ba128(0x1c2)};}};function detectModeFromSql(_0x5cb837){const _0x1d357c=a120_0x35c6d6,_0x20e4df=ensureRemoteSqlContent(_0x5cb837),_0x2dd971=stripLocalSqlMetadata(_0x20e4df,_0x1d357c(0x1c1))[_0x1d357c(0x1cc)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x2dd971))return _0x1d357c(0x1c1);return _0x1d357c(0x1bd);}function isEquivalentPulledSqlFile(_0x445b8a,_0x5a93f4,_0x5351ac){return normalizePullComparableContent(_0x445b8a,_0x5351ac)===normalizePullComparableContent(_0x5a93f4,_0x5351ac);}function normalizePullComparableContent(_0x30cfbc,_0x45be4a){const _0x3b6f5f=a120_0x35c6d6,_0x539a88=_0x30cfbc[_0x3b6f5f(0x1dc)](/\r\n/g,'\x0a')[_0x3b6f5f(0x1bc)]('\x0a'),_0x4bef43=_0x539a88[_0x3b6f5f(0x1ce)](_0x1477b9=>!isSyncedAtMetadataLine(_0x1477b9,_0x45be4a));return _0x4bef43['join']('\x0a');}function isSyncedAtMetadataLine(_0xb824fa,_0x37e9ea){const _0x472879=a120_0x35c6d6;if(_0x37e9ea===_0x472879(0x1c1))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x472879(0x1c3)](_0xb824fa);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x472879(0x1c3)](_0xb824fa);}
|
package/lib/commands/sql/push.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a114_0x3784ff=a114_0x11fa;(function(_0x10e803,_0x4f91b8){const _0x34ba39=a114_0x11fa,_0x1f8d5e=_0x10e803();while(!![]){try{const _0x326d4b=-parseInt(_0x34ba39(0x128))/0x1+-parseInt(_0x34ba39(0x14d))/0x2*(-parseInt(_0x34ba39(0x167))/0x3)+parseInt(_0x34ba39(0x149))/0x4+parseInt(_0x34ba39(0x12f))/0x5+parseInt(_0x34ba39(0x147))/0x6*(-parseInt(_0x34ba39(0x12d))/0x7)+parseInt(_0x34ba39(0x165))/0x8+parseInt(_0x34ba39(0x14e))/0x9*(-parseInt(_0x34ba39(0x159))/0xa);if(_0x326d4b===_0x4f91b8)break;else _0x1f8d5e['push'](_0x1f8d5e['shift']());}catch(_0x180f81){_0x1f8d5e['push'](_0x1f8d5e['shift']());}}}(a114_0x3bd9,0x256ef));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';function a114_0x3bd9(){const _0x113a91=['push','Local\x20SQL\x20not\x20found:\x20','utf8','str','remoteId','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','sqlRootDir','1362918VlVfAZ','join','1114980yZtifc','bool','lockFilePath','Local\x20directory\x20\x22','2gGCqnV','3618891yjzxEG','No\x20local\x20SQL\x20files\x20found.','force','path','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','validation','Push\x20complete:\x20','lastSync','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','get','version','10bYuVEo','has','sql','toISOString','unchanged','/smartapi/custom/updateUserCustomSql','replace','set','No\x20database\x20matches\x20local\x20directory\x20\x22','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','dbDirectory','sqlRoot','2019984pGoJEE','map','141159lLJLFs','entries','filePath','74142NQytMI','\x20skipped,\x20','sqlCode','dbId','boolean','7KDgnjY','length','1392125oDaOma','startsWith','projectRoot','POST','isFinite','mode','relativePath','filter','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','message','catch','dbName','\x20failed','Push\x20local\x20SQL\x20files\x20to\x20remote','appCode','sqlName','sqls'];a114_0x3bd9=function(){return _0x113a91;};return a114_0x3bd9();}async function getTargetSqlQueries(_0x6bac02,_0x255ee4,_0x59109c){const _0x5ecc73=a114_0x11fa,_0x4d8b38=await scanLocalSqlQueries(_0x6bac02),_0x366a55=new Map();for(const _0x103a1e of _0x4d8b38){if(_0x59109c&&_0x103a1e[_0x5ecc73(0x12a)]!==_0x59109c)continue;const _0x1ec6a2=_0x366a55[_0x5ecc73(0x157)](_0x103a1e[_0x5ecc73(0x12a)])??[];_0x1ec6a2['push'](_0x103a1e),_0x366a55[_0x5ecc73(0x160)](_0x103a1e[_0x5ecc73(0x12a)],_0x1ec6a2);}if(_0x59109c&&!_0x366a55[_0x5ecc73(0x15a)](_0x59109c))throw CliErrors[_0x5ecc73(0x153)](_0x5ecc73(0x141)+_0x59109c);const _0x342b0f=[];for(const [_0x4073c0,_0x1598f2]of _0x366a55[_0x5ecc73(0x168)]()){if(_0x1598f2['length']===0x1){_0x342b0f['push'](_0x1598f2[0x0]);continue;}const _0x31c4b3=_0x255ee4[_0x5ecc73(0x13f)][_0x4073c0],_0x2be22d=_0x31c4b3?.[_0x5ecc73(0x151)],_0x5e6add=_0x2be22d?_0x1598f2['filter'](_0x2d0f7a=>_0x2d0f7a[_0x5ecc73(0x135)]!==_0x2be22d):_0x1598f2;if(_0x31c4b3&&_0x5e6add[_0x5ecc73(0x12e)]===0x1){_0x342b0f[_0x5ecc73(0x140)](_0x5e6add[0x0]);continue;}throw CliErrors['validation'](_0x5ecc73(0x137)+_0x4073c0+_0x5ecc73(0x152));}return _0x342b0f;}export const sqlPush={'service':a114_0x3784ff(0x15b),'command':a114_0x3784ff(0x140),'description':a114_0x3784ff(0x13c),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a114_0x3784ff(0x150),'type':a114_0x3784ff(0x12c),'description':'Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock'}],async 'dryRun'(_0xae24e2){const _0x54520d=a114_0x3784ff,_0x2eb805=loadSqlProjectConfig(_0xae24e2['appCode']),_0x374620=await readSqlLockFile(_0x2eb805['lockFilePath']),{appLock:_0x22f2ca}=ensureSqlLockScope(_0x374620??createEmptySqlLock(),_0xae24e2[_0x54520d(0x13d)],_0x2eb805[_0x54520d(0x164)],'push'),_0x176ae7=await getTargetSqlQueries(_0x2eb805,_0x22f2ca,_0xae24e2[_0x54520d(0x143)]('sqlcode')||undefined),_0x650949=[];for(const _0x5e8ff5 of _0x176ae7){const _0x54f815=await computeSqlFileHash(_0x5e8ff5[_0x54520d(0x127)]),_0x59ef96=_0x22f2ca[_0x54520d(0x13f)][_0x5e8ff5['sqlCode']],_0x18e0d6=!!_0x59ef96&&(_0x59ef96['path']!==_0x5e8ff5['relativePath']||!!_0x5e8ff5[_0x54520d(0x13e)]&&_0x59ef96[_0x54520d(0x13e)]!==_0x5e8ff5[_0x54520d(0x13e)]);if(!_0xae24e2[_0x54520d(0x14a)]('force')&&_0x59ef96&&_0x59ef96['hash']===_0x54f815&&!_0x18e0d6)continue;_0x650949[_0x54520d(0x140)](_0x5e8ff5[_0x54520d(0x12a)]);}return{'method':_0x54520d(0x132),'url':_0x54520d(0x15e),'body':{'sqlCodes':_0x650949,'appCode':_0xae24e2[_0x54520d(0x13d)]},'description':'Would\x20push\x20'+_0x650949[_0x54520d(0x12e)]+'\x20SQL\x20file(s)'};},async 'execute'(_0x55eb12){const _0x23110b=a114_0x3784ff,_0x2d4210=loadSqlProjectConfig(_0x55eb12[_0x23110b(0x13d)]),_0x8d3261=await readSqlLockFile(_0x2d4210[_0x23110b(0x14b)]),{lockData:_0x24f8ee,appLock:_0x24cba2}=ensureSqlLockScope(_0x8d3261??createEmptySqlLock(),_0x55eb12[_0x23110b(0x13d)],_0x2d4210[_0x23110b(0x164)],_0x23110b(0x140)),_0x17fd20=await getTargetSqlQueries(_0x2d4210,_0x24cba2,_0x55eb12[_0x23110b(0x143)]('sqlcode')||undefined);if(_0x17fd20['length']===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':_0x23110b(0x14f)};const _0x460f67=[],_0x5c092e=[],_0x2f3fb3=[];for(const _0x4d2200 of _0x17fd20){const _0x408959=_0x24cba2[_0x23110b(0x13f)][_0x4d2200[_0x23110b(0x12a)]];if(!_0x408959){_0x2f3fb3[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'error':_0x23110b(0x145)});continue;}try{const _0x46bf55=await computeSqlFileHash(_0x4d2200[_0x23110b(0x127)]),_0x3ba9d4=_0x408959['path']!==_0x4d2200[_0x23110b(0x135)]||!!_0x4d2200[_0x23110b(0x13e)]&&_0x408959[_0x23110b(0x13e)]!==_0x4d2200['sqlName'];if(!_0x55eb12['bool'](_0x23110b(0x150))&&_0x408959['hash']===_0x46bf55&&!_0x3ba9d4){_0x5c092e['push']({'sqlCode':_0x4d2200['sqlCode'],'reason':_0x23110b(0x15d)});continue;}if(_0x408959['version']==null){_0x2f3fb3[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'error':_0x23110b(0x156)});continue;}const _0x2f8639=await readFile(_0x4d2200[_0x23110b(0x127)],_0x23110b(0x142)),_0x15907b=stripLocalSqlMetadata(_0x2f8639,_0x4d2200[_0x23110b(0x134)]),_0x47c682=_0x4d2200[_0x23110b(0x13e)]||_0x408959['sqlName'],_0x48e898=await resolveTargetDbBinding(_0x55eb12[_0x23110b(0x13d)],_0x4d2200,_0x408959),_0x113c06=await updateSqlQuery({'id':_0x408959[_0x23110b(0x144)],'appCode':_0x55eb12[_0x23110b(0x13d)],'sqlCode':_0x4d2200['sqlCode'],'sqlName':_0x47c682,'dbId':_0x48e898[_0x23110b(0x12b)],'version':_0x408959[_0x23110b(0x158)],'sqlContent':_0x15907b,'sqlConfig':_0x408959['sqlConfig']??undefined}),_0x946e9e=_0x113c06[_0x23110b(0x12b)]?await getDbName(_0x55eb12[_0x23110b(0x13d)],Number(_0x113c06['dbId']))[_0x23110b(0x139)](()=>_0x48e898[_0x23110b(0x13a)]):_0x48e898[_0x23110b(0x13a)];_0x24cba2[_0x23110b(0x13f)][_0x4d2200[_0x23110b(0x12a)]]={...buildSqlLockEntry(_0x113c06,_0x15907b,_0x46bf55,{'dbName':_0x946e9e}),'path':_0x4d2200['relativePath'],'mode':_0x408959[_0x23110b(0x134)]},await archivePreviousSqlFileIfNeeded(_0x2d4210,_0x408959[_0x23110b(0x151)],_0x4d2200[_0x23110b(0x135)]),_0x460f67[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'remoteId':_0x408959[_0x23110b(0x144)]});}catch(_0x1ac4fe){_0x2f3fb3[_0x23110b(0x140)]({'sqlCode':_0x4d2200[_0x23110b(0x12a)],'error':_0x1ac4fe instanceof Error?_0x1ac4fe[_0x23110b(0x138)]:String(_0x1ac4fe)});}}return _0x24cba2[_0x23110b(0x155)]=new Date()['toISOString'](),await writeSqlLockFile(_0x2d4210[_0x23110b(0x14b)],_0x24f8ee),{'ok':_0x2f3fb3[_0x23110b(0x12e)]===0x0,'data':{'pushed':_0x460f67,'skipped':_0x5c092e,'failed':_0x2f3fb3},'message':_0x23110b(0x154)+_0x460f67['length']+'\x20pushed,\x20'+_0x5c092e[_0x23110b(0x12e)]+_0x23110b(0x129)+_0x2f3fb3[_0x23110b(0x12e)]+_0x23110b(0x13b)};}};async function archivePreviousSqlFileIfNeeded(_0x5a804b,_0x376b9f,_0x578da5){const _0x270851=a114_0x3784ff;if(!_0x376b9f||_0x376b9f===_0x578da5)return;const _0x880b75=join(_0x5a804b[_0x270851(0x146)],_0x376b9f);if(!await fileExists(_0x880b75))return;const _0x4ff63a=await moveToTrash(_0x5a804b[_0x270851(0x131)],_0x5a804b['trashDir'],_0x880b75);await cleanupEmptyDirectories(dirname(_0x880b75),_0x5a804b[_0x270851(0x146)]),void _0x4ff63a;}async function moveToTrash(_0x5f1891,_0x356532,_0x35490e){const _0x41d57a=a114_0x3784ff,_0x136a27=new Date()[_0x41d57a(0x15c)]()[_0x41d57a(0x15f)](/[:.]/g,'-'),_0x3d7b5c=relative(_0x5f1891,_0x35490e),_0x3bba32=join(_0x356532,_0x136a27,_0x3d7b5c);return await mkdir(dirname(_0x3bba32),{'recursive':!![]}),await rename(_0x35490e,_0x3bba32),_0x3bba32;}async function cleanupEmptyDirectories(_0x3207f5,_0xc6b403){const _0x3b35d5=a114_0x3784ff;let _0x56a227=resolve(_0x3207f5);const _0x17ee94=resolve(_0xc6b403);while(_0x56a227[_0x3b35d5(0x130)](''+_0x17ee94+sep)||_0x56a227===_0x17ee94){if(_0x56a227===_0x17ee94)return;try{const _0x4464f4=await readdir(_0x56a227);if(_0x4464f4[_0x3b35d5(0x12e)]>0x0)return;await rmdir(_0x56a227);}catch{return;}_0x56a227=dirname(_0x56a227);}}async function resolveTargetDbBinding(_0xb10ac5,_0x162174,_0x30a04b){const _0x29656e=a114_0x3784ff,_0x1e7140=_0x162174[_0x29656e(0x163)];if(!_0x1e7140)return{'dbId':_0x30a04b[_0x29656e(0x12b)],'dbName':_0x30a04b[_0x29656e(0x13a)]};const _0x44fbbb=buildDbDirectoryName(_0x30a04b[_0x29656e(0x13a)],_0x30a04b['dbId']);if(_0x1e7140===_0x44fbbb)return{'dbId':_0x30a04b[_0x29656e(0x12b)],'dbName':_0x30a04b[_0x29656e(0x13a)]};const _0x349938=parseExplicitDbDirectory(_0x1e7140);if(_0x349938!=null)return{'dbId':_0x349938,'dbName':await getDbName(_0xb10ac5,_0x349938)[_0x29656e(0x139)](()=>undefined)};const _0x386971=await listDatabases(_0xb10ac5),_0x81d062=_0x386971[_0x29656e(0x136)](_0x1411e1=>buildDbDirectoryName(_0x1411e1[_0x29656e(0x13a)],_0x1411e1['dbId'])===_0x1e7140);if(_0x81d062['length']===0x1)return{'dbId':_0x81d062[0x0][_0x29656e(0x12b)],'dbName':_0x81d062[0x0]['dbName']};if(_0x81d062[_0x29656e(0x12e)]===0x0)throw CliErrors['validation'](_0x29656e(0x161)+_0x1e7140+'\x22\x20for\x20sqlCode\x20'+_0x162174[_0x29656e(0x12a)]+'.');const _0x414b1c=_0x81d062[_0x29656e(0x166)](_0x436130=>_0x436130['dbName']+'\x20('+_0x436130['dbId']+')')[_0x29656e(0x148)](',\x20');throw CliErrors['validation'](_0x29656e(0x14c)+_0x1e7140+_0x29656e(0x162)+_0x162174[_0x29656e(0x12a)]+':\x20'+_0x414b1c);}function a114_0x11fa(_0x4f5324,_0x4e920e){_0x4f5324=_0x4f5324-0x127;const _0x3bd906=a114_0x3bd9();let _0x11fabb=_0x3bd906[_0x4f5324];return _0x11fabb;}function parseExplicitDbDirectory(_0x3a2ec0){const _0x50f71d=a114_0x3784ff,_0x523c29=/^db-(\d+)$/['exec'](_0x3a2ec0);if(!_0x523c29)return null;const _0x7f8b08=Number(_0x523c29[0x1]);return Number[_0x50f71d(0x133)](_0x7f8b08)&&_0x7f8b08>0x0?_0x7f8b08:null;}
|
|
1
|
+
function a121_0x2ab4(_0x3a8a34,_0x40c71d){_0x3a8a34=_0x3a8a34-0xea;const _0x3c0447=a121_0x3c04();let _0x2ab48d=_0x3c0447[_0x3a8a34];return _0x2ab48d;}function a121_0x3c04(){const _0x947a5=['Would\x20push\x20','sqlCode','replace','143595uBFbEr','sqlConfig','27377qfHSmZ','sqlRootDir','/smartapi/custom/updateUserCustomSql','catch','set','force','Multiple\x20local\x20SQL\x20files\x20found\x20for\x20sqlCode\x20','12iNUcEC','No\x20database\x20matches\x20local\x20directory\x20\x22','Push\x20complete:\x20','remoteId','missing\x20remote\x20version;\x20run\x20`rabetbase\x20sql\x20pull`\x20to\x20refresh\x20version\x20info\x20first','Local\x20SQL\x20not\x20found:\x20','entries','\x22\x20for\x20sqlCode\x20','length','exec','validation','version','sqlRoot','appCode','startsWith','sql','path','lastSync','Force\x20push\x20even\x20if\x20local\x20hash\x20matches\x20lock','\x20SQL\x20file(s)','\x20skipped,\x20','140bJlbTd','toISOString','hash','117845SQlqfN','get','sqlName','local\x20SQL\x20is\x20not\x20tracked\x20by\x20sql.lock.json;\x20use\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first','10lkkPkW','message','relativePath','filter','map','has','join','295815XFCWoB','dbName','Push\x20local\x20SQL\x20files\x20to\x20remote','POST','174jpatEb','bool','filePath','313893TjTInt','utf8','isFinite','sqlcode','mode','252JwUzxR','.\x20Keep\x20only\x20one\x20file\x20under\x20its\x20sqlCode\x20directory\x20before\x20pushing.','dbDirectory','\x22\x20matches\x20multiple\x20databases\x20for\x20sqlCode\x20','trashDir','unchanged','dbId','lockFilePath','sqls','24IyTxLc','push','\x20failed','55913loLOhK','45077tEeuHt'];a121_0x3c04=function(){return _0x947a5;};return a121_0x3c04();}const a121_0x39bd3c=a121_0x2ab4;(function(_0x5698b2,_0x3193df){const _0x3e45ea=a121_0x2ab4,_0x164957=_0x5698b2();while(!![]){try{const _0x2e12ae=parseInt(_0x3e45ea(0xed))/0x1*(parseInt(_0x3e45ea(0x116))/0x2)+-parseInt(_0x3e45ea(0x124))/0x3*(parseInt(_0x3e45ea(0xfa))/0x4)+parseInt(_0x3e45ea(0x11d))/0x5+-parseInt(_0x3e45ea(0x121))/0x6*(parseInt(_0x3e45ea(0xf3))/0x7)+-parseInt(_0x3e45ea(0x132))/0x8*(-parseInt(_0x3e45ea(0xf1))/0x9)+parseInt(_0x3e45ea(0x10f))/0xa*(parseInt(_0x3e45ea(0xec))/0xb)+-parseInt(_0x3e45ea(0x129))/0xc*(-parseInt(_0x3e45ea(0x112))/0xd);if(_0x2e12ae===_0x3193df)break;else _0x164957['push'](_0x164957['shift']());}catch(_0x25aecd){_0x164957['push'](_0x164957['shift']());}}}(a121_0x3c04,0x28ae4));import{mkdir,readFile,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{updateSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{fileExists}from'../../core/bff/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildSqlLockEntry,stripLocalSqlMetadata}from'./shared.js';import{buildDbDirectoryName}from'../../core/sql-sync/utils.js';async function getTargetSqlQueries(_0x2b4629,_0x15bfbf,_0x132ea5){const _0x2de150=a121_0x2ab4,_0x1d977b=await scanLocalSqlQueries(_0x2b4629),_0x18d172=new Map();for(const _0xa740ed of _0x1d977b){if(_0x132ea5&&_0xa740ed[_0x2de150(0xef)]!==_0x132ea5)continue;const _0x132ef1=_0x18d172[_0x2de150(0x113)](_0xa740ed['sqlCode'])??[];_0x132ef1[_0x2de150(0xea)](_0xa740ed),_0x18d172[_0x2de150(0xf7)](_0xa740ed[_0x2de150(0xef)],_0x132ef1);}if(_0x132ea5&&!_0x18d172[_0x2de150(0x11b)](_0x132ea5))throw CliErrors['validation'](_0x2de150(0xff)+_0x132ea5);const _0x36dc20=[];for(const [_0x574e01,_0x2b0632]of _0x18d172[_0x2de150(0x100)]()){if(_0x2b0632[_0x2de150(0x102)]===0x1){_0x36dc20[_0x2de150(0xea)](_0x2b0632[0x0]);continue;}const _0x2eace0=_0x15bfbf[_0x2de150(0x131)][_0x574e01],_0x3a37c8=_0x2eace0?.['path'],_0x1662ea=_0x3a37c8?_0x2b0632[_0x2de150(0x119)](_0x82d99c=>_0x82d99c[_0x2de150(0x118)]!==_0x3a37c8):_0x2b0632;if(_0x2eace0&&_0x1662ea['length']===0x1){_0x36dc20[_0x2de150(0xea)](_0x1662ea[0x0]);continue;}throw CliErrors[_0x2de150(0x104)](_0x2de150(0xf9)+_0x574e01+_0x2de150(0x12a));}return _0x36dc20;}export const sqlPush={'service':a121_0x39bd3c(0x109),'command':'push','description':a121_0x39bd3c(0x11f),'risk':'high-risk-write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'force','type':'boolean','description':a121_0x39bd3c(0x10c)}],async 'dryRun'(_0x24847e){const _0x1a108e=a121_0x39bd3c,_0x29a9a2=loadSqlProjectConfig(_0x24847e['appCode']),_0x142d29=await readSqlLockFile(_0x29a9a2[_0x1a108e(0x130)]),{appLock:_0x39a974}=ensureSqlLockScope(_0x142d29??createEmptySqlLock(),_0x24847e[_0x1a108e(0x107)],_0x29a9a2[_0x1a108e(0x106)],_0x1a108e(0xea)),_0x119d49=await getTargetSqlQueries(_0x29a9a2,_0x39a974,_0x24847e['str'](_0x1a108e(0x127))||undefined),_0x1c0d12=[];for(const _0x4f4c29 of _0x119d49){const _0x2b82e6=await computeSqlFileHash(_0x4f4c29[_0x1a108e(0x123)]),_0x1a7d5c=_0x39a974[_0x1a108e(0x131)][_0x4f4c29[_0x1a108e(0xef)]],_0x48f8a3=!!_0x1a7d5c&&(_0x1a7d5c[_0x1a108e(0x10a)]!==_0x4f4c29['relativePath']||!!_0x4f4c29[_0x1a108e(0x114)]&&_0x1a7d5c[_0x1a108e(0x114)]!==_0x4f4c29['sqlName']);if(!_0x24847e[_0x1a108e(0x122)](_0x1a108e(0xf8))&&_0x1a7d5c&&_0x1a7d5c[_0x1a108e(0x111)]===_0x2b82e6&&!_0x48f8a3)continue;_0x1c0d12[_0x1a108e(0xea)](_0x4f4c29[_0x1a108e(0xef)]);}return{'method':_0x1a108e(0x120),'url':_0x1a108e(0xf5),'body':{'sqlCodes':_0x1c0d12,'appCode':_0x24847e[_0x1a108e(0x107)]},'description':_0x1a108e(0xee)+_0x1c0d12[_0x1a108e(0x102)]+_0x1a108e(0x10d)};},async 'execute'(_0x18f806){const _0x227226=a121_0x39bd3c,_0x10189e=loadSqlProjectConfig(_0x18f806[_0x227226(0x107)]),_0x1cb3c8=await readSqlLockFile(_0x10189e[_0x227226(0x130)]),{lockData:_0x566ef5,appLock:_0x28ba13}=ensureSqlLockScope(_0x1cb3c8??createEmptySqlLock(),_0x18f806[_0x227226(0x107)],_0x10189e[_0x227226(0x106)],_0x227226(0xea)),_0x310b7f=await getTargetSqlQueries(_0x10189e,_0x28ba13,_0x18f806['str']('sqlcode')||undefined);if(_0x310b7f[_0x227226(0x102)]===0x0)return{'ok':!![],'data':{'pushed':[],'skipped':[],'failed':[]},'message':'No\x20local\x20SQL\x20files\x20found.'};const _0x230002=[],_0xc61247=[],_0x38aa26=[];for(const _0x55ac55 of _0x310b7f){const _0x31af8c=_0x28ba13[_0x227226(0x131)][_0x55ac55[_0x227226(0xef)]];if(!_0x31af8c){_0x38aa26[_0x227226(0xea)]({'sqlCode':_0x55ac55[_0x227226(0xef)],'error':_0x227226(0x115)});continue;}try{const _0x1394ca=await computeSqlFileHash(_0x55ac55[_0x227226(0x123)]),_0x12e999=_0x31af8c[_0x227226(0x10a)]!==_0x55ac55[_0x227226(0x118)]||!!_0x55ac55[_0x227226(0x114)]&&_0x31af8c[_0x227226(0x114)]!==_0x55ac55[_0x227226(0x114)];if(!_0x18f806[_0x227226(0x122)](_0x227226(0xf8))&&_0x31af8c['hash']===_0x1394ca&&!_0x12e999){_0xc61247[_0x227226(0xea)]({'sqlCode':_0x55ac55['sqlCode'],'reason':_0x227226(0x12e)});continue;}if(_0x31af8c[_0x227226(0x105)]==null){_0x38aa26['push']({'sqlCode':_0x55ac55['sqlCode'],'error':_0x227226(0xfe)});continue;}const _0x253c5c=await readFile(_0x55ac55['filePath'],_0x227226(0x125)),_0x463df1=stripLocalSqlMetadata(_0x253c5c,_0x55ac55[_0x227226(0x128)]),_0x490cc7=_0x55ac55[_0x227226(0x114)]||_0x31af8c[_0x227226(0x114)],_0xb15e9b=await resolveTargetDbBinding(_0x18f806[_0x227226(0x107)],_0x55ac55,_0x31af8c),_0x2e159f=await updateSqlQuery({'id':_0x31af8c[_0x227226(0xfd)],'appCode':_0x18f806[_0x227226(0x107)],'sqlCode':_0x55ac55[_0x227226(0xef)],'sqlName':_0x490cc7,'dbId':_0xb15e9b[_0x227226(0x12f)],'version':_0x31af8c[_0x227226(0x105)],'sqlContent':_0x463df1,'sqlConfig':_0x31af8c[_0x227226(0xf2)]??undefined}),_0x3dc808=_0x2e159f['dbId']?await getDbName(_0x18f806[_0x227226(0x107)],Number(_0x2e159f[_0x227226(0x12f)]))[_0x227226(0xf6)](()=>_0xb15e9b[_0x227226(0x11e)]):_0xb15e9b[_0x227226(0x11e)];_0x28ba13[_0x227226(0x131)][_0x55ac55[_0x227226(0xef)]]={...buildSqlLockEntry(_0x2e159f,_0x463df1,_0x1394ca,{'dbName':_0x3dc808}),'path':_0x55ac55[_0x227226(0x118)],'mode':_0x31af8c['mode']},await archivePreviousSqlFileIfNeeded(_0x10189e,_0x31af8c[_0x227226(0x10a)],_0x55ac55[_0x227226(0x118)]),_0x230002['push']({'sqlCode':_0x55ac55['sqlCode'],'remoteId':_0x31af8c[_0x227226(0xfd)]});}catch(_0x45e184){_0x38aa26[_0x227226(0xea)]({'sqlCode':_0x55ac55[_0x227226(0xef)],'error':_0x45e184 instanceof Error?_0x45e184[_0x227226(0x117)]:String(_0x45e184)});}}return _0x28ba13[_0x227226(0x10b)]=new Date()['toISOString'](),await writeSqlLockFile(_0x10189e[_0x227226(0x130)],_0x566ef5),{'ok':_0x38aa26['length']===0x0,'data':{'pushed':_0x230002,'skipped':_0xc61247,'failed':_0x38aa26},'message':_0x227226(0xfc)+_0x230002['length']+'\x20pushed,\x20'+_0xc61247[_0x227226(0x102)]+_0x227226(0x10e)+_0x38aa26[_0x227226(0x102)]+_0x227226(0xeb)};}};async function archivePreviousSqlFileIfNeeded(_0x228daf,_0x1ab527,_0x56444c){const _0x19ef4c=a121_0x39bd3c;if(!_0x1ab527||_0x1ab527===_0x56444c)return;const _0x37acad=join(_0x228daf[_0x19ef4c(0xf4)],_0x1ab527);if(!await fileExists(_0x37acad))return;const _0x2a07b4=await moveToTrash(_0x228daf['projectRoot'],_0x228daf[_0x19ef4c(0x12d)],_0x37acad);await cleanupEmptyDirectories(dirname(_0x37acad),_0x228daf[_0x19ef4c(0xf4)]),void _0x2a07b4;}async function moveToTrash(_0x15c945,_0x1a7ff9,_0xdd613a){const _0x4eba33=a121_0x39bd3c,_0x10dafd=new Date()[_0x4eba33(0x110)]()[_0x4eba33(0xf0)](/[:.]/g,'-'),_0x2e88ba=relative(_0x15c945,_0xdd613a),_0x2f6a2f=join(_0x1a7ff9,_0x10dafd,_0x2e88ba);return await mkdir(dirname(_0x2f6a2f),{'recursive':!![]}),await rename(_0xdd613a,_0x2f6a2f),_0x2f6a2f;}async function cleanupEmptyDirectories(_0x16bb3f,_0x43b63a){const _0x4de4cc=a121_0x39bd3c;let _0x206c94=resolve(_0x16bb3f);const _0x3a4452=resolve(_0x43b63a);while(_0x206c94[_0x4de4cc(0x108)](''+_0x3a4452+sep)||_0x206c94===_0x3a4452){if(_0x206c94===_0x3a4452)return;try{const _0x56c81b=await readdir(_0x206c94);if(_0x56c81b[_0x4de4cc(0x102)]>0x0)return;await rmdir(_0x206c94);}catch{return;}_0x206c94=dirname(_0x206c94);}}async function resolveTargetDbBinding(_0x31b4f6,_0x2a76ef,_0x374a91){const _0x2c5b18=a121_0x39bd3c,_0x35bae8=_0x2a76ef[_0x2c5b18(0x12b)];if(!_0x35bae8)return{'dbId':_0x374a91['dbId'],'dbName':_0x374a91[_0x2c5b18(0x11e)]};const _0x2a4a79=buildDbDirectoryName(_0x374a91['dbName'],_0x374a91['dbId']);if(_0x35bae8===_0x2a4a79)return{'dbId':_0x374a91[_0x2c5b18(0x12f)],'dbName':_0x374a91['dbName']};const _0x9db42e=parseExplicitDbDirectory(_0x35bae8);if(_0x9db42e!=null)return{'dbId':_0x9db42e,'dbName':await getDbName(_0x31b4f6,_0x9db42e)[_0x2c5b18(0xf6)](()=>undefined)};const _0x37074f=await listDatabases(_0x31b4f6),_0xdafd01=_0x37074f[_0x2c5b18(0x119)](_0x44d976=>buildDbDirectoryName(_0x44d976['dbName'],_0x44d976[_0x2c5b18(0x12f)])===_0x35bae8);if(_0xdafd01[_0x2c5b18(0x102)]===0x1)return{'dbId':_0xdafd01[0x0][_0x2c5b18(0x12f)],'dbName':_0xdafd01[0x0]['dbName']};if(_0xdafd01[_0x2c5b18(0x102)]===0x0)throw CliErrors[_0x2c5b18(0x104)](_0x2c5b18(0xfb)+_0x35bae8+_0x2c5b18(0x101)+_0x2a76ef[_0x2c5b18(0xef)]+'.');const _0x976dc2=_0xdafd01[_0x2c5b18(0x11a)](_0x4d94c2=>_0x4d94c2[_0x2c5b18(0x11e)]+'\x20('+_0x4d94c2[_0x2c5b18(0x12f)]+')')[_0x2c5b18(0x11c)](',\x20');throw CliErrors[_0x2c5b18(0x104)]('Local\x20directory\x20\x22'+_0x35bae8+_0x2c5b18(0x12c)+_0x2a76ef[_0x2c5b18(0xef)]+':\x20'+_0x976dc2);}function parseExplicitDbDirectory(_0x417c4b){const _0x9a4bcf=a121_0x39bd3c,_0x5a9b43=/^db-(\d+)$/[_0x9a4bcf(0x103)](_0x417c4b);if(!_0x5a9b43)return null;const _0x13a202=Number(_0x5a9b43[0x1]);return Number[_0x9a4bcf(0x126)](_0x13a202)&&_0x13a202>0x0?_0x13a202:null;}
|
package/lib/commands/sql/save.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a122_0x18fdbf=a122_0x4b9e;(function(_0x4ca823,_0xbb0d11){const _0x3ca9c3=a122_0x4b9e,_0x3270c5=_0x4ca823();while(!![]){try{const _0x16d526=-parseInt(_0x3ca9c3(0x1e0))/0x1*(-parseInt(_0x3ca9c3(0x1d4))/0x2)+-parseInt(_0x3ca9c3(0x1e6))/0x3*(-parseInt(_0x3ca9c3(0x1eb))/0x4)+-parseInt(_0x3ca9c3(0x1e5))/0x5*(-parseInt(_0x3ca9c3(0x1d9))/0x6)+parseInt(_0x3ca9c3(0x1d6))/0x7+parseInt(_0x3ca9c3(0x1e9))/0x8+-parseInt(_0x3ca9c3(0x1e7))/0x9+-parseInt(_0x3ca9c3(0x1d5))/0xa;if(_0x16d526===_0xbb0d11)break;else _0x3270c5['push'](_0x3270c5['shift']());}catch(_0x8aeb55){_0x3270c5['push'](_0x3270c5['shift']());}}}(a122_0x4533,0x92da6));function a122_0x4b9e(_0x359514,_0x196238){_0x359514=_0x359514-0x1d4;const _0x4533e5=a122_0x4533();let _0x4b9e70=_0x4533e5[_0x359514];return _0x4b9e70;}import{CliErrors}from'../../errors.js';function a122_0x4533(){const _0x4eab46=['SQL\x20query\x20display\x20name','95440JTjhYi','15UtuaTg','3446352Kadloh','string','3359056uRnzqy','write','317452QbdGpA','27358xDboyM','19777820UOujGW','5057850bOlWVK','`rabetbase\x20sql\x20save`\x20has\x20been\x20deprecated.','validation','228TdesEK','Update\x20existing\x20SQL\x20by\x20editing\x20the\x20synced\x20file\x20under\x20`.rabetbase/sql/<appCode>/<dbName|db-<id>>/`\x20and\x20then\x20running\x20`rabetbase\x20sql\x20push\x20--sqlcode\x20<code>\x20--yes`.','Path\x20to\x20the\x20SQL\x20file','sql','Create\x20new\x20SQL\x20with\x20`rabetbase\x20sql\x20create\x20--name\x20<name>\x20--db-id\x20<id>\x20--mode\x20sql|mybatisXml`.','save','Target\x20database\x20—\x20accepts\x20a\x20numeric\x20ID\x20or\x20database\x20name\x20(e.g.\x20ecommerce_db)','51vSzXtH','description','file','sqlname'];a122_0x4533=function(){return _0x4eab46;};return a122_0x4533();}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';const SQL_SAVE_DEPRECATED_HINT=[a122_0x18fdbf(0x1d7),a122_0x18fdbf(0x1dd),a122_0x18fdbf(0x1da)]['join']('\x0a');export const sqlSave={'service':a122_0x18fdbf(0x1dc),'command':a122_0x18fdbf(0x1de),'description':'Deprecated:\x20use\x20sql\x20create\x20to\x20create\x20and\x20sql\x20push\x20to\x20update','risk':a122_0x18fdbf(0x1ea),'requiresAuth':![],'requiresAppCode':![],'flags':[{'name':a122_0x18fdbf(0x1e2),'type':'string','required':!![],'description':a122_0x18fdbf(0x1db)},SQLCODE_FLAG_OPTIONAL,{'name':a122_0x18fdbf(0x1e3),'type':a122_0x18fdbf(0x1e8),'description':a122_0x18fdbf(0x1e4)},{'name':'db','type':a122_0x18fdbf(0x1e8),'description':a122_0x18fdbf(0x1df)},{'name':a122_0x18fdbf(0x1e1),'type':'string','description':'Query\x20description'}],async 'validate'(){throw CliErrors['validation'](SQL_SAVE_DEPRECATED_HINT);},async 'execute'(){const _0xe3dc20=a122_0x18fdbf;throw CliErrors[_0xe3dc20(0x1d8)](SQL_SAVE_DEPRECATED_HINT);}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
const a123_0x2e8397=a123_0xa995;(function(_0x50a4f3,_0x56079d){const _0x3fe839=a123_0xa995,_0xae7b76=_0x50a4f3();while(!![]){try{const _0x5d3e07=parseInt(_0x3fe839(0x183))/0x1*(-parseInt(_0x3fe839(0x1a1))/0x2)+-parseInt(_0x3fe839(0x191))/0x3*(parseInt(_0x3fe839(0x19b))/0x4)+parseInt(_0x3fe839(0x193))/0x5+-parseInt(_0x3fe839(0x192))/0x6*(parseInt(_0x3fe839(0x187))/0x7)+parseInt(_0x3fe839(0x1a8))/0x8*(parseInt(_0x3fe839(0x190))/0x9)+parseInt(_0x3fe839(0x18d))/0xa+parseInt(_0x3fe839(0x19d))/0xb;if(_0x5d3e07===_0x56079d)break;else _0xae7b76['push'](_0xae7b76['shift']());}catch(_0x564035){_0xae7b76['push'](_0xae7b76['shift']());}}}(a123_0x3eeb,0x863fb));import{createInterface}from'node:readline';import{join}from'node:path';function a123_0xa995(_0xe65e68,_0x2acecc){_0xe65e68=_0xe65e68-0x17f;const _0x3eebe0=a123_0x3eeb();let _0xa995bc=_0x3eebe0[_0xe65e68];return _0xa995bc;}import{buildDefaultSqlFileName,buildSqlRelativePath,detectSqlMode}from'../../core/sql-sync/utils.js';export const SQL_LOCAL_REL_DIR=a123_0x2e8397(0x1a9);export function buildSqlLockEntry(_0x1d90de,_0x8c8e6d,_0x4d563f,_0x5b980e){const _0x4e3cd7=a123_0x2e8397,_0x16fd35=detectSqlMode(_0x8c8e6d);return{'path':buildSqlRelativePath(_0x1d90de[_0x4e3cd7(0x19a)],_0x1d90de[_0x4e3cd7(0x19f)],_0x5b980e?.[_0x4e3cd7(0x18a)],_0x16fd35,_0x1d90de[_0x4e3cd7(0x188)]),'hash':_0x4d563f,'remoteId':_0x1d90de['id'],'version':_0x1d90de['version'],'dbId':Number(_0x1d90de[_0x4e3cd7(0x188)]),'dbName':_0x5b980e?.[_0x4e3cd7(0x18a)],'sqlName':_0x1d90de['sqlName'],'sqlConfig':_0x1d90de[_0x4e3cd7(0x1a3)]??undefined,'mode':_0x16fd35};}export function cloneSqlLockData(_0x5a6f6d){const _0x1e320b=a123_0x2e8397;return{'apps':Object[_0x1e320b(0x196)](Object[_0x1e320b(0x194)](_0x5a6f6d[_0x1e320b(0x199)])['map'](([_0x5cb097,_0x46e107])=>[_0x5cb097,{'sqlRoot':_0x46e107[_0x1e320b(0x18b)],'lastSync':_0x46e107[_0x1e320b(0x1a6)],'sqls':{..._0x46e107[_0x1e320b(0x19c)]}}]))};}export function ensureRemoteSqlContent(_0x2e7dd3){const _0x5aedc4=a123_0x2e8397;return _0x2e7dd3[_0x5aedc4(0x182)]??'';}export function buildLocalSqlFileContent(_0x132de8,_0x29bc4a,_0x607a2a){const _0x26461f=a123_0x2e8397,_0x2af1b7=_0x607a2a?.[_0x26461f(0x181)]??detectSqlMode(_0x29bc4a),_0x4df2c2=stripLocalSqlMetadata(_0x29bc4a,_0x2af1b7)[_0x26461f(0x1a0)](),_0x192934=[...buildMetadataHeaderLines({'sqlCode':_0x132de8[_0x26461f(0x19a)],'sqlName':_0x132de8['sqlName'],'dbId':_0x132de8['dbId'],'dbName':_0x607a2a?.['dbName'],'mode':_0x2af1b7,'syncedAt':_0x607a2a?.['syncedAt'],'description':_0x607a2a?.['description']},_0x2af1b7),'',_0x4df2c2],_0x405573=_0x192934['join']('\x0a');return _0x405573['endsWith']('\x0a')?_0x405573:_0x405573+'\x0a';}export function stripLocalSqlMetadata(_0x211e64,_0x1e633c){const _0x39a073=a123_0x2e8397,_0xf33a1c=_0x211e64['replace'](/\r\n/g,'\x0a')[_0x39a073(0x17f)]('\x0a'),_0x229282=[];let _0x22305e=0x0;if(_0x1e633c===_0x39a073(0x184))while(_0x22305e<_0xf33a1c[_0x39a073(0x186)]){const _0x2040d2=_0xf33a1c[_0x22305e]??'';if(/^\s*<!--\s*@lovrabet\./[_0x39a073(0x1a7)](_0x2040d2)){_0x22305e++;continue;}if(_0x2040d2['trim']()===''&&_0x22305e>0x0){_0x22305e++;continue;}break;}else while(_0x22305e<_0xf33a1c[_0x39a073(0x186)]){const _0xc76c7=_0xf33a1c[_0x22305e]??'';if(/^\s*--\s*@lovrabet\./['test'](_0xc76c7)){_0x22305e++;continue;}if(_0xc76c7[_0x39a073(0x1a0)]()===''&&_0x22305e>0x0){_0x22305e++;continue;}break;}for(;_0x22305e<_0xf33a1c[_0x39a073(0x186)];_0x22305e++){_0x229282[_0x39a073(0x189)](_0xf33a1c[_0x22305e]);}return _0x229282['join']('\x0a')[_0x39a073(0x197)]();}export function resolveSqlMode(_0x4a23b1,_0x489bad){const _0x1ae6a7=a123_0x2e8397;if(_0x489bad?.['mode'])return _0x489bad[_0x1ae6a7(0x181)];return detectSqlMode(_0x4a23b1);}function a123_0x3eeb(){const _0x5bd492=['181994ubxetq','--\x20@lovrabet.','sqlConfig','path','map','lastSync','test','488WOOUzv','.rabetbase/sql','split','description','mode','sqlContent','4IweAuv','mybatisXml','\x20[y/N]\x20','length','76790QRtPjF','dbId','push','dbName','sqlRoot','filter','261960ZSDTSt','syncedAt','yes','135009lGLTRh','57567dYAtLO','534QBKzXn','461300cRNImr','entries','stderr','fromEntries','trimStart','stdin','apps','sqlCode','56KhdDRg','sqls','12378630cMwMle','close','sqlName','trim'];a123_0x3eeb=function(){return _0x5bd492;};return a123_0x3eeb();}export function resolveSqlFileName(_0x4d8dab,_0x3107a2,_0x595d2d){const _0x5bac2f=a123_0x2e8397;if(_0x595d2d?.[_0x5bac2f(0x1a4)])return _0x595d2d[_0x5bac2f(0x1a4)];if(_0x595d2d?.[_0x5bac2f(0x19f)]||_0x595d2d?.['dbName'])return buildSqlRelativePath(_0x4d8dab,_0x595d2d?.[_0x5bac2f(0x19f)],_0x595d2d?.[_0x5bac2f(0x18a)],resolveSqlMode(_0x3107a2,_0x595d2d),_0x595d2d?.['dbId']);return buildDefaultSqlFileName(_0x4d8dab,resolveSqlMode(_0x3107a2,_0x595d2d));}export function resolveSqlLocalDir(_0x464cd9,_0x1c8a44){return join(_0x464cd9,SQL_LOCAL_REL_DIR,_0x1c8a44);}export async function confirmForceOverwrite(_0x144522){const _0x56b947=a123_0x2e8397,_0x123556=createInterface({'input':process[_0x56b947(0x198)],'output':process[_0x56b947(0x195)]}),_0x376c9d=await new Promise(_0x545ff1=>{const _0x14ab6e=_0x56b947;_0x123556['question'](_0x144522+_0x14ab6e(0x185),_0x545ff1);});return _0x123556[_0x56b947(0x19e)](),['y',_0x56b947(0x18f)]['includes'](_0x376c9d[_0x56b947(0x1a0)]()['toLowerCase']());}export function findSqlLockScope(_0x251b11,_0x3e8cf3){const _0x16cfb6=a123_0x2e8397;return _0x251b11[_0x16cfb6(0x199)][_0x3e8cf3];}function buildMetadataHeaderLines(_0x45a685,_0x1234d0){const _0x5e0242=a123_0x2e8397,_0x4f1f91=[[_0x5e0242(0x19a),_0x45a685[_0x5e0242(0x19a)]],[_0x5e0242(0x19f),_0x45a685[_0x5e0242(0x19f)]],[_0x5e0242(0x188),_0x45a685['dbId']],[_0x5e0242(0x18a),_0x45a685['dbName']],['mode',_0x45a685[_0x5e0242(0x181)]],[_0x5e0242(0x18e),_0x45a685['syncedAt']],[_0x5e0242(0x180),_0x45a685['description']]];if(_0x1234d0===_0x5e0242(0x184))return _0x4f1f91[_0x5e0242(0x18c)](([,_0x2dd0c2])=>_0x2dd0c2!==undefined&&_0x2dd0c2!==null&&String(_0x2dd0c2)['trim']()!=='')[_0x5e0242(0x1a5)](([_0x2680cd,_0x3fb426])=>'<!--\x20@lovrabet.'+_0x2680cd+':\x20'+String(_0x3fb426)+'\x20-->');return _0x4f1f91['filter'](([,_0x3b0c0a])=>_0x3b0c0a!==undefined&&_0x3b0c0a!==null&&String(_0x3b0c0a)[_0x5e0242(0x1a0)]()!=='')[_0x5e0242(0x1a5)](([_0x12977d,_0x15c085])=>_0x5e0242(0x1a2)+_0x12977d+':\x20'+String(_0x15c085));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a124_0x2ec32c=a124_0xe32f;(function(_0x3150b1,_0x48f6a9){const _0x11015a=a124_0xe32f,_0x47ae05=_0x3150b1();while(!![]){try{const _0x3058e6=parseInt(_0x11015a(0x1fe))/0x1*(-parseInt(_0x11015a(0x202))/0x2)+-parseInt(_0x11015a(0x20a))/0x3+-parseInt(_0x11015a(0x1fb))/0x4+-parseInt(_0x11015a(0x1e9))/0x5+-parseInt(_0x11015a(0x203))/0x6+-parseInt(_0x11015a(0x1ef))/0x7*(-parseInt(_0x11015a(0x1eb))/0x8)+parseInt(_0x11015a(0x1e7))/0x9;if(_0x3058e6===_0x48f6a9)break;else _0x47ae05['push'](_0x47ae05['shift']());}catch(_0x47e09e){_0x47ae05['push'](_0x47ae05['shift']());}}}(a124_0x3062,0xc8e41));function a124_0x3062(){const _0xbc535b=['\x20unchanged','50848wpgDzt','map','path','has','7JPYaYz','hash','paging','tableData','sqls','lockFilePath','filePath','sql','All\x20SQL\x20queries\x20are\x20in\x20sync.','Also\x20check\x20for\x20remote-only\x20SQL\x20queries\x20not\x20present\x20locally','sqlName','keys','3764056UsSHiG','status','sqlCode','2765BWoGbx','\x20added,\x20','bool','lockKey','1128dwhtpR','103512IpTmrl','appCode','totalCount','boolean','push','\x20remote-only','length','1782537cDVrnX','48639852fUMoUT','remote','7380150vweGjd'];a124_0x3062=function(){return _0xbc535b;};return a124_0x3062();}import{listSqlQueries}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{scanLocalSqlQueries}from'../../core/sql-sync/file-system.js';function a124_0xe32f(_0x2a98ca,_0x2d1db2){_0x2a98ca=_0x2a98ca-0x1e7;const _0x30621a=a124_0x3062();let _0xe32fae=_0x30621a[_0x2a98ca];return _0xe32fae;}import{computeSqlFileHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile}from'../../core/sql-sync/lock.js';const PAGE_SIZE=0x64;async function fetchAllSqlCodes(_0x3209c5){const _0x27de88=a124_0xe32f,_0x21874b=[];let _0x5f0e9b=0x1;while(!![]){const _0x4667ad=await listSqlQueries(_0x3209c5,{'currentPage':_0x5f0e9b,'pageSize':PAGE_SIZE}),_0x4f6e0f=_0x4667ad[_0x27de88(0x1f2)]??[];_0x21874b['push'](..._0x4f6e0f['map'](_0x4c196b=>_0x4c196b[_0x27de88(0x1fd)]));if(_0x4f6e0f[_0x27de88(0x209)]===0x0)break;const _0x57688a=_0x4667ad[_0x27de88(0x1f1)]?.[_0x27de88(0x205)];if(_0x57688a!=null?_0x21874b['length']>=_0x57688a:_0x4f6e0f[_0x27de88(0x209)]<PAGE_SIZE)break;_0x5f0e9b++;}return _0x21874b;}export const sqlStatus={'service':a124_0x2ec32c(0x1f6),'command':a124_0x2ec32c(0x1fc),'description':'Check\x20local\x20SQL\x20sync\x20status\x20against\x20lock\x20file','risk':'read','flags':[{'name':a124_0x2ec32c(0x1e8),'type':a124_0x2ec32c(0x206),'description':a124_0x2ec32c(0x1f8)}],async 'execute'(_0x591d01){const _0x45defb=a124_0x2ec32c,_0x11f46e=loadSqlProjectConfig(_0x591d01[_0x45defb(0x204)]),_0x306162=await readSqlLockFile(_0x11f46e[_0x45defb(0x1f4)]),{appLock:_0x11f6e0}=ensureSqlLockScope(_0x306162??createEmptySqlLock(),_0x11f46e['appCode'],_0x11f46e['sqlRoot'],'status'),_0x169cbc=await scanLocalSqlQueries(_0x11f46e),_0x4fdb31=[],_0x50a9a3=[],_0x2313fb=[],_0x3cfb5d=[],_0x1d1f57=new Set(_0x169cbc[_0x45defb(0x1ec)](_0x460f20=>_0x460f20[_0x45defb(0x201)]));for(const _0x2ba119 of _0x169cbc){const _0xefa927=await computeSqlFileHash(_0x2ba119[_0x45defb(0x1f5)]),_0x1f50b0=_0x11f6e0[_0x45defb(0x1f3)][_0x2ba119[_0x45defb(0x201)]],_0x304357=!!_0x1f50b0&&_0x1f50b0[_0x45defb(0x1ed)]!==_0x2ba119['relativePath'],_0x11a11c=!!_0x1f50b0&&!!_0x2ba119[_0x45defb(0x1f9)]&&_0x1f50b0[_0x45defb(0x1f9)]!==_0x2ba119[_0x45defb(0x1f9)];if(!_0x1f50b0)_0x4fdb31[_0x45defb(0x207)](_0x2ba119[_0x45defb(0x201)]);else _0x1f50b0[_0x45defb(0x1f0)]!==_0xefa927||_0x304357||_0x11a11c?_0x50a9a3[_0x45defb(0x207)](_0x2ba119[_0x45defb(0x201)]):_0x2313fb[_0x45defb(0x207)](_0x2ba119[_0x45defb(0x201)]);}for(const _0x34c523 of Object[_0x45defb(0x1fa)](_0x11f6e0['sqls'])){!_0x1d1f57[_0x45defb(0x1ee)](_0x34c523)&&_0x3cfb5d[_0x45defb(0x207)](_0x34c523);}const _0x62af2b=[];if(_0x591d01[_0x45defb(0x200)](_0x45defb(0x1e8))){const _0x495acf=await fetchAllSqlCodes(_0x591d01[_0x45defb(0x204)]);for(const _0x488fc7 of _0x495acf){!_0x1d1f57[_0x45defb(0x1ee)](_0x488fc7)&&!_0x11f6e0[_0x45defb(0x1f3)][_0x488fc7]&&_0x62af2b[_0x45defb(0x207)](_0x488fc7);}}const _0x597926=_0x4fdb31[_0x45defb(0x209)]===0x0&&_0x50a9a3[_0x45defb(0x209)]===0x0&&_0x3cfb5d[_0x45defb(0x209)]===0x0&&_0x62af2b[_0x45defb(0x209)]===0x0;return{'ok':!![],'data':{'added':_0x4fdb31,'modified':_0x50a9a3,'missing':_0x3cfb5d,'unchanged':_0x2313fb,'remoteOnly':_0x62af2b},'message':_0x597926?_0x45defb(0x1f7):_0x4fdb31[_0x45defb(0x209)]+_0x45defb(0x1ff)+_0x50a9a3[_0x45defb(0x209)]+'\x20modified,\x20'+_0x3cfb5d['length']+'\x20missing,\x20'+_0x2313fb['length']+_0x45defb(0x1ea)+(_0x62af2b[_0x45defb(0x209)]>0x0?',\x20'+_0x62af2b['length']+_0x45defb(0x208):'')};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a125_0x17e424=a125_0x5a15;function a125_0x5b28(){const _0x5a0b16=['str','fields','map','sqlType','2753280MIiqxS','tableName','isDangerous','from','Provide\x20--file\x20or\x20--sql','Path\x20to\x20the\x20SQL\x20file\x20to\x20validate','length','message','type','537392XxXdLN','dbtableConfig','tables','4317922izUPCP','string','Inline\x20SQL\x20content\x20to\x20validate\x20(alternative\x20to\x20--file)','split','6087245WOKgju','27AFWssO','schema:','sql','name','Dataset\x20\x22','reason','validation','Table\x20\x22','\x22\x20not\x20found\x20or\x20not\x20accessible','22570434GIsOOo','file','filter','schemas','151869uLoCiO','cwd','utf-8','isSelectOnly','valid','read','get','flagMissing','toLowerCase','2TDvBbq','size','3611616HCUkPZ','Comma-separated\x20dataset\x20codes\x20to\x20cross-check\x20table/column\x20names\x20against','\x22\x20not\x20found\x20in\x20any\x20dataset'];a125_0x5b28=function(){return _0x5a0b16;};return a125_0x5b28();}(function(_0x346fa5,_0x17b020){const _0x311cea=a125_0x5a15,_0xb0a4eb=_0x346fa5();while(!![]){try{const _0x1557d6=-parseInt(_0x311cea(0x76))/0x1*(parseInt(_0x311cea(0x7f))/0x2)+-parseInt(_0x311cea(0x69))/0x3*(parseInt(_0x311cea(0x91))/0x4)+parseInt(_0x311cea(0x68))/0x5+-parseInt(_0x311cea(0x88))/0x6+-parseInt(_0x311cea(0x64))/0x7+-parseInt(_0x311cea(0x81))/0x8+parseInt(_0x311cea(0x72))/0x9;if(_0x1557d6===_0x17b020)break;else _0xb0a4eb['push'](_0xb0a4eb['shift']());}catch(_0x27a904){_0xb0a4eb['push'](_0xb0a4eb['shift']());}}}(a125_0x5b28,0xcc5e8));import{readFileSync,existsSync}from'node:fs';import{resolve}from'node:path';function a125_0x5a15(_0x19fe3e,_0x52e1f9){_0x19fe3e=_0x19fe3e-0x64;const _0x5b2849=a125_0x5b28();let _0x5a155a=_0x5b2849[_0x19fe3e];return _0x5a155a;}import{validateSql}from'../../core/sql-validator.js';import{getDatasetDetail,listDatasets}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const sqlValidate={'service':a125_0x17e424(0x6b),'command':'validate','description':'Validate\x20SQL\x20content\x20without\x20saving\x20(type\x20detection,\x20parameter\x20extraction,\x20optional\x20schema\x20check)','risk':a125_0x17e424(0x7b),'flags':[{'name':a125_0x17e424(0x73),'type':a125_0x17e424(0x65),'description':a125_0x17e424(0x8d)},{'name':a125_0x17e424(0x6b),'type':a125_0x17e424(0x65),'description':a125_0x17e424(0x66)},{'name':'schemas','type':a125_0x17e424(0x65),'description':a125_0x17e424(0x82)}],async 'execute'(_0x571ad5){const _0x2f9349=a125_0x17e424,_0x21bea1=_0x571ad5['str'](_0x2f9349(0x73)),_0x4ed0ac=_0x571ad5[_0x2f9349(0x84)](_0x2f9349(0x6b));if(!_0x21bea1&&!_0x4ed0ac)throw CliErrors[_0x2f9349(0x7d)](_0x2f9349(0x73),_0x2f9349(0x8c));let _0x2f8539;if(_0x21bea1){const _0x41cee5=resolve(process[_0x2f9349(0x77)](),_0x21bea1);if(!existsSync(_0x41cee5))throw CliErrors[_0x2f9349(0x6f)]('File\x20not\x20found:\x20'+_0x41cee5);_0x2f8539=readFileSync(_0x41cee5,_0x2f9349(0x78));}else _0x2f8539=_0x4ed0ac;const _0x57fb9a=validateSql(_0x2f8539),_0x16610c={'valid':_0x57fb9a['valid'],'sqlType':_0x57fb9a[_0x2f9349(0x87)][_0x2f9349(0x90)],'isSelectOnly':_0x57fb9a[_0x2f9349(0x87)][_0x2f9349(0x79)],'isDangerous':_0x57fb9a[_0x2f9349(0x87)][_0x2f9349(0x8a)],'tables':_0x57fb9a[_0x2f9349(0x93)],'parameters':_0x57fb9a['parameters'],'message':_0x57fb9a[_0x2f9349(0x8f)]};_0x57fb9a['sqlType'][_0x2f9349(0x6e)]&&(_0x16610c[_0x2f9349(0x6e)]=_0x57fb9a[_0x2f9349(0x87)]['reason']);const _0x563906=_0x571ad5[_0x2f9349(0x84)](_0x2f9349(0x75));if(_0x563906&&_0x57fb9a[_0x2f9349(0x7a)]){const _0x2088ab=_0x563906[_0x2f9349(0x67)](',')[_0x2f9349(0x86)](_0x2a195f=>_0x2a195f['trim']())[_0x2f9349(0x74)](Boolean),_0x21ff43=[],_0x1c46bd=await listDatasets(_0x571ad5['appCode']),_0x22cbbb=new Map(_0x1c46bd[_0x2f9349(0x86)](_0x46bab7=>[_0x46bab7[_0x2f9349(0x92)]?.[_0x2f9349(0x89)]?.[_0x2f9349(0x7e)](),_0x46bab7]));for(const _0x397ef2 of _0x57fb9a[_0x2f9349(0x93)]){const _0x4e4611=_0x22cbbb[_0x2f9349(0x7c)](_0x397ef2['toLowerCase']());!_0x4e4611&&_0x21ff43['push'](_0x2f9349(0x70)+_0x397ef2+_0x2f9349(0x83));}for(const _0x5674a9 of _0x2088ab){try{const _0x5a74f0=await getDatasetDetail(_0x5674a9),_0x546f31=Array['isArray'](_0x5a74f0[_0x2f9349(0x85)])?_0x5a74f0[_0x2f9349(0x85)]:[],_0x2d8410=new Set(_0x546f31[_0x2f9349(0x86)](_0x5e1cbe=>_0x5e1cbe[_0x2f9349(0x6c)]?.['toLowerCase']())),_0x5e3cfa=_0x5a74f0['dbtableConfig']?.[_0x2f9349(0x89)]||_0x5a74f0[_0x2f9349(0x89)]||_0x5674a9;_0x16610c[_0x2f9349(0x6a)+_0x5e3cfa]={'code':_0x5674a9,'tableName':_0x5e3cfa,'fieldCount':_0x2d8410[_0x2f9349(0x80)],'fields':Array[_0x2f9349(0x8b)](_0x2d8410)};}catch{_0x21ff43['push'](_0x2f9349(0x6d)+_0x5674a9+_0x2f9349(0x71));}}_0x21ff43[_0x2f9349(0x8e)]>0x0&&(_0x16610c['schemaWarnings']=_0x21ff43);}return{'ok':_0x57fb9a[_0x2f9349(0x7a)],'data':_0x16610c,'message':_0x57fb9a[_0x2f9349(0x8f)]};}};
|
package/lib/config/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a126_0x11321f=a126_0x29d7;function a126_0x399a(){const _0x21d0e4=['302NDagta','4521brHEVG','Risk\x20level','format','inherit','132jSCxaF','string','90ihciFy','pageSize','Config\x20key\x20(','app','apps','number','appcode','trim','8212TRyYjT','Access\x20key','160665uYGjQu','Auth\x20cookie','3599982jhGEMq','defaultApp','defaultFormat','3249666jSUjBX','zh-CN','env','keys','accessKey','3308328cMgcJe','7544400rkakEN','length','apiDir','Default\x20output\x20format\x20for\x20this\x20app\x20(profile)','riskLevel','filter','has','cookie','en-US','locale','entries'];a126_0x399a=function(){return _0x21d0e4;};return a126_0x399a();}(function(_0x404371,_0x6bb225){const _0x50dfe3=a126_0x29d7,_0x309ab5=_0x404371();while(!![]){try{const _0x210c59=parseInt(_0x50dfe3(0x1a2))/0x1*(parseInt(_0x50dfe3(0x1a1))/0x2)+parseInt(_0x50dfe3(0x1a6))/0x3*(-parseInt(_0x50dfe3(0x1b0))/0x4)+parseInt(_0x50dfe3(0x1b2))/0x5*(-parseInt(_0x50dfe3(0x1a8))/0x6)+-parseInt(_0x50dfe3(0x1b7))/0x7+parseInt(_0x50dfe3(0x195))/0x8+-parseInt(_0x50dfe3(0x1b4))/0x9+parseInt(_0x50dfe3(0x196))/0xa;if(_0x210c59===_0x6bb225)break;else _0x309ab5['push'](_0x309ab5['shift']());}catch(_0x314df9){_0x309ab5['push'](_0x309ab5['shift']());}}}(a126_0x399a,0x65189));import{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';import{RABETBASE_ENV_VALUES}from'../constant/env.js';import{RABETBASE_OUTPUT_FORMAT_VALUES}from'../constant/output.js';import{RISK_LEVEL_VALUES}from'../constant/risk.js';function a126_0x29d7(_0x41a93c,_0x53cfac){_0x41a93c=_0x41a93c-0x194;const _0x399a92=a126_0x399a();let _0x29d739=_0x399a92[_0x41a93c];return _0x29d739;}export{DEFAULT_CONFIG_VALUES}from'../constant/defaults.js';export const PROJECT_CREATE_INHERITABLE_KEYS=[a126_0x11321f(0x19d),'accessKey','locale',a126_0x11321f(0x1a4),a126_0x11321f(0x19a)];export const TOP_LEVEL_CONFIG_KEYS=new Set([a126_0x11321f(0x1ae),'env',a126_0x11321f(0x19f),a126_0x11321f(0x1a4),a126_0x11321f(0x19d),a126_0x11321f(0x194),a126_0x11321f(0x198)]);export const CONFIG_ENUM_VALUES={'env':[...RABETBASE_ENV_VALUES],'format':[...RABETBASE_OUTPUT_FORMAT_VALUES]};export function formatConfigKeyList(_0x55c6a2){return[..._0x55c6a2]['join'](',\x20');}export function getTopLevelConfigKeyList(){return[...TOP_LEVEL_CONFIG_KEYS];}export function isTopLevelConfigKey(_0x5dbb85){const _0x5ec06e=a126_0x11321f;return TOP_LEVEL_CONFIG_KEYS[_0x5ec06e(0x19c)](_0x5dbb85);}export function getTopLevelConfigKeySummary(){return formatConfigKeyList(getTopLevelConfigKeyList());}export function getConfigCommandKeyDescription(){const _0x259d0f=a126_0x11321f;return _0x259d0f(0x1aa)+getTopLevelConfigKeySummary()+')';}export const APP_PROFILE_FLAG_KEY_MAP={'env':a126_0x11321f(0x1b9),'apiDir':a126_0x11321f(0x198),'cookie':a126_0x11321f(0x19d),'accessKey':'accessKey','defaultFormat':a126_0x11321f(0x1a4),'pageSize':a126_0x11321f(0x1a9),'riskLevel':a126_0x11321f(0x19a),'locale':a126_0x11321f(0x19f)};export function getAppProfileFlagDefs(){const _0x3ae50a=a126_0x11321f;return[{'name':_0x3ae50a(0x1b9),'type':_0x3ae50a(0x1a7),'description':'Target\x20environment','enum':[...RABETBASE_ENV_VALUES]},{'name':_0x3ae50a(0x198),'type':'string','description':'API\x20directory\x20path'},{'name':_0x3ae50a(0x19d),'type':'string','description':_0x3ae50a(0x1b3),'hidden':!![]},{'name':_0x3ae50a(0x194),'type':_0x3ae50a(0x1a7),'description':_0x3ae50a(0x1b1),'hidden':!![]},{'name':_0x3ae50a(0x1b6),'type':_0x3ae50a(0x1a7),'description':_0x3ae50a(0x199),'enum':[...RABETBASE_OUTPUT_FORMAT_VALUES]},{'name':_0x3ae50a(0x1a9),'type':_0x3ae50a(0x1ad),'description':'Default\x20page\x20size'},{'name':_0x3ae50a(0x19a),'type':'string','description':_0x3ae50a(0x1a3),'enum':[...RISK_LEVEL_VALUES]},{'name':_0x3ae50a(0x19f),'type':_0x3ae50a(0x1a7),'description':'Locale'}];}export function collectAppProfileOverrides(_0x4cbbdb){const _0x4977f5=a126_0x11321f,_0x1b0818={};for(const [_0x1af1e4,_0x5479d6]of Object[_0x4977f5(0x1a0)](APP_PROFILE_FLAG_KEY_MAP)){const _0x2797ef=_0x4cbbdb(_0x1af1e4);if(!_0x2797ef)continue;_0x1b0818[_0x5479d6]=_0x5479d6===_0x4977f5(0x1a9)?Number(_0x2797ef):_0x2797ef;}return _0x1b0818;}export function buildAppProfileListFields(_0x57f1fe){const _0x1a890b=a126_0x11321f;return{'env':_0x57f1fe[_0x1a890b(0x1b9)]??null,'apiDir':_0x57f1fe[_0x1a890b(0x198)]??null,'hasCookie':!!_0x57f1fe['cookie'],'hasAccessKey':!!_0x57f1fe[_0x1a890b(0x194)],'format':_0x57f1fe['format']??null,'pageSize':_0x57f1fe[_0x1a890b(0x1a9)]??null,'riskLevel':_0x57f1fe[_0x1a890b(0x19a)]??null,'locale':_0x57f1fe[_0x1a890b(0x19f)]??null};}export function buildAppDoctorFields(_0x29e9ac,_0x330e5c){const _0x43300b=a126_0x11321f;return{'env':{'value':_0x29e9ac['env']||_0x330e5c[_0x43300b(0x1b9)],'source':_0x29e9ac[_0x43300b(0x1b9)]?_0x43300b(0x1ab):_0x43300b(0x1a5)},'apiDir':{'value':_0x29e9ac['apiDir']||_0x330e5c[_0x43300b(0x198)],'source':_0x29e9ac[_0x43300b(0x198)]?'app':'inherit'},'cookie':{'value':_0x29e9ac[_0x43300b(0x19d)]||_0x330e5c['cookie'],'source':_0x29e9ac[_0x43300b(0x19d)]?_0x43300b(0x1ab):_0x43300b(0x1a5)},'accessKey':{'value':_0x29e9ac[_0x43300b(0x194)]||_0x330e5c[_0x43300b(0x194)],'source':_0x29e9ac[_0x43300b(0x194)]?_0x43300b(0x1ab):_0x43300b(0x1a5)}};}export function buildCanonicalAppConfig(_0x2e4924,_0x237419){const _0x4905d6=a126_0x11321f,_0x4beaaf=_0x2e4924['map'](_0x569c89=>String(_0x569c89||'')[_0x4905d6(0x1af)]())[_0x4905d6(0x19b)](Boolean);if(_0x4beaaf[_0x4905d6(0x197)]===0x0)return{};const _0x3fd7e2={};for(const _0x4d34de of _0x4beaaf){_0x3fd7e2[_0x4d34de]=_0x237419?{'appcode':_0x4d34de,'env':_0x237419}:{'appcode':_0x4d34de};}return{'apps':_0x3fd7e2,'defaultApp':_0x4beaaf[0x0]};}export function buildCanonicalProjectConfig(_0x46da17,_0x5188c2){const _0x5b6328=a126_0x11321f,{appCodes:appCodes=[],env:_0x2a3f0c,metadata:_0x145412}=_0x5188c2,_0x1c5c6a={..._0x46da17,..._0x145412||{}};delete _0x1c5c6a[_0x5b6328(0x1ae)],delete _0x1c5c6a[_0x5b6328(0x1ab)];if(_0x2a3f0c)_0x1c5c6a[_0x5b6328(0x1b9)]=_0x2a3f0c;else!_0x1c5c6a[_0x5b6328(0x1b9)]&&(_0x1c5c6a[_0x5b6328(0x1b9)]=DEFAULT_CONFIG_VALUES[_0x5b6328(0x1b9)]);const _0x57e464=buildCanonicalAppConfig(appCodes,_0x1c5c6a[_0x5b6328(0x1b9)]);return Object[_0x5b6328(0x1ba)](_0x57e464)[_0x5b6328(0x197)]>0x0&&(_0x1c5c6a[_0x5b6328(0x1ac)]=_0x57e464['apps'],_0x1c5c6a[_0x5b6328(0x1b5)]=_0x57e464[_0x5b6328(0x1b5)]),_0x1c5c6a;}const LOCALE_MAP={'zh':a126_0x11321f(0x1b8),'zh-cn':'zh-CN','zh_cn':a126_0x11321f(0x1b8),'en':a126_0x11321f(0x19e),'en-us':a126_0x11321f(0x19e),'en_us':a126_0x11321f(0x19e)};export function normalizeLocale(_0x3eec13){if(!_0x3eec13)return null;return LOCALE_MAP[_0x3eec13['toLowerCase']()]??null;}
|
package/lib/constant/cdn.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x5d3648,_0x30f7bc){const _0x5b9c8e=a127_0x1089,_0x427ee3=_0x5d3648();while(!![]){try{const _0x4f162e=-parseInt(_0x5b9c8e(0x156))/0x1+-parseInt(_0x5b9c8e(0x158))/0x2*(parseInt(_0x5b9c8e(0x15d))/0x3)+parseInt(_0x5b9c8e(0x15b))/0x4+-parseInt(_0x5b9c8e(0x159))/0x5+parseInt(_0x5b9c8e(0x157))/0x6+-parseInt(_0x5b9c8e(0x15c))/0x7+parseInt(_0x5b9c8e(0x15a))/0x8;if(_0x4f162e===_0x30f7bc)break;else _0x427ee3['push'](_0x427ee3['shift']());}catch(_0xf13fa1){_0x427ee3['push'](_0x427ee3['shift']());}}}(a127_0x50bd,0x9a84b));export const CLI_VERSION_POLICY_URL='https://g.lovrabet.com/dist/rabetbase-cli/config/index.json';function a127_0x1089(_0x3394ce,_0x223df6){_0x3394ce=_0x3394ce-0x156;const _0x50bde7=a127_0x50bd();let _0x1089a1=_0x50bde7[_0x3394ce];return _0x1089a1;}function a127_0x50bd(){const _0x521f10=['320419HtkEKl','7156542pCKacF','2071204PnqbyD','2883710ZhfECJ','10261640CcKdXK','2084972WGTQns','3017245GxggkV','3nIjUqu'];a127_0x50bd=function(){return _0x521f10;};return a127_0x50bd();}
|