@lovrabet/rabetbase-cli 2.4.5-beta.1 → 2.4.5
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/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/members-list.js +1 -1
- package/lib/commands/app/remote-directory.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/delete.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/list.js +1 -1
- package/lib/commands/app-config/set.js +1 -1
- package/lib/commands/app-config/shared.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-registry.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/async-task.js +1 -1
- package/lib/commands/common/dry-run.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/filter.js +1 -1
- package/lib/commands/data/getOne.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/data/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.js +1 -1
- package/lib/commands/dataset/business-groups.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/generate.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-audit.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/dataset/restore.js +1 -1
- package/lib/commands/db/analysis-batching.js +1 -1
- package/lib/commands/db/analyze-batch-plan.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-refresh-start.js +1 -1
- package/lib/commands/db/diff-refresh-status.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/file/index.js +1 -1
- package/lib/commands/init/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/kb/create.js +1 -1
- package/lib/commands/kb/delete.js +1 -1
- package/lib/commands/kb/detail.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/kb/list.js +1 -1
- package/lib/commands/kb/shared.js +1 -1
- package/lib/commands/kb/update.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/asset-update.js +1 -1
- package/lib/commands/menu/delete.js +1 -1
- package/lib/commands/menu/external-link-create.js +1 -1
- package/lib/commands/menu/external-link-update.js +1 -1
- package/lib/commands/menu/group-create.js +1 -1
- package/lib/commands/menu/group-update.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/move.js +1 -1
- package/lib/commands/menu/regroup-start.js +1 -1
- package/lib/commands/menu/rename.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/delete-plan.js +1 -1
- package/lib/commands/menu/shared/facts.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/mutations.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/notification/config-create.js +1 -1
- package/lib/commands/notification/config-delete.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/config-update.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.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/react/create.js +1 -1
- package/lib/commands/page/react/detail.js +1 -1
- package/lib/commands/page/react/list.js +1 -1
- package/lib/commands/page/react/publish.js +1 -1
- package/lib/commands/page/react/shared.js +1 -1
- package/lib/commands/page/react/syntax.js +1 -1
- package/lib/commands/page/react/template.js +1 -1
- package/lib/commands/page/react/update.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/restore.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/materialize-project-template.js +1 -1
- package/lib/commands/project/create/project-name.js +1 -1
- package/lib/commands/project/create/project-template-archive.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/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/role/user-resolve.js +1 -1
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/commands/task/index.js +1 -1
- package/lib/commands/task/status.js +1 -1
- package/lib/commands/tenant/index.js +1 -1
- package/lib/commands/tenant/members-list.js +1 -1
- package/lib/commands/tenant/shared.js +1 -1
- package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/add.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/commands/workspace/remove.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-index-auditor.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/error-output.js +1 -1
- package/lib/framework/explicit-yes.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.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/rules-cdn.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
- package/skills/rabetbase/SKILL.md +1 -1
- package/skills/rabetbase.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const a177_0x45db15=a177_0x5363;(function(_0x88f4db,_0x4e5fc8){const _0x176591=a177_0x5363,_0x535f2c=_0x88f4db();while(!![]){try{const _0x4c2785=parseInt(_0x176591(0x1b5))/0x1+parseInt(_0x176591(0x1de))/0x2*(parseInt(_0x176591(0x1e7))/0x3)+-parseInt(_0x176591(0x1e3))/0x4+-parseInt(_0x176591(0x1fd))/0x5*(parseInt(_0x176591(0x1f7))/0x6)+parseInt(_0x176591(0x1b6))/0x7*(parseInt(_0x176591(0x204))/0x8)+parseInt(_0x176591(0x1fc))/0x9*(-parseInt(_0x176591(0x1d0))/0xa)+parseInt(_0x176591(0x1c9))/0xb;if(_0x4c2785===_0x4e5fc8)break;else _0x535f2c['push'](_0x535f2c['shift']());}catch(_0x5e7d40){_0x535f2c['push'](_0x535f2c['shift']());}}}(a177_0x4f55,0x24694));import{getTenantMembers,listDevUserRoleRelations,listAppRoles}from'../../core/api-client.js';function a177_0x4f55(){const _0x1cfa78=['userCount','username','/smartapi/permit/user-role/create','Cannot\x20','Re-run\x20`role\x20detail`\x20/\x20`role\x20list`\x20and\x20retry\x20with\x20the\x20current\x20count.','Nickname\x20or\x20username\x20to\x20resolve\x20to\x20a\x20userId','remark','\x20member(s)\x20but\x20role\x20has\x20','16788ZYsiHs','Cannot\x20resolve\x20current\x20tenant.\x20Run\x20`rabetbase\x20auth\x20login`\x20first.','userId','Optional\x20role\x20remark/description','\x22:\x20','234HpRrFx','80XxLUeN','Pass\x20--role\x20<id|name>.','Missing\x20user\x20reference.','User\x20id,\x20username,\x20or\x20nickname\x20to\x20resolve\x20to\x20a\x20userId','appCode','Anti-drift\x20check\x20failed:\x20expected\x20','\x20is\x20already\x20a\x20member\x20of\x20role\x20','5864oPdqiJ','user-add','\x20built-in\x20role\x20','CUSTOM','\x20is\x20not\x20a\x20member\x20of\x20role\x20','\x20not\x20found\x20in\x20app\x20','77651sltumw','441tRMeYt','\x22\x20not\x20found\x20in\x20app\x20','validation','Disambiguate\x20with\x20--user\x20<id>.','Pass\x20--user\x20<id|name>.','tenant','Role\x20name\x20\x22','flag','toLowerCase','roleName','dryRun','Role\x20id\x20or\x20exact\x20role\x20name','tenant_code','filter','expectUserCount','Role\x20id\x20','\x20members\x20of\x20the\x20OWNER\x20role.','join','ADMIN','2117104rCIAJE','name','No\x20tenant\x20member\x20matches\x20\x22','find','Removed\x20','length','DEV','68860TYBPbl','nickname','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles,\x20or\x20pass\x20--role\x20<id>.','dev','authRequired','user','Multiple\x20tenant\x20members\x20match\x20\x22','Missing\x20role\x20reference.','string','Only\x20CUSTOM\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','role','POST','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.','map','308114yIxKss','number','roleType','includes','push','389628EvnrTR','/smartapi/permit/user-role/delete','flagMissing','trim','3ayhVMo','permitCount',';\x20no\x20change.','expect-user-count','User\x20','OWNER','Check\x20the\x20nickname/username,\x20or\x20pass\x20--user\x20<id>.','str'];a177_0x4f55=function(){return _0x1cfa78;};return a177_0x4f55();}import{getSessionUserInfo}from'../../auth/get-session-user.js';import{CliErrors}from'../../errors.js';export const ROLE_ID_FLAG={'name':'id','type':'number','required':!![],'description':'Role\x20id\x20(from\x20`role\x20list`)'};export const ROLE_REF_FLAG={'name':a177_0x45db15(0x1da),'type':a177_0x45db15(0x1d8),'required':!![],'description':a177_0x45db15(0x1c1)};export const USER_REF_FLAG={'name':a177_0x45db15(0x1d5),'type':'string','required':!![],'description':a177_0x45db15(0x200)};export const NAME_FLAG={'name':'name','type':a177_0x45db15(0x1d8),'required':!![],'description':'Role\x20name'};export const USER_NAME_FLAG={'name':a177_0x45db15(0x1ca),'type':'string','required':!![],'description':a177_0x45db15(0x1f4)};export const REMARK_FLAG={'name':a177_0x45db15(0x1f5),'type':a177_0x45db15(0x1d8),'required':![],'description':a177_0x45db15(0x1fa)};export const EXPECT_USER_COUNT_FLAG={'name':a177_0x45db15(0x1ea),'type':a177_0x45db15(0x1df),'required':![],'description':'Anti-drift\x20guard:\x20fail\x20if\x20the\x20role\x27s\x20current\x20member\x20count\x20differs'};export const BUILTIN_ROLE_TYPES=[a177_0x45db15(0x1c8),a177_0x45db15(0x1cf),a177_0x45db15(0x1ec)];export function isBuiltinRole(_0x13af4b){const _0x401b40=a177_0x45db15;return BUILTIN_ROLE_TYPES[_0x401b40(0x1e1)](_0x13af4b);}export function assertCustomRole(_0xb13cb,_0x2fe07a){const _0x240820=a177_0x45db15;if(_0xb13cb['roleType']!==_0x240820(0x1b2))throw CliErrors['validation'](_0x240820(0x1f2)+_0x2fe07a+_0x240820(0x1b1)+_0xb13cb[_0x240820(0x1bf)]+'\x20('+_0xb13cb[_0x240820(0x1e0)]+').',_0x240820(0x1d9));}export function projectRole(_0x4e8861){const _0x5e91c7=a177_0x45db15;return{'id':_0x4e8861['id'],'roleName':_0x4e8861[_0x5e91c7(0x1bf)],'roleType':_0x4e8861['roleType'],'remark':_0x4e8861[_0x5e91c7(0x1f5)],'userCount':_0x4e8861[_0x5e91c7(0x1ef)],'permitCount':_0x4e8861[_0x5e91c7(0x1e8)],'builtin':isBuiltinRole(_0x4e8861[_0x5e91c7(0x1e0)])};}export async function resolveRoleRef(_0x115a95,_0x3fda63){const _0x2d4bf7=a177_0x45db15,_0x34f12d=_0x3fda63[_0x2d4bf7(0x1e6)]();if(!_0x34f12d)throw CliErrors[_0x2d4bf7(0x1b8)](_0x2d4bf7(0x1d7),'Pass\x20--role\x20<id|name>.');if(/^\d+$/['test'](_0x34f12d))return getRoleById(_0x115a95,Number(_0x34f12d));const _0x365600=await listAllAppRoles(_0x115a95),_0x29d07f=_0x365600[_0x2d4bf7(0x1c3)](_0x2f6c90=>_0x2f6c90['roleName']===_0x34f12d);if(_0x29d07f[_0x2d4bf7(0x1ce)]===0x0)throw CliErrors[_0x2d4bf7(0x1b8)](_0x2d4bf7(0x1bc)+_0x34f12d+_0x2d4bf7(0x1b7)+_0x115a95+'.',_0x2d4bf7(0x1d2));if(_0x29d07f['length']>0x1){const _0x315250=_0x29d07f[_0x2d4bf7(0x1dd)](_0x9dbcce=>_0x9dbcce['id'])[_0x2d4bf7(0x1c7)](',\x20');throw CliErrors[_0x2d4bf7(0x1b8)](_0x2d4bf7(0x1bc)+_0x34f12d+'\x22\x20is\x20ambiguous\x20(ids:\x20'+_0x315250+').','Disambiguate\x20with\x20--role\x20<id>.');}return _0x29d07f[0x0];}export async function getRoleById(_0x38b985,_0x3268e3){const _0x4deb70=a177_0x45db15,_0xd7c2dc=await listAllAppRoles(_0x38b985),_0x1fb43e=_0xd7c2dc[_0x4deb70(0x1c3)](_0x43eabf=>_0x43eabf['id']===_0x3268e3&&(!_0x43eabf[_0x4deb70(0x201)]||_0x43eabf['appCode']===_0x38b985));if(_0x1fb43e[_0x4deb70(0x1ce)]!==0x1)throw CliErrors[_0x4deb70(0x1b8)](_0x4deb70(0x1c5)+_0x3268e3+_0x4deb70(0x1b4)+_0x38b985+'.',_0x4deb70(0x1dc));return _0x1fb43e[0x0];}async function listAllAppRoles(_0x6d3beb){const _0x55f37c=a177_0x45db15,_0x3605ee=0x64,_0x1871d0=[];for(let _0x447d2d=0x1;;_0x447d2d+=0x1){const {items:_0x4b291d,paging:_0x5e3cf2}=await listAppRoles(_0x6d3beb,{'currentPage':_0x447d2d,'pageSize':_0x3605ee});_0x1871d0[_0x55f37c(0x1e2)](..._0x4b291d);if(_0x4b291d[_0x55f37c(0x1ce)]<_0x3605ee||_0x5e3cf2&&_0x1871d0[_0x55f37c(0x1ce)]>=_0x5e3cf2['totalCount'])return _0x1871d0;}}export async function resolveTenantCode(){const _0x4eb4de=a177_0x45db15,_0x58ae83=await getSessionUserInfo(),_0x407cc2=_0x58ae83?.[_0x4eb4de(0x1d5)]?.[_0x4eb4de(0x1bb)]?.[_0x4eb4de(0x1c2)];if(!_0x407cc2)throw CliErrors[_0x4eb4de(0x1d4)](_0x4eb4de(0x1f8));return _0x407cc2;}function matchMember(_0x1ca1a6,_0x42aa24){const _0x12d024=a177_0x45db15,_0x3d818f=_0x42aa24['trim']()['toLowerCase']();return(_0x1ca1a6[_0x12d024(0x1d1)]??'')['toLowerCase']()===_0x3d818f||(_0x1ca1a6[_0x12d024(0x1f0)]??'')[_0x12d024(0x1be)]()===_0x3d818f;}export async function resolveUserRef(_0x2392dc){const _0x3a2a11=a177_0x45db15,_0x3a65bc=_0x2392dc[_0x3a2a11(0x1e6)]();if(!_0x3a65bc)throw CliErrors[_0x3a2a11(0x1b8)](_0x3a2a11(0x1ff),'Pass\x20--user\x20<id|name>.');const _0x200070=await resolveTenantCode(),_0x16cb0e=await getTenantMembers(_0x200070);if(/^\d+$/['test'](_0x3a65bc)){const _0x160c16=Number(_0x3a65bc),_0x20bb70=_0x16cb0e[_0x3a2a11(0x1cc)](_0x3e44f6=>_0x3e44f6[_0x3a2a11(0x1f9)]===_0x160c16);return{'userId':_0x160c16,'username':_0x20bb70?.[_0x3a2a11(0x1f0)]??String(_0x160c16),'nickname':_0x20bb70?.[_0x3a2a11(0x1d1)],'matchedBy':'id'};}const _0x5c468c=_0x16cb0e[_0x3a2a11(0x1c3)](_0x29c5a2=>matchMember(_0x29c5a2,_0x3a65bc));if(_0x5c468c['length']===0x0)throw CliErrors['validation'](_0x3a2a11(0x1cb)+_0x3a65bc+'\x22.',_0x3a2a11(0x1ed));if(_0x5c468c[_0x3a2a11(0x1ce)]>0x1){const _0x334bb3=_0x5c468c[_0x3a2a11(0x1dd)](_0x15ee33=>(_0x15ee33[_0x3a2a11(0x1d1)]??_0x15ee33[_0x3a2a11(0x1f0)]??'?')+'('+_0x15ee33[_0x3a2a11(0x1f9)]+')')[_0x3a2a11(0x1c7)](',\x20');throw CliErrors['validation'](_0x3a2a11(0x1d6)+_0x3a65bc+_0x3a2a11(0x1fb)+_0x334bb3+'.',_0x3a2a11(0x1b9));}const _0x2129a9=_0x5c468c[0x0];return{'userId':_0x2129a9[_0x3a2a11(0x1f9)],'username':_0x2129a9[_0x3a2a11(0x1f0)]??String(_0x2129a9[_0x3a2a11(0x1f9)]),'nickname':_0x2129a9[_0x3a2a11(0x1d1)],'matchedBy':_0x3a2a11(0x1ca)};}export const CREATE_USER_ROLE_PATH=a177_0x45db15(0x1f1);export const DELETE_USER_ROLE_PATH=a177_0x45db15(0x1e4);export function computeRoleUserMutation(_0x14c66f){const _0x32b7c9=a177_0x45db15,{operation:_0x31b657,appCode:_0xccb91b,role:_0x8ee005,relations:_0x270f9b,user:_0x453feb}=_0x14c66f,_0x18154d=[...new Set(_0x270f9b['map'](_0x5f59e1=>_0x5f59e1[_0x32b7c9(0x1f9)]))],_0xa1a5da=[];if(_0x14c66f[_0x32b7c9(0x1c4)]!==undefined&&_0x14c66f[_0x32b7c9(0x1c4)]!==_0x18154d[_0x32b7c9(0x1ce)])throw CliErrors['validation'](_0x32b7c9(0x202)+_0x14c66f[_0x32b7c9(0x1c4)]+_0x32b7c9(0x1f6)+_0x18154d[_0x32b7c9(0x1ce)]+'.',_0x32b7c9(0x1f3));const _0x497003=_0x18154d[_0x32b7c9(0x1e1)](_0x453feb['userId']),_0x476a51=_0x270f9b[_0x32b7c9(0x1c3)](_0x290751=>_0x290751[_0x32b7c9(0x1f9)]===_0x453feb[_0x32b7c9(0x1f9)])[_0x32b7c9(0x1dd)](_0x466ed5=>_0x466ed5['id']),_0x5604fd=_0x31b657==='user-add'?!_0x497003:_0x497003;let _0x1b4bc3=_0x18154d;_0x31b657===_0x32b7c9(0x1b0)?_0x497003?_0xa1a5da[_0x32b7c9(0x1e2)]('User\x20'+_0x453feb['userId']+_0x32b7c9(0x203)+_0x8ee005[_0x32b7c9(0x1bf)]+_0x32b7c9(0x1e9)):_0x1b4bc3=[..._0x18154d,_0x453feb[_0x32b7c9(0x1f9)]]:!_0x497003?_0xa1a5da[_0x32b7c9(0x1e2)](_0x32b7c9(0x1eb)+_0x453feb[_0x32b7c9(0x1f9)]+_0x32b7c9(0x1b3)+_0x8ee005[_0x32b7c9(0x1bf)]+';\x20no\x20change.'):(_0x1b4bc3=_0x18154d[_0x32b7c9(0x1c3)](_0x2f6091=>_0x2f6091!==_0x453feb['userId']),_0x476a51['length']>0x1&&_0xa1a5da['push'](_0x32b7c9(0x1cd)+_0x476a51[_0x32b7c9(0x1ce)]+'\x20duplicate\x20memberships\x20for\x20user\x20'+_0x453feb[_0x32b7c9(0x1f9)]+'.'));const _0x37a415={'scope':_0x32b7c9(0x1d3),'operation':_0x31b657,'selector':{'appCode':_0xccb91b,'roleId':_0x8ee005['id'],'roleName':_0x8ee005[_0x32b7c9(0x1bf)],'userId':_0x453feb[_0x32b7c9(0x1f9)]},'before':{'userIds':_0x18154d},'after':{'userIds':_0x1b4bc3},'dryRun':_0x14c66f[_0x32b7c9(0x1c0)],'backend':{'method':_0x32b7c9(0x1db),'path':_0x31b657==='user-add'?CREATE_USER_ROLE_PATH:DELETE_USER_ROLE_PATH},'warnings':_0xa1a5da};return{'mutation':_0x37a415,'changed':_0x5604fd,'matchingRelationIds':_0x476a51};}export async function loadDevRoleRelations(_0x6154fd,_0x4e2bba){const _0x3c18a7=a177_0x45db15,_0x179f0f=0x64,_0x2058e8=[];for(let _0x141215=0x1;;_0x141215+=0x1){const {items:_0x541fcf,paging:_0x27be44}=await listDevUserRoleRelations(_0x6154fd,{'roleId':_0x4e2bba,'currentPage':_0x141215,'pageSize':_0x179f0f});_0x2058e8['push'](..._0x541fcf);if(_0x541fcf['length']<_0x179f0f||_0x27be44&&_0x2058e8[_0x3c18a7(0x1ce)]>=_0x27be44['totalCount'])return _0x2058e8;}}export function readRoleRef(_0x583a43){const _0x325c78=a177_0x45db15,_0x492428=_0x583a43[_0x325c78(0x1ee)](_0x325c78(0x1da))[_0x325c78(0x1e6)]();if(!_0x492428)throw CliErrors[_0x325c78(0x1e5)](_0x325c78(0x1da),_0x325c78(0x1fe));return _0x492428;}function a177_0x5363(_0x432a2e,_0x596bc6){_0x432a2e=_0x432a2e-0x1b0;const _0x4f55bd=a177_0x4f55();let _0x5363bf=_0x4f55bd[_0x432a2e];return _0x5363bf;}export async function prepareUserMutation(_0x5e772c,_0x1d813e,_0x56273f){const _0x11eac8=a177_0x45db15,_0x148a7c=readRoleRef(_0x5e772c),_0x191192=_0x5e772c[_0x11eac8(0x1ee)](_0x11eac8(0x1d5))[_0x11eac8(0x1e6)]();if(!_0x191192)throw CliErrors[_0x11eac8(0x1e5)](_0x11eac8(0x1d5),_0x11eac8(0x1ba));const _0x16fa69=_0x5e772c[_0x11eac8(0x1bd)](_0x11eac8(0x1ea)),_0x288a82=_0x16fa69===undefined||_0x16fa69===null?undefined:Number(_0x16fa69),_0x5c64a7=await resolveRoleRef(_0x5e772c[_0x11eac8(0x201)],_0x148a7c);if(_0x5c64a7[_0x11eac8(0x1e0)]===_0x11eac8(0x1ec))throw CliErrors[_0x11eac8(0x1b8)]('Cannot\x20'+_0x1d813e+_0x11eac8(0x1c6),'Use\x20the\x20platform\x20ownership-transfer\x20workflow\x20to\x20change\x20the\x20application\x20owner.');const _0x43ca11=await resolveUserRef(_0x191192),_0x3041a7=await loadDevRoleRelations(_0x5e772c[_0x11eac8(0x201)],_0x5c64a7['id']);return{...computeRoleUserMutation({'operation':_0x1d813e,'appCode':_0x5e772c['appCode'],'role':_0x5c64a7,'relations':_0x3041a7,'user':{'userId':_0x43ca11[_0x11eac8(0x1f9)],'username':_0x43ca11[_0x11eac8(0x1f0)],'nickname':_0x43ca11[_0x11eac8(0x1d1)]},'dryRun':_0x56273f,..._0x288a82!==undefined?{'expectUserCount':_0x288a82}:{}}),'role':_0x5c64a7,'user':_0x43ca11};}
|
|
1
|
+
const a177_0xa877c=a177_0x3873;(function(_0x41618c,_0x216f64){const _0x1f3cf0=a177_0x3873,_0x301eaa=_0x41618c();while(!![]){try{const _0x4908c9=parseInt(_0x1f3cf0(0x7e))/0x1+-parseInt(_0x1f3cf0(0xb1))/0x2+-parseInt(_0x1f3cf0(0x91))/0x3*(parseInt(_0x1f3cf0(0x90))/0x4)+-parseInt(_0x1f3cf0(0x7b))/0x5*(-parseInt(_0x1f3cf0(0xa8))/0x6)+-parseInt(_0x1f3cf0(0x89))/0x7*(parseInt(_0x1f3cf0(0xae))/0x8)+-parseInt(_0x1f3cf0(0x7f))/0x9+parseInt(_0x1f3cf0(0xa9))/0xa;if(_0x4908c9===_0x216f64)break;else _0x301eaa['push'](_0x301eaa['shift']());}catch(_0x5a90d){_0x301eaa['push'](_0x301eaa['shift']());}}}(a177_0x448f,0xdbed0));import{getTenantMembers,listDevUserRoleRelations,listAppRoles}from'../../core/api-client.js';import{getSessionUserInfo}from'../../auth/get-session-user.js';import{CliErrors}from'../../errors.js';export const ROLE_ID_FLAG={'name':'id','type':a177_0xa877c(0x8d),'required':!![],'description':a177_0xa877c(0x79)};export const ROLE_REF_FLAG={'name':'role','type':a177_0xa877c(0x80),'required':!![],'description':'Role\x20id\x20or\x20exact\x20role\x20name'};export const USER_REF_FLAG={'name':a177_0xa877c(0xbf),'type':a177_0xa877c(0x80),'required':!![],'description':a177_0xa877c(0x84)};function a177_0x3873(_0xa594f1,_0x9b6fa8){_0xa594f1=_0xa594f1-0x76;const _0x448f0a=a177_0x448f();let _0x38738b=_0x448f0a[_0xa594f1];return _0x38738b;}export const NAME_FLAG={'name':a177_0xa877c(0x92),'type':a177_0xa877c(0x80),'required':!![],'description':a177_0xa877c(0xbd)};export const USER_NAME_FLAG={'name':a177_0xa877c(0x92),'type':a177_0xa877c(0x80),'required':!![],'description':a177_0xa877c(0xc1)};export const REMARK_FLAG={'name':'remark','type':a177_0xa877c(0x80),'required':![],'description':a177_0xa877c(0x81)};export const EXPECT_USER_COUNT_FLAG={'name':a177_0xa877c(0xba),'type':a177_0xa877c(0x8d),'required':![],'description':a177_0xa877c(0x97)};export const BUILTIN_ROLE_TYPES=[a177_0xa877c(0x7c),a177_0xa877c(0x9b),'OWNER'];export function isBuiltinRole(_0x228db3){const _0x1b3b32=a177_0xa877c;return BUILTIN_ROLE_TYPES[_0x1b3b32(0x98)](_0x228db3);}export function assertCustomRole(_0x55d820,_0x1f338e){const _0x2426b8=a177_0xa877c;if(_0x55d820[_0x2426b8(0x86)]!==_0x2426b8(0xbb))throw CliErrors[_0x2426b8(0x95)]('Cannot\x20'+_0x1f338e+'\x20built-in\x20role\x20'+_0x55d820[_0x2426b8(0xb7)]+'\x20('+_0x55d820[_0x2426b8(0x86)]+').','Only\x20CUSTOM\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function projectRole(_0x360b4f){const _0x36d26f=a177_0xa877c;return{'id':_0x360b4f['id'],'roleName':_0x360b4f['roleName'],'roleType':_0x360b4f[_0x36d26f(0x86)],'remark':_0x360b4f[_0x36d26f(0x7a)],'userCount':_0x360b4f[_0x36d26f(0x8f)],'permitCount':_0x360b4f['permitCount'],'builtin':isBuiltinRole(_0x360b4f[_0x36d26f(0x86)])};}function a177_0x448f(){const _0x47dff9=['name','dev','\x22:\x20','validation','tenant','Anti-drift\x20guard:\x20fail\x20if\x20the\x20role\x27s\x20current\x20member\x20count\x20differs','includes','Pass\x20--role\x20<id|name>.','Role\x20name\x20\x22','DEV','Re-run\x20`role\x20detail`\x20/\x20`role\x20list`\x20and\x20retry\x20with\x20the\x20current\x20count.','User\x20','Disambiguate\x20with\x20--user\x20<id>.','Check\x20the\x20nickname/username,\x20or\x20pass\x20--user\x20<id>.','\x20member(s)\x20but\x20role\x20has\x20','join','\x20is\x20already\x20a\x20member\x20of\x20role\x20','Removed\x20','expectUserCount','trim',';\x20no\x20change.','test','414SbwfCc','36764990QZvqJa','totalCount','/smartapi/permit/user-role/create','flagMissing','Role\x20id\x20','4785824ULSuJn','str','flag','1236894hHuUfl','username','No\x20tenant\x20member\x20matches\x20\x22','\x20members\x20of\x20the\x20OWNER\x20role.','filter','role','roleName','Use\x20the\x20platform\x20ownership-transfer\x20workflow\x20to\x20change\x20the\x20application\x20owner.','appCode','expect-user-count','CUSTOM','\x22\x20is\x20ambiguous\x20(ids:\x20','Role\x20name','\x20not\x20found\x20in\x20app\x20','user','push','Nickname\x20or\x20username\x20to\x20resolve\x20to\x20a\x20userId','toLowerCase','\x20duplicate\x20memberships\x20for\x20user\x20','map','Role\x20id\x20(from\x20`role\x20list`)','remark','37545IkXxft','ADMIN','nickname','337031VChSSw','5987583iPCLQV','string','Optional\x20role\x20remark/description','Anti-drift\x20check\x20failed:\x20expected\x20','tenant_code','User\x20id,\x20username,\x20or\x20nickname\x20to\x20resolve\x20to\x20a\x20userId','userId','roleType','Missing\x20user\x20reference.','length','21flvrVJ','Missing\x20role\x20reference.','Pass\x20--user\x20<id|name>.','authRequired','number','user-add','userCount','2209668qkqVaa','3lsHpxW'];a177_0x448f=function(){return _0x47dff9;};return a177_0x448f();}export async function resolveRoleRef(_0x434023,_0x99ca10){const _0xcd1899=a177_0xa877c,_0x3d75bf=_0x99ca10[_0xcd1899(0xa5)]();if(!_0x3d75bf)throw CliErrors[_0xcd1899(0x95)](_0xcd1899(0x8a),'Pass\x20--role\x20<id|name>.');if(/^\d+$/['test'](_0x3d75bf))return getRoleById(_0x434023,Number(_0x3d75bf));const _0x54a421=await listAllAppRoles(_0x434023),_0x39b6d6=_0x54a421[_0xcd1899(0xb5)](_0x35e6c9=>_0x35e6c9[_0xcd1899(0xb7)]===_0x3d75bf);if(_0x39b6d6[_0xcd1899(0x88)]===0x0)throw CliErrors[_0xcd1899(0x95)](_0xcd1899(0x9a)+_0x3d75bf+'\x22\x20not\x20found\x20in\x20app\x20'+_0x434023+'.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles,\x20or\x20pass\x20--role\x20<id>.');if(_0x39b6d6[_0xcd1899(0x88)]>0x1){const _0x19adfa=_0x39b6d6[_0xcd1899(0x78)](_0x1df87d=>_0x1df87d['id'])[_0xcd1899(0xa1)](',\x20');throw CliErrors[_0xcd1899(0x95)](_0xcd1899(0x9a)+_0x3d75bf+_0xcd1899(0xbc)+_0x19adfa+').','Disambiguate\x20with\x20--role\x20<id>.');}return _0x39b6d6[0x0];}export async function getRoleById(_0x14a0c2,_0x50c7ca){const _0x35df89=a177_0xa877c,_0x5ce763=await listAllAppRoles(_0x14a0c2),_0x1c9117=_0x5ce763[_0x35df89(0xb5)](_0x1a8a00=>_0x1a8a00['id']===_0x50c7ca&&(!_0x1a8a00[_0x35df89(0xb9)]||_0x1a8a00[_0x35df89(0xb9)]===_0x14a0c2));if(_0x1c9117['length']!==0x1)throw CliErrors['validation'](_0x35df89(0xad)+_0x50c7ca+_0x35df89(0xbe)+_0x14a0c2+'.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.');return _0x1c9117[0x0];}async function listAllAppRoles(_0x2a190d){const _0xd9644b=a177_0xa877c,_0x26079a=0x64,_0x37c7aa=[];for(let _0x13a634=0x1;;_0x13a634+=0x1){const {items:_0x317cfe,paging:_0x9bd44b}=await listAppRoles(_0x2a190d,{'currentPage':_0x13a634,'pageSize':_0x26079a});_0x37c7aa[_0xd9644b(0xc0)](..._0x317cfe);if(_0x317cfe[_0xd9644b(0x88)]<_0x26079a||_0x9bd44b&&_0x37c7aa[_0xd9644b(0x88)]>=_0x9bd44b[_0xd9644b(0xaa)])return _0x37c7aa;}}export async function resolveTenantCode(){const _0x5210d2=a177_0xa877c,_0x39f538=await getSessionUserInfo(),_0x2d7414=_0x39f538?.[_0x5210d2(0xbf)]?.[_0x5210d2(0x96)]?.[_0x5210d2(0x83)];if(!_0x2d7414)throw CliErrors[_0x5210d2(0x8c)]('Cannot\x20resolve\x20current\x20tenant.\x20Run\x20`rabetbase\x20auth\x20login`\x20first.');return _0x2d7414;}function matchMember(_0x4f7266,_0x5d9c6e){const _0x1e5706=a177_0xa877c,_0x470e84=_0x5d9c6e[_0x1e5706(0xa5)]()['toLowerCase']();return(_0x4f7266[_0x1e5706(0x7d)]??'')[_0x1e5706(0x76)]()===_0x470e84||(_0x4f7266[_0x1e5706(0xb2)]??'')[_0x1e5706(0x76)]()===_0x470e84;}export async function resolveUserRef(_0x39b7b9){const _0x140267=a177_0xa877c,_0x5e2bfa=_0x39b7b9[_0x140267(0xa5)]();if(!_0x5e2bfa)throw CliErrors['validation'](_0x140267(0x87),_0x140267(0x8b));const _0x1120f2=await resolveTenantCode(),_0x45e61c=await getTenantMembers(_0x1120f2);if(/^\d+$/[_0x140267(0xa7)](_0x5e2bfa)){const _0x2e9d35=Number(_0x5e2bfa),_0x5d1f6e=_0x45e61c['find'](_0x11772c=>_0x11772c[_0x140267(0x85)]===_0x2e9d35);return{'userId':_0x2e9d35,'username':_0x5d1f6e?.[_0x140267(0xb2)]??String(_0x2e9d35),'nickname':_0x5d1f6e?.[_0x140267(0x7d)],'matchedBy':'id'};}const _0x5aad98=_0x45e61c['filter'](_0x537241=>matchMember(_0x537241,_0x5e2bfa));if(_0x5aad98['length']===0x0)throw CliErrors[_0x140267(0x95)](_0x140267(0xb3)+_0x5e2bfa+'\x22.',_0x140267(0x9f));if(_0x5aad98['length']>0x1){const _0x3bfcdc=_0x5aad98[_0x140267(0x78)](_0x109420=>(_0x109420[_0x140267(0x7d)]??_0x109420[_0x140267(0xb2)]??'?')+'('+_0x109420['userId']+')')[_0x140267(0xa1)](',\x20');throw CliErrors[_0x140267(0x95)]('Multiple\x20tenant\x20members\x20match\x20\x22'+_0x5e2bfa+_0x140267(0x94)+_0x3bfcdc+'.',_0x140267(0x9e));}const _0xa13b4f=_0x5aad98[0x0];return{'userId':_0xa13b4f['userId'],'username':_0xa13b4f['username']??String(_0xa13b4f['userId']),'nickname':_0xa13b4f[_0x140267(0x7d)],'matchedBy':_0x140267(0x92)};}export const CREATE_USER_ROLE_PATH=a177_0xa877c(0xab);export const DELETE_USER_ROLE_PATH='/smartapi/permit/user-role/delete';export function computeRoleUserMutation(_0x4cfd84){const _0x457759=a177_0xa877c,{operation:_0x55b95b,appCode:_0xa72d95,role:_0x320083,relations:_0x5338d4,user:_0x3437f1}=_0x4cfd84,_0x22ddb2=[...new Set(_0x5338d4[_0x457759(0x78)](_0x274977=>_0x274977[_0x457759(0x85)]))],_0x185e59=[];if(_0x4cfd84['expectUserCount']!==undefined&&_0x4cfd84['expectUserCount']!==_0x22ddb2[_0x457759(0x88)])throw CliErrors[_0x457759(0x95)](_0x457759(0x82)+_0x4cfd84[_0x457759(0xa4)]+_0x457759(0xa0)+_0x22ddb2[_0x457759(0x88)]+'.',_0x457759(0x9c));const _0x40c60d=_0x22ddb2['includes'](_0x3437f1[_0x457759(0x85)]),_0x45f510=_0x5338d4[_0x457759(0xb5)](_0x2fbd4b=>_0x2fbd4b[_0x457759(0x85)]===_0x3437f1['userId'])['map'](_0x19a978=>_0x19a978['id']),_0xdbbc4d=_0x55b95b===_0x457759(0x8e)?!_0x40c60d:_0x40c60d;let _0x4648cb=_0x22ddb2;_0x55b95b==='user-add'?_0x40c60d?_0x185e59['push'](_0x457759(0x9d)+_0x3437f1['userId']+_0x457759(0xa2)+_0x320083[_0x457759(0xb7)]+_0x457759(0xa6)):_0x4648cb=[..._0x22ddb2,_0x3437f1['userId']]:!_0x40c60d?_0x185e59[_0x457759(0xc0)](_0x457759(0x9d)+_0x3437f1[_0x457759(0x85)]+'\x20is\x20not\x20a\x20member\x20of\x20role\x20'+_0x320083['roleName']+_0x457759(0xa6)):(_0x4648cb=_0x22ddb2[_0x457759(0xb5)](_0x1d1c53=>_0x1d1c53!==_0x3437f1[_0x457759(0x85)]),_0x45f510[_0x457759(0x88)]>0x1&&_0x185e59[_0x457759(0xc0)](_0x457759(0xa3)+_0x45f510[_0x457759(0x88)]+_0x457759(0x77)+_0x3437f1[_0x457759(0x85)]+'.'));const _0xc35c7c={'scope':_0x457759(0x93),'operation':_0x55b95b,'selector':{'appCode':_0xa72d95,'roleId':_0x320083['id'],'roleName':_0x320083['roleName'],'userId':_0x3437f1[_0x457759(0x85)]},'before':{'userIds':_0x22ddb2},'after':{'userIds':_0x4648cb},'dryRun':_0x4cfd84['dryRun'],'backend':{'method':'POST','path':_0x55b95b==='user-add'?CREATE_USER_ROLE_PATH:DELETE_USER_ROLE_PATH},'warnings':_0x185e59};return{'mutation':_0xc35c7c,'changed':_0xdbbc4d,'matchingRelationIds':_0x45f510};}export async function loadDevRoleRelations(_0x377bfd,_0x1a2ba2){const _0x1f9e2e=a177_0xa877c,_0x553428=0x64,_0x28e0a3=[];for(let _0x7e75fd=0x1;;_0x7e75fd+=0x1){const {items:_0x2dcf5d,paging:_0xd215b3}=await listDevUserRoleRelations(_0x377bfd,{'roleId':_0x1a2ba2,'currentPage':_0x7e75fd,'pageSize':_0x553428});_0x28e0a3[_0x1f9e2e(0xc0)](..._0x2dcf5d);if(_0x2dcf5d[_0x1f9e2e(0x88)]<_0x553428||_0xd215b3&&_0x28e0a3[_0x1f9e2e(0x88)]>=_0xd215b3[_0x1f9e2e(0xaa)])return _0x28e0a3;}}export function readRoleRef(_0x37c5e9){const _0x56b8d0=a177_0xa877c,_0x2a18c2=_0x37c5e9[_0x56b8d0(0xaf)](_0x56b8d0(0xb6))[_0x56b8d0(0xa5)]();if(!_0x2a18c2)throw CliErrors[_0x56b8d0(0xac)](_0x56b8d0(0xb6),_0x56b8d0(0x99));return _0x2a18c2;}export async function prepareUserMutation(_0x413950,_0x12bf6f,_0x1fd54c){const _0x13b85a=a177_0xa877c,_0x1014ca=readRoleRef(_0x413950),_0xff3a25=_0x413950[_0x13b85a(0xaf)](_0x13b85a(0xbf))['trim']();if(!_0xff3a25)throw CliErrors[_0x13b85a(0xac)](_0x13b85a(0xbf),_0x13b85a(0x8b));const _0x41f452=_0x413950[_0x13b85a(0xb0)](_0x13b85a(0xba)),_0x4dc20b=_0x41f452===undefined||_0x41f452===null?undefined:Number(_0x41f452),_0x9b0dc9=await resolveRoleRef(_0x413950['appCode'],_0x1014ca);if(_0x9b0dc9['roleType']==='OWNER')throw CliErrors['validation']('Cannot\x20'+_0x12bf6f+_0x13b85a(0xb4),_0x13b85a(0xb8));const _0x57222e=await resolveUserRef(_0xff3a25),_0x1dc1aa=await loadDevRoleRelations(_0x413950[_0x13b85a(0xb9)],_0x9b0dc9['id']);return{...computeRoleUserMutation({'operation':_0x12bf6f,'appCode':_0x413950[_0x13b85a(0xb9)],'role':_0x9b0dc9,'relations':_0x1dc1aa,'user':{'userId':_0x57222e[_0x13b85a(0x85)],'username':_0x57222e[_0x13b85a(0xb2)],'nickname':_0x57222e['nickname']},'dryRun':_0x1fd54c,..._0x4dc20b!==undefined?{'expectUserCount':_0x4dc20b}:{}}),'role':_0x9b0dc9,'user':_0x57222e};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a178_0x1358ec=a178_0x1bf9;(function(_0x3775f9,_0x1a70da){const _0x4dfe71=a178_0x1bf9,_0x824647=_0x3775f9();while(!![]){try{const _0x1bd1e6=-parseInt(_0x4dfe71(0x1f3))/0x1+parseInt(_0x4dfe71(0x20a))/0x2*(parseInt(_0x4dfe71(0x204))/0x3)+parseInt(_0x4dfe71(0x1f4))/0x4*(parseInt(_0x4dfe71(0x201))/0x5)+-parseInt(_0x4dfe71(0x1eb))/0x6*(parseInt(_0x4dfe71(0x206))/0x7)+-parseInt(_0x4dfe71(0x1f6))/0x8*(parseInt(_0x4dfe71(0x1ec))/0x9)+-parseInt(_0x4dfe71(0x209))/0xa+parseInt(_0x4dfe71(0x208))/0xb;if(_0x1bd1e6===_0x1a70da)break;else _0x824647['push'](_0x824647['shift']());}catch(_0x6896fe){_0x824647['push'](_0x824647['shift']());}}}(a178_0x436d,0xe895d));import{updateAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';import{assertCustomRole,getRoleById,projectRole,REMARK_FLAG,ROLE_ID_FLAG}from'../../commands/role/shared.js';const UPDATE_PATH=a178_0x1358ec(0x207);function readPatch(_0x2e4a2a){const _0x38b1e9=a178_0x1358ec,_0x2b2674=_0x2e4a2a[_0x38b1e9(0x1ed)](_0x38b1e9(0x1f5)),_0x338c7b=_0x2e4a2a['flag'](_0x38b1e9(0x1e9)),_0x1e809f={};if(_0x2b2674!==undefined&&_0x2b2674!==null){const _0x5a3d9e=String(_0x2b2674)[_0x38b1e9(0x1f7)]();if(!_0x5a3d9e)throw CliErrors[_0x38b1e9(0x1f9)](_0x38b1e9(0x1fa));if(_0x5a3d9e[_0x38b1e9(0x1ff)]>0x40)throw CliErrors[_0x38b1e9(0x1f9)](_0x38b1e9(0x1f1));_0x1e809f[_0x38b1e9(0x1f2)]=_0x5a3d9e;}_0x338c7b!==undefined&&_0x338c7b!==null&&(_0x1e809f[_0x38b1e9(0x1e9)]=String(_0x338c7b));if(_0x1e809f[_0x38b1e9(0x1f2)]===undefined&&_0x1e809f[_0x38b1e9(0x1e9)]===undefined)throw CliErrors[_0x38b1e9(0x1f9)](_0x38b1e9(0x1fb),'Pass\x20at\x20least\x20one\x20of\x20--name\x20/\x20--remark.');return _0x1e809f;}function a178_0x436d(){const _0x2af1e4=['role','update','159cesoil','\x20(id=','28eRKrAH','/smartapi/permit/role/update','10043704tJbSAZ','5754310TtbMHc','38108YHzmqJ','remark','New\x20role\x20name','1544658huwQSH','2269305vShdrX','flag','string','dev','Updated\x20role\x20','Role\x20name\x20cannot\x20exceed\x2064\x20characters.','roleName','177421WDmifA','4XEuMHR','name','16KbCwyD','trim','POST','validation','--name\x20cannot\x20be\x20empty.','Nothing\x20to\x20update.','Update\x20a\x20CUSTOM\x20role\x27s\x20name/remark\x20(built-in\x20roles\x20rejected)','write','num','length','appCode','6583285pDwTEi'];a178_0x436d=function(){return _0x2af1e4;};return a178_0x436d();}function a178_0x1bf9(_0x236cb3,_0xf5878d){_0x236cb3=_0x236cb3-0x1e9;const _0x436d3b=a178_0x436d();let _0x1bf96a=_0x436d3b[_0x236cb3];return _0x1bf96a;}export const roleUpdate={'service':a178_0x1358ec(0x202),'command':a178_0x1358ec(0x203),'description':a178_0x1358ec(0x1fc),'risk':a178_0x1358ec(0x1fd),'flags':[ROLE_ID_FLAG,{...REMARK_FLAG},{'name':a178_0x1358ec(0x1f5),'type':a178_0x1358ec(0x1ee),'required':![],'description':a178_0x1358ec(0x1ea)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x19263f){readPatch(_0x19263f);},async 'dryRun'(_0x366894){const _0x344fe1=a178_0x1358ec,_0x40f1ff=_0x366894[_0x344fe1(0x1fe)]('id'),_0xfa8855=readPatch(_0x366894),_0x236d5a=await getRoleById(_0x366894[_0x344fe1(0x200)],_0x40f1ff);return assertCustomRole(_0x236d5a,_0x344fe1(0x203)),asDryRunResult({'scope':_0x344fe1(0x1ef),'operation':_0x344fe1(0x203),'selector':{'appCode':_0x366894[_0x344fe1(0x200)],'roleId':_0x40f1ff,'roleName':_0x236d5a[_0x344fe1(0x1f2)]},'before':projectRole(_0x236d5a),'after':projectRole({..._0x236d5a,..._0xfa8855['roleName']!==undefined?{'roleName':_0xfa8855[_0x344fe1(0x1f2)]}:{},..._0xfa8855[_0x344fe1(0x1e9)]!==undefined?{'remark':_0xfa8855[_0x344fe1(0x1e9)]}:{}}),'dryRun':!![],'backend':{'method':_0x344fe1(0x1f8),'path':UPDATE_PATH},'warnings':[]},{'method':'POST','url':UPDATE_PATH});},async 'execute'(_0x1f0e46){const _0x4f65bb=a178_0x1358ec,_0x3a8ea4=_0x1f0e46[_0x4f65bb(0x1fe)]('id'),_0x24d89e=readPatch(_0x1f0e46),_0x13fecc=await getRoleById(_0x1f0e46[_0x4f65bb(0x200)],_0x3a8ea4);assertCustomRole(_0x13fecc,_0x4f65bb(0x203)),await updateAppRole({'id':_0x3a8ea4,'appCode':_0x1f0e46[_0x4f65bb(0x200)],..._0x24d89e[_0x4f65bb(0x1f2)]!==undefined?{'roleName':_0x24d89e[_0x4f65bb(0x1f2)]}:{},..._0x24d89e[_0x4f65bb(0x1e9)]!==undefined?{'remark':_0x24d89e[_0x4f65bb(0x1e9)]}:{}});const _0x2b9f9b=await getRoleById(_0x1f0e46[_0x4f65bb(0x200)],_0x3a8ea4);return{'ok':!![],'data':{'scope':_0x4f65bb(0x1ef),'operation':_0x4f65bb(0x203),'selector':{'appCode':_0x1f0e46[_0x4f65bb(0x200)],'roleId':_0x3a8ea4,'roleName':_0x2b9f9b[_0x4f65bb(0x1f2)]},'before':projectRole(_0x13fecc),'after':projectRole(_0x2b9f9b),'dryRun':![],'backend':{'method':'POST','path':UPDATE_PATH},'warnings':[]},'message':_0x4f65bb(0x1f0)+_0x2b9f9b[_0x4f65bb(0x1f2)]+_0x4f65bb(0x205)+_0x3a8ea4+')'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a179_0x14cb(_0x3ceb13,_0x520c09){_0x3ceb13=_0x3ceb13-0x90;const _0x33c6ad=a179_0x33c6();let _0x14cbfe=_0x33c6ad[_0x3ceb13];return _0x14cbfe;}const a179_0x53ae6d=a179_0x14cb;(function(_0x2e3510,_0x27c862){const _0x436ccd=a179_0x14cb,_0x4f7b1a=_0x2e3510();while(!![]){try{const _0x434ecd=-parseInt(_0x436ccd(0x9c))/0x1*(-parseInt(_0x436ccd(0xa5))/0x2)+parseInt(_0x436ccd(0x9b))/0x3+-parseInt(_0x436ccd(0xa3))/0x4+parseInt(_0x436ccd(0xa1))/0x5+parseInt(_0x436ccd(0x9f))/0x6+parseInt(_0x436ccd(0x96))/0x7*(parseInt(_0x436ccd(0x9a))/0x8)+-parseInt(_0x436ccd(0x97))/0x9;if(_0x434ecd===_0x27c862)break;else _0x4f7b1a['push'](_0x4f7b1a['shift']());}catch(_0x57c7cf){_0x4f7b1a['push'](_0x4f7b1a['shift']());}}}(a179_0x33c6,0x5b1bd));import{createDevUserRole}from'../../core/api-client.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a179_0x33c6(){const _0x648fba=['roleType','49357pgYTpw','8991828LLlczO','Added\x20user\x20','Add\x20a\x20user\x20to\x20a\x20role\x20(OWNER\x20rejected);\x20requires\x20--yes','112xmhYdt','1595997NsIgIJ','153514kzGdOp','selector','roleId','3241140VteuMc','role','375295cCwRWK','username','108812JVWZjR','roleName','2MCogCA','user-add','appCode','high-risk-write','No\x20change:\x20user\x20','\x20to\x20role\x20','userId'];a179_0x33c6=function(){return _0x648fba;};return a179_0x33c6();}import{asDryRunResult}from'../../commands/common/dry-run.js';import{EXPECT_USER_COUNT_FLAG,CREATE_USER_ROLE_PATH,prepareUserMutation,ROLE_REF_FLAG,USER_REF_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a179_0x53ae6d(0xa0),'command':a179_0x53ae6d(0xa6),'description':a179_0x53ae6d(0x99),'risk':a179_0x53ae6d(0x91),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x1def1f){const _0x3e6af8=a179_0x53ae6d,{mutation:_0x214bd9}=await prepareUserMutation(_0x1def1f,_0x3e6af8(0xa6),!![]);return asDryRunResult(_0x214bd9,{'method':'POST','url':CREATE_USER_ROLE_PATH});},async 'execute'(_0xa40120){const _0x20f8b9=a179_0x53ae6d,{mutation:_0x36c61c,changed:_0x43b1e4,role:_0x1a8b32,user:_0x2564a8}=await prepareUserMutation(_0xa40120,_0x20f8b9(0xa6),![]);return _0x43b1e4&&await createDevUserRole({'appCode':_0xa40120[_0x20f8b9(0x90)],'userId':_0x2564a8[_0x20f8b9(0x94)],'username':_0x2564a8[_0x20f8b9(0xa2)],'roleType':_0x1a8b32[_0x20f8b9(0x95)],'roleId':_0x36c61c[_0x20f8b9(0x9d)][_0x20f8b9(0x9e)]}),{'ok':!![],'data':_0x36c61c,'message':_0x43b1e4?_0x20f8b9(0x98)+_0x36c61c[_0x20f8b9(0x9d)][_0x20f8b9(0x94)]+_0x20f8b9(0x93)+_0x36c61c['selector'][_0x20f8b9(0xa4)]:_0x20f8b9(0x92)+_0x36c61c[_0x20f8b9(0x9d)][_0x20f8b9(0x94)]+'\x20already\x20in\x20role\x20'+_0x36c61c[_0x20f8b9(0x9d)][_0x20f8b9(0xa4)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a180_0x5ce8fe=a180_0x4062;(function(_0xacc81a,_0x3fedd8){const _0x4a22f5=a180_0x4062,_0x307173=_0xacc81a();while(!![]){try{const _0x347357=parseInt(_0x4a22f5(0x89))/0x1+-parseInt(_0x4a22f5(0x84))/0x2*(parseInt(_0x4a22f5(0x8c))/0x3)+-parseInt(_0x4a22f5(0x8f))/0x4+parseInt(_0x4a22f5(0x86))/0x5*(parseInt(_0x4a22f5(0x81))/0x6)+parseInt(_0x4a22f5(0x7f))/0x7*(-parseInt(_0x4a22f5(0x8e))/0x8)+-parseInt(_0x4a22f5(0x80))/0x9+parseInt(_0x4a22f5(0x85))/0xa;if(_0x347357===_0x3fedd8)break;else _0x307173['push'](_0x307173['shift']());}catch(_0x1ba395){_0x307173['push'](_0x307173['shift']());}}}(a180_0x3f92,0x95e73));import{deleteDevUserRole}from'../../core/api-client.js';function a180_0x4062(_0x18b4d5,_0x3a1cf7){_0x18b4d5=_0x18b4d5-0x7b;const _0x3f9289=a180_0x3f92();let _0x406282=_0x3f9289[_0x18b4d5];return _0x406282;}function a180_0x3f92(){const _0x5a9f89=['userId','selector','\x20not\x20in\x20role\x20','\x20from\x20role\x20','7bRFPDo','9630891CJVOTy','18ZCjmCC','Remove\x20a\x20user\x20from\x20a\x20role\x20(OWNER\x20rejected);\x20requires\x20--yes','high-risk-write','2qCeIMr','20781960ujbNNa','1301555JbAmNn','Removed\x20user\x20','No\x20change:\x20user\x20','394454lunCOO','user-remove','roleName','3100473rzvUQA','POST','1791760TcBEZM','1248080eOEAtV','role'];a180_0x3f92=function(){return _0x5a9f89;};return a180_0x3f92();}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';import{EXPECT_USER_COUNT_FLAG,DELETE_USER_ROLE_PATH,prepareUserMutation,ROLE_REF_FLAG,USER_REF_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a180_0x5ce8fe(0x90),'command':a180_0x5ce8fe(0x8a),'description':a180_0x5ce8fe(0x82),'risk':a180_0x5ce8fe(0x83),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x38c803){const _0x5b6927=a180_0x5ce8fe,{mutation:_0x1c3b7c}=await prepareUserMutation(_0x38c803,_0x5b6927(0x8a),!![]);return asDryRunResult(_0x1c3b7c,{'method':_0x5b6927(0x8d),'url':DELETE_USER_ROLE_PATH});},async 'execute'(_0x4d1d07){const _0x3b6388=a180_0x5ce8fe,{matchingRelationIds:_0x45942b,mutation:_0x4847ec,changed:_0x318194}=await prepareUserMutation(_0x4d1d07,_0x3b6388(0x8a),![]);if(_0x318194)for(const _0x4b4764 of _0x45942b){await deleteDevUserRole(_0x4b4764);}return{'ok':!![],'data':_0x4847ec,'message':_0x318194?_0x3b6388(0x87)+_0x4847ec[_0x3b6388(0x7c)]['userId']+_0x3b6388(0x7e)+_0x4847ec['selector'][_0x3b6388(0x8b)]:_0x3b6388(0x88)+_0x4847ec[_0x3b6388(0x7c)][_0x3b6388(0x7b)]+_0x3b6388(0x7d)+_0x4847ec[_0x3b6388(0x7c)][_0x3b6388(0x8b)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a181_0x2bdae9=a181_0x2b5c;(function(_0x28d779,_0x1d8c0a){const _0x16f72d=a181_0x2b5c,_0x1067f1=_0x28d779();while(!![]){try{const _0x25b7c6=-parseInt(_0x16f72d(0x18c))/0x1+parseInt(_0x16f72d(0x18b))/0x2+parseInt(_0x16f72d(0x190))/0x3+-parseInt(_0x16f72d(0x18d))/0x4+-parseInt(_0x16f72d(0x195))/0x5+-parseInt(_0x16f72d(0x18e))/0x6*(parseInt(_0x16f72d(0x194))/0x7)+parseInt(_0x16f72d(0x18f))/0x8;if(_0x25b7c6===_0x1d8c0a)break;else _0x1067f1['push'](_0x1067f1['shift']());}catch(_0x1a13b3){_0x1067f1['push'](_0x1067f1['shift']());}}}(a181_0x3900,0xde3c9));function a181_0x3900(){const _0x19b546=['307072iRWoGR','514476CUlTNA','7225324UgmWJl','96EbdgwM','30134480SGjnhv','4155480AsBXYT','\x22\x20→\x20userId\x20','name','flagMissing','196217zOEyQt','8129610iFDfLr','read','matchedBy','trim','userId','str','role','user-resolve'];a181_0x3900=function(){return _0x19b546;};return a181_0x3900();}import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a181_0x2b5c(_0x5b52c4,_0x165297){_0x5b52c4=_0x5b52c4-0x188;const _0x390012=a181_0x3900();let _0x2b5c78=_0x390012[_0x5b52c4];return _0x2b5c78;}import{resolveUserRef,USER_NAME_FLAG}from'../../commands/role/shared.js';export const roleUserResolve={'service':a181_0x2bdae9(0x189),'command':a181_0x2bdae9(0x18a),'description':'Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','risk':a181_0x2bdae9(0x196),'flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x36eace){const _0x22ff63=a181_0x2bdae9;if(!_0x36eace['str'](_0x22ff63(0x192))[_0x22ff63(0x198)]())throw CliErrors[_0x22ff63(0x193)](_0x22ff63(0x192),'Pass\x20--name\x20<nickname|username>.');},async 'execute'(_0x3fa09b){const _0xfaa2f6=a181_0x2bdae9,_0x174f09=_0x3fa09b[_0xfaa2f6(0x188)](_0xfaa2f6(0x192))['trim'](),_0x5ca574=await resolveUserRef(_0x174f09);return{'ok':!![],'data':{'user':{'userId':_0x5ca574[_0xfaa2f6(0x199)],'username':_0x5ca574['username'],'nickname':_0x5ca574['nickname'],'matchedBy':_0x5ca574[_0xfaa2f6(0x197)]}},'message':'Resolved\x20\x22'+_0x174f09+_0xfaa2f6(0x191)+_0x5ca574[_0xfaa2f6(0x199)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a182_0x3d3ea3=a182_0x3bc2;function a182_0x4d7c(){const _0x36cc09=['boolean','bun','pnpm','180768rsNlDK','scripts','18495851MAiopz','parse','bun.lockb','keys','--watch','vite\x20preview\x20exited\x20with\x20code\x20','\x20run\x20build','No\x20scripts\x20defined\x20in\x20package.json.','args','\x0a\x20\x20Usage:\x20','Available:\x20','needsUpgrade','validation','17323PoLaeu','preview','12871523PtWELF','Script\x20name\x20defined\x20in\x20package.json','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','vite','log','28278vtzZpu','21wYzLBv','bun.lock','belowMinimum','watch','bool','push','1112rjbNSD','error','.bin','15528260vjfwkO','\x20run\x20preview\x20--watch','run','\x20run\x20','\x22\x20not\x20found\x20in\x20package.json.','node_modules','yarn.lock','\x20\x20\x20\x20','pnpm-lock.yaml','\x20run\x20<script>\x0a','(none)','write','6VwdOpv','has','build','\x20run\x20start','cwd','npm','Enable\x20watch\x20mode\x20for\x20preview','\x0a\x20\x20Available\x20scripts:\x0a','utf-8','2099540nTMVvJ','15GkzEsu','script','No\x20package.json\x20found\x20in\x20current\x20directory.','close','inherit','\x20run\x20preview'];a182_0x4d7c=function(){return _0x36cc09;};return a182_0x4d7c();}(function(_0x1b3552,_0x281013){const _0x49b5c2=a182_0x3bc2,_0x2a79ea=_0x1b3552();while(!![]){try{const _0x294cdf=parseInt(_0x49b5c2(0x1e3))/0x1+-parseInt(_0x49b5c2(0x213))/0x2*(-parseInt(_0x49b5c2(0x1eb))/0x3)+-parseInt(_0x49b5c2(0x209))/0x4*(-parseInt(_0x49b5c2(0x20a))/0x5)+-parseInt(_0x49b5c2(0x200))/0x6*(parseInt(_0x49b5c2(0x1e5))/0x7)+parseInt(_0x49b5c2(0x1f1))/0x8*(parseInt(_0x49b5c2(0x1ea))/0x9)+-parseInt(_0x49b5c2(0x1f4))/0xa+parseInt(_0x49b5c2(0x215))/0xb;if(_0x294cdf===_0x281013)break;else _0x2a79ea['push'](_0x2a79ea['shift']());}catch(_0x41e9f9){_0x2a79ea['push'](_0x2a79ea['shift']());}}}(a182_0x4d7c,0xe83be));import{readFileSync,existsSync}from'node:fs';import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set(['start','dev']);function a182_0x3bc2(_0x22583f,_0x3e438c){_0x22583f=_0x22583f-0x1d7;const _0x4d7ca6=a182_0x4d7c();let _0x3bc272=_0x4d7ca6[_0x22583f];return _0x3bc272;}function readPackageScripts(_0x30708f){const _0x46b0a7=a182_0x3bc2,_0x1980fb=resolve(_0x30708f,'package.json');if(!existsSync(_0x1980fb))return null;try{const _0x13968d=JSON[_0x46b0a7(0x1d7)](readFileSync(_0x1980fb,_0x46b0a7(0x208)));return _0x13968d[_0x46b0a7(0x214)]??{};}catch{return null;}}function detectPackageManager(_0x324c65){const _0xa21266=a182_0x3bc2;if(existsSync(resolve(_0x324c65,_0xa21266(0x1d8)))||existsSync(resolve(_0x324c65,_0xa21266(0x1ec))))return _0xa21266(0x211);if(existsSync(resolve(_0x324c65,_0xa21266(0x1fc))))return _0xa21266(0x212);if(existsSync(resolve(_0x324c65,_0xa21266(0x1fa))))return'yarn';return _0xa21266(0x205);}async function versionCheck(_0x51556d){const _0x456779=a182_0x3bc2,_0x119f90=await checkCliVersion();(_0x119f90['needsUpgrade']||_0x119f90[_0x456779(0x1ed)])&&(printCliUpgradeWarning(_0x119f90),assertCliVersionSupported(_0x119f90));const _0x379593=await checkSdkVersion(_0x51556d);if(_0x379593[_0x456779(0x1e1)])printSdkUpgradeWarning(_0x379593);}function spawnScript(_0x5aa92b,_0x562c56,_0x157be7,_0x3234a5){return new Promise((_0x2fb929,_0x1772dd)=>{const _0x427951=a182_0x3bc2,_0x1d385e=['run',_0x562c56,..._0x157be7],_0x1e4e8d=spawn(_0x5aa92b,_0x1d385e,{'cwd':_0x3234a5,'stdio':_0x427951(0x20e),'shell':!![],'env':{...process.env,'PATH':''+join(_0x3234a5,_0x427951(0x1f9),_0x427951(0x1f3))+delimiter+process.env.PATH}});_0x1e4e8d['on']('close',_0xf639ff=>{const _0xbad69b=_0x427951;if(_0xf639ff===0x0||_0xf639ff===null)_0x2fb929();else _0x1772dd(new Error(_0x5aa92b+_0xbad69b(0x1f7)+_0x562c56+'\x20exited\x20with\x20code\x20'+_0xf639ff));}),_0x1e4e8d['on'](_0x427951(0x1f2),_0x1772dd);});}function spawnViteBuildWatch(_0x1e6775){return new Promise((_0x4c6dcf,_0x343df5)=>{const _0x4b57b2=a182_0x3bc2,_0x3bf68d=spawn(_0x4b57b2(0x1e8),[_0x4b57b2(0x202),_0x4b57b2(0x1da)],{'cwd':_0x1e6775,'stdio':'inherit','shell':!![],'env':{...process.env,'PATH':''+join(_0x1e6775,'node_modules',_0x4b57b2(0x1f3))+delimiter+process.env.PATH}});_0x3bf68d['on'](_0x4b57b2(0x20d),_0xb96cb3=>{const _0x5cca8f=_0x4b57b2;if(_0xb96cb3===0x0||_0xb96cb3===null)_0x4c6dcf();else _0x343df5(new Error(_0x5cca8f(0x1e7)+_0xb96cb3));}),_0x3bf68d['on'](_0x4b57b2(0x1f2),_0x343df5);});}function spawnVitePreview(_0x2d235c){return new Promise((_0x2f69ac,_0x3680ee)=>{const _0x5927e7=a182_0x3bc2,_0x36651c=spawn(_0x5927e7(0x1e8),[_0x5927e7(0x1e4)],{'cwd':_0x2d235c,'stdio':_0x5927e7(0x20e),'shell':!![],'env':{...process.env,'PATH':''+join(_0x2d235c,_0x5927e7(0x1f9),_0x5927e7(0x1f3))+delimiter+process.env.PATH}});_0x36651c['on'](_0x5927e7(0x20d),_0x52ccae=>{const _0x2292d9=_0x5927e7;if(_0x52ccae===0x0||_0x52ccae===null)_0x2f69ac();else _0x3680ee(new Error(_0x2292d9(0x1db)+_0x52ccae));}),_0x36651c['on'](_0x5927e7(0x1f2),_0x3680ee);});}const runFlags=[{'name':a182_0x3d3ea3(0x1ee),'type':a182_0x3d3ea3(0x210),'description':a182_0x3d3ea3(0x206),'default':![]}];export const runDefinition={'service':a182_0x3d3ea3(0x1f6),'command':'run','description':'Run\x20a\x20package.json\x20script','risk':a182_0x3d3ea3(0x1ff),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a182_0x3d3ea3(0x20b),'description':a182_0x3d3ea3(0x1e6),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x200463=a182_0x3d3ea3,_0x9c9db6=[];return _0x9c9db6[_0x200463(0x1f0)]('\x20\x20EXAMPLES'),_0x9c9db6[_0x200463(0x1f0)](_0x200463(0x1fb)+CLI_BIN_NAME+_0x200463(0x203)),_0x9c9db6['push'](_0x200463(0x1fb)+CLI_BIN_NAME+_0x200463(0x1dc)),_0x9c9db6[_0x200463(0x1f0)](_0x200463(0x1fb)+CLI_BIN_NAME+_0x200463(0x20f)),_0x9c9db6[_0x200463(0x1f0)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x200463(0x1f5)),_0x9c9db6['join']('\x0a');},async 'execute'(_0xa7fa67){const _0x590706=a182_0x3d3ea3,_0x2c015c=process[_0x590706(0x204)](),_0x1303f9=_0xa7fa67['args'][0x0],_0x540184=_0xa7fa67[_0x590706(0x1de)]['slice'](0x1),_0x19acb5=readPackageScripts(_0x2c015c);if(!_0x19acb5)throw CliErrors[_0x590706(0x1e2)](_0x590706(0x20c));if(!_0x1303f9){const _0x3ce00a=Object['keys'](_0x19acb5);if(_0x3ce00a['length']===0x0)console[_0x590706(0x1e9)](_0x590706(0x1dd));else{console[_0x590706(0x1e9)](_0x590706(0x207));for(const _0x5e6fec of _0x3ce00a){console[_0x590706(0x1e9)](_0x590706(0x1fb)+_0x5e6fec);}console['log'](_0x590706(0x1df)+CLI_BIN_NAME+_0x590706(0x1fd));}return{'ok':!![]};}if(!_0x19acb5[_0x1303f9])throw CliErrors[_0x590706(0x1e2)]('Script\x20\x22'+_0x1303f9+_0x590706(0x1f8),_0x590706(0x1e0)+(Object[_0x590706(0x1d9)](_0x19acb5)['join'](',\x20')||_0x590706(0x1fe)));const _0x571306=detectPackageManager(_0x2c015c);VERSION_CHECK_SCRIPTS[_0x590706(0x201)](_0x1303f9)&&await versionCheck(_0x2c015c);if(_0x1303f9===_0x590706(0x1e4)&&_0xa7fa67[_0x590706(0x1ef)](_0x590706(0x1ee)))return await Promise['all']([spawnViteBuildWatch(_0x2c015c),spawnVitePreview(_0x2c015c)]),{'ok':!![]};return await spawnScript(_0x571306,_0x1303f9,_0x540184,_0x2c015c),{'ok':!![]};}};
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a183_0x1846bd=a183_0x1ac8;function a183_0x1ac8(_0x681f3,_0x22c6fe){_0x681f3=_0x681f3-0x1be;const _0x292b97=a183_0x292b();let _0x1ac89e=_0x292b97[_0x681f3];return _0x1ac89e;}(function(_0x53eaa3,_0x314591){const _0x3c7555=a183_0x1ac8,_0x3e0694=_0x53eaa3();while(!![]){try{const _0x5e0809=parseInt(_0x3c7555(0x1c6))/0x1+-parseInt(_0x3c7555(0x1bf))/0x2+parseInt(_0x3c7555(0x1c1))/0x3+-parseInt(_0x3c7555(0x1c7))/0x4+-parseInt(_0x3c7555(0x1c3))/0x5*(-parseInt(_0x3c7555(0x1be))/0x6)+parseInt(_0x3c7555(0x1c5))/0x7+-parseInt(_0x3c7555(0x1c0))/0x8;if(_0x5e0809===_0x314591)break;else _0x3e0694['push'](_0x3e0694['shift']());}catch(_0x2363fd){_0x3e0694['push'](_0x3e0694['shift']());}}}(a183_0x292b,0x9188d));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x530cb6){const _0x546a3e=await buildSchemaPayload();return{'ok':!![],'data':_0x546a3e};}function a183_0x292b(){const _0x40530f=['438003OdNlQy','Export\x20machine-readable\x20command\x20schema\x20(JSON)','82490nDDBYM','schema','5016900JbTQwV','500268hMYPdd','3935616UJqCnd','318DuUQsL','1286102ChLuXu','114392KQLnWl'];a183_0x292b=function(){return _0x40530f;};return a183_0x292b();}export const schemaDefinition={'service':a183_0x1846bd(0x1c4),'command':'export','description':a183_0x1846bd(0x1c2),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':'json','flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a184_0x44e3c3=a184_0x523b;(function(_0x721429,_0xe1c677){const _0xc9335a=a184_0x523b,_0x4be76a=_0x721429();while(!![]){try{const _0x1e32a1=-parseInt(_0xc9335a(0x18d))/0x1+parseInt(_0xc9335a(0x1a7))/0x2*(-parseInt(_0xc9335a(0x19e))/0x3)+parseInt(_0xc9335a(0x18b))/0x4*(parseInt(_0xc9335a(0x182))/0x5)+-parseInt(_0xc9335a(0x17d))/0x6*(parseInt(_0xc9335a(0x1af))/0x7)+parseInt(_0xc9335a(0x171))/0x8*(-parseInt(_0xc9335a(0x1b8))/0x9)+-parseInt(_0xc9335a(0x1ab))/0xa*(parseInt(_0xc9335a(0x1a1))/0xb)+parseInt(_0xc9335a(0x1b4))/0xc;if(_0x1e32a1===_0xe1c677)break;else _0x4be76a['push'](_0x4be76a['shift']());}catch(_0x4a9cc1){_0x4be76a['push'](_0x4be76a['shift']());}}}(a184_0x23c5,0x756a8));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function a184_0x23c5(){const _0xb82db7=['new','description','Created\x20SQL\x20query\x20','appCode','join','str','dbId','utf8','nonInteractive','2517MYmgwT','Invalid\x20database\x20selection\x20payload:\x20','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','615989mleLJU','mybatisXml','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','/smartapi/custom/saveUserCustomSql','create','isFinite','8DoHhWp','dbName','\x20\x20SELECT\x201\x20AS\x20id','toISOString','110hzZvZS','catch','<server-generated-sqlCode>','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','14FDADoZ','dbId\x20不能为空','lastSync','parse','sql','18836472xSEDca','write','请输入\x20SQL\x20名称:','flag','9kObaRt','719712lJqLpF','number','__manual__','SELECT\x201\x20AS\x20id;','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','请选择目标数据库:','dbId\x20必须为正整数','请输入目标数据库\x20dbId:','POST','mode','db-id','name','116658skScbI','flagMissing','sqlRootDir','string','MyBatis\x20XML(mybatisXml)','195enrZeY','</select>','Target\x20database\x20ID','sqls','sqlCode','适合带动态标签的\x20MyBatis\x20XML\x20SQL','普通\x20SQL(sql)','validation','lockFilePath','30676VqlTfw','SQL\x20query\x20display\x20name','639666CFqOqB','sqlName','isInteger','trim','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','sqlRoot','请选择本地\x20SQL\x20模式:'];a184_0x23c5=function(){return _0xb82db7;};return a184_0x23c5();}function generateSqlTemplate(_0x1d02c2){const _0x5bd27e=a184_0x523b;if(_0x1d02c2===_0x5bd27e(0x1a2))return[_0x5bd27e(0x191),_0x5bd27e(0x1a9),_0x5bd27e(0x183),''][_0x5bd27e(0x199)]('\x0a');return[_0x5bd27e(0x174),''][_0x5bd27e(0x199)]('\x0a');}export const sqlCreate={'service':a184_0x44e3c3(0x1b3),'command':a184_0x44e3c3(0x1a5),'description':a184_0x44e3c3(0x1a3),'risk':a184_0x44e3c3(0x1b5),'flags':[{'name':'name','type':a184_0x44e3c3(0x180),'description':a184_0x44e3c3(0x18c)},{'name':a184_0x44e3c3(0x17b),'type':'number','description':a184_0x44e3c3(0x184)},{'name':a184_0x44e3c3(0x17a),'type':'string','enum':['sql',a184_0x44e3c3(0x1a2)],'description':'Local\x20SQL\x20file\x20mode'}],async 'validate'(_0x3b89bc){const _0x3a99a4=a184_0x44e3c3;if(!_0x3b89bc[_0x3a99a4(0x19d)])return;if(!_0x3b89bc['str'](_0x3a99a4(0x17c))[_0x3a99a4(0x190)]())throw CliErrors[_0x3a99a4(0x17e)](_0x3a99a4(0x17c),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x2e54b7=resolveProvidedDbId(_0x3b89bc);if(typeof _0x2e54b7!==_0x3a99a4(0x172)||!Number['isFinite'](_0x2e54b7)||_0x2e54b7<=0x0)throw CliErrors['flagMissing'](_0x3a99a4(0x17b),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x3b89bc[_0x3a99a4(0x19a)](_0x3a99a4(0x17a))['trim']())throw CliErrors[_0x3a99a4(0x17e)](_0x3a99a4(0x17a),_0x3a99a4(0x1ae));},async 'dryRun'(_0x102e8a){const _0x51895d=a184_0x44e3c3,_0x198f4f=loadSqlProjectConfig(_0x102e8a[_0x51895d(0x198)]),{sqlName:_0x611ba0,dbId:_0x54bb4b,dbName:_0xdb4ac6,mode:_0x39fc07}=await resolveSqlNewInputs(_0x102e8a),_0x56abce=buildSqlRelativePath(_0x51895d(0x1ad),_0x611ba0,_0xdb4ac6,_0x39fc07,_0x54bb4b),_0x5117e8=_0x198f4f['sqlRootDir']+'/'+_0x56abce;return{'method':_0x51895d(0x179),'url':_0x51895d(0x1a4),'body':{'appCode':_0x102e8a['appCode'],'sqlName':_0x611ba0,'dbId':_0x54bb4b,'mode':_0x39fc07,'localPath':_0x5117e8},'description':_0x51895d(0x1a0)+_0x198f4f[_0x51895d(0x17f)]};},async 'execute'(_0x1d42be){const _0x4df7c0=a184_0x44e3c3,_0x2ada7e=loadSqlProjectConfig(_0x1d42be[_0x4df7c0(0x198)]),{sqlName:_0xc9da,dbId:_0x57d5c7,dbName:_0x4ba92c,mode:_0x2f79d3}=await resolveSqlNewInputs(_0x1d42be),_0x405d14=generateSqlTemplate(_0x2f79d3),_0x3cb817=await createSqlQuery({'appCode':_0x1d42be[_0x4df7c0(0x198)],'sqlName':_0xc9da,'dbId':_0x57d5c7,'sqlContent':_0x405d14}),_0x3331a0=ensureRemoteSqlContent(_0x3cb817),_0x32093f=_0x4ba92c||await getDbName(_0x1d42be[_0x4df7c0(0x198)],_0x57d5c7)[_0x4df7c0(0x1ac)](()=>undefined),_0x38eadb=buildSqlRelativePath(_0x3cb817['sqlCode'],_0x3cb817[_0x4df7c0(0x18e)],_0x32093f,_0x2f79d3,_0x57d5c7),_0x56bf12=_0x2ada7e['sqlRootDir']+'/'+_0x38eadb,_0x15994f=buildLocalSqlFileContent({'sqlCode':_0x3cb817[_0x4df7c0(0x186)],'sqlName':_0x3cb817[_0x4df7c0(0x18e)],'dbId':_0x3cb817[_0x4df7c0(0x19b)]},_0x3331a0,{'dbName':_0x32093f,'mode':_0x2f79d3,'syncedAt':new Date()['toISOString'](),'description':_0x3cb817[_0x4df7c0(0x196)]});if(await fileExists(_0x56bf12))throw CliErrors[_0x4df7c0(0x189)]('File\x20already\x20exists:\x20'+_0x56bf12);await ensureParentDirectory(_0x56bf12),await writeFile(_0x56bf12,_0x15994f,_0x4df7c0(0x19c));const _0x5419ec=await readSqlLockFile(_0x2ada7e[_0x4df7c0(0x18a)]),{lockData:_0x293f1b,appLock:_0x462c8e}=ensureSqlLockScope(_0x5419ec??createEmptySqlLock(),_0x2ada7e[_0x4df7c0(0x198)],_0x2ada7e[_0x4df7c0(0x193)],_0x4df7c0(0x195));return _0x462c8e[_0x4df7c0(0x185)][_0x3cb817[_0x4df7c0(0x186)]]={...buildSqlLockEntry(_0x3cb817,_0x3331a0,computeSqlContentHash(_0x15994f),{'dbName':_0x32093f}),'path':_0x38eadb,'mode':_0x2f79d3},_0x462c8e[_0x4df7c0(0x1b1)]=new Date()[_0x4df7c0(0x1aa)](),await writeSqlLockFile(_0x2ada7e[_0x4df7c0(0x18a)],_0x293f1b),{'ok':!![],'data':{'id':_0x3cb817['id'],'sqlCode':_0x3cb817[_0x4df7c0(0x186)],'sqlName':_0x3cb817[_0x4df7c0(0x18e)],'dbId':_0x3cb817[_0x4df7c0(0x19b)],'path':_0x56bf12,'mode':_0x2f79d3},'message':_0x4df7c0(0x197)+_0x3cb817[_0x4df7c0(0x186)]};}};function a184_0x523b(_0x39fb1e,_0x15573f){_0x39fb1e=_0x39fb1e-0x171;const _0x23c5a0=a184_0x23c5();let _0x523bcd=_0x23c5a0[_0x39fb1e];return _0x523bcd;}async function resolveSqlNewInputs(_0xe196ba){const _0x466f56=await resolveSqlNameInput(_0xe196ba),{dbId:_0x26c91b,dbName:_0x31e34d}=await resolveDbSelection(_0xe196ba),_0x4d519e=await resolveSqlModeInput(_0xe196ba);return{'sqlName':_0x466f56,'dbId':_0x26c91b,'dbName':_0x31e34d,'mode':_0x4d519e};}async function resolveSqlNameInput(_0x3e7dc8){const _0x1ecccb=a184_0x44e3c3,_0x5b8e08=_0x3e7dc8[_0x1ecccb(0x19a)](_0x1ecccb(0x17c))[_0x1ecccb(0x190)]();if(_0x5b8e08)return _0x5b8e08;if(_0x3e7dc8[_0x1ecccb(0x19d)])throw CliErrors[_0x1ecccb(0x17e)](_0x1ecccb(0x17c),_0x1ecccb(0x192));return(await input({'message':_0x1ecccb(0x1b6),'validate':_0x4bd12c=>_0x4bd12c[_0x1ecccb(0x190)]()?!![]:'SQL\x20名称不能为空'}))[_0x1ecccb(0x190)]();}async function resolveDbSelection(_0x5cfb8f){const _0x1d6bab=a184_0x44e3c3,_0x58b280=resolveProvidedDbId(_0x5cfb8f);if(typeof _0x58b280===_0x1d6bab(0x172)&&Number[_0x1d6bab(0x1a6)](_0x58b280)&&_0x58b280>0x0)return{'dbId':_0x58b280,'dbName':await getDbName(_0x5cfb8f[_0x1d6bab(0x198)],_0x58b280)[_0x1d6bab(0x1ac)](()=>undefined)};if(_0x5cfb8f[_0x1d6bab(0x19d)])throw CliErrors['flagMissing'](_0x1d6bab(0x17b),_0x1d6bab(0x175));const _0x53d063=await listDatabases(_0x5cfb8f[_0x1d6bab(0x198)])[_0x1d6bab(0x1ac)](()=>[]);if(_0x53d063['length']===0x1)return{'dbId':_0x53d063[0x0][_0x1d6bab(0x19b)],'dbName':_0x53d063[0x0]['dbName']};if(_0x53d063['length']>0x1){const _0x203329=await select({'message':_0x1d6bab(0x176),'choices':[..._0x53d063['map'](_0x4986b1=>({'name':_0x4986b1[_0x1d6bab(0x1a8)]+'\x20('+_0x4986b1[_0x1d6bab(0x19b)]+')','value':serializeDbSelection(_0x4986b1)})),{'name':'✎\x20手动输入\x20dbId','value':_0x1d6bab(0x173)}]});if(_0x203329!==_0x1d6bab(0x173))return deserializeDbSelection(_0x203329);}const _0x3290a0=await input({'message':_0x1d6bab(0x178),'validate':_0xadbc00=>{const _0x173a17=_0x1d6bab,_0xf798ec=_0xadbc00[_0x173a17(0x190)]();if(!_0xf798ec)return _0x173a17(0x1b0);const _0x426465=Number(_0xf798ec);if(!Number[_0x173a17(0x18f)](_0x426465)||_0x426465<=0x0)return _0x173a17(0x177);return!![];}});return{'dbId':Number(_0x3290a0['trim']())};}async function resolveSqlModeInput(_0x5c202e){const _0x3ce1d6=a184_0x44e3c3,_0x99e225=_0x5c202e[_0x3ce1d6(0x19a)]('mode')[_0x3ce1d6(0x190)]();if(_0x99e225===_0x3ce1d6(0x1b3)||_0x99e225===_0x3ce1d6(0x1a2))return _0x99e225;if(_0x5c202e[_0x3ce1d6(0x19d)])throw CliErrors[_0x3ce1d6(0x17e)](_0x3ce1d6(0x17a),_0x3ce1d6(0x1ae));return await select({'message':_0x3ce1d6(0x194),'choices':[{'name':_0x3ce1d6(0x188),'value':_0x3ce1d6(0x1b3),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0x3ce1d6(0x181),'value':_0x3ce1d6(0x1a2),'description':_0x3ce1d6(0x187)}]});}function serializeDbSelection(_0x559d60){const _0x2603d6=a184_0x44e3c3;return JSON['stringify']({'dbId':_0x559d60[_0x2603d6(0x19b)],'dbName':_0x559d60['dbName']});}function deserializeDbSelection(_0x9932d3){const _0x3526f3=a184_0x44e3c3;try{const _0x2fc331=JSON[_0x3526f3(0x1b2)](_0x9932d3);if(typeof _0x2fc331['dbId']===_0x3526f3(0x172)&&Number[_0x3526f3(0x1a6)](_0x2fc331[_0x3526f3(0x19b)]))return{'dbId':_0x2fc331['dbId'],'dbName':_0x2fc331[_0x3526f3(0x1a8)]};}catch{}throw CliErrors[_0x3526f3(0x189)](_0x3526f3(0x19f)+_0x9932d3);}function resolveProvidedDbId(_0x3b3be3){const _0x337d9a=a184_0x44e3c3,_0x5ebb42=_0x3b3be3[_0x337d9a(0x1b7)](_0x337d9a(0x17b));if(typeof _0x5ebb42==='number'&&Number[_0x337d9a(0x1a6)](_0x5ebb42))return _0x5ebb42;return undefined;}
|
|
1
|
+
const a184_0x17ea2a=a184_0x1f1d;(function(_0x5e3b35,_0x4c1dfe){const _0x3477a0=a184_0x1f1d,_0x280730=_0x5e3b35();while(!![]){try{const _0x1b74e7=parseInt(_0x3477a0(0x10d))/0x1+parseInt(_0x3477a0(0x11f))/0x2+parseInt(_0x3477a0(0xeb))/0x3+parseInt(_0x3477a0(0x109))/0x4*(parseInt(_0x3477a0(0x107))/0x5)+-parseInt(_0x3477a0(0x100))/0x6+-parseInt(_0x3477a0(0xf2))/0x7+-parseInt(_0x3477a0(0xf7))/0x8*(parseInt(_0x3477a0(0xed))/0x9);if(_0x1b74e7===_0x4c1dfe)break;else _0x280730['push'](_0x280730['shift']());}catch(_0x1fe016){_0x280730['push'](_0x280730['shift']());}}}(a184_0x1a73,0x487ff));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';function a184_0x1f1d(_0x3591e8,_0x3a90ff){_0x3591e8=_0x3591e8-0xe0;const _0x1a73e7=a184_0x1a73();let _0x1f1d49=_0x1a73e7[_0x3591e8];return _0x1f1d49;}import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';function a184_0x1a73(){const _0xc5f6cd=['MyBatis\x20XML(mybatisXml)','✎\x20手动输入\x20dbId','str','dbId\x20不能为空','map','write','Invalid\x20database\x20selection\x20payload:\x20','请选择本地\x20SQL\x20模式:','请输入目标数据库\x20dbId:','lastSync','__manual__','catch','Created\x20SQL\x20query\x20','isInteger','416452IRKLTT','Local\x20SQL\x20file\x20mode','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','toISOString','create','sqlCode','length','string','File\x20already\x20exists:\x20','name','dbName','stringify','db-id','1330116ujDIYG','new','27SmBqZZ','dbId\x20必须为正整数','validation','trim','number','2291254PaRHgl','SQL\x20query\x20display\x20name','sql','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','sqls','1546368hxBZEB','appCode','Target\x20database\x20ID','utf8','</select>','sqlName','dbId','<server-generated-sqlCode>','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','845418xwFMya','mode','mybatisXml','join','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','flag','flagMissing','85010pTWqOn','sqlRootDir','100bXXLZu','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','SELECT\x201\x20AS\x20id;','POST','268424ehKkOt','nonInteractive','isFinite','适合带动态标签的\x20MyBatis\x20XML\x20SQL'];a184_0x1a73=function(){return _0xc5f6cd;};return a184_0x1a73();}import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x2d5468){const _0x76ca03=a184_0x1f1d;if(_0x2d5468===_0x76ca03(0x102))return[_0x76ca03(0x10a),'\x20\x20SELECT\x201\x20AS\x20id',_0x76ca03(0xfb),''][_0x76ca03(0x103)]('\x0a');return[_0x76ca03(0x10b),'']['join']('\x0a');}export const sqlCreate={'service':'sql','command':a184_0x17ea2a(0xe2),'description':'Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','risk':a184_0x17ea2a(0x116),'flags':[{'name':a184_0x17ea2a(0xe7),'type':a184_0x17ea2a(0xe5),'description':a184_0x17ea2a(0xf3)},{'name':a184_0x17ea2a(0xea),'type':a184_0x17ea2a(0xf1),'description':a184_0x17ea2a(0xf9)},{'name':a184_0x17ea2a(0x101),'type':a184_0x17ea2a(0xe5),'enum':[a184_0x17ea2a(0xf4),'mybatisXml'],'description':a184_0x17ea2a(0x120)}],async 'validate'(_0x1e872f){const _0x42ffc2=a184_0x17ea2a;if(!_0x1e872f['nonInteractive'])return;if(!_0x1e872f[_0x42ffc2(0x113)](_0x42ffc2(0xe7))[_0x42ffc2(0xf0)]())throw CliErrors[_0x42ffc2(0x106)](_0x42ffc2(0xe7),_0x42ffc2(0xe0));const _0x50c504=resolveProvidedDbId(_0x1e872f);if(typeof _0x50c504!=='number'||!Number[_0x42ffc2(0x10f)](_0x50c504)||_0x50c504<=0x0)throw CliErrors['flagMissing'](_0x42ffc2(0xea),_0x42ffc2(0xf5));if(!_0x1e872f['str'](_0x42ffc2(0x101))[_0x42ffc2(0xf0)]())throw CliErrors[_0x42ffc2(0x106)]('mode',_0x42ffc2(0x104));},async 'dryRun'(_0x35fa68){const _0x13cd56=a184_0x17ea2a,_0x1bcfa5=loadSqlProjectConfig(_0x35fa68[_0x13cd56(0xf8)]),{sqlName:_0x22dbcd,dbId:_0xae6863,dbName:_0x182617,mode:_0x40099e}=await resolveSqlNewInputs(_0x35fa68),_0x3e455d=buildSqlRelativePath(_0x13cd56(0xfe),_0x22dbcd,_0x182617,_0x40099e,_0xae6863),_0x522983=_0x1bcfa5['sqlRootDir']+'/'+_0x3e455d;return{'method':_0x13cd56(0x10c),'url':'/smartapi/custom/saveUserCustomSql','body':{'appCode':_0x35fa68[_0x13cd56(0xf8)],'sqlName':_0x22dbcd,'dbId':_0xae6863,'mode':_0x40099e,'localPath':_0x522983},'description':_0x13cd56(0xff)+_0x1bcfa5[_0x13cd56(0x108)]};},async 'execute'(_0x5e32f1){const _0x4304f2=a184_0x17ea2a,_0xa761bd=loadSqlProjectConfig(_0x5e32f1['appCode']),{sqlName:_0xa98927,dbId:_0xc27f41,dbName:_0x258e19,mode:_0x4438a}=await resolveSqlNewInputs(_0x5e32f1),_0x20f238=generateSqlTemplate(_0x4438a),_0x52447f=await createSqlQuery({'appCode':_0x5e32f1[_0x4304f2(0xf8)],'sqlName':_0xa98927,'dbId':_0xc27f41,'sqlContent':_0x20f238}),_0x289cfb=ensureRemoteSqlContent(_0x52447f),_0x3b4a46=_0x258e19||await getDbName(_0x5e32f1['appCode'],_0xc27f41)[_0x4304f2(0x11c)](()=>undefined),_0x3d1d18=buildSqlRelativePath(_0x52447f['sqlCode'],_0x52447f['sqlName'],_0x3b4a46,_0x4438a,_0xc27f41),_0x1fb5e6=_0xa761bd[_0x4304f2(0x108)]+'/'+_0x3d1d18,_0x3ad4e8=buildLocalSqlFileContent({'sqlCode':_0x52447f[_0x4304f2(0xe3)],'sqlName':_0x52447f[_0x4304f2(0xfc)],'dbId':_0x52447f['dbId']},_0x289cfb,{'dbName':_0x3b4a46,'mode':_0x4438a,'syncedAt':new Date()[_0x4304f2(0xe1)](),'description':_0x52447f['description']});if(await fileExists(_0x1fb5e6))throw CliErrors[_0x4304f2(0xef)](_0x4304f2(0xe6)+_0x1fb5e6);await ensureParentDirectory(_0x1fb5e6),await writeFile(_0x1fb5e6,_0x3ad4e8,_0x4304f2(0xfa));const _0xbe2d51=await readSqlLockFile(_0xa761bd['lockFilePath']),{lockData:_0x296bd4,appLock:_0x26471c}=ensureSqlLockScope(_0xbe2d51??createEmptySqlLock(),_0xa761bd[_0x4304f2(0xf8)],_0xa761bd['sqlRoot'],_0x4304f2(0xec));return _0x26471c[_0x4304f2(0xf6)][_0x52447f['sqlCode']]={...buildSqlLockEntry(_0x52447f,_0x289cfb,computeSqlContentHash(_0x3ad4e8),{'dbName':_0x3b4a46}),'path':_0x3d1d18,'mode':_0x4438a},_0x26471c[_0x4304f2(0x11a)]=new Date()[_0x4304f2(0xe1)](),await writeSqlLockFile(_0xa761bd['lockFilePath'],_0x296bd4),{'ok':!![],'data':{'id':_0x52447f['id'],'sqlCode':_0x52447f[_0x4304f2(0xe3)],'sqlName':_0x52447f[_0x4304f2(0xfc)],'dbId':_0x52447f['dbId'],'path':_0x1fb5e6,'mode':_0x4438a},'message':_0x4304f2(0x11d)+_0x52447f['sqlCode']};}};async function resolveSqlNewInputs(_0x426f26){const _0x531412=await resolveSqlNameInput(_0x426f26),{dbId:_0x46a44b,dbName:_0xfb3533}=await resolveDbSelection(_0x426f26),_0x6ed5a1=await resolveSqlModeInput(_0x426f26);return{'sqlName':_0x531412,'dbId':_0x46a44b,'dbName':_0xfb3533,'mode':_0x6ed5a1};}async function resolveSqlNameInput(_0x20a4c2){const _0x4a3bd8=a184_0x17ea2a,_0x416ea6=_0x20a4c2['str'](_0x4a3bd8(0xe7))[_0x4a3bd8(0xf0)]();if(_0x416ea6)return _0x416ea6;if(_0x20a4c2[_0x4a3bd8(0x10e)])throw CliErrors[_0x4a3bd8(0x106)](_0x4a3bd8(0xe7),_0x4a3bd8(0xe0));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x284c8a=>_0x284c8a[_0x4a3bd8(0xf0)]()?!![]:'SQL\x20名称不能为空'}))[_0x4a3bd8(0xf0)]();}async function resolveDbSelection(_0x5faf8d){const _0x4270d0=a184_0x17ea2a,_0xd582c0=resolveProvidedDbId(_0x5faf8d);if(typeof _0xd582c0===_0x4270d0(0xf1)&&Number['isFinite'](_0xd582c0)&&_0xd582c0>0x0)return{'dbId':_0xd582c0,'dbName':await getDbName(_0x5faf8d['appCode'],_0xd582c0)[_0x4270d0(0x11c)](()=>undefined)};if(_0x5faf8d['nonInteractive'])throw CliErrors[_0x4270d0(0x106)](_0x4270d0(0xea),_0x4270d0(0xf5));const _0x2925f9=await listDatabases(_0x5faf8d[_0x4270d0(0xf8)])['catch'](()=>[]);if(_0x2925f9[_0x4270d0(0xe4)]===0x1)return{'dbId':_0x2925f9[0x0][_0x4270d0(0xfd)],'dbName':_0x2925f9[0x0]['dbName']};if(_0x2925f9['length']>0x1){const _0x2d39bc=await select({'message':'请选择目标数据库:','choices':[..._0x2925f9[_0x4270d0(0x115)](_0x734b2d=>({'name':_0x734b2d[_0x4270d0(0xe8)]+'\x20('+_0x734b2d[_0x4270d0(0xfd)]+')','value':serializeDbSelection(_0x734b2d)})),{'name':_0x4270d0(0x112),'value':'__manual__'}]});if(_0x2d39bc!==_0x4270d0(0x11b))return deserializeDbSelection(_0x2d39bc);}const _0x411f2c=await input({'message':_0x4270d0(0x119),'validate':_0x10c149=>{const _0x33d5cf=_0x4270d0,_0x1bf166=_0x10c149[_0x33d5cf(0xf0)]();if(!_0x1bf166)return _0x33d5cf(0x114);const _0x178a00=Number(_0x1bf166);if(!Number[_0x33d5cf(0x11e)](_0x178a00)||_0x178a00<=0x0)return _0x33d5cf(0xee);return!![];}});return{'dbId':Number(_0x411f2c['trim']())};}async function resolveSqlModeInput(_0x18b84f){const _0x26db8e=a184_0x17ea2a,_0x424721=_0x18b84f[_0x26db8e(0x113)](_0x26db8e(0x101))[_0x26db8e(0xf0)]();if(_0x424721===_0x26db8e(0xf4)||_0x424721===_0x26db8e(0x102))return _0x424721;if(_0x18b84f[_0x26db8e(0x10e)])throw CliErrors['flagMissing'](_0x26db8e(0x101),_0x26db8e(0x104));return await select({'message':_0x26db8e(0x118),'choices':[{'name':'普通\x20SQL(sql)','value':_0x26db8e(0xf4),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0x26db8e(0x111),'value':_0x26db8e(0x102),'description':_0x26db8e(0x110)}]});}function serializeDbSelection(_0x1e18e3){const _0x4bffb4=a184_0x17ea2a;return JSON[_0x4bffb4(0xe9)]({'dbId':_0x1e18e3['dbId'],'dbName':_0x1e18e3[_0x4bffb4(0xe8)]});}function deserializeDbSelection(_0x13ae92){const _0x217810=a184_0x17ea2a;try{const _0x5cef3b=JSON['parse'](_0x13ae92);if(typeof _0x5cef3b[_0x217810(0xfd)]==='number'&&Number[_0x217810(0x10f)](_0x5cef3b[_0x217810(0xfd)]))return{'dbId':_0x5cef3b[_0x217810(0xfd)],'dbName':_0x5cef3b[_0x217810(0xe8)]};}catch{}throw CliErrors['validation'](_0x217810(0x117)+_0x13ae92);}function resolveProvidedDbId(_0x3120cf){const _0x3bdb2b=a184_0x17ea2a,_0x22b77f=_0x3120cf[_0x3bdb2b(0x105)](_0x3bdb2b(0xea));if(typeof _0x22b77f===_0x3bdb2b(0xf1)&&Number[_0x3bdb2b(0x10f)](_0x22b77f))return _0x22b77f;return undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a185_0x31f5(_0x4da8a0,_0x2f2550){_0x4da8a0=_0x4da8a0-0x173;const _0x4045f4=a185_0x4045();let _0x31f58e=_0x4045f4[_0x4da8a0];return _0x31f58e;}const a185_0x183710=a185_0x31f5;(function(_0x500f84,_0x485291){const _0x8eec9b=a185_0x31f5,_0x184740=_0x500f84();while(!![]){try{const _0x41beb0=parseInt(_0x8eec9b(0x199))/0x1+-parseInt(_0x8eec9b(0x191))/0x2*(parseInt(_0x8eec9b(0x188))/0x3)+parseInt(_0x8eec9b(0x192))/0x4+-parseInt(_0x8eec9b(0x194))/0x5+parseInt(_0x8eec9b(0x17f))/0x6+-parseInt(_0x8eec9b(0x184))/0x7+-parseInt(_0x8eec9b(0x196))/0x8*(parseInt(_0x8eec9b(0x18a))/0x9);if(_0x41beb0===_0x485291)break;else _0x184740['push'](_0x184740['shift']());}catch(_0x849a96){_0x184740['push'](_0x184740['shift']());}}}(a185_0x4045,0x87361));function a185_0x4045(){const _0x458538=['length','validation','SQL\x20lock\x20file\x20not\x20found.','1658262SUUfyf','replace','trashDir','/smartapi/custom/deleteUserCustomSql','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','5041876EtjmVn','delete','sqls','toISOString','3LneEOV','sqlcode','65601DrFaix','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','startsWith','sqlRoot','Would\x20delete\x20SQL\x20','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','1170978sebtwi','4397448fRHOaE','fromEntries','833475VGurkS','projectRoot','128NGtNTo','sqlRootDir','entries','767162ZeXnTN','\x20(local\x20file\x20moved\x20to\x20trash)','filter','sql','str','lockFilePath','POST','lastSync','remoteId','appCode','trashedTo'];a185_0x4045=function(){return _0x458538;};return a185_0x4045();}import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a185_0x183710(0x174),'command':a185_0x183710(0x185),'description':a185_0x183710(0x18f),'risk':'high-risk-write','flags':[SQLCODE_FLAG],async 'validate'(_0xab95ae){const _0x1ad1e0=a185_0x183710,_0x41443b=loadSqlProjectConfig(_0xab95ae[_0x1ad1e0(0x17a)]),_0x1d9f02=await readSqlLockFile(_0x41443b['lockFilePath']);if(!_0x1d9f02)throw CliErrors[_0x1ad1e0(0x17d)](_0x1ad1e0(0x190));},async 'dryRun'(_0x28b389){const _0x5d9dc4=a185_0x183710,_0x301dcb=loadSqlProjectConfig(_0x28b389[_0x5d9dc4(0x17a)]),_0x4a8b26=await readSqlLockFile(_0x301dcb[_0x5d9dc4(0x176)]);if(!_0x4a8b26)throw CliErrors[_0x5d9dc4(0x17d)](_0x5d9dc4(0x190));const {appLock:_0x38f9b1}=ensureSqlLockScope(_0x4a8b26,_0x28b389[_0x5d9dc4(0x17a)],_0x301dcb['sqlRoot'],_0x5d9dc4(0x185)),_0x8d57c9=_0x28b389[_0x5d9dc4(0x175)](_0x5d9dc4(0x189)),_0x5d8d4e=_0x38f9b1[_0x5d9dc4(0x186)][_0x8d57c9];if(!_0x5d8d4e)throw CliErrors[_0x5d9dc4(0x17d)](_0x5d9dc4(0x18b)+_0x8d57c9+'\x22.');return{'method':_0x5d9dc4(0x177),'url':_0x5d9dc4(0x182),'body':{'sqlCode':_0x8d57c9,'id':_0x5d8d4e[_0x5d9dc4(0x179)],'localPath':resolveLocalSqlFilePath(_0x301dcb,_0x8d57c9,_0x5d8d4e)},'description':_0x5d9dc4(0x18e)+_0x8d57c9+_0x5d9dc4(0x183)+_0x301dcb[_0x5d9dc4(0x181)]};},async 'execute'(_0xc8b155){const _0x3bedf2=a185_0x183710,_0x29f819=loadSqlProjectConfig(_0xc8b155['appCode']),_0x557630=await readSqlLockFile(_0x29f819[_0x3bedf2(0x176)]);if(!_0x557630)throw CliErrors[_0x3bedf2(0x17d)](_0x3bedf2(0x17e));const {lockData:_0x3f5116,appLock:_0x1ec4b3}=ensureSqlLockScope(_0x557630,_0xc8b155['appCode'],_0x29f819[_0x3bedf2(0x18d)],_0x3bedf2(0x185)),_0x3fe719=_0xc8b155[_0x3bedf2(0x175)](_0x3bedf2(0x189)),_0x373cae=_0x1ec4b3[_0x3bedf2(0x186)][_0x3fe719];if(!_0x373cae)throw CliErrors['validation'](_0x3bedf2(0x18b)+_0x3fe719+'\x22.');await deleteSqlQuery({'id':_0x373cae[_0x3bedf2(0x179)],'sqlCode':_0x3fe719}),_0x1ec4b3['sqls']=Object[_0x3bedf2(0x193)](Object[_0x3bedf2(0x198)](_0x1ec4b3[_0x3bedf2(0x186)])[_0x3bedf2(0x173)](([_0x9d8e3e])=>_0x9d8e3e!==_0x3fe719)),_0x1ec4b3[_0x3bedf2(0x178)]=new Date()[_0x3bedf2(0x187)](),await writeSqlLockFile(_0x29f819['lockFilePath'],_0x3f5116);const _0x3d0104=resolveLocalSqlFilePath(_0x29f819,_0x3fe719,_0x373cae);let _0x12d221;await fileExists(_0x3d0104)&&(_0x12d221=await moveToTrash(_0x29f819[_0x3bedf2(0x195)],_0x29f819[_0x3bedf2(0x181)],_0x3d0104),await cleanupEmptyDirectories(dirname(_0x3d0104),_0x29f819[_0x3bedf2(0x197)]));const _0x126829={'deleted':_0x3fe719,'remoteId':_0x373cae[_0x3bedf2(0x179)]};if(_0x12d221)_0x126829[_0x3bedf2(0x17b)]=_0x12d221;return{'ok':!![],'data':_0x126829,'message':'Deleted\x20'+_0x3fe719+(_0x12d221?_0x3bedf2(0x19a):'')};}};async function moveToTrash(_0x303227,_0x36a38d,_0x115749){const _0x2940fd=a185_0x183710,_0x3e3d03=new Date()[_0x2940fd(0x187)]()[_0x2940fd(0x180)](/[:.]/g,'-'),_0x3f3c3d=relative(_0x303227,_0x115749),_0x3c3509=join(_0x36a38d,_0x3e3d03,_0x3f3c3d);return await mkdir(dirname(_0x3c3509),{'recursive':!![]}),await rename(_0x115749,_0x3c3509),_0x3c3509;}async function cleanupEmptyDirectories(_0x5243d6,_0x1ac64e){const _0x176004=a185_0x183710;let _0xfd60c4=resolve(_0x5243d6);const _0xb0af75=resolve(_0x1ac64e);while(_0xfd60c4[_0x176004(0x18c)](''+_0xb0af75+sep)||_0xfd60c4===_0xb0af75){if(_0xfd60c4===_0xb0af75)return;try{const _0x5c3800=await readdir(_0xfd60c4);if(_0x5c3800[_0x176004(0x17c)]>0x0)return;await rmdir(_0xfd60c4);}catch{return;}_0xfd60c4=dirname(_0xfd60c4);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a186_0xc620(_0x5c03b0,_0xae9062){_0x5c03b0=_0x5c03b0-0x74;const _0x19cde9=a186_0x19cd();let _0xc6206d=_0x19cde9[_0x5c03b0];return _0xc6206d;}const a186_0x532156=a186_0xc620;(function(_0x4f0773,_0x5d265c){const _0xb3d94c=a186_0xc620,_0x4ce16b=_0x4f0773();while(!![]){try{const _0x3571b4=-parseInt(_0xb3d94c(0x81))/0x1+parseInt(_0xb3d94c(0x87))/0x2*(-parseInt(_0xb3d94c(0x86))/0x3)+-parseInt(_0xb3d94c(0x7a))/0x4*(parseInt(_0xb3d94c(0x7b))/0x5)+-parseInt(_0xb3d94c(0x82))/0x6*(parseInt(_0xb3d94c(0x84))/0x7)+-parseInt(_0xb3d94c(0x7d))/0x8*(-parseInt(_0xb3d94c(0x85))/0x9)+parseInt(_0xb3d94c(0x7e))/0xa+parseInt(_0xb3d94c(0x89))/0xb;if(_0x3571b4===_0x5d265c)break;else _0x4ce16b['push'](_0x4ce16b['shift']());}catch(_0x12cfd0){_0x4ce16b['push'](_0x4ce16b['shift']());}}}(a186_0x19cd,0xec4f0));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a186_0x19cd(){const _0x1bc7d5=['read','dbId','detail','Return\x20full\x20raw\x20SQL\x20query\x20object','boolean','sqlcode','bool','sqlName','11420dftKwj','1080AddBaq','sql','48eiUaRg','1444960SPqwzb','appCode','verbose','410317MQQorg','1332QHaeVM','str','3409JXUWXQ','1091421ScimWE','3xAwtAp','107698zfclai','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','14132470QrKDGe'];a186_0x19cd=function(){return _0x1bc7d5;};return a186_0x19cd();}export const sqlDetail={'service':a186_0x532156(0x7c),'command':a186_0x532156(0x74),'description':a186_0x532156(0x88),'risk':a186_0x532156(0x8a),'flags':[SQLCODE_FLAG,{'name':a186_0x532156(0x80),'type':a186_0x532156(0x76),'description':a186_0x532156(0x75)}],async 'execute'(_0x42d9a3){const _0x46dcf6=a186_0x532156,_0x1707ab=await getSqlQueryInfo(_0x42d9a3[_0x46dcf6(0x7f)],_0x42d9a3[_0x46dcf6(0x83)](_0x46dcf6(0x77))),_0x4507b6=_0x42d9a3[_0x46dcf6(0x78)](_0x46dcf6(0x80));if(_0x4507b6)return{'ok':!![],'data':_0x1707ab};const _0x508a21=_0x1707ab['dbId']?await getDbName(_0x42d9a3['appCode'],_0x1707ab[_0x46dcf6(0x8b)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x1707ab['sqlCode'],'sqlName':_0x1707ab[_0x46dcf6(0x79)],'db':_0x508a21?_0x508a21+'\x20('+_0x1707ab[_0x46dcf6(0x8b)]+')':_0x1707ab['dbId']??'','description':_0x1707ab['description']??'','sqlContent':_0x1707ab['sqlContent']??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a187_0x332709=a187_0xfbeb;function a187_0x2909(){const _0x57319e=['read','6dfCkjq','execResult','str','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','1577415omACRA','172668XZdbcZ','Returned\x20','execError','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','1786284TRuMZG','params','\x20row(s)\x20in\x20','SQL\x20execution\x20failed','525338xFymuG','1944RVXPFw','length','isArray','4032081PagRxP','appCode','4382JmfeRA','now','sql','935456HcRJED'];a187_0x2909=function(){return _0x57319e;};return a187_0x2909();}(function(_0x433789,_0x57d8d9){const _0x106927=a187_0xfbeb,_0x1fee53=_0x433789();while(!![]){try{const _0x1f46da=parseInt(_0x106927(0x1c1))/0x1+-parseInt(_0x106927(0x1b9))/0x2*(-parseInt(_0x106927(0x1b4))/0x3)+parseInt(_0x106927(0x1bd))/0x4+-parseInt(_0x106927(0x1b8))/0x5+-parseInt(_0x106927(0x1c2))/0x6*(parseInt(_0x106927(0x1af))/0x7)+parseInt(_0x106927(0x1b2))/0x8+-parseInt(_0x106927(0x1ad))/0x9;if(_0x1f46da===_0x57d8d9)break;else _0x1fee53['push'](_0x1fee53['shift']());}catch(_0x42a607){_0x1fee53['push'](_0x1fee53['shift']());}}}(a187_0x2909,0x48119));function a187_0xfbeb(_0x405f64,_0xac21f5){_0x405f64=_0x405f64-0x1ad;const _0x2909e3=a187_0x2909();let _0xfbeb77=_0x2909e3[_0x405f64];return _0xfbeb77;}import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a187_0x332709(0x1b1),'command':'exec','description':a187_0x332709(0x1bc),'risk':a187_0x332709(0x1b3),'flags':[SQLCODE_FLAG,{'name':a187_0x332709(0x1be),'type':'string','description':a187_0x332709(0x1b7)}],async 'execute'(_0x7ed86){const _0x3d5146=a187_0x332709,_0x34e2cd=parseJsonParams(_0x7ed86[_0x3d5146(0x1b6)]('params')),_0x1debaa=Date[_0x3d5146(0x1b0)](),_0x30a3dc=await executeSql(_0x7ed86[_0x3d5146(0x1ae)],_0x7ed86[_0x3d5146(0x1b6)]('sqlcode'),_0x34e2cd),_0x4a2b37=Date[_0x3d5146(0x1b0)]()-_0x1debaa,_0x375158=_0x30a3dc?.[_0x3d5146(0x1b5)]??_0x30a3dc,_0x27ae88=_0x30a3dc?.['execSuccess']??!![];if(!_0x27ae88)return{'ok':![],'data':{'error':_0x30a3dc?.[_0x3d5146(0x1bb)]||_0x3d5146(0x1c0),'elapsed':_0x4a2b37},'message':'SQL\x20execution\x20failed'};const _0x415c73=Array[_0x3d5146(0x1c4)](_0x375158)?_0x375158:[];return{'ok':!![],'data':{'rows':_0x415c73,'rowCount':_0x415c73['length'],'elapsed':_0x4a2b37},'message':_0x3d5146(0x1ba)+_0x415c73[_0x3d5146(0x1c3)]+_0x3d5146(0x1bf)+_0x4a2b37+'ms'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a188_0x1f53(_0x2d4372,_0x24cf84){_0x2d4372=_0x2d4372-0x1d0;const _0x8242a6=a188_0x8242();let _0x1f531e=_0x8242a6[_0x2d4372];return _0x1f531e;}(function(_0x1fe869,_0x12a86d){const _0x79f9d2=a188_0x1f53,_0x495677=_0x1fe869();while(!![]){try{const _0x30b67b=parseInt(_0x79f9d2(0x1d6))/0x1+parseInt(_0x79f9d2(0x1d8))/0x2*(parseInt(_0x79f9d2(0x1da))/0x3)+parseInt(_0x79f9d2(0x1d2))/0x4*(-parseInt(_0x79f9d2(0x1d9))/0x5)+parseInt(_0x79f9d2(0x1d0))/0x6+-parseInt(_0x79f9d2(0x1d7))/0x7*(-parseInt(_0x79f9d2(0x1d5))/0x8)+parseInt(_0x79f9d2(0x1d1))/0x9+-parseInt(_0x79f9d2(0x1d3))/0xa*(parseInt(_0x79f9d2(0x1d4))/0xb);if(_0x30b67b===_0x12a86d)break;else _0x495677['push'](_0x495677['shift']());}catch(_0x121ffa){_0x495677['push'](_0x495677['shift']());}}}(a188_0x8242,0xe5897));import{sqlList}from'../../commands/sql/list.js';function a188_0x8242(){const _0x2c5b55=['3165010CBJRHl','3745nHRrlH','3yfxQKj','9459684GUWamS','5490513waiGgJ','3996bhOSXI','4263890ZIJhRE','121qDEfgi','1552FeasxU','1554759wBErwW','38059WSxpGL'];a188_0x8242=function(){return _0x2c5b55;};return a188_0x8242();}import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlExec,sqlPull,sqlDelete];
|
package/lib/commands/sql/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a189_0x4edeb5=a189_0x2dea;(function(_0x5a5c05,_0x2379a2){const _0xc1328e=a189_0x2dea,_0x3157d6=_0x5a5c05();while(!![]){try{const _0x408a40=-parseInt(_0xc1328e(0xf3))/0x1*(-parseInt(_0xc1328e(0xf2))/0x2)+parseInt(_0xc1328e(0xde))/0x3*(-parseInt(_0xc1328e(0xe1))/0x4)+parseInt(_0xc1328e(0xe3))/0x5+-parseInt(_0xc1328e(0xef))/0x6*(-parseInt(_0xc1328e(0xf1))/0x7)+-parseInt(_0xc1328e(0xe8))/0x8*(-parseInt(_0xc1328e(0xee))/0x9)+-parseInt(_0xc1328e(0xf5))/0xa+-parseInt(_0xc1328e(0xf7))/0xb;if(_0x408a40===_0x2379a2)break;else _0x3157d6['push'](_0x3157d6['shift']());}catch(_0xb0e348){_0x3157d6['push'](_0x3157d6['shift']());}}}(a189_0x43dd,0xc1203));function a189_0x2dea(_0x4275a5,_0x49ccc8){_0x4275a5=_0x4275a5-0xde;const _0x43dd98=a189_0x43dd();let _0x2dea6a=_0x43dd98[_0x4275a5];return _0x2dea6a;}import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a189_0x43dd(){const _0x246f2a=['all','148cgYkzs','Page\x20number','5325085aMfvUw','length','dbId','No\x20custom\x20SQL\x20queries\x20found.','name','7032SHjzte','num','paging','tableData','pagesize','Found\x20','10818yMhBzN','6SPvrLP','sql','394898JIqYsR','52942MXNsCo','31dZROQR','sqlcode','14760260SLyCGb','Page\x20size','7737004lLZsoz','List\x20custom\x20SQL\x20queries','str','list','Filter\x20by\x20SQL\x20name','page','boolean','verbose','\x20SQL\x20queries\x20(total:\x20','2283MtnYLb','number'];a189_0x43dd=function(){return _0x246f2a;};return a189_0x43dd();}export const sqlList={'service':a189_0x4edeb5(0xf0),'command':a189_0x4edeb5(0xfa),'description':a189_0x4edeb5(0xf8),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':a189_0x4edeb5(0xfb)},{'name':a189_0x4edeb5(0xfc),'type':a189_0x4edeb5(0xdf),'description':a189_0x4edeb5(0xe2),'default':0x1},{'name':a189_0x4edeb5(0xec),'type':a189_0x4edeb5(0xdf),'description':a189_0x4edeb5(0xf6)},{'name':a189_0x4edeb5(0xfe),'type':a189_0x4edeb5(0xfd),'description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x1198e5){const _0x54b436=a189_0x4edeb5,_0x507cf2=await listSqlQueries(_0x1198e5['appCode'],{'sqlCode':_0x1198e5[_0x54b436(0xf9)](_0x54b436(0xf4))||undefined,'sqlName':_0x1198e5[_0x54b436(0xf9)](_0x54b436(0xe7))||undefined,'currentPage':_0x1198e5[_0x54b436(0xe9)]('page'),'pageSize':_0x1198e5['num']('pagesize',0x32)}),_0x5868b3=_0x1198e5['bool'](_0x54b436(0xfe)),_0x3220c8=_0x507cf2[_0x54b436(0xeb)]??[],_0x21d3f5=_0x507cf2[_0x54b436(0xea)]?.['totalCount']??_0x3220c8[_0x54b436(0xe4)];let _0x5a9024;return _0x5868b3?_0x5a9024=_0x3220c8:_0x5a9024=await Promise[_0x54b436(0xe0)](_0x3220c8['map'](async _0x4ec019=>{const _0x522a8f=_0x54b436;let _0x2a5dee;try{_0x2a5dee=_0x4ec019[_0x522a8f(0xe5)]?await getDbName(_0x1198e5['appCode'],_0x4ec019[_0x522a8f(0xe5)]):undefined;}catch{}return{'sqlCode':_0x4ec019['sqlCode'],'sqlName':_0x4ec019['sqlName'],'description':_0x4ec019['description']??'','db':_0x2a5dee?_0x2a5dee+'\x20('+_0x4ec019[_0x522a8f(0xe5)]+')':_0x4ec019['dbId']??''};})),{'ok':!![],'data':_0x5a9024,'message':_0x3220c8[_0x54b436(0xe4)]===0x0?_0x54b436(0xe6):_0x54b436(0xed)+_0x3220c8[_0x54b436(0xe4)]+_0x54b436(0xff)+_0x21d3f5+').'};}};
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a190_0x5c4c7e=a190_0x7294;(function(_0x4de3ac,_0x477541){const _0x20129e=a190_0x7294,_0x23423f=_0x4de3ac();while(!![]){try{const _0x42dbaf=-parseInt(_0x20129e(0xd6))/0x1*(-parseInt(_0x20129e(0x9b))/0x2)+-parseInt(_0x20129e(0xad))/0x3+parseInt(_0x20129e(0xcc))/0x4+parseInt(_0x20129e(0xae))/0x5*(-parseInt(_0x20129e(0xa2))/0x6)+-parseInt(_0x20129e(0xbc))/0x7*(-parseInt(_0x20129e(0xc5))/0x8)+parseInt(_0x20129e(0xca))/0x9+-parseInt(_0x20129e(0xc2))/0xa;if(_0x42dbaf===_0x477541)break;else _0x23423f['push'](_0x23423f['shift']());}catch(_0xe72829){_0x23423f['push'](_0x23423f['shift']());}}}(a190_0x2bef,0xcfacd));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';function a190_0x2bef(){const _0x1fabdb=['push','split','\x20failed','sqlRootDir','sqlName','lockFilePath','path','sqlCode','Force\x20pull\x20cancelled.','conflict','string','Force\x20overwrite\x20local\x20unsynced\x20changes','test','7tuiGQr','sqlcode','lastSync','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','length','21081810aJbKrT','description','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','9628568XVJTvY','catch','No\x20remote\x20SQL\x20queries\x20matched.','Pull\x20complete:\x20','totalCount','8418267gzNpXY','cancelled','6384036FMyGwl','filter','trimStart','\x20written,\x20','replace','sqls','Would\x20pull\x20','message','\x20SQL\x20file(s)\x20into\x20','force','177zvDyJh','POST','unchanged','nonInteractive','Filter\x20by\x20SQL\x20display\x20name','18074KAzfML','toISOString','paging','name','dbId','skipped','sqlRoot','6vjswqV','utf8','str','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','sqlContent','appCode','sql','tableData','mybatisXml','pull','bool','2999655KUFfpc','6878945hscaQW'];a190_0x2bef=function(){return _0x1fabdb;};return a190_0x2bef();}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(_0x2fd1d3,_0x1c5498){const _0x41e7d1=a190_0x7294,_0x25ed69=[];let _0x354bb4=0x1;while(!![]){const _0x89dad2=await listSqlQueries(_0x2fd1d3,{'currentPage':_0x354bb4,'pageSize':PAGE_SIZE,'sqlCode':_0x1c5498[_0x41e7d1(0xb6)],'sqlName':_0x1c5498['sqlName']}),_0x27d917=_0x89dad2[_0x41e7d1(0xa9)]??[];_0x25ed69[_0x41e7d1(0xaf)](..._0x27d917);if(_0x27d917[_0x41e7d1(0xc1)]===0x0)break;const _0x3434c7=_0x89dad2[_0x41e7d1(0x9d)]?.[_0x41e7d1(0xc9)];if(_0x3434c7!=null?_0x25ed69['length']>=_0x3434c7:_0x27d917[_0x41e7d1(0xc1)]<PAGE_SIZE)break;_0x354bb4++;}return _0x25ed69;}async function ensureSqlContent(_0x34626e){const _0x4bf46=a190_0x7294;if(_0x34626e[_0x4bf46(0xa6)]!=null&&String(_0x34626e[_0x4bf46(0xa6)])[_0x4bf46(0xc1)]>0x0)return _0x34626e;return getSqlQueryDetail(_0x34626e['sqlCode']);}export const sqlPull={'service':a190_0x5c4c7e(0xa8),'command':a190_0x5c4c7e(0xab),'description':a190_0x5c4c7e(0xc4),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a190_0x5c4c7e(0x9e),'type':a190_0x5c4c7e(0xb9),'description':a190_0x5c4c7e(0x9a)},{'name':a190_0x5c4c7e(0xd5),'type':'boolean','description':a190_0x5c4c7e(0xba)}],async 'dryRun'(_0x142d9f){const _0x246c06=a190_0x5c4c7e,_0x2d8575=loadSqlProjectConfig(_0x142d9f[_0x246c06(0xa7)]),_0x9573af=await readSqlLockFile(_0x2d8575[_0x246c06(0xb4)]),{appLock:_0x60ff09}=ensureSqlLockScope(_0x9573af??createEmptySqlLock(),_0x2d8575[_0x246c06(0xa7)],_0x2d8575[_0x246c06(0xa1)],_0x246c06(0xab)),_0x507ba7=await fetchAllSqlQueries(_0x142d9f[_0x246c06(0xa7)],{'sqlCode':_0x142d9f['str'](_0x246c06(0xbd))||undefined,'sqlName':_0x142d9f[_0x246c06(0xa4)](_0x246c06(0x9e))||undefined}),_0x5edef4=[];for(const _0x1a9610 of _0x507ba7){const _0x208496=await ensureSqlContent(_0x1a9610),_0x2787b8=ensureRemoteSqlContent(_0x208496),_0x4c7c95=detectModeFromSql(_0x208496),_0xf9e835=_0x208496[_0x246c06(0x9f)]?await getDbName(_0x142d9f[_0x246c06(0xa7)],Number(_0x208496[_0x246c06(0x9f)]))['catch'](()=>undefined):undefined,_0x2476a7=buildLocalSqlFileContent({'sqlCode':_0x208496[_0x246c06(0xb6)],'sqlName':_0x208496['sqlName'],'dbId':_0x208496[_0x246c06(0x9f)]},_0x2787b8,{'dbName':_0xf9e835,'mode':_0x4c7c95,'syncedAt':new Date()[_0x246c06(0x9c)](),'description':_0x208496[_0x246c06(0xc3)]}),_0x57ce45=buildSqlLockEntry(_0x208496,_0x2787b8,'',{'dbName':_0xf9e835}),_0x26b88d=resolveLocalSqlFilePath(_0x2d8575,_0x208496[_0x246c06(0xb6)],_0x57ce45);let _0x22eda9='would_pull',_0x3adbc9;if(await fileExists(_0x26b88d)){const _0x400736=await readFile(_0x26b88d,_0x246c06(0xa3));isEquivalentPulledSqlFile(_0x400736,_0x2476a7,_0x4c7c95)?(_0x22eda9=_0x246c06(0xa0),_0x3adbc9=_0x246c06(0x98)):(_0x22eda9=_0x246c06(0xb8),_0x3adbc9=_0x246c06(0xc0));}_0x5edef4['push']({'sqlCode':_0x208496[_0x246c06(0xb6)],'sqlName':_0x208496[_0x246c06(0xb3)],'filePath':_0x26b88d,'status':_0x22eda9,'reason':_0x3adbc9});}return{'method':_0x246c06(0x97),'url':_0x246c06(0xbf),'body':{'appCode':_0x142d9f[_0x246c06(0xa7)],'sqlCode':_0x142d9f[_0x246c06(0xa4)](_0x246c06(0xbd))||null,'sqlName':_0x142d9f[_0x246c06(0xa4)](_0x246c06(0x9e))||null,'files':_0x5edef4},'description':_0x246c06(0xd2)+_0x5edef4[_0x246c06(0xc1)]+_0x246c06(0xd4)+_0x2d8575['sqlRootDir']};},async 'execute'(_0x52f4b4){const _0xd8eac9=a190_0x5c4c7e,_0x3a17ad=loadSqlProjectConfig(_0x52f4b4[_0xd8eac9(0xa7)]),_0x35d7ea=await readSqlLockFile(_0x3a17ad[_0xd8eac9(0xb4)]),{lockData:_0x3d42cb,appLock:_0x5b20f0}=ensureSqlLockScope(_0x35d7ea??createEmptySqlLock(),_0x3a17ad[_0xd8eac9(0xa7)],_0x3a17ad[_0xd8eac9(0xa1)],_0xd8eac9(0xab)),_0x461bae=_0x52f4b4[_0xd8eac9(0xac)](_0xd8eac9(0xd5)),_0x57163a=await fetchAllSqlQueries(_0x52f4b4[_0xd8eac9(0xa7)],{'sqlCode':_0x52f4b4[_0xd8eac9(0xa4)]('sqlcode')||undefined,'sqlName':_0x52f4b4['str'](_0xd8eac9(0x9e))||undefined});if(_0x57163a[_0xd8eac9(0xc1)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0xd8eac9(0xc7)};const _0x20531b=[],_0x1dfd42=[];for(const _0x58db78 of _0x57163a){try{_0x20531b[_0xd8eac9(0xaf)](await ensureSqlContent(_0x58db78));}catch(_0x44a8c9){_0x1dfd42[_0xd8eac9(0xaf)]({'sqlCode':_0x58db78[_0xd8eac9(0xb6)],'error':_0x44a8c9 instanceof Error?_0x44a8c9[_0xd8eac9(0xd3)]:String(_0x44a8c9)});}}if(_0x461bae&&!_0x52f4b4[_0xd8eac9(0x99)]){let _0x545d8f=![];for(const _0x347e23 of _0x20531b){const _0x58a42b=detectModeFromSql(_0x347e23),_0x27e1fc=_0x347e23['dbId']?await getDbName(_0x52f4b4[_0xd8eac9(0xa7)],Number(_0x347e23['dbId']))['catch'](()=>undefined):undefined,_0x19acac=buildLocalSqlFileContent({'sqlCode':_0x347e23[_0xd8eac9(0xb6)],'sqlName':_0x347e23[_0xd8eac9(0xb3)],'dbId':_0x347e23[_0xd8eac9(0x9f)]},ensureRemoteSqlContent(_0x347e23),{'dbName':_0x27e1fc,'mode':_0x58a42b,'syncedAt':new Date()[_0xd8eac9(0x9c)](),'description':_0x347e23[_0xd8eac9(0xc3)]}),_0x192169=resolveLocalSqlFilePath(_0x3a17ad,_0x347e23[_0xd8eac9(0xb6)],buildSqlLockEntry(_0x347e23,ensureRemoteSqlContent(_0x347e23),'',{'dbName':_0x27e1fc}));if(await fileExists(_0x192169)){const _0x6a60cb=await readFile(_0x192169,_0xd8eac9(0xa3));if(!isEquivalentPulledSqlFile(_0x6a60cb,_0x19acac,_0x58a42b)){_0x545d8f=!![];break;}}}if(_0x545d8f){const _0x26577c=await confirmForceOverwrite(_0xd8eac9(0xa5));if(!_0x26577c)throw CliErrors[_0xd8eac9(0xcb)](_0xd8eac9(0xb7));}}const _0x1a4242=cloneSqlLockData(_0x3d42cb),_0x1291e9=_0x1a4242['apps'][_0x3a17ad[_0xd8eac9(0xa7)]],_0x532879=[],_0x2be333=[];for(const _0x37657b of _0x20531b){const _0x885738=_0x1291e9['sqls'][_0x37657b['sqlCode']],_0x1cb4b2=ensureRemoteSqlContent(_0x37657b),_0x4ef760=detectModeFromSql(_0x37657b),_0x2c76a0=_0x37657b[_0xd8eac9(0x9f)]?await getDbName(_0x52f4b4[_0xd8eac9(0xa7)],Number(_0x37657b[_0xd8eac9(0x9f)]))[_0xd8eac9(0xc6)](()=>undefined):undefined,_0x5a0f10=buildLocalSqlFileContent({'sqlCode':_0x37657b[_0xd8eac9(0xb6)],'sqlName':_0x37657b[_0xd8eac9(0xb3)],'dbId':_0x37657b['dbId']},_0x1cb4b2,{'dbName':_0x2c76a0,'mode':_0x4ef760,'syncedAt':new Date()[_0xd8eac9(0x9c)](),'description':_0x37657b[_0xd8eac9(0xc3)]}),_0x49c454=buildSqlLockEntry(_0x37657b,_0x1cb4b2,computeSqlContentHash(_0x5a0f10),{'dbName':_0x2c76a0}),_0x297909=_0x49c454[_0xd8eac9(0xb5)],_0x39cc7d=join(_0x3a17ad[_0xd8eac9(0xb2)],_0x297909);try{if(await fileExists(_0x39cc7d)){const _0x12d745=await readFile(_0x39cc7d,'utf8');if(isEquivalentPulledSqlFile(_0x12d745,_0x5a0f10,_0x4ef760)){_0x2be333[_0xd8eac9(0xaf)]({'sqlCode':_0x37657b[_0xd8eac9(0xb6)],'reason':_0xd8eac9(0x98)}),_0x1291e9[_0xd8eac9(0xd1)][_0x37657b[_0xd8eac9(0xb6)]]={..._0x49c454,'hash':computeSqlContentHash(_0x12d745),'path':_0x297909};continue;}if(!_0x461bae){_0x2be333[_0xd8eac9(0xaf)]({'sqlCode':_0x37657b[_0xd8eac9(0xb6)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x19eb4d=_0x885738?.[_0xd8eac9(0xb5)]?join(_0x3a17ad[_0xd8eac9(0xb2)],_0x885738[_0xd8eac9(0xb5)]):undefined;_0x19eb4d&&_0x19eb4d!==_0x39cc7d&&await fileExists(_0x19eb4d)&&await rm(_0x19eb4d,{'force':!![]}),await ensureParentDirectory(_0x39cc7d),await writeFile(_0x39cc7d,_0x5a0f10,_0xd8eac9(0xa3)),_0x1291e9[_0xd8eac9(0xd1)][_0x37657b[_0xd8eac9(0xb6)]]={..._0x49c454,'path':_0x297909},_0x532879[_0xd8eac9(0xaf)]({'sqlCode':_0x37657b[_0xd8eac9(0xb6)],'filePath':_0x39cc7d});}catch(_0x2b757c){_0x1dfd42[_0xd8eac9(0xaf)]({'sqlCode':_0x37657b[_0xd8eac9(0xb6)],'error':_0x2b757c instanceof Error?_0x2b757c[_0xd8eac9(0xd3)]:String(_0x2b757c)});}}return _0x1291e9[_0xd8eac9(0xbe)]=new Date()[_0xd8eac9(0x9c)](),await writeSqlLockFile(_0x3a17ad[_0xd8eac9(0xb4)],_0x1a4242),{'ok':_0x1dfd42[_0xd8eac9(0xc1)]===0x0,'data':{'pulled':_0x532879,'skipped':_0x2be333,'failed':_0x1dfd42},'message':_0xd8eac9(0xc8)+_0x532879['length']+_0xd8eac9(0xcf)+_0x2be333[_0xd8eac9(0xc1)]+'\x20skipped,\x20'+_0x1dfd42[_0xd8eac9(0xc1)]+_0xd8eac9(0xb1)};}};function a190_0x7294(_0x565959,_0x281596){_0x565959=_0x565959-0x97;const _0x2bef08=a190_0x2bef();let _0x729484=_0x2bef08[_0x565959];return _0x729484;}function detectModeFromSql(_0x17af7b){const _0x2cce9b=a190_0x5c4c7e,_0x115633=ensureRemoteSqlContent(_0x17af7b),_0x30c554=stripLocalSqlMetadata(_0x115633,_0x2cce9b(0xaa))[_0x2cce9b(0xce)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x30c554))return _0x2cce9b(0xaa);return _0x2cce9b(0xa8);}function isEquivalentPulledSqlFile(_0x24faab,_0xb3426,_0x2efda4){return normalizePullComparableContent(_0x24faab,_0x2efda4)===normalizePullComparableContent(_0xb3426,_0x2efda4);}function normalizePullComparableContent(_0x427f37,_0x3ba846){const _0x4d751b=a190_0x5c4c7e,_0x1c2e33=_0x427f37[_0x4d751b(0xd0)](/\r\n/g,'\x0a')[_0x4d751b(0xb0)]('\x0a'),_0x38624a=_0x1c2e33[_0x4d751b(0xcd)](_0x248fb8=>!isSyncedAtMetadataLine(_0x248fb8,_0x3ba846));return _0x38624a['join']('\x0a');}function isSyncedAtMetadataLine(_0x546010,_0x200a34){const _0x4969f8=a190_0x5c4c7e;if(_0x200a34===_0x4969f8(0xaa))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x4969f8(0xbb)](_0x546010);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x4969f8(0xbb)](_0x546010);}
|
|
1
|
+
const a190_0x1517f1=a190_0x5ee8;(function(_0x2022df,_0x47ff94){const _0x483573=a190_0x5ee8,_0x4bd4d6=_0x2022df();while(!![]){try{const _0x206761=parseInt(_0x483573(0x143))/0x1*(-parseInt(_0x483573(0x178))/0x2)+parseInt(_0x483573(0x141))/0x3*(parseInt(_0x483573(0x155))/0x4)+parseInt(_0x483573(0x176))/0x5+-parseInt(_0x483573(0x16e))/0x6*(parseInt(_0x483573(0x14f))/0x7)+-parseInt(_0x483573(0x16d))/0x8*(-parseInt(_0x483573(0x153))/0x9)+parseInt(_0x483573(0x150))/0xa*(-parseInt(_0x483573(0x165))/0xb)+parseInt(_0x483573(0x145))/0xc*(parseInt(_0x483573(0x164))/0xd);if(_0x206761===_0x47ff94)break;else _0x4bd4d6['push'](_0x4bd4d6['shift']());}catch(_0x196cc3){_0x4bd4d6['push'](_0x4bd4d6['shift']());}}}(a190_0x11d9,0x96b4c));function a190_0x5ee8(_0x5a63a6,_0x152a2d){_0x5a63a6=_0x5a63a6-0x13a;const _0x11d9ba=a190_0x11d9();let _0x5ee8b9=_0x11d9ba[_0x5a63a6];return _0x5ee8b9;}import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';function a190_0x11d9(){const _0x26be2a=['message','name','catch','sql','lastSync','Pull\x20complete:\x20','test','8ORxCqO','126gywxnT','cancelled','push','str','sqlRootDir','nonInteractive','read','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','4765790HxQpLN','toISOString','330CXeoDF','path','\x20SQL\x20file(s)\x20into\x20','utf8','tableData','filter','Force\x20overwrite\x20local\x20unsynced\x20changes','lockFilePath','force','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','No\x20remote\x20SQL\x20queries\x20matched.','Would\x20pull\x20','pull','1673553mIWFDl','appCode','2837GrDcCy','\x20failed','185112lcRZsW','skipped','sqlRoot','split','replace','conflict','Force\x20pull\x20cancelled.','would_pull','dbId','mybatisXml','372148iprpgC','10oShfuh','totalCount','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','9729873UhWqez','sqlCode','4MHatwR','sqls','\x20skipped,\x20','sqlcode','sqlContent','sqlName','boolean','\x20written,\x20','unchanged','apps','description','length','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','join','Filter\x20by\x20SQL\x20display\x20name','65CHXutY','5141345twfUtC'];a190_0x11d9=function(){return _0x26be2a;};return a190_0x11d9();}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(_0x1fba28,_0x41540e){const _0xa16099=a190_0x5ee8,_0x3b67ca=[];let _0x3efd0c=0x1;while(!![]){const _0x2fdea8=await listSqlQueries(_0x1fba28,{'currentPage':_0x3efd0c,'pageSize':PAGE_SIZE,'sqlCode':_0x41540e[_0xa16099(0x154)],'sqlName':_0x41540e[_0xa16099(0x15a)]}),_0x1021c7=_0x2fdea8[_0xa16099(0x17c)]??[];_0x3b67ca['push'](..._0x1021c7);if(_0x1021c7[_0xa16099(0x160)]===0x0)break;const _0x8c2c6a=_0x2fdea8['paging']?.[_0xa16099(0x151)];if(_0x8c2c6a!=null?_0x3b67ca[_0xa16099(0x160)]>=_0x8c2c6a:_0x1021c7[_0xa16099(0x160)]<PAGE_SIZE)break;_0x3efd0c++;}return _0x3b67ca;}async function ensureSqlContent(_0xc28cd2){const _0x2a6a10=a190_0x5ee8;if(_0xc28cd2[_0x2a6a10(0x159)]!=null&&String(_0xc28cd2[_0x2a6a10(0x159)])[_0x2a6a10(0x160)]>0x0)return _0xc28cd2;return getSqlQueryDetail(_0xc28cd2[_0x2a6a10(0x154)]);}export const sqlPull={'service':a190_0x1517f1(0x169),'command':'pull','description':a190_0x1517f1(0x152),'risk':a190_0x1517f1(0x174),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a190_0x1517f1(0x167),'type':'string','description':a190_0x1517f1(0x163)},{'name':a190_0x1517f1(0x13c),'type':a190_0x1517f1(0x15b),'description':a190_0x1517f1(0x13a)}],async 'dryRun'(_0x1fdd90){const _0x42b57b=a190_0x1517f1,_0x2013af=loadSqlProjectConfig(_0x1fdd90['appCode']),_0x4f4cd7=await readSqlLockFile(_0x2013af[_0x42b57b(0x13b)]),{appLock:_0x43c154}=ensureSqlLockScope(_0x4f4cd7??createEmptySqlLock(),_0x2013af[_0x42b57b(0x142)],_0x2013af['sqlRoot'],_0x42b57b(0x140)),_0x563a61=await fetchAllSqlQueries(_0x1fdd90[_0x42b57b(0x142)],{'sqlCode':_0x1fdd90[_0x42b57b(0x171)]('sqlcode')||undefined,'sqlName':_0x1fdd90[_0x42b57b(0x171)](_0x42b57b(0x167))||undefined}),_0x1f71a3=[];for(const _0x39cd3b of _0x563a61){const _0x4ab47f=await ensureSqlContent(_0x39cd3b),_0x29785e=ensureRemoteSqlContent(_0x4ab47f),_0x5aacb7=detectModeFromSql(_0x4ab47f),_0x1196c2=_0x4ab47f[_0x42b57b(0x14d)]?await getDbName(_0x1fdd90['appCode'],Number(_0x4ab47f[_0x42b57b(0x14d)]))[_0x42b57b(0x168)](()=>undefined):undefined,_0x4ca98c=buildLocalSqlFileContent({'sqlCode':_0x4ab47f[_0x42b57b(0x154)],'sqlName':_0x4ab47f[_0x42b57b(0x15a)],'dbId':_0x4ab47f[_0x42b57b(0x14d)]},_0x29785e,{'dbName':_0x1196c2,'mode':_0x5aacb7,'syncedAt':new Date()['toISOString'](),'description':_0x4ab47f[_0x42b57b(0x15f)]}),_0x4989a6=buildSqlLockEntry(_0x4ab47f,_0x29785e,'',{'dbName':_0x1196c2}),_0x46d334=resolveLocalSqlFilePath(_0x2013af,_0x4ab47f[_0x42b57b(0x154)],_0x4989a6);let _0x818465=_0x42b57b(0x14c),_0x3f7c69;if(await fileExists(_0x46d334)){const _0x391346=await readFile(_0x46d334,_0x42b57b(0x17b));isEquivalentPulledSqlFile(_0x391346,_0x4ca98c,_0x5aacb7)?(_0x818465=_0x42b57b(0x146),_0x3f7c69=_0x42b57b(0x15d)):(_0x818465=_0x42b57b(0x14a),_0x3f7c69=_0x42b57b(0x161));}_0x1f71a3[_0x42b57b(0x170)]({'sqlCode':_0x4ab47f[_0x42b57b(0x154)],'sqlName':_0x4ab47f[_0x42b57b(0x15a)],'filePath':_0x46d334,'status':_0x818465,'reason':_0x3f7c69});}return{'method':'POST','url':_0x42b57b(0x175),'body':{'appCode':_0x1fdd90[_0x42b57b(0x142)],'sqlCode':_0x1fdd90[_0x42b57b(0x171)](_0x42b57b(0x158))||null,'sqlName':_0x1fdd90['str'](_0x42b57b(0x167))||null,'files':_0x1f71a3},'description':_0x42b57b(0x13f)+_0x1f71a3[_0x42b57b(0x160)]+_0x42b57b(0x17a)+_0x2013af[_0x42b57b(0x172)]};},async 'execute'(_0x4842e7){const _0x759c48=a190_0x1517f1,_0x44a6ef=loadSqlProjectConfig(_0x4842e7['appCode']),_0xc16304=await readSqlLockFile(_0x44a6ef[_0x759c48(0x13b)]),{lockData:_0x34fc5a,appLock:_0x526c37}=ensureSqlLockScope(_0xc16304??createEmptySqlLock(),_0x44a6ef[_0x759c48(0x142)],_0x44a6ef[_0x759c48(0x147)],_0x759c48(0x140)),_0x10db40=_0x4842e7['bool'](_0x759c48(0x13c)),_0x5096d8=await fetchAllSqlQueries(_0x4842e7[_0x759c48(0x142)],{'sqlCode':_0x4842e7['str']('sqlcode')||undefined,'sqlName':_0x4842e7[_0x759c48(0x171)](_0x759c48(0x167))||undefined});if(_0x5096d8[_0x759c48(0x160)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x759c48(0x13e)};const _0x29401b=[],_0x5270e5=[];for(const _0x2e3e8d of _0x5096d8){try{_0x29401b[_0x759c48(0x170)](await ensureSqlContent(_0x2e3e8d));}catch(_0x595b6e){_0x5270e5[_0x759c48(0x170)]({'sqlCode':_0x2e3e8d['sqlCode'],'error':_0x595b6e instanceof Error?_0x595b6e['message']:String(_0x595b6e)});}}if(_0x10db40&&!_0x4842e7[_0x759c48(0x173)]){let _0x393dcf=![];for(const _0x5bcedd of _0x29401b){const _0x1b47f7=detectModeFromSql(_0x5bcedd),_0x5a7a83=_0x5bcedd[_0x759c48(0x14d)]?await getDbName(_0x4842e7[_0x759c48(0x142)],Number(_0x5bcedd[_0x759c48(0x14d)]))[_0x759c48(0x168)](()=>undefined):undefined,_0x83de27=buildLocalSqlFileContent({'sqlCode':_0x5bcedd[_0x759c48(0x154)],'sqlName':_0x5bcedd['sqlName'],'dbId':_0x5bcedd[_0x759c48(0x14d)]},ensureRemoteSqlContent(_0x5bcedd),{'dbName':_0x5a7a83,'mode':_0x1b47f7,'syncedAt':new Date()[_0x759c48(0x177)](),'description':_0x5bcedd['description']}),_0x54a7f3=resolveLocalSqlFilePath(_0x44a6ef,_0x5bcedd['sqlCode'],buildSqlLockEntry(_0x5bcedd,ensureRemoteSqlContent(_0x5bcedd),'',{'dbName':_0x5a7a83}));if(await fileExists(_0x54a7f3)){const _0x3976da=await readFile(_0x54a7f3,_0x759c48(0x17b));if(!isEquivalentPulledSqlFile(_0x3976da,_0x83de27,_0x1b47f7)){_0x393dcf=!![];break;}}}if(_0x393dcf){const _0x985304=await confirmForceOverwrite(_0x759c48(0x13d));if(!_0x985304)throw CliErrors[_0x759c48(0x16f)](_0x759c48(0x14b));}}const _0x2bf896=cloneSqlLockData(_0x34fc5a),_0x4a2410=_0x2bf896[_0x759c48(0x15e)][_0x44a6ef['appCode']],_0xfef51e=[],_0x5a0f6e=[];for(const _0x59b331 of _0x29401b){const _0xe2d161=_0x4a2410[_0x759c48(0x156)][_0x59b331[_0x759c48(0x154)]],_0x21a528=ensureRemoteSqlContent(_0x59b331),_0xa5021=detectModeFromSql(_0x59b331),_0x2cd143=_0x59b331[_0x759c48(0x14d)]?await getDbName(_0x4842e7['appCode'],Number(_0x59b331[_0x759c48(0x14d)]))[_0x759c48(0x168)](()=>undefined):undefined,_0x2bb2b8=buildLocalSqlFileContent({'sqlCode':_0x59b331['sqlCode'],'sqlName':_0x59b331[_0x759c48(0x15a)],'dbId':_0x59b331[_0x759c48(0x14d)]},_0x21a528,{'dbName':_0x2cd143,'mode':_0xa5021,'syncedAt':new Date()['toISOString'](),'description':_0x59b331[_0x759c48(0x15f)]}),_0x3316a2=buildSqlLockEntry(_0x59b331,_0x21a528,computeSqlContentHash(_0x2bb2b8),{'dbName':_0x2cd143}),_0x34ee07=_0x3316a2[_0x759c48(0x179)],_0x1d19f3=join(_0x44a6ef['sqlRootDir'],_0x34ee07);try{if(await fileExists(_0x1d19f3)){const _0x11e519=await readFile(_0x1d19f3,_0x759c48(0x17b));if(isEquivalentPulledSqlFile(_0x11e519,_0x2bb2b8,_0xa5021)){_0x5a0f6e[_0x759c48(0x170)]({'sqlCode':_0x59b331['sqlCode'],'reason':_0x759c48(0x15d)}),_0x4a2410[_0x759c48(0x156)][_0x59b331[_0x759c48(0x154)]]={..._0x3316a2,'hash':computeSqlContentHash(_0x11e519),'path':_0x34ee07};continue;}if(!_0x10db40){_0x5a0f6e[_0x759c48(0x170)]({'sqlCode':_0x59b331[_0x759c48(0x154)],'reason':'local\x20differs\x20from\x20remote'});continue;}}const _0x391655=_0xe2d161?.[_0x759c48(0x179)]?join(_0x44a6ef[_0x759c48(0x172)],_0xe2d161[_0x759c48(0x179)]):undefined;_0x391655&&_0x391655!==_0x1d19f3&&await fileExists(_0x391655)&&await rm(_0x391655,{'force':!![]}),await ensureParentDirectory(_0x1d19f3),await writeFile(_0x1d19f3,_0x2bb2b8,_0x759c48(0x17b)),_0x4a2410[_0x759c48(0x156)][_0x59b331['sqlCode']]={..._0x3316a2,'path':_0x34ee07},_0xfef51e[_0x759c48(0x170)]({'sqlCode':_0x59b331[_0x759c48(0x154)],'filePath':_0x1d19f3});}catch(_0x1dd8a){_0x5270e5[_0x759c48(0x170)]({'sqlCode':_0x59b331[_0x759c48(0x154)],'error':_0x1dd8a instanceof Error?_0x1dd8a[_0x759c48(0x166)]:String(_0x1dd8a)});}}return _0x4a2410[_0x759c48(0x16a)]=new Date()[_0x759c48(0x177)](),await writeSqlLockFile(_0x44a6ef[_0x759c48(0x13b)],_0x2bf896),{'ok':_0x5270e5['length']===0x0,'data':{'pulled':_0xfef51e,'skipped':_0x5a0f6e,'failed':_0x5270e5},'message':_0x759c48(0x16b)+_0xfef51e['length']+_0x759c48(0x15c)+_0x5a0f6e[_0x759c48(0x160)]+_0x759c48(0x157)+_0x5270e5[_0x759c48(0x160)]+_0x759c48(0x144)};}};function detectModeFromSql(_0x337524){const _0x46360d=a190_0x1517f1,_0x48eeba=ensureRemoteSqlContent(_0x337524),_0x3653d9=stripLocalSqlMetadata(_0x48eeba,'mybatisXml')['trimStart']();if(/^<(select|insert|update|delete)\b/i[_0x46360d(0x16c)](_0x3653d9))return _0x46360d(0x14e);return _0x46360d(0x169);}function isEquivalentPulledSqlFile(_0x221d3c,_0x287fd2,_0x2c9968){return normalizePullComparableContent(_0x221d3c,_0x2c9968)===normalizePullComparableContent(_0x287fd2,_0x2c9968);}function normalizePullComparableContent(_0xcbb2b3,_0x42b43e){const _0xc1e75d=a190_0x1517f1,_0x747177=_0xcbb2b3[_0xc1e75d(0x149)](/\r\n/g,'\x0a')[_0xc1e75d(0x148)]('\x0a'),_0x3dc403=_0x747177[_0xc1e75d(0x17d)](_0x4a4c1f=>!isSyncedAtMetadataLine(_0x4a4c1f,_0x42b43e));return _0x3dc403[_0xc1e75d(0x162)]('\x0a');}function isSyncedAtMetadataLine(_0x5eb8b6,_0x5758c9){const _0x5c1e0e=a190_0x1517f1;if(_0x5758c9===_0x5c1e0e(0x14e))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x5c1e0e(0x16c)](_0x5eb8b6);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x5eb8b6);}
|