@lovrabet/rabetbase-cli 2.4.5 → 2.4.6-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- 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/{standard-page-status.d.ts → create.d.ts} +1 -1
- package/lib/commands/page/create.js +1 -0
- package/lib/commands/page/{react → custom}/detail.d.ts +1 -1
- package/lib/commands/page/custom/detail.js +1 -0
- package/lib/commands/page/{react → custom}/list.d.ts +1 -1
- package/lib/commands/page/custom/list.js +1 -0
- package/lib/commands/page/{react → custom}/publish.d.ts +1 -1
- package/lib/commands/page/custom/publish.js +1 -0
- package/lib/commands/page/{react → custom}/shared.d.ts +15 -15
- package/lib/commands/page/custom/shared.js +1 -0
- package/lib/commands/page/{react → custom}/syntax.d.ts +2 -2
- package/lib/commands/page/custom/syntax.js +1 -0
- package/lib/commands/page/custom/template.js +1 -0
- package/lib/commands/page/{react → custom}/update.d.ts +1 -1
- package/lib/commands/page/custom/update.js +1 -0
- package/lib/commands/page/data-list-status.d.ts +2 -0
- package/lib/commands/page/data-list-status.js +1 -0
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/restore.js +1 -1
- package/lib/commands/page/shared.d.ts +18 -18
- package/lib/commands/page/shared.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.d.ts +43 -43
- 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.d.ts +3 -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 +34 -34
- package/skills/rabetbase/guides/backend-function.md +63 -18
- package/skills/rabetbase/guides/bff-creation-workflow.md +2 -0
- package/skills/rabetbase/guides/{react-custom-page-workflow.md → custom-page-workflow.md} +45 -45
- package/skills/rabetbase/guides/page-development-workflow.md +22 -22
- package/skills/rabetbase/knowledge/{react-page → custom-page}/components.md +2 -2
- package/skills/rabetbase/knowledge/{react-page → custom-page}/generation-standards.md +6 -6
- package/skills/rabetbase/knowledge/page-schema/LrSmartTable.md +6 -6
- package/skills/rabetbase/knowledge/page-schema/external-resources-usage.md +1 -1
- package/skills/rabetbase/references/rabetbase-bff-create.md +2 -0
- package/skills/rabetbase/references/{rabetbase-standard-page-status.md → rabetbase-data-list-status.md} +6 -6
- package/skills/rabetbase/references/rabetbase-dataset-generate.md +1 -1
- package/skills/rabetbase/references/rabetbase-dataset-relation-mutations.md +1 -1
- package/skills/rabetbase/references/rabetbase-dataset-relations.md +1 -1
- package/skills/rabetbase/references/rabetbase-dataset-restore.md +1 -1
- package/skills/rabetbase/references/rabetbase-menu-list.md +1 -1
- package/skills/rabetbase/references/rabetbase-page-create.md +31 -0
- package/skills/rabetbase/references/{rabetbase-page-react-detail.md → rabetbase-page-custom-detail.md} +5 -5
- package/skills/rabetbase/references/{rabetbase-page-react-list.md → rabetbase-page-custom-list.md} +4 -4
- package/skills/rabetbase/references/{rabetbase-page-react-publish.md → rabetbase-page-custom-publish.md} +6 -6
- package/skills/rabetbase/references/{rabetbase-page-react-update.md → rabetbase-page-custom-update.md} +6 -6
- package/skills/rabetbase/references/rabetbase-page-generate-start.md +5 -4
- package/skills/rabetbase/references/rabetbase-page-generate-status.md +4 -4
- package/skills/rabetbase/references/rabetbase-page-pull.md +2 -2
- package/skills/rabetbase/references/rabetbase-page-relation-binding.md +1 -1
- package/skills/rabetbase/references/rabetbase-page-restore.md +7 -7
- package/skills/rabetbase/references/rabetbase-page-sync.md +3 -3
- package/skills/rabetbase.manifest.json +12 -12
- package/lib/commands/page/react/create.d.ts +0 -2
- package/lib/commands/page/react/create.js +0 -1
- package/lib/commands/page/react/detail.js +0 -1
- package/lib/commands/page/react/list.js +0 -1
- package/lib/commands/page/react/publish.js +0 -1
- package/lib/commands/page/react/shared.js +0 -1
- package/lib/commands/page/react/syntax.js +0 -1
- package/lib/commands/page/react/template.js +0 -1
- package/lib/commands/page/react/update.js +0 -1
- package/lib/commands/page/standard-page-status.js +0 -1
- package/skills/rabetbase/references/rabetbase-page-react-create.md +0 -29
- /package/lib/commands/page/{react → custom}/template.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
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
|
+
const a177_0x4ca525=a177_0x19e2;(function(_0x3da623,_0x7427ac){const _0x2da704=a177_0x19e2,_0x506140=_0x3da623();while(!![]){try{const _0x2251a2=parseInt(_0x2da704(0x1c8))/0x1+-parseInt(_0x2da704(0x19b))/0x2+parseInt(_0x2da704(0x1de))/0x3*(parseInt(_0x2da704(0x1d6))/0x4)+-parseInt(_0x2da704(0x1bf))/0x5*(parseInt(_0x2da704(0x1d0))/0x6)+-parseInt(_0x2da704(0x1ba))/0x7*(-parseInt(_0x2da704(0x1ad))/0x8)+-parseInt(_0x2da704(0x1ce))/0x9*(-parseInt(_0x2da704(0x1b0))/0xa)+-parseInt(_0x2da704(0x19f))/0xb;if(_0x2251a2===_0x7427ac)break;else _0x506140['push'](_0x506140['shift']());}catch(_0x4897d9){_0x506140['push'](_0x506140['shift']());}}}(a177_0x24f1,0x1fa04));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':'number','required':!![],'description':a177_0x4ca525(0x19d)};export const ROLE_REF_FLAG={'name':'role','type':a177_0x4ca525(0x1a9),'required':!![],'description':'Role\x20id\x20or\x20exact\x20role\x20name'};export const USER_REF_FLAG={'name':'user','type':a177_0x4ca525(0x1a9),'required':!![],'description':a177_0x4ca525(0x192)};export const NAME_FLAG={'name':a177_0x4ca525(0x1c6),'type':a177_0x4ca525(0x1a9),'required':!![],'description':a177_0x4ca525(0x1bb)};export const USER_NAME_FLAG={'name':a177_0x4ca525(0x1c6),'type':a177_0x4ca525(0x1a9),'required':!![],'description':'Nickname\x20or\x20username\x20to\x20resolve\x20to\x20a\x20userId'};export const REMARK_FLAG={'name':a177_0x4ca525(0x19c),'type':'string','required':![],'description':a177_0x4ca525(0x1b6)};export const EXPECT_USER_COUNT_FLAG={'name':a177_0x4ca525(0x1a8),'type':a177_0x4ca525(0x1d2),'required':![],'description':'Anti-drift\x20guard:\x20fail\x20if\x20the\x20role\x27s\x20current\x20member\x20count\x20differs'};export const BUILTIN_ROLE_TYPES=[a177_0x4ca525(0x1b3),a177_0x4ca525(0x1af),a177_0x4ca525(0x1b9)];export function isBuiltinRole(_0x27911b){return BUILTIN_ROLE_TYPES['includes'](_0x27911b);}function a177_0x19e2(_0x194a61,_0x492bf0){_0x194a61=_0x194a61-0x191;const _0x24f131=a177_0x24f1();let _0x19e21a=_0x24f131[_0x194a61];return _0x19e21a;}function a177_0x24f1(){const _0x401d19=['nickname','name','Only\x20CUSTOM\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','118116DVBVbN','dryRun','CUSTOM','trim','permitCount','join','540747gDTOqU','validation','138eVJDfE','toLowerCase','number','\x20is\x20already\x20a\x20member\x20of\x20role\x20','\x20duplicate\x20memberships\x20for\x20user\x20','str','4BfsnPs','roleType','Re-run\x20`role\x20detail`\x20/\x20`role\x20list`\x20and\x20retry\x20with\x20the\x20current\x20count.','expectUserCount','roleName','filter','user','Cannot\x20','744993XIMdkK','test','\x20members\x20of\x20the\x20OWNER\x20role.','length','Anti-drift\x20check\x20failed:\x20expected\x20','appCode','User\x20id,\x20username,\x20or\x20nickname\x20to\x20resolve\x20to\x20a\x20userId','userId','dev','Pass\x20--user\x20<id|name>.','tenant_code','map','userCount','flagMissing','\x20member(s)\x20but\x20role\x20has\x20','293210stgYFG','remark','Role\x20id\x20(from\x20`role\x20list`)','\x22\x20is\x20ambiguous\x20(ids:\x20','2670646dLKJWM','Pass\x20--role\x20<id|name>.','Removed\x20','Missing\x20user\x20reference.','/smartapi/permit/user-role/delete','\x20is\x20not\x20a\x20member\x20of\x20role\x20','Role\x20name\x20\x22','Cannot\x20resolve\x20current\x20tenant.\x20Run\x20`rabetbase\x20auth\x20login`\x20first.','find','expect-user-count','string','tenant','push','\x22:\x20','8eDZXlP','role','DEV','10JPzFFU','User\x20','Use\x20the\x20platform\x20ownership-transfer\x20workflow\x20to\x20change\x20the\x20application\x20owner.','ADMIN','username',';\x20no\x20change.','Optional\x20role\x20remark/description','authRequired','\x22\x20not\x20found\x20in\x20app\x20','OWNER','1720194vOsTkm','Role\x20name','Disambiguate\x20with\x20--role\x20<id>.','Multiple\x20tenant\x20members\x20match\x20\x22','POST','33335KcgThH','totalCount','Role\x20id\x20','\x20built-in\x20role\x20','user-add','Check\x20the\x20nickname/username,\x20or\x20pass\x20--user\x20<id>.'];a177_0x24f1=function(){return _0x401d19;};return a177_0x24f1();}export function assertCustomRole(_0x5c5acb,_0x3304ad){const _0x812cb1=a177_0x4ca525;if(_0x5c5acb[_0x812cb1(0x1d7)]!==_0x812cb1(0x1ca))throw CliErrors[_0x812cb1(0x1cf)](_0x812cb1(0x1dd)+_0x3304ad+_0x812cb1(0x1c2)+_0x5c5acb[_0x812cb1(0x1da)]+'\x20('+_0x5c5acb[_0x812cb1(0x1d7)]+').',_0x812cb1(0x1c7));}export function projectRole(_0x25d82d){const _0x1050b1=a177_0x4ca525;return{'id':_0x25d82d['id'],'roleName':_0x25d82d[_0x1050b1(0x1da)],'roleType':_0x25d82d['roleType'],'remark':_0x25d82d[_0x1050b1(0x19c)],'userCount':_0x25d82d[_0x1050b1(0x198)],'permitCount':_0x25d82d[_0x1050b1(0x1cc)],'builtin':isBuiltinRole(_0x25d82d['roleType'])};}export async function resolveRoleRef(_0x309bf4,_0x235881){const _0x513f63=a177_0x4ca525,_0x5042a0=_0x235881[_0x513f63(0x1cb)]();if(!_0x5042a0)throw CliErrors['validation']('Missing\x20role\x20reference.','Pass\x20--role\x20<id|name>.');if(/^\d+$/['test'](_0x5042a0))return getRoleById(_0x309bf4,Number(_0x5042a0));const _0x38bf97=await listAllAppRoles(_0x309bf4),_0x50fee2=_0x38bf97['filter'](_0x193e9e=>_0x193e9e[_0x513f63(0x1da)]===_0x5042a0);if(_0x50fee2[_0x513f63(0x1e1)]===0x0)throw CliErrors[_0x513f63(0x1cf)](_0x513f63(0x1a5)+_0x5042a0+_0x513f63(0x1b8)+_0x309bf4+'.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles,\x20or\x20pass\x20--role\x20<id>.');if(_0x50fee2['length']>0x1){const _0x592e10=_0x50fee2['map'](_0x4fa9b5=>_0x4fa9b5['id'])[_0x513f63(0x1cd)](',\x20');throw CliErrors[_0x513f63(0x1cf)](_0x513f63(0x1a5)+_0x5042a0+_0x513f63(0x19e)+_0x592e10+').',_0x513f63(0x1bc));}return _0x50fee2[0x0];}export async function getRoleById(_0x810604,_0x5e7485){const _0x10f0ff=a177_0x4ca525,_0x47c593=await listAllAppRoles(_0x810604),_0x5bb85e=_0x47c593[_0x10f0ff(0x1db)](_0x131416=>_0x131416['id']===_0x5e7485&&(!_0x131416[_0x10f0ff(0x191)]||_0x131416['appCode']===_0x810604));if(_0x5bb85e[_0x10f0ff(0x1e1)]!==0x1)throw CliErrors[_0x10f0ff(0x1cf)](_0x10f0ff(0x1c1)+_0x5e7485+'\x20not\x20found\x20in\x20app\x20'+_0x810604+'.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.');return _0x5bb85e[0x0];}async function listAllAppRoles(_0x4ef4c0){const _0x1e32ad=a177_0x4ca525,_0x4fa0f0=0x64,_0x53c352=[];for(let _0x5b6105=0x1;;_0x5b6105+=0x1){const {items:_0x407a0e,paging:_0x3a18aa}=await listAppRoles(_0x4ef4c0,{'currentPage':_0x5b6105,'pageSize':_0x4fa0f0});_0x53c352[_0x1e32ad(0x1ab)](..._0x407a0e);if(_0x407a0e[_0x1e32ad(0x1e1)]<_0x4fa0f0||_0x3a18aa&&_0x53c352[_0x1e32ad(0x1e1)]>=_0x3a18aa[_0x1e32ad(0x1c0)])return _0x53c352;}}export async function resolveTenantCode(){const _0x4780cc=a177_0x4ca525,_0x50383f=await getSessionUserInfo(),_0x1adf82=_0x50383f?.[_0x4780cc(0x1dc)]?.[_0x4780cc(0x1aa)]?.[_0x4780cc(0x196)];if(!_0x1adf82)throw CliErrors[_0x4780cc(0x1b7)](_0x4780cc(0x1a6));return _0x1adf82;}function matchMember(_0xfba2d6,_0x4160b4){const _0x15d7f4=a177_0x4ca525,_0x30b66b=_0x4160b4[_0x15d7f4(0x1cb)]()[_0x15d7f4(0x1d1)]();return(_0xfba2d6[_0x15d7f4(0x1c5)]??'')[_0x15d7f4(0x1d1)]()===_0x30b66b||(_0xfba2d6[_0x15d7f4(0x1b4)]??'')['toLowerCase']()===_0x30b66b;}export async function resolveUserRef(_0x279614){const _0x1a73e0=a177_0x4ca525,_0x3ee81a=_0x279614[_0x1a73e0(0x1cb)]();if(!_0x3ee81a)throw CliErrors['validation'](_0x1a73e0(0x1a2),_0x1a73e0(0x195));const _0x257856=await resolveTenantCode(),_0x1bf2fc=await getTenantMembers(_0x257856);if(/^\d+$/[_0x1a73e0(0x1df)](_0x3ee81a)){const _0x33af38=Number(_0x3ee81a),_0x2e1d78=_0x1bf2fc[_0x1a73e0(0x1a7)](_0x2903e6=>_0x2903e6[_0x1a73e0(0x193)]===_0x33af38);return{'userId':_0x33af38,'username':_0x2e1d78?.[_0x1a73e0(0x1b4)]??String(_0x33af38),'nickname':_0x2e1d78?.[_0x1a73e0(0x1c5)],'matchedBy':'id'};}const _0xd327f1=_0x1bf2fc[_0x1a73e0(0x1db)](_0x1f7dbf=>matchMember(_0x1f7dbf,_0x3ee81a));if(_0xd327f1[_0x1a73e0(0x1e1)]===0x0)throw CliErrors[_0x1a73e0(0x1cf)]('No\x20tenant\x20member\x20matches\x20\x22'+_0x3ee81a+'\x22.',_0x1a73e0(0x1c4));if(_0xd327f1[_0x1a73e0(0x1e1)]>0x1){const _0x25981d=_0xd327f1[_0x1a73e0(0x197)](_0x51461a=>(_0x51461a[_0x1a73e0(0x1c5)]??_0x51461a[_0x1a73e0(0x1b4)]??'?')+'('+_0x51461a[_0x1a73e0(0x193)]+')')['join'](',\x20');throw CliErrors[_0x1a73e0(0x1cf)](_0x1a73e0(0x1bd)+_0x3ee81a+_0x1a73e0(0x1ac)+_0x25981d+'.','Disambiguate\x20with\x20--user\x20<id>.');}const _0x52904f=_0xd327f1[0x0];return{'userId':_0x52904f[_0x1a73e0(0x193)],'username':_0x52904f[_0x1a73e0(0x1b4)]??String(_0x52904f[_0x1a73e0(0x193)]),'nickname':_0x52904f[_0x1a73e0(0x1c5)],'matchedBy':_0x1a73e0(0x1c6)};}export const CREATE_USER_ROLE_PATH='/smartapi/permit/user-role/create';export const DELETE_USER_ROLE_PATH=a177_0x4ca525(0x1a3);export function computeRoleUserMutation(_0x53c450){const _0x4dc466=a177_0x4ca525,{operation:_0x3274eb,appCode:_0x34a493,role:_0x12bb72,relations:_0x5e3efd,user:_0x303450}=_0x53c450,_0x30b509=[...new Set(_0x5e3efd['map'](_0x50758b=>_0x50758b['userId']))],_0x305ceb=[];if(_0x53c450[_0x4dc466(0x1d9)]!==undefined&&_0x53c450[_0x4dc466(0x1d9)]!==_0x30b509['length'])throw CliErrors[_0x4dc466(0x1cf)](_0x4dc466(0x1e2)+_0x53c450['expectUserCount']+_0x4dc466(0x19a)+_0x30b509[_0x4dc466(0x1e1)]+'.',_0x4dc466(0x1d8));const _0x259d45=_0x30b509['includes'](_0x303450['userId']),_0x37bbb1=_0x5e3efd[_0x4dc466(0x1db)](_0xa594be=>_0xa594be['userId']===_0x303450[_0x4dc466(0x193)])[_0x4dc466(0x197)](_0x5dd6b6=>_0x5dd6b6['id']),_0x22caa0=_0x3274eb===_0x4dc466(0x1c3)?!_0x259d45:_0x259d45;let _0x20906c=_0x30b509;_0x3274eb===_0x4dc466(0x1c3)?_0x259d45?_0x305ceb[_0x4dc466(0x1ab)](_0x4dc466(0x1b1)+_0x303450['userId']+_0x4dc466(0x1d3)+_0x12bb72[_0x4dc466(0x1da)]+';\x20no\x20change.'):_0x20906c=[..._0x30b509,_0x303450[_0x4dc466(0x193)]]:!_0x259d45?_0x305ceb['push'](_0x4dc466(0x1b1)+_0x303450[_0x4dc466(0x193)]+_0x4dc466(0x1a4)+_0x12bb72[_0x4dc466(0x1da)]+_0x4dc466(0x1b5)):(_0x20906c=_0x30b509[_0x4dc466(0x1db)](_0x3f121b=>_0x3f121b!==_0x303450[_0x4dc466(0x193)]),_0x37bbb1[_0x4dc466(0x1e1)]>0x1&&_0x305ceb[_0x4dc466(0x1ab)](_0x4dc466(0x1a1)+_0x37bbb1[_0x4dc466(0x1e1)]+_0x4dc466(0x1d4)+_0x303450['userId']+'.'));const _0x231015={'scope':_0x4dc466(0x194),'operation':_0x3274eb,'selector':{'appCode':_0x34a493,'roleId':_0x12bb72['id'],'roleName':_0x12bb72[_0x4dc466(0x1da)],'userId':_0x303450[_0x4dc466(0x193)]},'before':{'userIds':_0x30b509},'after':{'userIds':_0x20906c},'dryRun':_0x53c450[_0x4dc466(0x1c9)],'backend':{'method':_0x4dc466(0x1be),'path':_0x3274eb===_0x4dc466(0x1c3)?CREATE_USER_ROLE_PATH:DELETE_USER_ROLE_PATH},'warnings':_0x305ceb};return{'mutation':_0x231015,'changed':_0x22caa0,'matchingRelationIds':_0x37bbb1};}export async function loadDevRoleRelations(_0x2c5ce9,_0x3ec0c4){const _0x173b0e=a177_0x4ca525,_0x225a13=0x64,_0x52babe=[];for(let _0x1e8062=0x1;;_0x1e8062+=0x1){const {items:_0x4b1ce0,paging:_0x2b96cb}=await listDevUserRoleRelations(_0x2c5ce9,{'roleId':_0x3ec0c4,'currentPage':_0x1e8062,'pageSize':_0x225a13});_0x52babe['push'](..._0x4b1ce0);if(_0x4b1ce0[_0x173b0e(0x1e1)]<_0x225a13||_0x2b96cb&&_0x52babe[_0x173b0e(0x1e1)]>=_0x2b96cb[_0x173b0e(0x1c0)])return _0x52babe;}}export function readRoleRef(_0x196c72){const _0x325715=a177_0x4ca525,_0xd2958f=_0x196c72[_0x325715(0x1d5)]('role')[_0x325715(0x1cb)]();if(!_0xd2958f)throw CliErrors[_0x325715(0x199)](_0x325715(0x1ae),_0x325715(0x1a0));return _0xd2958f;}export async function prepareUserMutation(_0x49a9df,_0x4c7e12,_0x8d6196){const _0x371d7c=a177_0x4ca525,_0x1acade=readRoleRef(_0x49a9df),_0x345431=_0x49a9df['str'](_0x371d7c(0x1dc))[_0x371d7c(0x1cb)]();if(!_0x345431)throw CliErrors[_0x371d7c(0x199)]('user',_0x371d7c(0x195));const _0x24cd59=_0x49a9df['flag'](_0x371d7c(0x1a8)),_0x661a22=_0x24cd59===undefined||_0x24cd59===null?undefined:Number(_0x24cd59),_0x397c3a=await resolveRoleRef(_0x49a9df[_0x371d7c(0x191)],_0x1acade);if(_0x397c3a[_0x371d7c(0x1d7)]==='OWNER')throw CliErrors[_0x371d7c(0x1cf)]('Cannot\x20'+_0x4c7e12+_0x371d7c(0x1e0),_0x371d7c(0x1b2));const _0x594184=await resolveUserRef(_0x345431),_0x461701=await loadDevRoleRelations(_0x49a9df[_0x371d7c(0x191)],_0x397c3a['id']);return{...computeRoleUserMutation({'operation':_0x4c7e12,'appCode':_0x49a9df[_0x371d7c(0x191)],'role':_0x397c3a,'relations':_0x461701,'user':{'userId':_0x594184[_0x371d7c(0x193)],'username':_0x594184[_0x371d7c(0x1b4)],'nickname':_0x594184['nickname']},'dryRun':_0x8d6196,..._0x661a22!==undefined?{'expectUserCount':_0x661a22}:{}}),'role':_0x397c3a,'user':_0x594184};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a178_0x4646a1=a178_0x375e;(function(_0x1788a7,_0x33aed4){const _0xcc0e0d=a178_0x375e,_0x3802aa=_0x1788a7();while(!![]){try{const _0x184a9b=-parseInt(_0xcc0e0d(0xe3))/0x1+-parseInt(_0xcc0e0d(0xd8))/0x2*(-parseInt(_0xcc0e0d(0xdc))/0x3)+-parseInt(_0xcc0e0d(0xe5))/0x4+-parseInt(_0xcc0e0d(0xdf))/0x5*(-parseInt(_0xcc0e0d(0xdd))/0x6)+parseInt(_0xcc0e0d(0xdb))/0x7+parseInt(_0xcc0e0d(0xe8))/0x8+-parseInt(_0xcc0e0d(0xe0))/0x9;if(_0x184a9b===_0x33aed4)break;else _0x3802aa['push'](_0x3802aa['shift']());}catch(_0x28fab5){_0x3802aa['push'](_0x3802aa['shift']());}}}(a178_0x1862,0xc9a93));import{updateAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a178_0x375e(_0x20be63,_0x5b8c2e){_0x20be63=_0x20be63-0xcf;const _0x1862df=a178_0x1862();let _0x375e2b=_0x1862df[_0x20be63];return _0x375e2b;}import{asDryRunResult}from'../../commands/common/dry-run.js';function a178_0x1862(){const _0x449b5c=['length','flag','\x20(id=','734Wgdqfo','trim','/smartapi/permit/role/update','6255214xjxVEm','2853xXUdfm','8061432JyBJZx','roleName','5peZjCc','13337847XtRpFH','Update\x20a\x20CUSTOM\x20role\x27s\x20name/remark\x20(built-in\x20roles\x20rejected)','POST','105527OZuLOX','Pass\x20at\x20least\x20one\x20of\x20--name\x20/\x20--remark.','5075396RApYQf','Updated\x20role\x20','remark','8769368dzWXCz','Role\x20name\x20cannot\x20exceed\x2064\x20characters.','role','write','update','--name\x20cannot\x20be\x20empty.','New\x20role\x20name','name','validation','appCode','dev','num'];a178_0x1862=function(){return _0x449b5c;};return a178_0x1862();}import{assertCustomRole,getRoleById,projectRole,REMARK_FLAG,ROLE_ID_FLAG}from'../../commands/role/shared.js';const UPDATE_PATH=a178_0x4646a1(0xda);function readPatch(_0x49701f){const _0x5e5015=a178_0x4646a1,_0x486daf=_0x49701f[_0x5e5015(0xd6)](_0x5e5015(0xd0)),_0x4adfa6=_0x49701f[_0x5e5015(0xd6)](_0x5e5015(0xe7)),_0x4b4f61={};if(_0x486daf!==undefined&&_0x486daf!==null){const _0xe03960=String(_0x486daf)[_0x5e5015(0xd9)]();if(!_0xe03960)throw CliErrors[_0x5e5015(0xd1)](_0x5e5015(0xed));if(_0xe03960[_0x5e5015(0xd5)]>0x40)throw CliErrors[_0x5e5015(0xd1)](_0x5e5015(0xe9));_0x4b4f61[_0x5e5015(0xde)]=_0xe03960;}_0x4adfa6!==undefined&&_0x4adfa6!==null&&(_0x4b4f61[_0x5e5015(0xe7)]=String(_0x4adfa6));if(_0x4b4f61['roleName']===undefined&&_0x4b4f61['remark']===undefined)throw CliErrors[_0x5e5015(0xd1)]('Nothing\x20to\x20update.',_0x5e5015(0xe4));return _0x4b4f61;}export const roleUpdate={'service':a178_0x4646a1(0xea),'command':a178_0x4646a1(0xec),'description':a178_0x4646a1(0xe1),'risk':a178_0x4646a1(0xeb),'flags':[ROLE_ID_FLAG,{...REMARK_FLAG},{'name':a178_0x4646a1(0xd0),'type':'string','required':![],'description':a178_0x4646a1(0xcf)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x248298){readPatch(_0x248298);},async 'dryRun'(_0x54fc84){const _0x16dace=a178_0x4646a1,_0x2db962=_0x54fc84['num']('id'),_0x6b1b0e=readPatch(_0x54fc84),_0xd76177=await getRoleById(_0x54fc84[_0x16dace(0xd2)],_0x2db962);return assertCustomRole(_0xd76177,_0x16dace(0xec)),asDryRunResult({'scope':_0x16dace(0xd3),'operation':_0x16dace(0xec),'selector':{'appCode':_0x54fc84['appCode'],'roleId':_0x2db962,'roleName':_0xd76177[_0x16dace(0xde)]},'before':projectRole(_0xd76177),'after':projectRole({..._0xd76177,..._0x6b1b0e['roleName']!==undefined?{'roleName':_0x6b1b0e[_0x16dace(0xde)]}:{},..._0x6b1b0e[_0x16dace(0xe7)]!==undefined?{'remark':_0x6b1b0e['remark']}:{}}),'dryRun':!![],'backend':{'method':_0x16dace(0xe2),'path':UPDATE_PATH},'warnings':[]},{'method':_0x16dace(0xe2),'url':UPDATE_PATH});},async 'execute'(_0x2d2a65){const _0x2e86c7=a178_0x4646a1,_0x141cfd=_0x2d2a65[_0x2e86c7(0xd4)]('id'),_0x2ad1ab=readPatch(_0x2d2a65),_0x46fd45=await getRoleById(_0x2d2a65[_0x2e86c7(0xd2)],_0x141cfd);assertCustomRole(_0x46fd45,_0x2e86c7(0xec)),await updateAppRole({'id':_0x141cfd,'appCode':_0x2d2a65[_0x2e86c7(0xd2)],..._0x2ad1ab[_0x2e86c7(0xde)]!==undefined?{'roleName':_0x2ad1ab[_0x2e86c7(0xde)]}:{},..._0x2ad1ab[_0x2e86c7(0xe7)]!==undefined?{'remark':_0x2ad1ab[_0x2e86c7(0xe7)]}:{}});const _0x2f26c8=await getRoleById(_0x2d2a65[_0x2e86c7(0xd2)],_0x141cfd);return{'ok':!![],'data':{'scope':_0x2e86c7(0xd3),'operation':_0x2e86c7(0xec),'selector':{'appCode':_0x2d2a65['appCode'],'roleId':_0x141cfd,'roleName':_0x2f26c8[_0x2e86c7(0xde)]},'before':projectRole(_0x46fd45),'after':projectRole(_0x2f26c8),'dryRun':![],'backend':{'method':'POST','path':UPDATE_PATH},'warnings':[]},'message':_0x2e86c7(0xe6)+_0x2f26c8[_0x2e86c7(0xde)]+_0x2e86c7(0xd7)+_0x141cfd+')'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a179_0x5ffddb=a179_0x1266;(function(_0x289018,_0x56686c){const _0x32aa4d=a179_0x1266,_0x1db782=_0x289018();while(!![]){try{const _0x57597f=-parseInt(_0x32aa4d(0x7e))/0x1+parseInt(_0x32aa4d(0x80))/0x2*(-parseInt(_0x32aa4d(0x73))/0x3)+-parseInt(_0x32aa4d(0x81))/0x4+parseInt(_0x32aa4d(0x7c))/0x5*(parseInt(_0x32aa4d(0x70))/0x6)+-parseInt(_0x32aa4d(0x71))/0x7*(-parseInt(_0x32aa4d(0x7f))/0x8)+parseInt(_0x32aa4d(0x83))/0x9+parseInt(_0x32aa4d(0x72))/0xa;if(_0x57597f===_0x56686c)break;else _0x1db782['push'](_0x1db782['shift']());}catch(_0x2a1645){_0x1db782['push'](_0x1db782['shift']());}}}(a179_0x17ad,0xb1508));import{createDevUserRole}from'../../core/api-client.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a179_0x1266(_0x125c40,_0x49d875){_0x125c40=_0x125c40-0x6d;const _0x17ad5d=a179_0x17ad();let _0x126621=_0x17ad5d[_0x125c40];return _0x126621;}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_0x5ffddb(0x6d),'command':a179_0x5ffddb(0x77),'description':a179_0x5ffddb(0x6e),'risk':a179_0x5ffddb(0x6f),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x12478e){const _0x6ced00=a179_0x5ffddb,{mutation:_0x26e084}=await prepareUserMutation(_0x12478e,_0x6ced00(0x77),!![]);return asDryRunResult(_0x26e084,{'method':_0x6ced00(0x75),'url':CREATE_USER_ROLE_PATH});},async 'execute'(_0x3cbb1f){const _0x32b6d1=a179_0x5ffddb,{mutation:_0x71695e,changed:_0x22f551,role:_0x458d58,user:_0x5b0170}=await prepareUserMutation(_0x3cbb1f,'user-add',![]);return _0x22f551&&await createDevUserRole({'appCode':_0x3cbb1f[_0x32b6d1(0x7d)],'userId':_0x5b0170[_0x32b6d1(0x82)],'username':_0x5b0170['username'],'roleType':_0x458d58[_0x32b6d1(0x74)],'roleId':_0x71695e[_0x32b6d1(0x76)]['roleId']}),{'ok':!![],'data':_0x71695e,'message':_0x22f551?'Added\x20user\x20'+_0x71695e['selector'][_0x32b6d1(0x82)]+_0x32b6d1(0x7a)+_0x71695e[_0x32b6d1(0x76)][_0x32b6d1(0x7b)]:_0x32b6d1(0x78)+_0x71695e[_0x32b6d1(0x76)]['userId']+_0x32b6d1(0x79)+_0x71695e['selector'][_0x32b6d1(0x7b)]};}};function a179_0x17ad(){const _0x47a845=['8gOYuDR','219614YzclDq','5116548mvlpaR','userId','5226048ogwejS','role','Add\x20a\x20user\x20to\x20a\x20role\x20(OWNER\x20rejected);\x20requires\x20--yes','high-risk-write','348ftqCXV','1916579kRcCfL','18568780aFncpG','3trxbTi','roleType','POST','selector','user-add','No\x20change:\x20user\x20','\x20already\x20in\x20role\x20','\x20to\x20role\x20','roleName','435pPRYcc','appCode','601169EJGaIB'];a179_0x17ad=function(){return _0x47a845;};return a179_0x17ad();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a180_0x2716e8=a180_0x402a;(function(_0x5825cd,_0x3c7c34){const _0x443270=a180_0x402a,_0x2f551a=_0x5825cd();while(!![]){try{const _0x3cc345=-parseInt(_0x443270(0x1d6))/0x1+parseInt(_0x443270(0x1d4))/0x2+-parseInt(_0x443270(0x1e0))/0x3+-parseInt(_0x443270(0x1d9))/0x4*(-parseInt(_0x443270(0x1d5))/0x5)+-parseInt(_0x443270(0x1da))/0x6+parseInt(_0x443270(0x1dc))/0x7+-parseInt(_0x443270(0x1de))/0x8*(parseInt(_0x443270(0x1e3))/0x9);if(_0x3cc345===_0x3c7c34)break;else _0x2f551a['push'](_0x2f551a['shift']());}catch(_0x3b6691){_0x2f551a['push'](_0x2f551a['shift']());}}}(a180_0x6ea1,0xd8542));import{deleteDevUserRole}from'../../core/api-client.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';function a180_0x6ea1(){const _0x11efbe=['2224146prtgQv','selector','3538591YARMCn','\x20not\x20in\x20role\x20','16UJUJZv','POST','784389IseCVt','user-remove','userId','3804777nJLkMy','role','No\x20change:\x20user\x20','2940912YzTuOb','8185445ldawVP','1249316ZHPhJA','roleName','high-risk-write','4WbXEvf'];a180_0x6ea1=function(){return _0x11efbe;};return a180_0x6ea1();}import{EXPECT_USER_COUNT_FLAG,DELETE_USER_ROLE_PATH,prepareUserMutation,ROLE_REF_FLAG,USER_REF_FLAG}from'../../commands/role/shared.js';function a180_0x402a(_0x356b6c,_0x1c417d){_0x356b6c=_0x356b6c-0x1d4;const _0x6ea1a2=a180_0x6ea1();let _0x402a2e=_0x6ea1a2[_0x356b6c];return _0x402a2e;}export const roleUserRemove={'service':a180_0x2716e8(0x1e4),'command':a180_0x2716e8(0x1e1),'description':'Remove\x20a\x20user\x20from\x20a\x20role\x20(OWNER\x20rejected);\x20requires\x20--yes','risk':a180_0x2716e8(0x1d8),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x310ade){const _0x458b4a=a180_0x2716e8,{mutation:_0x3938b8}=await prepareUserMutation(_0x310ade,_0x458b4a(0x1e1),!![]);return asDryRunResult(_0x3938b8,{'method':_0x458b4a(0x1df),'url':DELETE_USER_ROLE_PATH});},async 'execute'(_0x28ca5d){const _0x3f5a6d=a180_0x2716e8,{matchingRelationIds:_0x46d689,mutation:_0x562d56,changed:_0x787d05}=await prepareUserMutation(_0x28ca5d,_0x3f5a6d(0x1e1),![]);if(_0x787d05)for(const _0x108a8b of _0x46d689){await deleteDevUserRole(_0x108a8b);}return{'ok':!![],'data':_0x562d56,'message':_0x787d05?'Removed\x20user\x20'+_0x562d56[_0x3f5a6d(0x1db)][_0x3f5a6d(0x1e2)]+'\x20from\x20role\x20'+_0x562d56['selector'][_0x3f5a6d(0x1d7)]:_0x3f5a6d(0x1e5)+_0x562d56[_0x3f5a6d(0x1db)][_0x3f5a6d(0x1e2)]+_0x3f5a6d(0x1dd)+_0x562d56[_0x3f5a6d(0x1db)][_0x3f5a6d(0x1d7)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a181_0x254603=a181_0x38a1;(function(_0x29531f,_0xfac962){const _0x22e0c3=a181_0x38a1,_0x44680b=_0x29531f();while(!![]){try{const _0x52dd9a=-parseInt(_0x22e0c3(0xe5))/0x1*(-parseInt(_0x22e0c3(0xe7))/0x2)+-parseInt(_0x22e0c3(0xe0))/0x3*(parseInt(_0x22e0c3(0xe4))/0x4)+-parseInt(_0x22e0c3(0xeb))/0x5+parseInt(_0x22e0c3(0xda))/0x6+-parseInt(_0x22e0c3(0xd7))/0x7*(parseInt(_0x22e0c3(0xd8))/0x8)+parseInt(_0x22e0c3(0xe1))/0x9*(-parseInt(_0x22e0c3(0xea))/0xa)+parseInt(_0x22e0c3(0xde))/0xb*(parseInt(_0x22e0c3(0xed))/0xc);if(_0x52dd9a===_0xfac962)break;else _0x44680b['push'](_0x44680b['shift']());}catch(_0x3e977e){_0x44680b['push'](_0x44680b['shift']());}}}(a181_0x2c60,0x9da7c));import{CliErrors}from'../../errors.js';function a181_0x38a1(_0x586ab6,_0x1a5f3a){_0x586ab6=_0x586ab6-0xd7;const _0x2c6037=a181_0x2c60();let _0x38a1c2=_0x2c6037[_0x586ab6];return _0x38a1c2;}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{resolveUserRef,USER_NAME_FLAG}from'../../commands/role/shared.js';function a181_0x2c60(){const _0x538626=['Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','721XZfwcM','23672HBkcEA','username','3317748RaynlV','str','\x22\x20→\x20userId\x20','matchedBy','18658387rtQxXD','trim','45AorLSt','486801sviwfj','user-resolve','role','211748NEKMbG','1367fwanlx','Resolved\x20\x22','266wVUueP','flagMissing','read','70CpUZOj','1538875cebaeD','name','12RQJOKh','nickname','userId'];a181_0x2c60=function(){return _0x538626;};return a181_0x2c60();}export const roleUserResolve={'service':a181_0x254603(0xe3),'command':a181_0x254603(0xe2),'description':a181_0x254603(0xf0),'risk':a181_0x254603(0xe9),'flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x53722e){const _0x1b53b3=a181_0x254603;if(!_0x53722e['str'](_0x1b53b3(0xec))[_0x1b53b3(0xdf)]())throw CliErrors[_0x1b53b3(0xe8)](_0x1b53b3(0xec),'Pass\x20--name\x20<nickname|username>.');},async 'execute'(_0x21ee87){const _0x4b2268=a181_0x254603,_0x4cb2f5=_0x21ee87[_0x4b2268(0xdb)](_0x4b2268(0xec))['trim'](),_0xcefcbe=await resolveUserRef(_0x4cb2f5);return{'ok':!![],'data':{'user':{'userId':_0xcefcbe[_0x4b2268(0xef)],'username':_0xcefcbe[_0x4b2268(0xd9)],'nickname':_0xcefcbe[_0x4b2268(0xee)],'matchedBy':_0xcefcbe[_0x4b2268(0xdd)]}},'message':_0x4b2268(0xe6)+_0x4cb2f5+_0x4b2268(0xdc)+_0xcefcbe[_0x4b2268(0xef)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a182_0x359128=a182_0x3316;(function(_0x3bc6e3,_0x2702ea){const _0x2f3163=a182_0x3316,_0x2539f0=_0x3bc6e3();while(!![]){try{const _0x3db8fe=parseInt(_0x2f3163(0x1e3))/0x1+parseInt(_0x2f3163(0x1d0))/0x2+-parseInt(_0x2f3163(0x1bd))/0x3+-parseInt(_0x2f3163(0x1e1))/0x4+-parseInt(_0x2f3163(0x1cd))/0x5+parseInt(_0x2f3163(0x1d5))/0x6*(-parseInt(_0x2f3163(0x1b7))/0x7)+parseInt(_0x2f3163(0x1b8))/0x8*(parseInt(_0x2f3163(0x1be))/0x9);if(_0x3db8fe===_0x2702ea)break;else _0x2539f0['push'](_0x2539f0['shift']());}catch(_0x57e7f6){_0x2539f0['push'](_0x2539f0['shift']());}}}(a182_0x1d18,0x6e72a));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([a182_0x359128(0x1bc),'dev']);function a182_0x3316(_0x2a2812,_0x16891a){_0x2a2812=_0x2a2812-0x1ad;const _0x1d181f=a182_0x1d18();let _0x331631=_0x1d181f[_0x2a2812];return _0x331631;}function readPackageScripts(_0x3cb529){const _0x295b28=a182_0x359128,_0x98ce36=resolve(_0x3cb529,'package.json');if(!existsSync(_0x98ce36))return null;try{const _0xf095e7=JSON['parse'](readFileSync(_0x98ce36,_0x295b28(0x1db)));return _0xf095e7[_0x295b28(0x1c1)]??{};}catch{return null;}}function detectPackageManager(_0x1edf14){const _0x46103e=a182_0x359128;if(existsSync(resolve(_0x1edf14,'bun.lockb'))||existsSync(resolve(_0x1edf14,'bun.lock')))return _0x46103e(0x1c4);if(existsSync(resolve(_0x1edf14,_0x46103e(0x1b3))))return _0x46103e(0x1d8);if(existsSync(resolve(_0x1edf14,_0x46103e(0x1df))))return _0x46103e(0x1e6);return _0x46103e(0x1bb);}async function versionCheck(_0x68382f){const _0x3afefc=a182_0x359128,_0x34f900=await checkCliVersion();(_0x34f900[_0x3afefc(0x1c5)]||_0x34f900[_0x3afefc(0x1ca)])&&(printCliUpgradeWarning(_0x34f900),assertCliVersionSupported(_0x34f900));const _0x550077=await checkSdkVersion(_0x68382f);if(_0x550077[_0x3afefc(0x1c5)])printSdkUpgradeWarning(_0x550077);}function spawnScript(_0xf39df,_0x1e63ae,_0x236cf6,_0x45e94d){return new Promise((_0x5e6b2f,_0x3a1804)=>{const _0xff6853=a182_0x3316,_0x4c2b4e=['run',_0x1e63ae,..._0x236cf6],_0xfed54b=spawn(_0xf39df,_0x4c2b4e,{'cwd':_0x45e94d,'stdio':_0xff6853(0x1cb),'shell':!![],'env':{...process.env,'PATH':''+join(_0x45e94d,_0xff6853(0x1cf),_0xff6853(0x1c2))+delimiter+process.env.PATH}});_0xfed54b['on'](_0xff6853(0x1dc),_0x232e82=>{const _0x297488=_0xff6853;if(_0x232e82===0x0||_0x232e82===null)_0x5e6b2f();else _0x3a1804(new Error(_0xf39df+_0x297488(0x1c3)+_0x1e63ae+_0x297488(0x1bf)+_0x232e82));}),_0xfed54b['on'](_0xff6853(0x1de),_0x3a1804);});}function spawnViteBuildWatch(_0x3af558){return new Promise((_0x50e003,_0x41f89d)=>{const _0x30d760=a182_0x3316,_0x2ebbd7=spawn(_0x30d760(0x1b4),['build',_0x30d760(0x1da)],{'cwd':_0x3af558,'stdio':_0x30d760(0x1cb),'shell':!![],'env':{...process.env,'PATH':''+join(_0x3af558,_0x30d760(0x1cf),'.bin')+delimiter+process.env.PATH}});_0x2ebbd7['on'](_0x30d760(0x1dc),_0x1ac8a9=>{const _0x444cc3=_0x30d760;if(_0x1ac8a9===0x0||_0x1ac8a9===null)_0x50e003();else _0x41f89d(new Error(_0x444cc3(0x1c0)+_0x1ac8a9));}),_0x2ebbd7['on'](_0x30d760(0x1de),_0x41f89d);});}function spawnVitePreview(_0x428ea3){return new Promise((_0x5bead5,_0x4ac65f)=>{const _0x5a73f2=a182_0x3316,_0x5b2c7b=spawn(_0x5a73f2(0x1b4),[_0x5a73f2(0x1c7)],{'cwd':_0x428ea3,'stdio':_0x5a73f2(0x1cb),'shell':!![],'env':{...process.env,'PATH':''+join(_0x428ea3,_0x5a73f2(0x1cf),_0x5a73f2(0x1c2))+delimiter+process.env.PATH}});_0x5b2c7b['on'](_0x5a73f2(0x1dc),_0x365ca0=>{const _0x1cf41e=_0x5a73f2;if(_0x365ca0===0x0||_0x365ca0===null)_0x5bead5();else _0x4ac65f(new Error(_0x1cf41e(0x1e2)+_0x365ca0));}),_0x5b2c7b['on'](_0x5a73f2(0x1de),_0x4ac65f);});}const runFlags=[{'name':a182_0x359128(0x1e4),'type':'boolean','description':a182_0x359128(0x1c9),'default':![]}];function a182_0x1d18(){const _0x230b7d=['args','184037JkEeKV','24IFYWuY','Run\x20a\x20package.json\x20script','bool','npm','start','279963sJUDbO','5301297ytMpme','\x20exited\x20with\x20code\x20','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','scripts','.bin','\x20run\x20','bun','needsUpgrade','\x20\x20EXAMPLES','preview','\x20run\x20start','Enable\x20watch\x20mode\x20for\x20preview','belowMinimum','inherit','Script\x20\x22','3457585NbXhxL','log','node_modules','1112944iDdpXD','cwd','keys','\x22\x20not\x20found\x20in\x20package.json.','all','66AiFZrs','\x20\x20\x20\x20','Script\x20name\x20defined\x20in\x20package.json','pnpm','has','--watch','utf-8','close','\x20run\x20preview\x20--watch','error','yarn.lock','run','3488572XCMhpb','vite\x20preview\x20exited\x20with\x20code\x20','75005UHOvzW','watch','\x0a\x20\x20Usage:\x20','yarn','push','\x0a\x20\x20Available\x20scripts:\x0a','join','\x20run\x20build','write','No\x20package.json\x20found\x20in\x20current\x20directory.','\x20run\x20preview','pnpm-lock.yaml','vite','length'];a182_0x1d18=function(){return _0x230b7d;};return a182_0x1d18();}export const runDefinition={'service':'run','command':a182_0x359128(0x1e0),'description':a182_0x359128(0x1b9),'risk':a182_0x359128(0x1b0),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':'script','description':a182_0x359128(0x1d7),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x537268=a182_0x359128,_0x1e23bf=[];return _0x1e23bf[_0x537268(0x1e7)](_0x537268(0x1c6)),_0x1e23bf[_0x537268(0x1e7)](_0x537268(0x1d6)+CLI_BIN_NAME+_0x537268(0x1c8)),_0x1e23bf[_0x537268(0x1e7)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x537268(0x1af)),_0x1e23bf[_0x537268(0x1e7)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x537268(0x1b2)),_0x1e23bf[_0x537268(0x1e7)](_0x537268(0x1d6)+CLI_BIN_NAME+_0x537268(0x1dd)),_0x1e23bf[_0x537268(0x1ae)]('\x0a');},async 'execute'(_0xc118f7){const _0x605712=a182_0x359128,_0x41ce47=process[_0x605712(0x1d1)](),_0x8e6127=_0xc118f7[_0x605712(0x1b6)][0x0],_0x25cf34=_0xc118f7[_0x605712(0x1b6)]['slice'](0x1),_0x2fee34=readPackageScripts(_0x41ce47);if(!_0x2fee34)throw CliErrors['validation'](_0x605712(0x1b1));if(!_0x8e6127){const _0x1f8d80=Object[_0x605712(0x1d2)](_0x2fee34);if(_0x1f8d80[_0x605712(0x1b5)]===0x0)console[_0x605712(0x1ce)]('No\x20scripts\x20defined\x20in\x20package.json.');else{console['log'](_0x605712(0x1ad));for(const _0x49e5a6 of _0x1f8d80){console[_0x605712(0x1ce)]('\x20\x20\x20\x20'+_0x49e5a6);}console[_0x605712(0x1ce)](_0x605712(0x1e5)+CLI_BIN_NAME+'\x20run\x20<script>\x0a');}return{'ok':!![]};}if(!_0x2fee34[_0x8e6127])throw CliErrors['validation'](_0x605712(0x1cc)+_0x8e6127+_0x605712(0x1d3),'Available:\x20'+(Object['keys'](_0x2fee34)[_0x605712(0x1ae)](',\x20')||'(none)'));const _0x4adc8c=detectPackageManager(_0x41ce47);VERSION_CHECK_SCRIPTS[_0x605712(0x1d9)](_0x8e6127)&&await versionCheck(_0x41ce47);if(_0x8e6127===_0x605712(0x1c7)&&_0xc118f7[_0x605712(0x1ba)]('watch'))return await Promise[_0x605712(0x1d4)]([spawnViteBuildWatch(_0x41ce47),spawnVitePreview(_0x41ce47)]),{'ok':!![]};return await spawnScript(_0x4adc8c,_0x8e6127,_0x25cf34,_0x41ce47),{'ok':!![]};}};
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a183_0x9c5b(){const _0x37e5a0=['2854586XNIBQq','440xuaTru','110vpiqUo','240LVzAwB','json','102003mWRVXk','554344ZWIkqx','export','119538YhHJlM','1565016DktUjd','Export\x20machine-readable\x20command\x20schema\x20(JSON)','read','6IveqjA','9565DHwtgI','170039wrHhKr'];a183_0x9c5b=function(){return _0x37e5a0;};return a183_0x9c5b();}function a183_0x42ce(_0x588f7a,_0x3ec915){_0x588f7a=_0x588f7a-0x127;const _0x9c5bb6=a183_0x9c5b();let _0x42ce5d=_0x9c5bb6[_0x588f7a];return _0x42ce5d;}const a183_0x2f5a40=a183_0x42ce;(function(_0x34e5ef,_0x382b97){const _0x81b7a=a183_0x42ce,_0xc2ebb6=_0x34e5ef();while(!![]){try{const _0x440ce7=parseInt(_0x81b7a(0x133))/0x1+-parseInt(_0x81b7a(0x12b))/0x2+-parseInt(_0x81b7a(0x12e))/0x3+parseInt(_0x81b7a(0x135))/0x4*(parseInt(_0x81b7a(0x132))/0x5)+parseInt(_0x81b7a(0x131))/0x6*(parseInt(_0x81b7a(0x134))/0x7)+parseInt(_0x81b7a(0x128))/0x8*(parseInt(_0x81b7a(0x12d))/0x9)+parseInt(_0x81b7a(0x127))/0xa*(-parseInt(_0x81b7a(0x12a))/0xb);if(_0x440ce7===_0x382b97)break;else _0xc2ebb6['push'](_0xc2ebb6['shift']());}catch(_0x33eeb6){_0xc2ebb6['push'](_0xc2ebb6['shift']());}}}(a183_0x9c5b,0x45cb8));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x3f44f7){const _0x553753=await buildSchemaPayload();return{'ok':!![],'data':_0x553753};}export const schemaDefinition={'service':'schema','command':a183_0x2f5a40(0x12c),'description':a183_0x2f5a40(0x12f),'risk':a183_0x2f5a40(0x130),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a183_0x2f5a40(0x129),'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
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
|
+
const a184_0x51188d=a184_0x3ce8;(function(_0x20d785,_0x14bf9c){const _0x4b5de0=a184_0x3ce8,_0x41092b=_0x20d785();while(!![]){try{const _0x41a59f=-parseInt(_0x4b5de0(0x189))/0x1*(parseInt(_0x4b5de0(0x1a5))/0x2)+-parseInt(_0x4b5de0(0x16f))/0x3+parseInt(_0x4b5de0(0x192))/0x4*(parseInt(_0x4b5de0(0x16c))/0x5)+parseInt(_0x4b5de0(0x173))/0x6*(parseInt(_0x4b5de0(0x1a6))/0x7)+-parseInt(_0x4b5de0(0x175))/0x8+parseInt(_0x4b5de0(0x1a9))/0x9*(parseInt(_0x4b5de0(0x19a))/0xa)+parseInt(_0x4b5de0(0x187))/0xb*(parseInt(_0x4b5de0(0x183))/0xc);if(_0x41a59f===_0x14bf9c)break;else _0x41092b['push'](_0x41092b['shift']());}catch(_0x4fe2eb){_0x41092b['push'](_0x41092b['shift']());}}}(a184_0x4065,0xb76d5));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';function a184_0x3ce8(_0x76c379,_0x4462b7){_0x76c379=_0x76c379-0x160;const _0x4065b9=a184_0x4065();let _0x3ce856=_0x4065b9[_0x76c379];return _0x3ce856;}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';function a184_0x4065(){const _0x1f1b52=['1306185pqydTM','请选择目标数据库:','utf8','2520414PsAMrl','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','dbId\x20必须为正整数','Local\x20SQL\x20file\x20mode','18JcjNoY','name','5715736SAyJZk','parse','new','\x20\x20SELECT\x201\x20AS\x20id','SQL\x20query\x20display\x20name','SQL\x20名称不能为空','isFinite','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','File\x20already\x20exists:\x20','mybatisXml','__manual__','sql','Created\x20SQL\x20query\x20','dbName','12eRlXDE','db-id','MyBatis\x20XML(mybatisXml)','/smartapi/custom/saveUserCustomSql','1564079kuVoCq','Invalid\x20database\x20selection\x20payload:\x20','979ClsSnh','dbId\x20不能为空','sqlCode','validation','dbId','sqlRootDir','✎\x20手动输入\x20dbId','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','join','12WJeOoW','SELECT\x201\x20AS\x20id;','flagMissing','sqls','sqlRoot','isInteger','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','mode','3450aRyruq','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','description','string','trim','</select>','appCode','<server-generated-sqlCode>','stringify','sqlName','lastSync','16srgJTR','2561321YMXCmp','请选择本地\x20SQL\x20模式:','适合带动态标签的\x20MyBatis\x20XML\x20SQL','7569ChgIci','catch','请输入\x20SQL\x20名称:','str','length','flag','lockFilePath','number','create','toISOString','map','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','nonInteractive','write'];a184_0x4065=function(){return _0x1f1b52;};return a184_0x4065();}import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x50a235){const _0x8eb609=a184_0x3ce8;if(_0x50a235==='mybatisXml')return[_0x8eb609(0x170),_0x8eb609(0x178),_0x8eb609(0x19f),''][_0x8eb609(0x191)]('\x0a');return[_0x8eb609(0x193),''][_0x8eb609(0x191)]('\x0a');}export const sqlCreate={'service':'sql','command':a184_0x51188d(0x166),'description':a184_0x51188d(0x19b),'risk':a184_0x51188d(0x16b),'flags':[{'name':'name','type':a184_0x51188d(0x19d),'description':a184_0x51188d(0x179)},{'name':a184_0x51188d(0x184),'type':a184_0x51188d(0x165),'description':'Target\x20database\x20ID'},{'name':a184_0x51188d(0x199),'type':a184_0x51188d(0x19d),'enum':[a184_0x51188d(0x180),a184_0x51188d(0x17e)],'description':a184_0x51188d(0x172)}],async 'validate'(_0x581be7){const _0x43dba5=a184_0x51188d;if(!_0x581be7[_0x43dba5(0x16a)])return;if(!_0x581be7[_0x43dba5(0x161)](_0x43dba5(0x174))[_0x43dba5(0x19e)]())throw CliErrors[_0x43dba5(0x194)](_0x43dba5(0x174),_0x43dba5(0x17c));const _0x538b62=resolveProvidedDbId(_0x581be7);if(typeof _0x538b62!==_0x43dba5(0x165)||!Number[_0x43dba5(0x17b)](_0x538b62)||_0x538b62<=0x0)throw CliErrors['flagMissing'](_0x43dba5(0x184),_0x43dba5(0x198));if(!_0x581be7[_0x43dba5(0x161)](_0x43dba5(0x199))[_0x43dba5(0x19e)]())throw CliErrors['flagMissing'](_0x43dba5(0x199),_0x43dba5(0x190));},async 'dryRun'(_0x5984b2){const _0x368bab=a184_0x51188d,_0x25e12b=loadSqlProjectConfig(_0x5984b2[_0x368bab(0x1a0)]),{sqlName:_0x4a6db2,dbId:_0x497749,dbName:_0xb5c1db,mode:_0x5c4886}=await resolveSqlNewInputs(_0x5984b2),_0x32f879=buildSqlRelativePath(_0x368bab(0x1a1),_0x4a6db2,_0xb5c1db,_0x5c4886,_0x497749),_0x1fa3ec=_0x25e12b[_0x368bab(0x18e)]+'/'+_0x32f879;return{'method':'POST','url':_0x368bab(0x186),'body':{'appCode':_0x5984b2[_0x368bab(0x1a0)],'sqlName':_0x4a6db2,'dbId':_0x497749,'mode':_0x5c4886,'localPath':_0x1fa3ec},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x25e12b[_0x368bab(0x18e)]};},async 'execute'(_0xb0c5d2){const _0x27b529=a184_0x51188d,_0x13e434=loadSqlProjectConfig(_0xb0c5d2['appCode']),{sqlName:_0x48537c,dbId:_0x2d9297,dbName:_0x32d0e4,mode:_0x5b443e}=await resolveSqlNewInputs(_0xb0c5d2),_0x10e9e2=generateSqlTemplate(_0x5b443e),_0x16001b=await createSqlQuery({'appCode':_0xb0c5d2[_0x27b529(0x1a0)],'sqlName':_0x48537c,'dbId':_0x2d9297,'sqlContent':_0x10e9e2}),_0x1e255b=ensureRemoteSqlContent(_0x16001b),_0x4412eb=_0x32d0e4||await getDbName(_0xb0c5d2['appCode'],_0x2d9297)[_0x27b529(0x1aa)](()=>undefined),_0x340bfb=buildSqlRelativePath(_0x16001b[_0x27b529(0x18b)],_0x16001b[_0x27b529(0x1a3)],_0x4412eb,_0x5b443e,_0x2d9297),_0x59cc32=_0x13e434[_0x27b529(0x18e)]+'/'+_0x340bfb,_0x4f87e9=buildLocalSqlFileContent({'sqlCode':_0x16001b[_0x27b529(0x18b)],'sqlName':_0x16001b[_0x27b529(0x1a3)],'dbId':_0x16001b['dbId']},_0x1e255b,{'dbName':_0x4412eb,'mode':_0x5b443e,'syncedAt':new Date()[_0x27b529(0x167)](),'description':_0x16001b[_0x27b529(0x19c)]});if(await fileExists(_0x59cc32))throw CliErrors[_0x27b529(0x18c)](_0x27b529(0x17d)+_0x59cc32);await ensureParentDirectory(_0x59cc32),await writeFile(_0x59cc32,_0x4f87e9,_0x27b529(0x16e));const _0x44135f=await readSqlLockFile(_0x13e434[_0x27b529(0x164)]),{lockData:_0x1a153f,appLock:_0x437fef}=ensureSqlLockScope(_0x44135f??createEmptySqlLock(),_0x13e434[_0x27b529(0x1a0)],_0x13e434[_0x27b529(0x196)],_0x27b529(0x177));return _0x437fef[_0x27b529(0x195)][_0x16001b[_0x27b529(0x18b)]]={...buildSqlLockEntry(_0x16001b,_0x1e255b,computeSqlContentHash(_0x4f87e9),{'dbName':_0x4412eb}),'path':_0x340bfb,'mode':_0x5b443e},_0x437fef[_0x27b529(0x1a4)]=new Date()[_0x27b529(0x167)](),await writeSqlLockFile(_0x13e434[_0x27b529(0x164)],_0x1a153f),{'ok':!![],'data':{'id':_0x16001b['id'],'sqlCode':_0x16001b[_0x27b529(0x18b)],'sqlName':_0x16001b[_0x27b529(0x1a3)],'dbId':_0x16001b[_0x27b529(0x18d)],'path':_0x59cc32,'mode':_0x5b443e},'message':_0x27b529(0x181)+_0x16001b['sqlCode']};}};async function resolveSqlNewInputs(_0x55998b){const _0x308e5c=await resolveSqlNameInput(_0x55998b),{dbId:_0x3da10f,dbName:_0x41e632}=await resolveDbSelection(_0x55998b),_0x2e4007=await resolveSqlModeInput(_0x55998b);return{'sqlName':_0x308e5c,'dbId':_0x3da10f,'dbName':_0x41e632,'mode':_0x2e4007};}async function resolveSqlNameInput(_0x3b33a7){const _0x220799=a184_0x51188d,_0x5aa1f2=_0x3b33a7['str'](_0x220799(0x174))[_0x220799(0x19e)]();if(_0x5aa1f2)return _0x5aa1f2;if(_0x3b33a7[_0x220799(0x16a)])throw CliErrors['flagMissing']('name',_0x220799(0x17c));return(await input({'message':_0x220799(0x160),'validate':_0x51620f=>_0x51620f[_0x220799(0x19e)]()?!![]:_0x220799(0x17a)}))[_0x220799(0x19e)]();}async function resolveDbSelection(_0x3673ca){const _0x4a782d=a184_0x51188d,_0xa70075=resolveProvidedDbId(_0x3673ca);if(typeof _0xa70075===_0x4a782d(0x165)&&Number[_0x4a782d(0x17b)](_0xa70075)&&_0xa70075>0x0)return{'dbId':_0xa70075,'dbName':await getDbName(_0x3673ca['appCode'],_0xa70075)[_0x4a782d(0x1aa)](()=>undefined)};if(_0x3673ca['nonInteractive'])throw CliErrors['flagMissing'](_0x4a782d(0x184),_0x4a782d(0x198));const _0x3457a8=await listDatabases(_0x3673ca[_0x4a782d(0x1a0)])[_0x4a782d(0x1aa)](()=>[]);if(_0x3457a8[_0x4a782d(0x162)]===0x1)return{'dbId':_0x3457a8[0x0]['dbId'],'dbName':_0x3457a8[0x0][_0x4a782d(0x182)]};if(_0x3457a8[_0x4a782d(0x162)]>0x1){const _0x2dcaf7=await select({'message':_0x4a782d(0x16d),'choices':[..._0x3457a8[_0x4a782d(0x168)](_0x349c22=>({'name':_0x349c22['dbName']+'\x20('+_0x349c22[_0x4a782d(0x18d)]+')','value':serializeDbSelection(_0x349c22)})),{'name':_0x4a782d(0x18f),'value':_0x4a782d(0x17f)}]});if(_0x2dcaf7!==_0x4a782d(0x17f))return deserializeDbSelection(_0x2dcaf7);}const _0x5d1d38=await input({'message':'请输入目标数据库\x20dbId:','validate':_0x5ab4ca=>{const _0x92c986=_0x4a782d,_0xe31dc4=_0x5ab4ca['trim']();if(!_0xe31dc4)return _0x92c986(0x18a);const _0x410da4=Number(_0xe31dc4);if(!Number[_0x92c986(0x197)](_0x410da4)||_0x410da4<=0x0)return _0x92c986(0x171);return!![];}});return{'dbId':Number(_0x5d1d38['trim']())};}async function resolveSqlModeInput(_0xa1c08){const _0x4d6dce=a184_0x51188d,_0x4668a8=_0xa1c08['str'](_0x4d6dce(0x199))['trim']();if(_0x4668a8===_0x4d6dce(0x180)||_0x4668a8===_0x4d6dce(0x17e))return _0x4668a8;if(_0xa1c08[_0x4d6dce(0x16a)])throw CliErrors['flagMissing'](_0x4d6dce(0x199),_0x4d6dce(0x190));return await select({'message':_0x4d6dce(0x1a7),'choices':[{'name':'普通\x20SQL(sql)','value':_0x4d6dce(0x180),'description':_0x4d6dce(0x169)},{'name':_0x4d6dce(0x185),'value':_0x4d6dce(0x17e),'description':_0x4d6dce(0x1a8)}]});}function serializeDbSelection(_0x3bd464){const _0x5854f4=a184_0x51188d;return JSON[_0x5854f4(0x1a2)]({'dbId':_0x3bd464['dbId'],'dbName':_0x3bd464[_0x5854f4(0x182)]});}function deserializeDbSelection(_0x1f1ba3){const _0x58c6bb=a184_0x51188d;try{const _0x538265=JSON[_0x58c6bb(0x176)](_0x1f1ba3);if(typeof _0x538265[_0x58c6bb(0x18d)]===_0x58c6bb(0x165)&&Number[_0x58c6bb(0x17b)](_0x538265['dbId']))return{'dbId':_0x538265[_0x58c6bb(0x18d)],'dbName':_0x538265[_0x58c6bb(0x182)]};}catch{}throw CliErrors[_0x58c6bb(0x18c)](_0x58c6bb(0x188)+_0x1f1ba3);}function resolveProvidedDbId(_0x3af0cb){const _0x157fce=a184_0x51188d,_0x283e66=_0x3af0cb[_0x157fce(0x163)](_0x157fce(0x184));if(typeof _0x283e66==='number'&&Number[_0x157fce(0x17b)](_0x283e66))return _0x283e66;return undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a185_0x1d39d=a185_0x284c;(function(_0x72624f,_0x9b42dd){const _0x3bcda1=a185_0x284c,_0x17f82e=_0x72624f();while(!![]){try{const _0x5418fb=parseInt(_0x3bcda1(0x132))/0x1*(-parseInt(_0x3bcda1(0x12f))/0x2)+parseInt(_0x3bcda1(0x140))/0x3*(-parseInt(_0x3bcda1(0x147))/0x4)+-parseInt(_0x3bcda1(0x14c))/0x5*(-parseInt(_0x3bcda1(0x141))/0x6)+parseInt(_0x3bcda1(0x13a))/0x7+-parseInt(_0x3bcda1(0x131))/0x8+-parseInt(_0x3bcda1(0x135))/0x9+parseInt(_0x3bcda1(0x134))/0xa*(parseInt(_0x3bcda1(0x145))/0xb);if(_0x5418fb===_0x9b42dd)break;else _0x17f82e['push'](_0x17f82e['shift']());}catch(_0x459c55){_0x17f82e['push'](_0x17f82e['shift']());}}}(a185_0x2650,0xd3d93));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';function a185_0x2650(){const _0x2a0098=['validation','7602856JIpHQF','5634qgLlyk','lockFilePath','50241500TPfgFJ','9772857DJILdv','Would\x20delete\x20SQL\x20','replace','sql','appCode','4161906eHZpwb','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','trashDir','sqlRoot','startsWith','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','5193pjizGW','6JMFtyT','trashedTo','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','lastSync','11dPoABl','str','3412zcCJwW','high-risk-write','sqls','toISOString','filter','2288150IAfvqP','sqlcode','/smartapi/custom/deleteUserCustomSql','POST','delete','projectRoot','remoteId','SQL\x20lock\x20file\x20not\x20found.','602ZRZINK'];a185_0x2650=function(){return _0x2a0098;};return a185_0x2650();}export const sqlDelete={'service':a185_0x1d39d(0x138),'command':a185_0x1d39d(0x12b),'description':a185_0x1d39d(0x13f),'risk':a185_0x1d39d(0x148),'flags':[SQLCODE_FLAG],async 'validate'(_0x26b46b){const _0x4b025e=a185_0x1d39d,_0xa150d4=loadSqlProjectConfig(_0x26b46b['appCode']),_0x262ae5=await readSqlLockFile(_0xa150d4['lockFilePath']);if(!_0x262ae5)throw CliErrors[_0x4b025e(0x130)](_0x4b025e(0x143));},async 'dryRun'(_0x54a81d){const _0x17c602=a185_0x1d39d,_0xfd9417=loadSqlProjectConfig(_0x54a81d[_0x17c602(0x139)]),_0x481787=await readSqlLockFile(_0xfd9417[_0x17c602(0x133)]);if(!_0x481787)throw CliErrors[_0x17c602(0x130)](_0x17c602(0x143));const {appLock:_0x579f36}=ensureSqlLockScope(_0x481787,_0x54a81d[_0x17c602(0x139)],_0xfd9417[_0x17c602(0x13d)],'delete'),_0x510596=_0x54a81d[_0x17c602(0x146)](_0x17c602(0x14d)),_0x38aa99=_0x579f36[_0x17c602(0x149)][_0x510596];if(!_0x38aa99)throw CliErrors['validation']('No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22'+_0x510596+'\x22.');return{'method':_0x17c602(0x12a),'url':_0x17c602(0x14e),'body':{'sqlCode':_0x510596,'id':_0x38aa99[_0x17c602(0x12d)],'localPath':resolveLocalSqlFilePath(_0xfd9417,_0x510596,_0x38aa99)},'description':_0x17c602(0x136)+_0x510596+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0xfd9417[_0x17c602(0x13c)]};},async 'execute'(_0x57b1f7){const _0x12bccd=a185_0x1d39d,_0x596fd5=loadSqlProjectConfig(_0x57b1f7['appCode']),_0x473751=await readSqlLockFile(_0x596fd5[_0x12bccd(0x133)]);if(!_0x473751)throw CliErrors[_0x12bccd(0x130)](_0x12bccd(0x12e));const {lockData:_0x5a1962,appLock:_0x54c8d9}=ensureSqlLockScope(_0x473751,_0x57b1f7['appCode'],_0x596fd5[_0x12bccd(0x13d)],_0x12bccd(0x12b)),_0x52235c=_0x57b1f7[_0x12bccd(0x146)](_0x12bccd(0x14d)),_0x6ced51=_0x54c8d9[_0x12bccd(0x149)][_0x52235c];if(!_0x6ced51)throw CliErrors['validation'](_0x12bccd(0x13b)+_0x52235c+'\x22.');await deleteSqlQuery({'id':_0x6ced51['remoteId'],'sqlCode':_0x52235c}),_0x54c8d9[_0x12bccd(0x149)]=Object['fromEntries'](Object['entries'](_0x54c8d9['sqls'])[_0x12bccd(0x14b)](([_0x3e403f])=>_0x3e403f!==_0x52235c)),_0x54c8d9[_0x12bccd(0x144)]=new Date()[_0x12bccd(0x14a)](),await writeSqlLockFile(_0x596fd5[_0x12bccd(0x133)],_0x5a1962);const _0x1935ef=resolveLocalSqlFilePath(_0x596fd5,_0x52235c,_0x6ced51);let _0x2be8bf;await fileExists(_0x1935ef)&&(_0x2be8bf=await moveToTrash(_0x596fd5[_0x12bccd(0x12c)],_0x596fd5['trashDir'],_0x1935ef),await cleanupEmptyDirectories(dirname(_0x1935ef),_0x596fd5['sqlRootDir']));const _0x48b1a5={'deleted':_0x52235c,'remoteId':_0x6ced51[_0x12bccd(0x12d)]};if(_0x2be8bf)_0x48b1a5[_0x12bccd(0x142)]=_0x2be8bf;return{'ok':!![],'data':_0x48b1a5,'message':'Deleted\x20'+_0x52235c+(_0x2be8bf?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};function a185_0x284c(_0xd665f6,_0x502257){_0xd665f6=_0xd665f6-0x12a;const _0x2650df=a185_0x2650();let _0x284c1e=_0x2650df[_0xd665f6];return _0x284c1e;}async function moveToTrash(_0x1efa48,_0x267e75,_0x210c83){const _0x397edc=a185_0x1d39d,_0xed9213=new Date()[_0x397edc(0x14a)]()[_0x397edc(0x137)](/[:.]/g,'-'),_0x3e5abd=relative(_0x1efa48,_0x210c83),_0xcf4800=join(_0x267e75,_0xed9213,_0x3e5abd);return await mkdir(dirname(_0xcf4800),{'recursive':!![]}),await rename(_0x210c83,_0xcf4800),_0xcf4800;}async function cleanupEmptyDirectories(_0x4da1d9,_0xbe7086){const _0x4b6ca3=a185_0x1d39d;let _0x4b24b7=resolve(_0x4da1d9);const _0x1ffb57=resolve(_0xbe7086);while(_0x4b24b7[_0x4b6ca3(0x13e)](''+_0x1ffb57+sep)||_0x4b24b7===_0x1ffb57){if(_0x4b24b7===_0x1ffb57)return;try{const _0x5262b0=await readdir(_0x4b24b7);if(_0x5262b0['length']>0x0)return;await rmdir(_0x4b24b7);}catch{return;}_0x4b24b7=dirname(_0x4b24b7);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a186_0x1e83(){const _0x34a696=['43460oWpnuD','4411631FFOkFu','3051276xThico','393LZDqyo','9NupkeS','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','8TkyEZY','description','5121112tqtpwt','sqlcode','str','sqlCode','sqlContent','verbose','dbId','1397lndGRc','appCode','13672IsnyKL','detail','69557TvHVYf','sql','boolean','Return\x20full\x20raw\x20SQL\x20query\x20object','6NTJMSc','2386645nKCMSl'];a186_0x1e83=function(){return _0x34a696;};return a186_0x1e83();}const a186_0x1ddddb=a186_0xb037;(function(_0x1fb993,_0x331649){const _0x419169=a186_0xb037,_0x10d03d=_0x1fb993();while(!![]){try{const _0x2af801=parseInt(_0x419169(0x1ab))/0x1*(-parseInt(_0x419169(0x1b7))/0x2)+-parseInt(_0x419169(0x1b4))/0x3*(-parseInt(_0x419169(0x1a9))/0x4)+-parseInt(_0x419169(0x1b0))/0x5*(-parseInt(_0x419169(0x1af))/0x6)+parseInt(_0x419169(0x1b2))/0x7+-parseInt(_0x419169(0x1a0))/0x8*(parseInt(_0x419169(0x1b5))/0x9)+-parseInt(_0x419169(0x1b1))/0xa*(parseInt(_0x419169(0x1a7))/0xb)+parseInt(_0x419169(0x1b3))/0xc;if(_0x2af801===_0x331649)break;else _0x10d03d['push'](_0x10d03d['shift']());}catch(_0x470eb6){_0x10d03d['push'](_0x10d03d['shift']());}}}(a186_0x1e83,0x52d54));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a186_0xb037(_0x3c94ac,_0x2d120c){_0x3c94ac=_0x3c94ac-0x19f;const _0x1e83b9=a186_0x1e83();let _0xb037=_0x1e83b9[_0x3c94ac];return _0xb037;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a186_0x1ddddb(0x1ac),'command':a186_0x1ddddb(0x1aa),'description':a186_0x1ddddb(0x1b6),'risk':'read','flags':[SQLCODE_FLAG,{'name':'verbose','type':a186_0x1ddddb(0x1ad),'description':a186_0x1ddddb(0x1ae)}],async 'execute'(_0x4868cd){const _0xe0a63f=a186_0x1ddddb,_0x4b3ae3=await getSqlQueryInfo(_0x4868cd[_0xe0a63f(0x1a8)],_0x4868cd[_0xe0a63f(0x1a2)](_0xe0a63f(0x1a1))),_0x3f67ea=_0x4868cd['bool'](_0xe0a63f(0x1a5));if(_0x3f67ea)return{'ok':!![],'data':_0x4b3ae3};const _0x336c29=_0x4b3ae3['dbId']?await getDbName(_0x4868cd['appCode'],_0x4b3ae3[_0xe0a63f(0x1a6)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x4b3ae3[_0xe0a63f(0x1a3)],'sqlName':_0x4b3ae3['sqlName'],'db':_0x336c29?_0x336c29+'\x20('+_0x4b3ae3[_0xe0a63f(0x1a6)]+')':_0x4b3ae3[_0xe0a63f(0x1a6)]??'','description':_0x4b3ae3[_0xe0a63f(0x19f)]??'','sqlContent':_0x4b3ae3[_0xe0a63f(0x1a4)]??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a187_0x5424(_0x243417,_0x1b0450){_0x243417=_0x243417-0x1a8;const _0x3fa187=a187_0x3fa1();let _0x5424ba=_0x3fa187[_0x243417];return _0x5424ba;}const a187_0x195718=a187_0x5424;(function(_0x59c1a3,_0x2ea945){const _0x332af6=a187_0x5424,_0x23ce71=_0x59c1a3();while(!![]){try{const _0x5633f0=-parseInt(_0x332af6(0x1bb))/0x1+parseInt(_0x332af6(0x1af))/0x2*(-parseInt(_0x332af6(0x1b3))/0x3)+-parseInt(_0x332af6(0x1ab))/0x4+-parseInt(_0x332af6(0x1b5))/0x5*(parseInt(_0x332af6(0x1a8))/0x6)+-parseInt(_0x332af6(0x1b2))/0x7+parseInt(_0x332af6(0x1b6))/0x8*(-parseInt(_0x332af6(0x1b7))/0x9)+parseInt(_0x332af6(0x1b1))/0xa*(parseInt(_0x332af6(0x1b9))/0xb);if(_0x5633f0===_0x2ea945)break;else _0x23ce71['push'](_0x23ce71['shift']());}catch(_0x2b8411){_0x23ce71['push'](_0x23ce71['shift']());}}}(a187_0x3fa1,0x5c89a));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';function a187_0x3fa1(){const _0xb3ce1c=['55vTyTXS','16DTdWLB','1889919SizkEh','sql','5863286rZjHPD','str','177644rjFKpV','execError','string','length','read','Returned\x20','execSuccess','sqlcode','293052uArAov','isArray','now','2780452XFWTXu','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','execResult','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','1804BAgcjm','params','60wbCkgF','2264115JPoscb','2214SWxuQi','SQL\x20execution\x20failed'];a187_0x3fa1=function(){return _0xb3ce1c;};return a187_0x3fa1();}export const sqlExec={'service':a187_0x195718(0x1b8),'command':'exec','description':a187_0x195718(0x1ac),'risk':a187_0x195718(0x1bf),'flags':[SQLCODE_FLAG,{'name':a187_0x195718(0x1b0),'type':a187_0x195718(0x1bd),'description':a187_0x195718(0x1ae)}],async 'execute'(_0x219c08){const _0xf96fa5=a187_0x195718,_0x189fc7=parseJsonParams(_0x219c08[_0xf96fa5(0x1ba)](_0xf96fa5(0x1b0))),_0x27dbaf=Date[_0xf96fa5(0x1aa)](),_0x14becd=await executeSql(_0x219c08['appCode'],_0x219c08[_0xf96fa5(0x1ba)](_0xf96fa5(0x1c2)),_0x189fc7),_0x430308=Date[_0xf96fa5(0x1aa)]()-_0x27dbaf,_0x1cb88a=_0x14becd?.[_0xf96fa5(0x1ad)]??_0x14becd,_0x4f0239=_0x14becd?.[_0xf96fa5(0x1c1)]??!![];if(!_0x4f0239)return{'ok':![],'data':{'error':_0x14becd?.[_0xf96fa5(0x1bc)]||'SQL\x20execution\x20failed','elapsed':_0x430308},'message':_0xf96fa5(0x1b4)};const _0x27a855=Array[_0xf96fa5(0x1a9)](_0x1cb88a)?_0x1cb88a:[];return{'ok':!![],'data':{'rows':_0x27a855,'rowCount':_0x27a855[_0xf96fa5(0x1be)],'elapsed':_0x430308},'message':_0xf96fa5(0x1c0)+_0x27a855['length']+'\x20row(s)\x20in\x20'+_0x430308+'ms'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x978098,_0xbcf4e5){const _0xc7a62c=a188_0x3ab2,_0x538d45=_0x978098();while(!![]){try{const _0xb6e4d3=parseInt(_0xc7a62c(0x16e))/0x1+parseInt(_0xc7a62c(0x16d))/0x2*(parseInt(_0xc7a62c(0x16a))/0x3)+-parseInt(_0xc7a62c(0x16f))/0x4+-parseInt(_0xc7a62c(0x172))/0x5*(parseInt(_0xc7a62c(0x171))/0x6)+parseInt(_0xc7a62c(0x173))/0x7*(parseInt(_0xc7a62c(0x16c))/0x8)+-parseInt(_0xc7a62c(0x169))/0x9*(-parseInt(_0xc7a62c(0x16b))/0xa)+-parseInt(_0xc7a62c(0x170))/0xb;if(_0xb6e4d3===_0xbcf4e5)break;else _0x538d45['push'](_0x538d45['shift']());}catch(_0x42522c){_0x538d45['push'](_0x538d45['shift']());}}}(a188_0x31cf,0x3e0d2));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';function a188_0x31cf(){const _0x6f8129=['8197tCubnZ','134622hPNlXO','315483fELxbj','100OnpyNC','1928KCHsRc','6wKwTHw','257040nFkcFQ','1212268XvWZTM','892628UibTIJ','731874eQgYHV','15IRowin'];a188_0x31cf=function(){return _0x6f8129;};return a188_0x31cf();}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';function a188_0x3ab2(_0x40586e,_0x3aff80){_0x40586e=_0x40586e-0x169;const _0x31cf97=a188_0x31cf();let _0x3ab206=_0x31cf97[_0x40586e];return _0x3ab206;}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
|
+
function a189_0x424e(_0x5351f8,_0x2f8e42){_0x5351f8=_0x5351f8-0x7e;const _0x49096d=a189_0x4909();let _0x424e4a=_0x49096d[_0x5351f8];return _0x424e4a;}const a189_0x14ab82=a189_0x424e;(function(_0x12aee0,_0x370afd){const _0x53b692=a189_0x424e,_0x4a20cb=_0x12aee0();while(!![]){try{const _0x2d5679=-parseInt(_0x53b692(0x97))/0x1*(-parseInt(_0x53b692(0x8f))/0x2)+-parseInt(_0x53b692(0x9a))/0x3+parseInt(_0x53b692(0x94))/0x4*(parseInt(_0x53b692(0x87))/0x5)+parseInt(_0x53b692(0x9e))/0x6+parseInt(_0x53b692(0x80))/0x7*(-parseInt(_0x53b692(0x8a))/0x8)+parseInt(_0x53b692(0xa0))/0x9*(parseInt(_0x53b692(0x85))/0xa)+-parseInt(_0x53b692(0x89))/0xb;if(_0x2d5679===_0x370afd)break;else _0x4a20cb['push'](_0x4a20cb['shift']());}catch(_0x5b5d4e){_0x4a20cb['push'](_0x4a20cb['shift']());}}}(a189_0x4909,0xf0a32));import{listSqlQueries}from'../../core/api-client.js';function a189_0x4909(){const _0x334e28=['Page\x20size','10UrOBnU','Filter\x20by\x20SQL\x20name','102065OAbApQ','\x20SQL\x20queries\x20(total:\x20','3362502TDCUJF','600ljwCDY','verbose','paging','Found\x20','List\x20custom\x20SQL\x20queries','2061846YOjwqM','map','str','No\x20custom\x20SQL\x20queries\x20found.','sqlCode','148HziVjk','sqlcode','description','1PCzDbL','num','list','3078171iCWeCF','read','all','number','10886802LahlFe','length','1053387VisxTm','totalCount','Page\x20number','130697POAiec','name','dbId','appCode'];a189_0x4909=function(){return _0x334e28;};return a189_0x4909();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a189_0x14ab82(0x99),'description':a189_0x14ab82(0x8e),'risk':a189_0x14ab82(0x9b),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a189_0x14ab82(0x81),'type':'string','description':a189_0x14ab82(0x86)},{'name':'page','type':a189_0x14ab82(0x9d),'description':a189_0x14ab82(0x7f),'default':0x1},{'name':'pagesize','type':a189_0x14ab82(0x9d),'description':a189_0x14ab82(0x84)},{'name':a189_0x14ab82(0x8b),'type':'boolean','description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x5bae8b){const _0x5b5159=a189_0x14ab82,_0x3a65c7=await listSqlQueries(_0x5bae8b[_0x5b5159(0x83)],{'sqlCode':_0x5bae8b[_0x5b5159(0x91)](_0x5b5159(0x95))||undefined,'sqlName':_0x5bae8b[_0x5b5159(0x91)]('name')||undefined,'currentPage':_0x5bae8b[_0x5b5159(0x98)]('page'),'pageSize':_0x5bae8b['num']('pagesize',0x32)}),_0x5208a=_0x5bae8b['bool'](_0x5b5159(0x8b)),_0x4d066a=_0x3a65c7['tableData']??[],_0x18e3a5=_0x3a65c7[_0x5b5159(0x8c)]?.[_0x5b5159(0x7e)]??_0x4d066a[_0x5b5159(0x9f)];let _0x1fbfe3;return _0x5208a?_0x1fbfe3=_0x4d066a:_0x1fbfe3=await Promise[_0x5b5159(0x9c)](_0x4d066a[_0x5b5159(0x90)](async _0x59caa1=>{const _0x484651=_0x5b5159;let _0x3e3fa5;try{_0x3e3fa5=_0x59caa1['dbId']?await getDbName(_0x5bae8b['appCode'],_0x59caa1['dbId']):undefined;}catch{}return{'sqlCode':_0x59caa1[_0x484651(0x93)],'sqlName':_0x59caa1['sqlName'],'description':_0x59caa1[_0x484651(0x96)]??'','db':_0x3e3fa5?_0x3e3fa5+'\x20('+_0x59caa1['dbId']+')':_0x59caa1[_0x484651(0x82)]??''};})),{'ok':!![],'data':_0x1fbfe3,'message':_0x4d066a[_0x5b5159(0x9f)]===0x0?_0x5b5159(0x92):_0x5b5159(0x8d)+_0x4d066a[_0x5b5159(0x9f)]+_0x5b5159(0x88)+_0x18e3a5+').'};}};
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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);}
|
|
1
|
+
const a190_0x104622=a190_0x1389;(function(_0x25eb5c,_0x1f5cdf){const _0x2a3ea8=a190_0x1389,_0x4968a1=_0x25eb5c();while(!![]){try{const _0x16fe1e=-parseInt(_0x2a3ea8(0x12c))/0x1+-parseInt(_0x2a3ea8(0x12a))/0x2+parseInt(_0x2a3ea8(0xfd))/0x3*(-parseInt(_0x2a3ea8(0x127))/0x4)+-parseInt(_0x2a3ea8(0x11f))/0x5*(-parseInt(_0x2a3ea8(0x120))/0x6)+parseInt(_0x2a3ea8(0x11d))/0x7+-parseInt(_0x2a3ea8(0x10f))/0x8+parseInt(_0x2a3ea8(0x114))/0x9*(parseInt(_0x2a3ea8(0x108))/0xa);if(_0x16fe1e===_0x1f5cdf)break;else _0x4968a1['push'](_0x4968a1['shift']());}catch(_0x359ef1){_0x4968a1['push'](_0x4968a1['shift']());}}}(a190_0x4f87,0x6bd72));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';function a190_0x1389(_0x1916f8,_0x8f70fd){_0x1916f8=_0x1916f8-0xfd;const _0x4f870c=a190_0x4f87();let _0x13898b=_0x4f870c[_0x1916f8];return _0x13898b;}function a190_0x4f87(){const _0x84a589=['filter','2058355QmqIdk','6dnRadV','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','sqlRoot','dbId','bool','sqlcode','1258052xHWyge','description','str','1583260GMZNgQ','sqls','325912PgNWza','totalCount','lastSync','replace','path','\x20failed','sqlCode','push','string','catch','appCode','Would\x20pull\x20','pull','3YmeSJN','sqlRootDir','lockFilePath','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','local\x20differs\x20from\x20remote','\x20skipped,\x20','utf8','message','\x20SQL\x20file(s)\x20into\x20','sqlName','boolean','5270VzMKYz','\x20written,\x20','toISOString','split','trimStart','would_pull','conflict','6300264OJrhwA','Force\x20pull\x20cancelled.','test','Filter\x20by\x20SQL\x20display\x20name','force','24039IhSgBm','cancelled','sql','length','name','unchanged','join','mybatisXml','tableData','5894098lfcptm'];a190_0x4f87=function(){return _0x84a589;};return a190_0x4f87();}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(_0x2ef6fd,_0x1052b0){const _0x2c992a=a190_0x1389,_0x259b64=[];let _0x3a7fed=0x1;while(!![]){const _0x2501d4=await listSqlQueries(_0x2ef6fd,{'currentPage':_0x3a7fed,'pageSize':PAGE_SIZE,'sqlCode':_0x1052b0[_0x2c992a(0x132)],'sqlName':_0x1052b0[_0x2c992a(0x106)]}),_0x4aa01e=_0x2501d4[_0x2c992a(0x11c)]??[];_0x259b64[_0x2c992a(0x133)](..._0x4aa01e);if(_0x4aa01e[_0x2c992a(0x117)]===0x0)break;const _0x12518a=_0x2501d4['paging']?.[_0x2c992a(0x12d)];if(_0x12518a!=null?_0x259b64[_0x2c992a(0x117)]>=_0x12518a:_0x4aa01e[_0x2c992a(0x117)]<PAGE_SIZE)break;_0x3a7fed++;}return _0x259b64;}async function ensureSqlContent(_0x1fe2dd){const _0x8cb3a6=a190_0x1389;if(_0x1fe2dd['sqlContent']!=null&&String(_0x1fe2dd['sqlContent'])[_0x8cb3a6(0x117)]>0x0)return _0x1fe2dd;return getSqlQueryDetail(_0x1fe2dd['sqlCode']);}export const sqlPull={'service':'sql','command':a190_0x104622(0x138),'description':'Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a190_0x104622(0x118),'type':a190_0x104622(0x134),'description':a190_0x104622(0x112)},{'name':a190_0x104622(0x113),'type':a190_0x104622(0x107),'description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x46377f){const _0x140985=a190_0x104622,_0x15fd78=loadSqlProjectConfig(_0x46377f[_0x140985(0x136)]),_0x26ec60=await readSqlLockFile(_0x15fd78['lockFilePath']),{appLock:_0x442f19}=ensureSqlLockScope(_0x26ec60??createEmptySqlLock(),_0x15fd78[_0x140985(0x136)],_0x15fd78[_0x140985(0x123)],_0x140985(0x138)),_0x4b627e=await fetchAllSqlQueries(_0x46377f[_0x140985(0x136)],{'sqlCode':_0x46377f[_0x140985(0x129)](_0x140985(0x126))||undefined,'sqlName':_0x46377f[_0x140985(0x129)](_0x140985(0x118))||undefined}),_0x4a3091=[];for(const _0x5b04cd of _0x4b627e){const _0x2743ab=await ensureSqlContent(_0x5b04cd),_0x352b60=ensureRemoteSqlContent(_0x2743ab),_0x42ea8b=detectModeFromSql(_0x2743ab),_0x2b4e63=_0x2743ab[_0x140985(0x124)]?await getDbName(_0x46377f[_0x140985(0x136)],Number(_0x2743ab['dbId']))[_0x140985(0x135)](()=>undefined):undefined,_0x28330c=buildLocalSqlFileContent({'sqlCode':_0x2743ab[_0x140985(0x132)],'sqlName':_0x2743ab[_0x140985(0x106)],'dbId':_0x2743ab[_0x140985(0x124)]},_0x352b60,{'dbName':_0x2b4e63,'mode':_0x42ea8b,'syncedAt':new Date()['toISOString'](),'description':_0x2743ab[_0x140985(0x128)]}),_0x2a18f2=buildSqlLockEntry(_0x2743ab,_0x352b60,'',{'dbName':_0x2b4e63}),_0x404e40=resolveLocalSqlFilePath(_0x15fd78,_0x2743ab[_0x140985(0x132)],_0x2a18f2);let _0x46a4c3=_0x140985(0x10d),_0x2644f8;if(await fileExists(_0x404e40)){const _0x185cc5=await readFile(_0x404e40,'utf8');isEquivalentPulledSqlFile(_0x185cc5,_0x28330c,_0x42ea8b)?(_0x46a4c3='skipped',_0x2644f8=_0x140985(0x119)):(_0x46a4c3=_0x140985(0x10e),_0x2644f8=_0x140985(0x121));}_0x4a3091['push']({'sqlCode':_0x2743ab[_0x140985(0x132)],'sqlName':_0x2743ab['sqlName'],'filePath':_0x404e40,'status':_0x46a4c3,'reason':_0x2644f8});}return{'method':'POST','url':_0x140985(0x122),'body':{'appCode':_0x46377f['appCode'],'sqlCode':_0x46377f[_0x140985(0x129)](_0x140985(0x126))||null,'sqlName':_0x46377f[_0x140985(0x129)](_0x140985(0x118))||null,'files':_0x4a3091},'description':_0x140985(0x137)+_0x4a3091['length']+_0x140985(0x105)+_0x15fd78['sqlRootDir']};},async 'execute'(_0x3ab236){const _0x4d4415=a190_0x104622,_0x40af18=loadSqlProjectConfig(_0x3ab236[_0x4d4415(0x136)]),_0x3d7163=await readSqlLockFile(_0x40af18[_0x4d4415(0xff)]),{lockData:_0x52c383,appLock:_0x5d471}=ensureSqlLockScope(_0x3d7163??createEmptySqlLock(),_0x40af18['appCode'],_0x40af18['sqlRoot'],_0x4d4415(0x138)),_0x58bc89=_0x3ab236[_0x4d4415(0x125)](_0x4d4415(0x113)),_0x9b6eaf=await fetchAllSqlQueries(_0x3ab236[_0x4d4415(0x136)],{'sqlCode':_0x3ab236['str'](_0x4d4415(0x126))||undefined,'sqlName':_0x3ab236[_0x4d4415(0x129)](_0x4d4415(0x118))||undefined});if(_0x9b6eaf[_0x4d4415(0x117)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':'No\x20remote\x20SQL\x20queries\x20matched.'};const _0x5147f8=[],_0x685e4f=[];for(const _0x452689 of _0x9b6eaf){try{_0x5147f8['push'](await ensureSqlContent(_0x452689));}catch(_0x52898a){_0x685e4f[_0x4d4415(0x133)]({'sqlCode':_0x452689[_0x4d4415(0x132)],'error':_0x52898a instanceof Error?_0x52898a['message']:String(_0x52898a)});}}if(_0x58bc89&&!_0x3ab236['nonInteractive']){let _0x107d9d=![];for(const _0x2fb5ee of _0x5147f8){const _0x356bc8=detectModeFromSql(_0x2fb5ee),_0x414247=_0x2fb5ee[_0x4d4415(0x124)]?await getDbName(_0x3ab236[_0x4d4415(0x136)],Number(_0x2fb5ee[_0x4d4415(0x124)]))[_0x4d4415(0x135)](()=>undefined):undefined,_0xa27f68=buildLocalSqlFileContent({'sqlCode':_0x2fb5ee[_0x4d4415(0x132)],'sqlName':_0x2fb5ee[_0x4d4415(0x106)],'dbId':_0x2fb5ee[_0x4d4415(0x124)]},ensureRemoteSqlContent(_0x2fb5ee),{'dbName':_0x414247,'mode':_0x356bc8,'syncedAt':new Date()[_0x4d4415(0x10a)](),'description':_0x2fb5ee[_0x4d4415(0x128)]}),_0x2ffe68=resolveLocalSqlFilePath(_0x40af18,_0x2fb5ee[_0x4d4415(0x132)],buildSqlLockEntry(_0x2fb5ee,ensureRemoteSqlContent(_0x2fb5ee),'',{'dbName':_0x414247}));if(await fileExists(_0x2ffe68)){const _0x15bc27=await readFile(_0x2ffe68,_0x4d4415(0x103));if(!isEquivalentPulledSqlFile(_0x15bc27,_0xa27f68,_0x356bc8)){_0x107d9d=!![];break;}}}if(_0x107d9d){const _0x559b9e=await confirmForceOverwrite(_0x4d4415(0x100));if(!_0x559b9e)throw CliErrors[_0x4d4415(0x115)](_0x4d4415(0x110));}}const _0x16352e=cloneSqlLockData(_0x52c383),_0x35971d=_0x16352e['apps'][_0x40af18[_0x4d4415(0x136)]],_0x5b84fe=[],_0x3cd0a5=[];for(const _0x36543e of _0x5147f8){const _0x3a54a6=_0x35971d[_0x4d4415(0x12b)][_0x36543e[_0x4d4415(0x132)]],_0x511fab=ensureRemoteSqlContent(_0x36543e),_0x51b01c=detectModeFromSql(_0x36543e),_0x7e97d6=_0x36543e['dbId']?await getDbName(_0x3ab236[_0x4d4415(0x136)],Number(_0x36543e[_0x4d4415(0x124)]))[_0x4d4415(0x135)](()=>undefined):undefined,_0x38fe7a=buildLocalSqlFileContent({'sqlCode':_0x36543e['sqlCode'],'sqlName':_0x36543e[_0x4d4415(0x106)],'dbId':_0x36543e[_0x4d4415(0x124)]},_0x511fab,{'dbName':_0x7e97d6,'mode':_0x51b01c,'syncedAt':new Date()[_0x4d4415(0x10a)](),'description':_0x36543e[_0x4d4415(0x128)]}),_0x45cb1d=buildSqlLockEntry(_0x36543e,_0x511fab,computeSqlContentHash(_0x38fe7a),{'dbName':_0x7e97d6}),_0xcfba0a=_0x45cb1d['path'],_0x2e6fd4=join(_0x40af18[_0x4d4415(0xfe)],_0xcfba0a);try{if(await fileExists(_0x2e6fd4)){const _0x29feec=await readFile(_0x2e6fd4,_0x4d4415(0x103));if(isEquivalentPulledSqlFile(_0x29feec,_0x38fe7a,_0x51b01c)){_0x3cd0a5['push']({'sqlCode':_0x36543e['sqlCode'],'reason':_0x4d4415(0x119)}),_0x35971d[_0x4d4415(0x12b)][_0x36543e[_0x4d4415(0x132)]]={..._0x45cb1d,'hash':computeSqlContentHash(_0x29feec),'path':_0xcfba0a};continue;}if(!_0x58bc89){_0x3cd0a5[_0x4d4415(0x133)]({'sqlCode':_0x36543e[_0x4d4415(0x132)],'reason':_0x4d4415(0x101)});continue;}}const _0x165190=_0x3a54a6?.[_0x4d4415(0x130)]?join(_0x40af18[_0x4d4415(0xfe)],_0x3a54a6[_0x4d4415(0x130)]):undefined;_0x165190&&_0x165190!==_0x2e6fd4&&await fileExists(_0x165190)&&await rm(_0x165190,{'force':!![]}),await ensureParentDirectory(_0x2e6fd4),await writeFile(_0x2e6fd4,_0x38fe7a,_0x4d4415(0x103)),_0x35971d[_0x4d4415(0x12b)][_0x36543e['sqlCode']]={..._0x45cb1d,'path':_0xcfba0a},_0x5b84fe['push']({'sqlCode':_0x36543e[_0x4d4415(0x132)],'filePath':_0x2e6fd4});}catch(_0xe81f7c){_0x685e4f[_0x4d4415(0x133)]({'sqlCode':_0x36543e[_0x4d4415(0x132)],'error':_0xe81f7c instanceof Error?_0xe81f7c[_0x4d4415(0x104)]:String(_0xe81f7c)});}}return _0x35971d[_0x4d4415(0x12e)]=new Date()[_0x4d4415(0x10a)](),await writeSqlLockFile(_0x40af18[_0x4d4415(0xff)],_0x16352e),{'ok':_0x685e4f[_0x4d4415(0x117)]===0x0,'data':{'pulled':_0x5b84fe,'skipped':_0x3cd0a5,'failed':_0x685e4f},'message':'Pull\x20complete:\x20'+_0x5b84fe['length']+_0x4d4415(0x109)+_0x3cd0a5[_0x4d4415(0x117)]+_0x4d4415(0x102)+_0x685e4f[_0x4d4415(0x117)]+_0x4d4415(0x131)};}};function detectModeFromSql(_0x554d6b){const _0x4b98bf=a190_0x104622,_0x40d6ed=ensureRemoteSqlContent(_0x554d6b),_0x3c5d57=stripLocalSqlMetadata(_0x40d6ed,'mybatisXml')[_0x4b98bf(0x10c)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x3c5d57))return _0x4b98bf(0x11b);return _0x4b98bf(0x116);}function isEquivalentPulledSqlFile(_0x3cb009,_0x9e0d6d,_0x4aa610){return normalizePullComparableContent(_0x3cb009,_0x4aa610)===normalizePullComparableContent(_0x9e0d6d,_0x4aa610);}function normalizePullComparableContent(_0x1e21a0,_0x54e931){const _0x4548d5=a190_0x104622,_0x11f6be=_0x1e21a0[_0x4548d5(0x12f)](/\r\n/g,'\x0a')[_0x4548d5(0x10b)]('\x0a'),_0x55e633=_0x11f6be[_0x4548d5(0x11e)](_0x3eee30=>!isSyncedAtMetadataLine(_0x3eee30,_0x54e931));return _0x55e633[_0x4548d5(0x11a)]('\x0a');}function isSyncedAtMetadataLine(_0x386c96,_0x2ebcb7){const _0x3200ee=a190_0x104622;if(_0x2ebcb7===_0x3200ee(0x11b))return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x3200ee(0x111)](_0x386c96);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x386c96);}
|