@lovrabet/rabetbase-cli 2.4.3-beta.1 → 2.4.4-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/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/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.d.ts +2 -0
- package/lib/commands/db/diff-refresh-start.js +1 -0
- package/lib/commands/db/diff-refresh-status.d.ts +2 -0
- package/lib/commands/db/diff-refresh-status.js +1 -0
- 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.d.ts +2 -0
- package/lib/commands/notification/config-create.js +1 -0
- package/lib/commands/notification/config-delete.d.ts +2 -0
- package/lib/commands/notification/config-delete.js +1 -0
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/config-update.d.ts +2 -0
- package/lib/commands/notification/config-update.js +1 -0
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.d.ts +97 -0
- package/lib/commands/notification/shared.js +1 -0
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/react/create.js +1 -1
- package/lib/commands/page/react/detail.js +1 -1
- package/lib/commands/page/react/list.js +1 -1
- package/lib/commands/page/react/publish.js +1 -1
- package/lib/commands/page/react/shared.js +1 -1
- package/lib/commands/page/react/syntax.js +1 -1
- package/lib/commands/page/react/template.js +1 -1
- package/lib/commands/page/react/update.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/restore.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/standard-page-status.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-apis-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.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.d.ts +1 -0
- package/lib/commands/project/create/main.js +1 -1
- package/lib/commands/project/create/materialize-project-template.d.ts +11 -0
- package/lib/commands/project/create/materialize-project-template.js +1 -0
- package/lib/commands/project/create/project-name.d.ts +2 -0
- package/lib/commands/project/create/project-name.js +1 -0
- package/lib/commands/project/create/project-template-archive.d.ts +6 -0
- package/lib/commands/project/create/project-template-archive.js +1 -0
- package/lib/commands/project/create/project-template-path.d.ts +1 -3
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.d.ts +2 -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/create.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.d.ts +2 -0
- 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.d.ts +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.d.ts +29 -2
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-index-auditor.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/error-output.js +1 -1
- package/lib/framework/explicit-yes.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.d.ts +13 -0
- 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 +9 -4
- package/skills/rabetbase/SKILL.md +33 -22
- package/skills/rabetbase/guides/backend-function.md +5 -3
- package/skills/rabetbase/guides/bff-creation-workflow.md +2 -2
- package/skills/rabetbase/guides/conflict-detection.md +2 -2
- package/skills/rabetbase/guides/database-connection-workflow.md +39 -5
- package/skills/rabetbase/guides/react-custom-page-workflow.md +22 -4
- package/skills/rabetbase/guides/sql-creation-workflow.md +4 -2
- package/skills/rabetbase/guides/sql-mybatis.md +2 -2
- package/skills/rabetbase/knowledge/page-schema/YtPage.md +3 -37
- package/skills/rabetbase/knowledge/react-page/generation-standards.md +24 -2
- package/skills/rabetbase/references/rabetbase-app-config.md +2 -2
- package/skills/rabetbase/references/rabetbase-bff-push.md +4 -5
- package/skills/rabetbase/references/rabetbase-bff-save.md +3 -3
- package/skills/rabetbase/references/rabetbase-config.md +2 -2
- package/skills/rabetbase/references/rabetbase-db-analyze.md +2 -2
- package/skills/rabetbase/references/rabetbase-db-detail.md +3 -0
- package/skills/rabetbase/references/rabetbase-db-diff-refresh.md +53 -0
- package/skills/rabetbase/references/rabetbase-db-diff.md +40 -21
- package/skills/rabetbase/references/rabetbase-db-list.md +1 -1
- package/skills/rabetbase/references/rabetbase-kb.md +5 -3
- package/skills/rabetbase/references/rabetbase-menu-asset-update.md +9 -10
- package/skills/rabetbase/references/rabetbase-menu-external-link-update.md +1 -3
- package/skills/rabetbase/references/rabetbase-menu-regroup-start.md +2 -3
- package/skills/rabetbase/references/rabetbase-notification-config-list.md +2 -2
- package/skills/rabetbase/references/rabetbase-notification-config-mutations.md +56 -0
- package/skills/rabetbase/references/rabetbase-page-react-detail.md +1 -1
- package/skills/rabetbase/references/rabetbase-page-react-list.md +1 -1
- package/skills/rabetbase/references/rabetbase-page-react-publish.md +2 -2
- package/skills/rabetbase/references/rabetbase-project-create.md +3 -0
- package/skills/rabetbase/references/rabetbase-run.md +1 -1
- package/skills/rabetbase/references/rabetbase-sql-create.md +1 -1
- package/skills/rabetbase/references/rabetbase-sql-push.md +3 -4
- package/skills/rabetbase/references/rabetbase-user-account.md +0 -1
- package/skills/rabetbase.manifest.json +5 -5
- package/templates/README.md +14 -2
- package/lib/commands/project/create/non-interactive.d.ts +0 -9
- package/lib/commands/project/create/non-interactive.js +0 -1
- package/lib/utils/copy-directory.d.ts +0 -1
- package/lib/utils/copy-directory.js +0 -1
- package/skills/rabetbase/knowledge/page-schema/LrSmartEcharts.md +0 -291
- package/skills/rabetbase/knowledge/page-schema/LrSmartStatistic.md +0 -223
- package/templates/projects/sub-app-react-demo/.prettierrc +0 -1
- package/templates/projects/sub-app-react-demo/CHANGELOG.md +0 -67
- package/templates/projects/sub-app-react-demo/README.md +0 -246
- package/templates/projects/sub-app-react-demo/docs/quick-start.md +0 -245
- package/templates/projects/sub-app-react-demo/index.html +0 -27
- package/templates/projects/sub-app-react-demo/package.json +0 -34
- package/templates/projects/sub-app-react-demo/public/logo.svg +0 -1
- package/templates/projects/sub-app-react-demo/public/vite.svg +0 -1
- package/templates/projects/sub-app-react-demo/src/api/api.ts +0 -26
- package/templates/projects/sub-app-react-demo/src/api/client.ts +0 -32
- package/templates/projects/sub-app-react-demo/src/components/demo-page-container/DemoPageContainer.module.css +0 -28
- package/templates/projects/sub-app-react-demo/src/components/demo-page-container/DemoPageContainer.tsx +0 -55
- package/templates/projects/sub-app-react-demo/src/layouts/MainLayout.tsx +0 -308
- package/templates/projects/sub-app-react-demo/src/main.tsx +0 -52
- package/templates/projects/sub-app-react-demo/src/pages/dashboard/index.tsx +0 -570
- package/templates/projects/sub-app-react-demo/src/pages/data-screen/index.tsx +0 -531
- package/templates/projects/sub-app-react-demo/src/pages/index.module.css +0 -500
- package/templates/projects/sub-app-react-demo/src/pages/index.tsx +0 -641
- package/templates/projects/sub-app-react-demo/src/pages/sdk-demo/index.tsx +0 -536
- package/templates/projects/sub-app-react-demo/src/pages/workbench/index.module.css +0 -295
- package/templates/projects/sub-app-react-demo/src/pages/workbench/index.tsx +0 -242
- package/templates/projects/sub-app-react-demo/src/router/index.tsx +0 -30
- package/templates/projects/sub-app-react-demo/src/style.css +0 -108
- package/templates/projects/sub-app-react-demo/src/utils/api.ts +0 -12
- package/templates/projects/sub-app-react-demo/src/vite-env.d.ts +0 -2
- package/templates/projects/sub-app-react-demo/tsconfig.json +0 -26
- package/templates/projects/sub-app-react-demo/vite.config.ts +0 -111
|
@@ -1 +1 @@
|
|
|
1
|
-
const a176_0x4d4394=a176_0x4098;(function(_0x52ef5f,_0x3ef86d){const _0x1e829a=a176_0x4098,_0x11e841=_0x52ef5f();while(!![]){try{const _0x53902b=parseInt(_0x1e829a(0x1c7))/0x1+-parseInt(_0x1e829a(0x1b9))/0x2*(-parseInt(_0x1e829a(0x1b7))/0x3)+-parseInt(_0x1e829a(0x1a9))/0x4+parseInt(_0x1e829a(0x1bb))/0x5*(parseInt(_0x1e829a(0x199))/0x6)+-parseInt(_0x1e829a(0x1d1))/0x7*(-parseInt(_0x1e829a(0x1b0))/0x8)+-parseInt(_0x1e829a(0x1b2))/0x9*(-parseInt(_0x1e829a(0x1d9))/0xa)+-parseInt(_0x1e829a(0x19f))/0xb;if(_0x53902b===_0x3ef86d)break;else _0x11e841['push'](_0x11e841['shift']());}catch(_0x146c74){_0x11e841['push'](_0x11e841['shift']());}}}(a176_0x3159,0x2f1f2));import{getAppRole,getTenantMembers,listAppRoles,listRoleUsers}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':a176_0x4d4394(0x1ca),'required':!![],'description':'Role\x20id\x20(from\x20`role\x20list`)'};function a176_0x3159(){const _0x105b23=['authRequired','find','Disambiguate\x20with\x20--role\x20<id>.','tenant_code','Role\x20name','No\x20tenant\x20member\x20matches\x20\x22','nickname','\x20not\x20found\x20in\x20app\x20','118805TluyXH','user-add','string','number','str','Missing\x20role\x20reference.','Missing\x20user\x20reference.','join','Cannot\x20resolve\x20current\x20tenant.\x20Run\x20`rabetbase\x20auth\x20login`\x20first.','user','2515261ZyjxbY','roleName','\x22\x20is\x20ambiguous\x20(ids:\x20','splice','Cannot\x20','Role\x20name\x20\x22','Nickname\x20or\x20username\x20to\x20resolve\x20to\x20a\x20userId','Role\x20id\x20or\x20role\x20name\x20(CUSTOM\x20roles\x20may\x20be\x20referenced\x20by\x20name)','50WxKSCv','Optional\x20role\x20remark/description','dryRun','findIndex','role','remark','Role\x20id\x20','POST','\x22\x20not\x20found\x20in\x20app\x20','\x20built-in\x20role\x20','toLowerCase','expectUserCount','\x20not\x20found\x20in\x20the\x20user-role\x20list.','Pass\x20--role\x20<id|name>.','/smartapi/permit/user-role/update-user-list','CUSTOM','tenant','push','DEV','36780BhCFXI','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles,\x20or\x20pass\x20--role\x20<id>.','expect-user-count','Multiple\x20tenant\x20members\x20match\x20\x22','appCode','Pass\x20--user\x20<id|name>.','8416518qaFnzc','filter','permitCount','flagMissing','userCount','User\x20id,\x20username,\x20or\x20nickname\x20to\x20resolve\x20to\x20a\x20userId','ADMIN','length','trim','Check\x20the\x20nickname/username,\x20or\x20pass\x20--user\x20<id>.','3476rCJfwb','username','\x20is\x20already\x20a\x20member\x20of\x20role\x20','Cannot\x20change\x20the\x20permission\x20matrix\x20of\x20built-in\x20role\x20','\x20is\x20not\x20a\x20member\x20of\x20role\x20','map','roleType','8xxcEJo','validation','544878msxkft','\x20member(s)\x20but\x20role\x20has\x20','Disambiguate\x20with\x20--user\x20<id>.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.','name','516147ZWjJGM',';\x20no\x20change.','2lytZfN','userId','5SNxFwe','DEV\x20/\x20ADMIN\x20keep\x20full\x20access\x20by\x20design;\x20configure\x20a\x20CUSTOM\x20role\x20instead.','User\x20','USER'];a176_0x3159=function(){return _0x105b23;};return a176_0x3159();}export const ROLE_REF_FLAG={'name':'role','type':a176_0x4d4394(0x1c9),'required':!![],'description':a176_0x4d4394(0x1d8)};export const USER_REF_FLAG={'name':a176_0x4d4394(0x1d0),'type':a176_0x4d4394(0x1c9),'required':!![],'description':a176_0x4d4394(0x1a4)};export const NAME_FLAG={'name':a176_0x4d4394(0x1b6),'type':a176_0x4d4394(0x1c9),'required':!![],'description':a176_0x4d4394(0x1c3)};export const USER_NAME_FLAG={'name':'name','type':a176_0x4d4394(0x1c9),'required':!![],'description':a176_0x4d4394(0x1d7)};export const REMARK_FLAG={'name':a176_0x4d4394(0x1de),'type':a176_0x4d4394(0x1c9),'required':![],'description':a176_0x4d4394(0x1da)};export const EXPECT_USER_COUNT_FLAG={'name':a176_0x4d4394(0x19b),'type':a176_0x4d4394(0x1ca),'required':![],'description':'Anti-drift\x20guard:\x20fail\x20if\x20the\x20role\x27s\x20current\x20member\x20count\x20differs'};export const BUILTIN_ROLE_TYPES=['ADMIN',a176_0x4d4394(0x198),a176_0x4d4394(0x1be)];export function isBuiltinRole(_0x346d87){return BUILTIN_ROLE_TYPES['includes'](_0x346d87);}export function assertCustomRole(_0x49ea1e,_0x4622c7){const _0x4879be=a176_0x4d4394;if(_0x49ea1e[_0x4879be(0x1af)]!==_0x4879be(0x195))throw CliErrors[_0x4879be(0x1b1)](_0x4879be(0x1d5)+_0x4622c7+_0x4879be(0x1e2)+_0x49ea1e[_0x4879be(0x1d2)]+'\x20('+_0x49ea1e[_0x4879be(0x1af)]+').','Only\x20CUSTOM\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function assertPermConfigurable(_0x17f08b){const _0x30077a=a176_0x4d4394;if(_0x17f08b[_0x30077a(0x1af)]===_0x30077a(0x198)||_0x17f08b[_0x30077a(0x1af)]===_0x30077a(0x1a5))throw CliErrors[_0x30077a(0x1b1)](_0x30077a(0x1ac)+_0x17f08b['roleName']+'\x20('+_0x17f08b[_0x30077a(0x1af)]+').',_0x30077a(0x1bc));}export function projectRole(_0x1ec8d1){const _0x3839f9=a176_0x4d4394;return{'id':_0x1ec8d1['id'],'roleName':_0x1ec8d1[_0x3839f9(0x1d2)],'roleType':_0x1ec8d1[_0x3839f9(0x1af)],'remark':_0x1ec8d1['remark'],'userCount':_0x1ec8d1[_0x3839f9(0x1a3)],'permitCount':_0x1ec8d1[_0x3839f9(0x1a1)],'builtin':isBuiltinRole(_0x1ec8d1[_0x3839f9(0x1af)])};}function a176_0x4098(_0x4f2860,_0x1a78c9){_0x4f2860=_0x4f2860-0x195;const _0x315978=a176_0x3159();let _0x4098a9=_0x315978[_0x4f2860];return _0x4098a9;}export async function resolveRoleRef(_0x12eb12,_0x42860c){const _0x44d50c=a176_0x4d4394,_0x36ffaa=_0x42860c[_0x44d50c(0x1a7)]();if(!_0x36ffaa)throw CliErrors['validation'](_0x44d50c(0x1cc),_0x44d50c(0x1e6));if(/^\d+$/['test'](_0x36ffaa))return getRoleById(_0x12eb12,Number(_0x36ffaa));const _0x33a573=await listAllAppRoles(_0x12eb12),_0x2ee2d0=_0x33a573[_0x44d50c(0x1a0)](_0x4deef4=>_0x4deef4[_0x44d50c(0x1d2)]===_0x36ffaa);if(_0x2ee2d0['length']===0x0)throw CliErrors['validation'](_0x44d50c(0x1d6)+_0x36ffaa+_0x44d50c(0x1e1)+_0x12eb12+'.',_0x44d50c(0x19a));if(_0x2ee2d0[_0x44d50c(0x1a6)]>0x1){const _0x5707ac=_0x2ee2d0[_0x44d50c(0x1ae)](_0xfa8898=>_0xfa8898['id'])[_0x44d50c(0x1ce)](',\x20');throw CliErrors[_0x44d50c(0x1b1)](_0x44d50c(0x1d6)+_0x36ffaa+_0x44d50c(0x1d3)+_0x5707ac+').',_0x44d50c(0x1c1));}return _0x2ee2d0[0x0];}export async function getRoleById(_0x48782a,_0x424cb1){const _0x3b0cd9=a176_0x4d4394,_0x5e6f8a=await getAppRole(_0x424cb1);if(!_0x5e6f8a)throw CliErrors[_0x3b0cd9(0x1b1)]('Role\x20id\x20'+_0x424cb1+_0x3b0cd9(0x1c6)+_0x48782a+'.',_0x3b0cd9(0x1b5));return _0x5e6f8a;}async function listAllAppRoles(_0x1d595b){const _0x5f0e9a=a176_0x4d4394,_0x364a52=0x64,_0x60a4d4=[];for(let _0x11e89a=0x1;;_0x11e89a+=0x1){const {items:_0x3e4269,paging:_0x21ba22}=await listAppRoles(_0x1d595b,{'currentPage':_0x11e89a,'pageSize':_0x364a52});_0x60a4d4[_0x5f0e9a(0x197)](..._0x3e4269);if(_0x3e4269[_0x5f0e9a(0x1a6)]<_0x364a52||_0x21ba22&&_0x60a4d4[_0x5f0e9a(0x1a6)]>=_0x21ba22['totalCount'])return _0x60a4d4;}}export async function resolveTenantCode(){const _0x1fd0e2=a176_0x4d4394,_0x20583e=await getSessionUserInfo(),_0x5217bb=_0x20583e?.[_0x1fd0e2(0x1d0)]?.[_0x1fd0e2(0x196)]?.[_0x1fd0e2(0x1c2)];if(!_0x5217bb)throw CliErrors[_0x1fd0e2(0x1bf)](_0x1fd0e2(0x1cf));return _0x5217bb;}function matchMember(_0x30ccd4,_0x4268b){const _0x34e9c4=a176_0x4d4394,_0x331466=_0x4268b[_0x34e9c4(0x1a7)]()['toLowerCase']();return(_0x30ccd4[_0x34e9c4(0x1c5)]??'')[_0x34e9c4(0x1e3)]()===_0x331466||(_0x30ccd4[_0x34e9c4(0x1aa)]??'')[_0x34e9c4(0x1e3)]()===_0x331466;}export async function resolveUserRef(_0x2b0933){const _0x173757=a176_0x4d4394,_0x5e21d6=_0x2b0933[_0x173757(0x1a7)]();if(!_0x5e21d6)throw CliErrors[_0x173757(0x1b1)](_0x173757(0x1cd),_0x173757(0x19e));const _0x45e2ca=await resolveTenantCode(),_0x191bbd=await getTenantMembers(_0x45e2ca);if(/^\d+$/['test'](_0x5e21d6)){const _0x4e418d=Number(_0x5e21d6),_0x5892ab=_0x191bbd[_0x173757(0x1c0)](_0x3d6401=>_0x3d6401[_0x173757(0x1ba)]===_0x4e418d);return{'userId':_0x4e418d,'username':_0x5892ab?.['username']??String(_0x4e418d),'nickname':_0x5892ab?.[_0x173757(0x1c5)],'matchedBy':'id'};}const _0x2063c6=_0x191bbd[_0x173757(0x1a0)](_0x5805b0=>matchMember(_0x5805b0,_0x5e21d6));if(_0x2063c6[_0x173757(0x1a6)]===0x0)throw CliErrors[_0x173757(0x1b1)](_0x173757(0x1c4)+_0x5e21d6+'\x22.',_0x173757(0x1a8));if(_0x2063c6[_0x173757(0x1a6)]>0x1){const _0x49b71c=_0x2063c6[_0x173757(0x1ae)](_0x15bc71=>(_0x15bc71['nickname']??_0x15bc71[_0x173757(0x1aa)]??'?')+'('+_0x15bc71[_0x173757(0x1ba)]+')')[_0x173757(0x1ce)](',\x20');throw CliErrors[_0x173757(0x1b1)](_0x173757(0x19c)+_0x5e21d6+'\x22:\x20'+_0x49b71c+'.',_0x173757(0x1b4));}const _0x503e26=_0x2063c6[0x0];return{'userId':_0x503e26[_0x173757(0x1ba)],'username':_0x503e26[_0x173757(0x1aa)]??String(_0x503e26[_0x173757(0x1ba)]),'nickname':_0x503e26[_0x173757(0x1c5)],'matchedBy':_0x173757(0x1b6)};}export const UPDATE_USER_LIST_PATH=a176_0x4d4394(0x1e7);function userIdsOf(_0x4e7a2b){const _0x3434d0=a176_0x4d4394;return(_0x4e7a2b?.['userList']??[])[_0x3434d0(0x1ae)](_0x287e17=>_0x287e17[_0x3434d0(0x1ba)]);}export function computeRoleUserMutation(_0x266292){const _0x4eb2fb=a176_0x4d4394,{operation:_0x7aade9,appCode:_0x272b35,roleUsers:_0x21a481,targetRoleId:_0x4d5ab3,user:_0xde7e41}=_0x266292,_0x80eb82=_0x21a481[_0x4eb2fb(0x1c0)](_0x3f2b5c=>_0x3f2b5c['id']===_0x4d5ab3);if(!_0x80eb82)throw CliErrors[_0x4eb2fb(0x1b1)](_0x4eb2fb(0x1df)+_0x4d5ab3+_0x4eb2fb(0x1e5),_0x4eb2fb(0x1b5));const _0x13d5a9=userIdsOf(_0x80eb82),_0x314313=[];if(_0x266292[_0x4eb2fb(0x1e4)]!==undefined&&_0x266292[_0x4eb2fb(0x1e4)]!==_0x13d5a9[_0x4eb2fb(0x1a6)])throw CliErrors['validation']('Anti-drift\x20check\x20failed:\x20expected\x20'+_0x266292['expectUserCount']+_0x4eb2fb(0x1b3)+_0x13d5a9[_0x4eb2fb(0x1a6)]+'.','Re-run\x20`role\x20detail`\x20/\x20`role\x20list`\x20and\x20retry\x20with\x20the\x20current\x20count.');const _0x37370f=_0x13d5a9['includes'](_0xde7e41[_0x4eb2fb(0x1ba)]);let _0x3d49aa=![];const _0x1f459f=[..._0x80eb82['userList']];if(_0x7aade9===_0x4eb2fb(0x1c8))_0x37370f?_0x314313[_0x4eb2fb(0x197)](_0x4eb2fb(0x1bd)+_0xde7e41[_0x4eb2fb(0x1ba)]+_0x4eb2fb(0x1ab)+_0x80eb82[_0x4eb2fb(0x1d2)]+_0x4eb2fb(0x1b8)):(_0x1f459f[_0x4eb2fb(0x197)]({'userId':_0xde7e41[_0x4eb2fb(0x1ba)],'username':_0xde7e41[_0x4eb2fb(0x1aa)],..._0xde7e41[_0x4eb2fb(0x1c5)]?{'nickname':_0xde7e41['nickname']}:{}}),_0x3d49aa=!![]);else{if(!_0x37370f)_0x314313[_0x4eb2fb(0x197)]('User\x20'+_0xde7e41['userId']+_0x4eb2fb(0x1ad)+_0x80eb82[_0x4eb2fb(0x1d2)]+_0x4eb2fb(0x1b8));else{const _0x44f9fd=_0x1f459f[_0x4eb2fb(0x1dc)](_0x1920d3=>_0x1920d3['userId']===_0xde7e41[_0x4eb2fb(0x1ba)]);if(_0x44f9fd>=0x0)_0x1f459f[_0x4eb2fb(0x1d4)](_0x44f9fd,0x1);_0x3d49aa=!![];}}const _0xdd7a94=_0x21a481[_0x4eb2fb(0x1ae)](_0x445a0a=>_0x445a0a['id']===_0x4d5ab3?{..._0x445a0a,'userList':_0x1f459f}:_0x445a0a),_0x155d62=_0x1f459f[_0x4eb2fb(0x1ae)](_0x4fca0f=>_0x4fca0f[_0x4eb2fb(0x1ba)]),_0x480ba1={'operation':_0x7aade9,'selector':{'appCode':_0x272b35,'roleId':_0x4d5ab3,'roleName':_0x80eb82[_0x4eb2fb(0x1d2)],'userId':_0xde7e41[_0x4eb2fb(0x1ba)]},'before':{'userIds':_0x13d5a9},'after':{'userIds':_0x155d62},'dryRun':_0x266292[_0x4eb2fb(0x1db)],'backend':{'method':_0x4eb2fb(0x1e0),'path':UPDATE_USER_LIST_PATH},'warnings':_0x314313};return{'roleList':_0xdd7a94,'mutation':_0x480ba1,'changed':_0x3d49aa};}export async function loadRoleUsers(_0x461e9f){return listRoleUsers(_0x461e9f);}export function readRoleRef(_0x3a0c33){const _0x1d186f=a176_0x4d4394,_0x4e7631=_0x3a0c33[_0x1d186f(0x1cb)](_0x1d186f(0x1dd))[_0x1d186f(0x1a7)]();if(!_0x4e7631)throw CliErrors[_0x1d186f(0x1a2)](_0x1d186f(0x1dd),_0x1d186f(0x1e6));return _0x4e7631;}export async function prepareUserMutation(_0x2e6e63,_0x23a66b,_0x207b62){const _0x4c1950=a176_0x4d4394,_0x5f4c37=readRoleRef(_0x2e6e63),_0x156d97=_0x2e6e63[_0x4c1950(0x1cb)](_0x4c1950(0x1d0))[_0x4c1950(0x1a7)]();if(!_0x156d97)throw CliErrors[_0x4c1950(0x1a2)]('user',_0x4c1950(0x19e));const _0x4adacb=_0x2e6e63['flag']('expect-user-count'),_0x38879e=_0x4adacb===undefined||_0x4adacb===null?undefined:Number(_0x4adacb),_0x8f1877=await resolveRoleRef(_0x2e6e63[_0x4c1950(0x19d)],_0x5f4c37),_0xe23c48=await resolveUserRef(_0x156d97),_0x40655a=await loadRoleUsers(_0x2e6e63[_0x4c1950(0x19d)]);return computeRoleUserMutation({'operation':_0x23a66b,'appCode':_0x2e6e63[_0x4c1950(0x19d)],'roleUsers':_0x40655a,'targetRoleId':_0x8f1877['id'],'user':{'userId':_0xe23c48[_0x4c1950(0x1ba)],'username':_0xe23c48['username'],'nickname':_0xe23c48[_0x4c1950(0x1c5)]},'dryRun':_0x207b62,..._0x38879e!==undefined?{'expectUserCount':_0x38879e}:{}});}
|
|
1
|
+
const a184_0x3f8d3a=a184_0x2794;(function(_0x1d3080,_0x1b5fd1){const _0x5aa456=a184_0x2794,_0x14149f=_0x1d3080();while(!![]){try{const _0x18ab67=-parseInt(_0x5aa456(0x18d))/0x1*(parseInt(_0x5aa456(0x199))/0x2)+parseInt(_0x5aa456(0x18c))/0x3*(-parseInt(_0x5aa456(0x186))/0x4)+-parseInt(_0x5aa456(0x17e))/0x5+-parseInt(_0x5aa456(0x19f))/0x6+-parseInt(_0x5aa456(0x157))/0x7*(parseInt(_0x5aa456(0x1a4))/0x8)+parseInt(_0x5aa456(0x182))/0x9+parseInt(_0x5aa456(0x16d))/0xa;if(_0x18ab67===_0x1b5fd1)break;else _0x14149f['push'](_0x14149f['shift']());}catch(_0x177122){_0x14149f['push'](_0x14149f['shift']());}}}(a184_0x39a3,0x2cfa4));import{getAppRole,getTenantMembers,listAppRoles,listRoleUsers}from'../../core/api-client.js';function a184_0x39a3(){const _0x32eecc=['validation','\x20not\x20found\x20in\x20the\x20user-role\x20list.','Anti-drift\x20guard:\x20fail\x20if\x20the\x20role\x27s\x20current\x20member\x20count\x20differs','Pass\x20--user\x20<id|name>.','Cannot\x20resolve\x20current\x20tenant.\x20Run\x20`rabetbase\x20auth\x20login`\x20first.','8603tfvSSw','Missing\x20role\x20reference.','Nickname\x20or\x20username\x20to\x20resolve\x20to\x20a\x20userId','test','Role\x20name\x20\x22','permitCount','\x20not\x20found\x20in\x20app\x20','Check\x20the\x20nickname/username,\x20or\x20pass\x20--user\x20<id>.','map',';\x20no\x20change.','Disambiguate\x20with\x20--role\x20<id>.','join','POST','Cannot\x20','string','Role\x20id\x20(from\x20`role\x20list`)','push','DEV\x20/\x20ADMIN\x20keep\x20full\x20access\x20by\x20design;\x20configure\x20a\x20CUSTOM\x20role\x20instead.','\x20is\x20already\x20a\x20member\x20of\x20role\x20','Missing\x20user\x20reference.','remark','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.','10288170iLOrPW','role','splice','User\x20id,\x20username,\x20or\x20nickname\x20to\x20resolve\x20to\x20a\x20userId','expectUserCount','str','Role\x20name','name','Optional\x20role\x20remark/description','flagMissing','dryRun','Multiple\x20tenant\x20members\x20match\x20\x22','roleType','Anti-drift\x20check\x20failed:\x20expected\x20','userList','ADMIN','username','1360525pWVfqc','user','User\x20','appCode','1345059LGUASr','expect-user-count','Disambiguate\x20with\x20--user\x20<id>.','length','12476uEnPzK','find','Role\x20id\x20or\x20role\x20name\x20(CUSTOM\x20roles\x20may\x20be\x20referenced\x20by\x20name)','CUSTOM','totalCount','DEV','57bYIQcB','4142LzvWrm','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles,\x20or\x20pass\x20--role\x20<id>.','tenant','Pass\x20--role\x20<id|name>.','USER','/smartapi/permit/user-role/update-user-list','filter','trim','No\x20tenant\x20member\x20matches\x20\x22','\x22:\x20','Cannot\x20change\x20the\x20permission\x20matrix\x20of\x20built-in\x20role\x20','number','6iVKaAv','\x22\x20not\x20found\x20in\x20app\x20','Role\x20id\x20','nickname','userId','toLowerCase','1903134jFoMdA','includes','authRequired','roleName','\x20is\x20not\x20a\x20member\x20of\x20role\x20','2168qdYEtg'];a184_0x39a3=function(){return _0x32eecc;};return a184_0x39a3();}import{getSessionUserInfo}from'../../auth/get-session-user.js';import{CliErrors}from'../../errors.js';export const ROLE_ID_FLAG={'name':'id','type':a184_0x3f8d3a(0x198),'required':!![],'description':a184_0x3f8d3a(0x166)};export const ROLE_REF_FLAG={'name':a184_0x3f8d3a(0x16e),'type':a184_0x3f8d3a(0x165),'required':!![],'description':a184_0x3f8d3a(0x188)};export const USER_REF_FLAG={'name':a184_0x3f8d3a(0x17f),'type':a184_0x3f8d3a(0x165),'required':!![],'description':a184_0x3f8d3a(0x170)};function a184_0x2794(_0x410ae8,_0x336959){_0x410ae8=_0x410ae8-0x152;const _0x39a3fa=a184_0x39a3();let _0x27946b=_0x39a3fa[_0x410ae8];return _0x27946b;}export const NAME_FLAG={'name':'name','type':a184_0x3f8d3a(0x165),'required':!![],'description':a184_0x3f8d3a(0x173)};export const USER_NAME_FLAG={'name':a184_0x3f8d3a(0x174),'type':a184_0x3f8d3a(0x165),'required':!![],'description':a184_0x3f8d3a(0x159)};export const REMARK_FLAG={'name':a184_0x3f8d3a(0x16b),'type':a184_0x3f8d3a(0x165),'required':![],'description':a184_0x3f8d3a(0x175)};export const EXPECT_USER_COUNT_FLAG={'name':a184_0x3f8d3a(0x183),'type':'number','required':![],'description':a184_0x3f8d3a(0x154)};export const BUILTIN_ROLE_TYPES=[a184_0x3f8d3a(0x17c),a184_0x3f8d3a(0x18b),a184_0x3f8d3a(0x191)];export function isBuiltinRole(_0x90e268){const _0x4c1615=a184_0x3f8d3a;return BUILTIN_ROLE_TYPES[_0x4c1615(0x1a0)](_0x90e268);}export function assertCustomRole(_0x3984ea,_0x2e32af){const _0x3e4d9b=a184_0x3f8d3a;if(_0x3984ea[_0x3e4d9b(0x179)]!==_0x3e4d9b(0x189))throw CliErrors[_0x3e4d9b(0x152)](_0x3e4d9b(0x164)+_0x2e32af+'\x20built-in\x20role\x20'+_0x3984ea[_0x3e4d9b(0x1a2)]+'\x20('+_0x3984ea[_0x3e4d9b(0x179)]+').','Only\x20CUSTOM\x20roles\x20can\x20be\x20modified\x20or\x20deleted.');}export function assertPermConfigurable(_0x12079f){const _0xc0a586=a184_0x3f8d3a;if(_0x12079f[_0xc0a586(0x179)]==='DEV'||_0x12079f[_0xc0a586(0x179)]===_0xc0a586(0x17c))throw CliErrors['validation'](_0xc0a586(0x197)+_0x12079f[_0xc0a586(0x1a2)]+'\x20('+_0x12079f[_0xc0a586(0x179)]+').',_0xc0a586(0x168));}export function projectRole(_0x27fcfc){const _0x15175f=a184_0x3f8d3a;return{'id':_0x27fcfc['id'],'roleName':_0x27fcfc['roleName'],'roleType':_0x27fcfc[_0x15175f(0x179)],'remark':_0x27fcfc[_0x15175f(0x16b)],'userCount':_0x27fcfc['userCount'],'permitCount':_0x27fcfc[_0x15175f(0x15c)],'builtin':isBuiltinRole(_0x27fcfc[_0x15175f(0x179)])};}export async function resolveRoleRef(_0x361374,_0x59835a){const _0x3f9a7b=a184_0x3f8d3a,_0x5b2597=_0x59835a['trim']();if(!_0x5b2597)throw CliErrors[_0x3f9a7b(0x152)](_0x3f9a7b(0x158),_0x3f9a7b(0x190));if(/^\d+$/[_0x3f9a7b(0x15a)](_0x5b2597))return getRoleById(_0x361374,Number(_0x5b2597));const _0x23c21d=await listAllAppRoles(_0x361374),_0x2e4f1=_0x23c21d['filter'](_0x59d8c8=>_0x59d8c8[_0x3f9a7b(0x1a2)]===_0x5b2597);if(_0x2e4f1['length']===0x0)throw CliErrors[_0x3f9a7b(0x152)](_0x3f9a7b(0x15b)+_0x5b2597+_0x3f9a7b(0x19a)+_0x361374+'.',_0x3f9a7b(0x18e));if(_0x2e4f1[_0x3f9a7b(0x185)]>0x1){const _0x3b43c1=_0x2e4f1[_0x3f9a7b(0x15f)](_0x1bb4ba=>_0x1bb4ba['id'])['join'](',\x20');throw CliErrors['validation'](_0x3f9a7b(0x15b)+_0x5b2597+'\x22\x20is\x20ambiguous\x20(ids:\x20'+_0x3b43c1+').',_0x3f9a7b(0x161));}return _0x2e4f1[0x0];}export async function getRoleById(_0x36e972,_0x47f800){const _0x2346a5=a184_0x3f8d3a,_0x24adcf=await getAppRole(_0x47f800);if(!_0x24adcf)throw CliErrors[_0x2346a5(0x152)](_0x2346a5(0x19b)+_0x47f800+_0x2346a5(0x15d)+_0x36e972+'.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.');return _0x24adcf;}async function listAllAppRoles(_0x5ed08b){const _0x2133f8=a184_0x3f8d3a,_0x2f0d60=0x64,_0x45434c=[];for(let _0x24463=0x1;;_0x24463+=0x1){const {items:_0x166865,paging:_0x4c524b}=await listAppRoles(_0x5ed08b,{'currentPage':_0x24463,'pageSize':_0x2f0d60});_0x45434c[_0x2133f8(0x167)](..._0x166865);if(_0x166865[_0x2133f8(0x185)]<_0x2f0d60||_0x4c524b&&_0x45434c[_0x2133f8(0x185)]>=_0x4c524b[_0x2133f8(0x18a)])return _0x45434c;}}export async function resolveTenantCode(){const _0xb261a=a184_0x3f8d3a,_0x1af543=await getSessionUserInfo(),_0x3c4c58=_0x1af543?.[_0xb261a(0x17f)]?.[_0xb261a(0x18f)]?.['tenant_code'];if(!_0x3c4c58)throw CliErrors[_0xb261a(0x1a1)](_0xb261a(0x156));return _0x3c4c58;}function matchMember(_0x46817d,_0x2c1f14){const _0x2cba07=a184_0x3f8d3a,_0x29cdd6=_0x2c1f14['trim']()[_0x2cba07(0x19e)]();return(_0x46817d['nickname']??'')[_0x2cba07(0x19e)]()===_0x29cdd6||(_0x46817d['username']??'')[_0x2cba07(0x19e)]()===_0x29cdd6;}export async function resolveUserRef(_0x34e115){const _0x1e980f=a184_0x3f8d3a,_0x3e2a6e=_0x34e115['trim']();if(!_0x3e2a6e)throw CliErrors['validation'](_0x1e980f(0x16a),_0x1e980f(0x155));const _0x1cfb89=await resolveTenantCode(),_0x489567=await getTenantMembers(_0x1cfb89);if(/^\d+$/[_0x1e980f(0x15a)](_0x3e2a6e)){const _0x3efac3=Number(_0x3e2a6e),_0x411df9=_0x489567[_0x1e980f(0x187)](_0x35173e=>_0x35173e['userId']===_0x3efac3);return{'userId':_0x3efac3,'username':_0x411df9?.[_0x1e980f(0x17d)]??String(_0x3efac3),'nickname':_0x411df9?.[_0x1e980f(0x19c)],'matchedBy':'id'};}const _0xca4c3e=_0x489567[_0x1e980f(0x193)](_0x195630=>matchMember(_0x195630,_0x3e2a6e));if(_0xca4c3e[_0x1e980f(0x185)]===0x0)throw CliErrors[_0x1e980f(0x152)](_0x1e980f(0x195)+_0x3e2a6e+'\x22.',_0x1e980f(0x15e));if(_0xca4c3e['length']>0x1){const _0x111df1=_0xca4c3e[_0x1e980f(0x15f)](_0x3d4adc=>(_0x3d4adc['nickname']??_0x3d4adc[_0x1e980f(0x17d)]??'?')+'('+_0x3d4adc[_0x1e980f(0x19d)]+')')[_0x1e980f(0x162)](',\x20');throw CliErrors[_0x1e980f(0x152)](_0x1e980f(0x178)+_0x3e2a6e+_0x1e980f(0x196)+_0x111df1+'.',_0x1e980f(0x184));}const _0x3fa3a9=_0xca4c3e[0x0];return{'userId':_0x3fa3a9[_0x1e980f(0x19d)],'username':_0x3fa3a9[_0x1e980f(0x17d)]??String(_0x3fa3a9[_0x1e980f(0x19d)]),'nickname':_0x3fa3a9[_0x1e980f(0x19c)],'matchedBy':_0x1e980f(0x174)};}export const UPDATE_USER_LIST_PATH=a184_0x3f8d3a(0x192);function userIdsOf(_0x4d44ef){const _0x7b6f5c=a184_0x3f8d3a;return(_0x4d44ef?.[_0x7b6f5c(0x17b)]??[])[_0x7b6f5c(0x15f)](_0x3ff3e4=>_0x3ff3e4['userId']);}export function computeRoleUserMutation(_0x3db006){const _0x1ab7db=a184_0x3f8d3a,{operation:_0x566328,appCode:_0x3f7f09,roleUsers:_0x517921,targetRoleId:_0x407ab9,user:_0x46a064}=_0x3db006,_0x2055c1=_0x517921['find'](_0x3f93ef=>_0x3f93ef['id']===_0x407ab9);if(!_0x2055c1)throw CliErrors[_0x1ab7db(0x152)](_0x1ab7db(0x19b)+_0x407ab9+_0x1ab7db(0x153),_0x1ab7db(0x16c));const _0x1a2465=userIdsOf(_0x2055c1),_0x18192b=[];if(_0x3db006[_0x1ab7db(0x171)]!==undefined&&_0x3db006[_0x1ab7db(0x171)]!==_0x1a2465[_0x1ab7db(0x185)])throw CliErrors[_0x1ab7db(0x152)](_0x1ab7db(0x17a)+_0x3db006[_0x1ab7db(0x171)]+'\x20member(s)\x20but\x20role\x20has\x20'+_0x1a2465['length']+'.','Re-run\x20`role\x20detail`\x20/\x20`role\x20list`\x20and\x20retry\x20with\x20the\x20current\x20count.');const _0x4c9afd=_0x1a2465[_0x1ab7db(0x1a0)](_0x46a064[_0x1ab7db(0x19d)]);let _0x7ff2b4=![];const _0x22f19b=[..._0x2055c1[_0x1ab7db(0x17b)]];if(_0x566328==='user-add')_0x4c9afd?_0x18192b[_0x1ab7db(0x167)](_0x1ab7db(0x180)+_0x46a064[_0x1ab7db(0x19d)]+_0x1ab7db(0x169)+_0x2055c1['roleName']+';\x20no\x20change.'):(_0x22f19b[_0x1ab7db(0x167)]({'userId':_0x46a064[_0x1ab7db(0x19d)],'username':_0x46a064['username'],..._0x46a064[_0x1ab7db(0x19c)]?{'nickname':_0x46a064[_0x1ab7db(0x19c)]}:{}}),_0x7ff2b4=!![]);else{if(!_0x4c9afd)_0x18192b[_0x1ab7db(0x167)](_0x1ab7db(0x180)+_0x46a064[_0x1ab7db(0x19d)]+_0x1ab7db(0x1a3)+_0x2055c1[_0x1ab7db(0x1a2)]+_0x1ab7db(0x160));else{const _0x4cbaa3=_0x22f19b['findIndex'](_0x5557d2=>_0x5557d2[_0x1ab7db(0x19d)]===_0x46a064[_0x1ab7db(0x19d)]);if(_0x4cbaa3>=0x0)_0x22f19b[_0x1ab7db(0x16f)](_0x4cbaa3,0x1);_0x7ff2b4=!![];}}const _0x178b52=_0x517921['map'](_0x503a95=>_0x503a95['id']===_0x407ab9?{..._0x503a95,'userList':_0x22f19b}:_0x503a95),_0x5e9ec5=_0x22f19b['map'](_0x59e91b=>_0x59e91b[_0x1ab7db(0x19d)]),_0x3d11d7={'operation':_0x566328,'selector':{'appCode':_0x3f7f09,'roleId':_0x407ab9,'roleName':_0x2055c1[_0x1ab7db(0x1a2)],'userId':_0x46a064['userId']},'before':{'userIds':_0x1a2465},'after':{'userIds':_0x5e9ec5},'dryRun':_0x3db006[_0x1ab7db(0x177)],'backend':{'method':_0x1ab7db(0x163),'path':UPDATE_USER_LIST_PATH},'warnings':_0x18192b};return{'roleList':_0x178b52,'mutation':_0x3d11d7,'changed':_0x7ff2b4};}export async function loadRoleUsers(_0x77522f){return listRoleUsers(_0x77522f);}export function readRoleRef(_0x3bf3bb){const _0x45d5c6=a184_0x3f8d3a,_0x235f55=_0x3bf3bb[_0x45d5c6(0x172)]('role')[_0x45d5c6(0x194)]();if(!_0x235f55)throw CliErrors[_0x45d5c6(0x176)](_0x45d5c6(0x16e),_0x45d5c6(0x190));return _0x235f55;}export async function prepareUserMutation(_0x15298e,_0x1897eb,_0x53f680){const _0x2c1173=a184_0x3f8d3a,_0x18d2d2=readRoleRef(_0x15298e),_0x1faa83=_0x15298e[_0x2c1173(0x172)](_0x2c1173(0x17f))['trim']();if(!_0x1faa83)throw CliErrors['flagMissing'](_0x2c1173(0x17f),_0x2c1173(0x155));const _0x37b18=_0x15298e['flag'](_0x2c1173(0x183)),_0xd4a469=_0x37b18===undefined||_0x37b18===null?undefined:Number(_0x37b18),_0x4e3369=await resolveRoleRef(_0x15298e[_0x2c1173(0x181)],_0x18d2d2),_0x15a5b8=await resolveUserRef(_0x1faa83),_0x4c5b37=await loadRoleUsers(_0x15298e['appCode']);return computeRoleUserMutation({'operation':_0x1897eb,'appCode':_0x15298e[_0x2c1173(0x181)],'roleUsers':_0x4c5b37,'targetRoleId':_0x4e3369['id'],'user':{'userId':_0x15a5b8[_0x2c1173(0x19d)],'username':_0x15a5b8[_0x2c1173(0x17d)],'nickname':_0x15a5b8[_0x2c1173(0x19c)]},'dryRun':_0x53f680,..._0xd4a469!==undefined?{'expectUserCount':_0xd4a469}:{}});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a185_0x50058b=a185_0x13f7;(function(_0x24d52f,_0x31b8ab){const _0x50a62a=a185_0x13f7,_0x552d5c=_0x24d52f();while(!![]){try{const _0x1105c9=-parseInt(_0x50a62a(0x144))/0x1*(parseInt(_0x50a62a(0x14f))/0x2)+parseInt(_0x50a62a(0x14d))/0x3+-parseInt(_0x50a62a(0x153))/0x4*(-parseInt(_0x50a62a(0x148))/0x5)+parseInt(_0x50a62a(0x138))/0x6+parseInt(_0x50a62a(0x142))/0x7+-parseInt(_0x50a62a(0x150))/0x8*(parseInt(_0x50a62a(0x146))/0x9)+parseInt(_0x50a62a(0x147))/0xa;if(_0x1105c9===_0x31b8ab)break;else _0x552d5c['push'](_0x552d5c['shift']());}catch(_0x40920c){_0x552d5c['push'](_0x552d5c['shift']());}}}(a185_0x37e5,0x36226));function a185_0x37e5(){const _0x1c73b8=['999460OcPgBO','POST','10228mtPJuz','num','306dJJtOM','1276860KCHjYR','64490QdqcEZ','trim','Updated\x20role\x20','string','roleName','144390uMWddM','appCode','38qPndxl','62584YHZCbd','update','/smartapi/permit/role/update','4qIghgh','remark','2103324ucCSiO','validation','Nothing\x20to\x20update.','length','write','Pass\x20at\x20least\x20one\x20of\x20--name\x20/\x20--remark.','Role\x20name\x20cannot\x20exceed\x2064\x20characters.','--name\x20cannot\x20be\x20empty.','\x20(id=','flag'];a185_0x37e5=function(){return _0x1c73b8;};return a185_0x37e5();}import{updateAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';import{assertCustomRole,getRoleById,projectRole,REMARK_FLAG,ROLE_ID_FLAG}from'../../commands/role/shared.js';const UPDATE_PATH=a185_0x50058b(0x152);function readPatch(_0x386c94){const _0x425b65=a185_0x50058b,_0x10820e=_0x386c94[_0x425b65(0x141)]('name'),_0x10ae75=_0x386c94['flag'](_0x425b65(0x137)),_0x2e43e4={};if(_0x10820e!==undefined&&_0x10820e!==null){const _0x4d7874=String(_0x10820e)[_0x425b65(0x149)]();if(!_0x4d7874)throw CliErrors['validation'](_0x425b65(0x13f));if(_0x4d7874[_0x425b65(0x13b)]>0x40)throw CliErrors[_0x425b65(0x139)](_0x425b65(0x13e));_0x2e43e4['roleName']=_0x4d7874;}_0x10ae75!==undefined&&_0x10ae75!==null&&(_0x2e43e4[_0x425b65(0x137)]=String(_0x10ae75));if(_0x2e43e4['roleName']===undefined&&_0x2e43e4['remark']===undefined)throw CliErrors[_0x425b65(0x139)](_0x425b65(0x13a),_0x425b65(0x13d));return _0x2e43e4;}function a185_0x13f7(_0x12ee40,_0x16380c){_0x12ee40=_0x12ee40-0x137;const _0x37e55e=a185_0x37e5();let _0x13f7aa=_0x37e55e[_0x12ee40];return _0x13f7aa;}export const roleUpdate={'service':'role','command':a185_0x50058b(0x151),'description':'Update\x20a\x20CUSTOM\x20role\x27s\x20name/remark\x20(DEV/ADMIN\x20rejected)','risk':a185_0x50058b(0x13c),'flags':[ROLE_ID_FLAG,{...REMARK_FLAG},{'name':'name','type':a185_0x50058b(0x14b),'required':![],'description':'New\x20role\x20name'},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x58ab2f){readPatch(_0x58ab2f);},async 'dryRun'(_0x579760){const _0x453eb8=a185_0x50058b,_0x597ce3=_0x579760[_0x453eb8(0x145)]('id'),_0x5082e0=readPatch(_0x579760),_0x5c0d03=await getRoleById(_0x579760['appCode'],_0x597ce3);return assertCustomRole(_0x5c0d03,_0x453eb8(0x151)),asDryRunResult({'operation':_0x453eb8(0x151),'selector':{'appCode':_0x579760[_0x453eb8(0x14e)],'roleId':_0x597ce3,'roleName':_0x5c0d03[_0x453eb8(0x14c)]},'before':projectRole(_0x5c0d03),'after':projectRole({..._0x5c0d03,..._0x5082e0['roleName']!==undefined?{'roleName':_0x5082e0['roleName']}:{},..._0x5082e0[_0x453eb8(0x137)]!==undefined?{'remark':_0x5082e0['remark']}:{}}),'dryRun':!![],'backend':{'method':'POST','path':UPDATE_PATH},'warnings':[]},{'method':_0x453eb8(0x143),'url':UPDATE_PATH});},async 'execute'(_0x355b43){const _0x244e9f=a185_0x50058b,_0x1b1bd0=_0x355b43[_0x244e9f(0x145)]('id'),_0x40c9d4=readPatch(_0x355b43),_0x58b4a5=await getRoleById(_0x355b43[_0x244e9f(0x14e)],_0x1b1bd0);assertCustomRole(_0x58b4a5,_0x244e9f(0x151)),await updateAppRole({'id':_0x1b1bd0,'appCode':_0x355b43[_0x244e9f(0x14e)],..._0x40c9d4[_0x244e9f(0x14c)]!==undefined?{'roleName':_0x40c9d4['roleName']}:{},..._0x40c9d4[_0x244e9f(0x137)]!==undefined?{'remark':_0x40c9d4[_0x244e9f(0x137)]}:{}});const _0x1c7c4b=await getRoleById(_0x355b43['appCode'],_0x1b1bd0);return{'ok':!![],'data':{'operation':_0x244e9f(0x151),'selector':{'appCode':_0x355b43[_0x244e9f(0x14e)],'roleId':_0x1b1bd0,'roleName':_0x1c7c4b[_0x244e9f(0x14c)]},'before':projectRole(_0x58b4a5),'after':projectRole(_0x1c7c4b),'dryRun':![],'backend':{'method':_0x244e9f(0x143),'path':UPDATE_PATH},'warnings':[]},'message':_0x244e9f(0x14a)+_0x1c7c4b[_0x244e9f(0x14c)]+_0x244e9f(0x140)+_0x1b1bd0+')'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a186_0x1edc10=a186_0x235b;(function(_0x45475a,_0x6a1ce7){const _0x3a9695=a186_0x235b,_0x2c1373=_0x45475a();while(!![]){try{const _0x1b2072=parseInt(_0x3a9695(0xc2))/0x1+-parseInt(_0x3a9695(0xc8))/0x2+parseInt(_0x3a9695(0xba))/0x3*(-parseInt(_0x3a9695(0xc3))/0x4)+-parseInt(_0x3a9695(0xc9))/0x5+-parseInt(_0x3a9695(0xb9))/0x6*(-parseInt(_0x3a9695(0xbb))/0x7)+parseInt(_0x3a9695(0xc5))/0x8+-parseInt(_0x3a9695(0xb5))/0x9*(-parseInt(_0x3a9695(0xc0))/0xa);if(_0x1b2072===_0x6a1ce7)break;else _0x2c1373['push'](_0x2c1373['shift']());}catch(_0x4aabde){_0x2c1373['push'](_0x2c1373['shift']());}}}(a186_0xc7c6,0xc4e17));import{updateRoleUsers}from'../../core/api-client.js';function a186_0xc7c6(){const _0x208861=['22370TRVuKa','high-risk-write','264994fyBHqy','4bSBmbI','userId','2072120lxKFhg','\x20to\x20role\x20','appCode','2404952szaYfa','8051485zRPTPp','Added\x20user\x20','11943UTHlZJ','user-add','role','selector','5784TjiEWw','510672RxXypA','2156aQYwRl','No\x20change:\x20user\x20','Add\x20a\x20user\x20to\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','POST','roleName'];a186_0xc7c6=function(){return _0x208861;};return a186_0xc7c6();}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{asDryRunResult}from'../../commands/common/dry-run.js';import{EXPECT_USER_COUNT_FLAG,prepareUserMutation,ROLE_REF_FLAG,UPDATE_USER_LIST_PATH,USER_REF_FLAG}from'../../commands/role/shared.js';function a186_0x235b(_0x2817f2,_0x33675e){_0x2817f2=_0x2817f2-0xb5;const _0xc7c60b=a186_0xc7c6();let _0x235ba8=_0xc7c60b[_0x2817f2];return _0x235ba8;}export const roleUserAdd={'service':a186_0x1edc10(0xb7),'command':'user-add','description':a186_0x1edc10(0xbd),'risk':a186_0x1edc10(0xc1),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0xe24983){const _0x10361c=a186_0x1edc10,{mutation:_0x4261a8}=await prepareUserMutation(_0xe24983,_0x10361c(0xb6),!![]);return asDryRunResult(_0x4261a8,{'method':_0x10361c(0xbe),'url':UPDATE_USER_LIST_PATH});},async 'execute'(_0x6b05c6){const _0x41d19d=a186_0x1edc10,{roleList:_0x5b7428,mutation:_0x147f0a,changed:_0x5c3de7}=await prepareUserMutation(_0x6b05c6,_0x41d19d(0xb6),![]);return _0x5c3de7&&await updateRoleUsers(_0x6b05c6[_0x41d19d(0xc7)],_0x5b7428),{'ok':!![],'data':_0x147f0a,'message':_0x5c3de7?_0x41d19d(0xca)+_0x147f0a[_0x41d19d(0xb8)][_0x41d19d(0xc4)]+_0x41d19d(0xc6)+_0x147f0a[_0x41d19d(0xb8)][_0x41d19d(0xbf)]:_0x41d19d(0xbc)+_0x147f0a[_0x41d19d(0xb8)]['userId']+'\x20already\x20in\x20role\x20'+_0x147f0a[_0x41d19d(0xb8)]['roleName']};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a187_0x499735=a187_0x16cd;(function(_0x390665,_0x53aa8a){const _0x225930=a187_0x16cd,_0x3c366c=_0x390665();while(!![]){try{const _0x32885d=parseInt(_0x225930(0x89))/0x1*(-parseInt(_0x225930(0x7a))/0x2)+-parseInt(_0x225930(0x79))/0x3+parseInt(_0x225930(0x8a))/0x4+-parseInt(_0x225930(0x88))/0x5*(parseInt(_0x225930(0x84))/0x6)+parseInt(_0x225930(0x86))/0x7+-parseInt(_0x225930(0x82))/0x8+parseInt(_0x225930(0x78))/0x9*(parseInt(_0x225930(0x7d))/0xa);if(_0x32885d===_0x53aa8a)break;else _0x3c366c['push'](_0x3c366c['shift']());}catch(_0x186d89){_0x3c366c['push'](_0x3c366c['shift']());}}}(a187_0x4966,0x953b3));import{updateRoleUsers}from'../../core/api-client.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a187_0x16cd(_0x2a45f2,_0x114df4){_0x2a45f2=_0x2a45f2-0x78;const _0x4966b2=a187_0x4966();let _0x16cd45=_0x4966b2[_0x2a45f2];return _0x16cd45;}import{asDryRunResult}from'../../commands/common/dry-run.js';function a187_0x4966(){const _0x269dcb=['70smrGqM','Removed\x20user\x20','appCode','No\x20change:\x20user\x20','userId','5030544BrexgW','user-remove','6259326tQbwGN','POST','210378uWOIDP','roleName','5YJzPrc','1tHpquB','97436tJIIGx','selector','4183020tWuqYX','1112250ACuTlD','1307666UWpGbo','\x20from\x20role\x20','high-risk-write'];a187_0x4966=function(){return _0x269dcb;};return a187_0x4966();}import{EXPECT_USER_COUNT_FLAG,prepareUserMutation,ROLE_REF_FLAG,UPDATE_USER_LIST_PATH,USER_REF_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':'role','command':'user-remove','description':'Remove\x20a\x20user\x20from\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','risk':a187_0x499735(0x7c),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x192042){const _0x5215f8=a187_0x499735,{mutation:_0x45d2a7}=await prepareUserMutation(_0x192042,_0x5215f8(0x83),!![]);return asDryRunResult(_0x45d2a7,{'method':_0x5215f8(0x85),'url':UPDATE_USER_LIST_PATH});},async 'execute'(_0xfa2eff){const _0x40fa74=a187_0x499735,{roleList:_0x4b1f91,mutation:_0x14f12d,changed:_0x3f189}=await prepareUserMutation(_0xfa2eff,_0x40fa74(0x83),![]);return _0x3f189&&await updateRoleUsers(_0xfa2eff[_0x40fa74(0x7f)],_0x4b1f91),{'ok':!![],'data':_0x14f12d,'message':_0x3f189?_0x40fa74(0x7e)+_0x14f12d[_0x40fa74(0x8b)][_0x40fa74(0x81)]+_0x40fa74(0x7b)+_0x14f12d['selector'][_0x40fa74(0x87)]:_0x40fa74(0x80)+_0x14f12d[_0x40fa74(0x8b)][_0x40fa74(0x81)]+'\x20not\x20in\x20role\x20'+_0x14f12d[_0x40fa74(0x8b)][_0x40fa74(0x87)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a188_0x5471(_0x9e2d36,_0x10932e){_0x9e2d36=_0x9e2d36-0x14d;const _0x54694f=a188_0x5469();let _0x547131=_0x54694f[_0x9e2d36];return _0x547131;}const a188_0x28acb9=a188_0x5471;(function(_0x4b608c,_0x4649a){const _0x70db65=a188_0x5471,_0x3b95ed=_0x4b608c();while(!![]){try{const _0x2b7260=-parseInt(_0x70db65(0x162))/0x1*(parseInt(_0x70db65(0x154))/0x2)+-parseInt(_0x70db65(0x167))/0x3*(-parseInt(_0x70db65(0x150))/0x4)+parseInt(_0x70db65(0x14e))/0x5*(-parseInt(_0x70db65(0x15b))/0x6)+-parseInt(_0x70db65(0x151))/0x7+parseInt(_0x70db65(0x160))/0x8*(parseInt(_0x70db65(0x161))/0x9)+parseInt(_0x70db65(0x152))/0xa*(parseInt(_0x70db65(0x157))/0xb)+parseInt(_0x70db65(0x158))/0xc;if(_0x2b7260===_0x4649a)break;else _0x3b95ed['push'](_0x3b95ed['shift']());}catch(_0x777b36){_0x3b95ed['push'](_0x3b95ed['shift']());}}}(a188_0x5469,0x81ef9));import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{resolveUserRef,USER_NAME_FLAG}from'../../commands/role/shared.js';function a188_0x5469(){const _0x5d79a4=['username','1142590uuNPJf','userId','441052yZbCnp','5198739xVrRed','60gumJxL','Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','105414IiJbZX','nickname','read','978560ZdYRlq','11588604axdQIO','str','name','6iWMSWa','matchedBy','\x22\x20→\x20userId\x20','flagMissing','role','32qHDAsG','1269711uusiox','19LxKHWG','Pass\x20--name\x20<nickname|username>.','trim','Resolved\x20\x22','user-resolve','12ufUROi'];a188_0x5469=function(){return _0x5d79a4;};return a188_0x5469();}export const roleUserResolve={'service':a188_0x28acb9(0x15f),'command':a188_0x28acb9(0x166),'description':a188_0x28acb9(0x153),'risk':a188_0x28acb9(0x156),'flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0xa42e14){const _0x48d6e3=a188_0x28acb9;if(!_0xa42e14[_0x48d6e3(0x159)](_0x48d6e3(0x15a))[_0x48d6e3(0x164)]())throw CliErrors[_0x48d6e3(0x15e)](_0x48d6e3(0x15a),_0x48d6e3(0x163));},async 'execute'(_0x48ab93){const _0x172e92=a188_0x28acb9,_0x2c4e9a=_0x48ab93[_0x172e92(0x159)]('name')['trim'](),_0x36c760=await resolveUserRef(_0x2c4e9a);return{'ok':!![],'data':{'user':{'userId':_0x36c760[_0x172e92(0x14f)],'username':_0x36c760[_0x172e92(0x14d)],'nickname':_0x36c760[_0x172e92(0x155)],'matchedBy':_0x36c760[_0x172e92(0x15c)]}},'message':_0x172e92(0x165)+_0x2c4e9a+_0x172e92(0x15d)+_0x36c760[_0x172e92(0x14f)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a189_0x5e10bb=a189_0x5ad4;(function(_0x38a412,_0x1aa8d2){const _0x257d9c=a189_0x5ad4,_0x506700=_0x38a412();while(!![]){try{const _0x4686e3=-parseInt(_0x257d9c(0x18b))/0x1+-parseInt(_0x257d9c(0x16f))/0x2*(parseInt(_0x257d9c(0x17d))/0x3)+-parseInt(_0x257d9c(0x189))/0x4+-parseInt(_0x257d9c(0x17a))/0x5+-parseInt(_0x257d9c(0x173))/0x6+parseInt(_0x257d9c(0x16a))/0x7*(parseInt(_0x257d9c(0x16b))/0x8)+parseInt(_0x257d9c(0x18e))/0x9;if(_0x4686e3===_0x1aa8d2)break;else _0x506700['push'](_0x506700['shift']());}catch(_0x1eae7c){_0x506700['push'](_0x506700['shift']());}}}(a189_0x410c,0x97733));import{readFileSync,existsSync}from'node:fs';function a189_0x5ad4(_0x1ce497,_0x30f006){_0x1ce497=_0x1ce497-0x169;const _0x410c95=a189_0x410c();let _0x5ad496=_0x410c95[_0x1ce497];return _0x5ad496;}import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';function a189_0x410c(){const _0x4968c0=['build','No\x20package.json\x20found\x20in\x20current\x20directory.','belowMinimum','cwd','slice','\x20run\x20','Enable\x20watch\x20mode\x20for\x20preview','No\x20scripts\x20defined\x20in\x20package.json.','node_modules','log','\x20run\x20build','keys','yarn.lock','start','--watch','run','.bin','length','\x20exited\x20with\x20code\x20','\x20\x20\x20\x20','1295NmSBAU','5064eweLDS','close','bun','\x0a\x20\x20Usage:\x20','884srQTwy','bun.lock','validation','needsUpgrade','3117432zGZfFy','script','has','parse','Script\x20\x22','inherit','(none)','3804090cLENwV','\x22\x20not\x20found\x20in\x20package.json.','boolean','5538lJTuVa','join','scripts','vite\x20preview\x20exited\x20with\x20code\x20','watch','push','Script\x20name\x20defined\x20in\x20package.json','npm','Run\x20a\x20package.json\x20script','\x20run\x20<script>\x0a','args','\x0a\x20\x20Available\x20scripts:\x0a','924200cXEBtO','preview','83489RCkreX','yarn','vite','26226855BPuRLZ','error'];a189_0x410c=function(){return _0x4968c0;};return a189_0x410c();}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([a189_0x5e10bb(0x19d),'dev']);function readPackageScripts(_0x23d101){const _0x2ae8fb=a189_0x5e10bb,_0x52255c=resolve(_0x23d101,'package.json');if(!existsSync(_0x52255c))return null;try{const _0x3ae475=JSON[_0x2ae8fb(0x176)](readFileSync(_0x52255c,'utf-8'));return _0x3ae475[_0x2ae8fb(0x17f)]??{};}catch{return null;}}function detectPackageManager(_0x1078b7){const _0x317719=a189_0x5e10bb;if(existsSync(resolve(_0x1078b7,'bun.lockb'))||existsSync(resolve(_0x1078b7,_0x317719(0x170))))return _0x317719(0x16d);if(existsSync(resolve(_0x1078b7,'pnpm-lock.yaml')))return'pnpm';if(existsSync(resolve(_0x1078b7,_0x317719(0x19c))))return _0x317719(0x18c);return _0x317719(0x184);}async function versionCheck(_0x21bd7f){const _0x3ac79a=a189_0x5e10bb,_0x37753c=await checkCliVersion();(_0x37753c[_0x3ac79a(0x172)]||_0x37753c[_0x3ac79a(0x192)])&&(printCliUpgradeWarning(_0x37753c),assertCliVersionSupported(_0x37753c));const _0x57f79c=await checkSdkVersion(_0x21bd7f);if(_0x57f79c['needsUpgrade'])printSdkUpgradeWarning(_0x57f79c);}function spawnScript(_0x453ac2,_0x826d0a,_0x3024da,_0x275b9d){return new Promise((_0x5ab73a,_0x1f81d9)=>{const _0x11d197=a189_0x5ad4,_0x5e74b8=[_0x11d197(0x19f),_0x826d0a,..._0x3024da],_0x1106b6=spawn(_0x453ac2,_0x5e74b8,{'cwd':_0x275b9d,'stdio':_0x11d197(0x178),'shell':!![],'env':{...process.env,'PATH':''+join(_0x275b9d,_0x11d197(0x198),_0x11d197(0x1a0))+delimiter+process.env.PATH}});_0x1106b6['on'](_0x11d197(0x16c),_0x556f2a=>{const _0x468e67=_0x11d197;if(_0x556f2a===0x0||_0x556f2a===null)_0x5ab73a();else _0x1f81d9(new Error(_0x453ac2+_0x468e67(0x195)+_0x826d0a+_0x468e67(0x1a2)+_0x556f2a));}),_0x1106b6['on'](_0x11d197(0x18f),_0x1f81d9);});}function spawnViteBuildWatch(_0x3936e2){return new Promise((_0x42d02f,_0x3aa133)=>{const _0x1f6aa5=a189_0x5ad4,_0x16e36f=spawn(_0x1f6aa5(0x18d),[_0x1f6aa5(0x190),_0x1f6aa5(0x19e)],{'cwd':_0x3936e2,'stdio':_0x1f6aa5(0x178),'shell':!![],'env':{...process.env,'PATH':''+join(_0x3936e2,_0x1f6aa5(0x198),_0x1f6aa5(0x1a0))+delimiter+process.env.PATH}});_0x16e36f['on'](_0x1f6aa5(0x16c),_0x30f8e4=>{if(_0x30f8e4===0x0||_0x30f8e4===null)_0x42d02f();else _0x3aa133(new Error('vite\x20build\x20--watch\x20exited\x20with\x20code\x20'+_0x30f8e4));}),_0x16e36f['on'](_0x1f6aa5(0x18f),_0x3aa133);});}function spawnVitePreview(_0x433dec){return new Promise((_0x46aa3c,_0x56d628)=>{const _0x5c4bd3=a189_0x5ad4,_0x4034f0=spawn('vite',[_0x5c4bd3(0x18a)],{'cwd':_0x433dec,'stdio':_0x5c4bd3(0x178),'shell':!![],'env':{...process.env,'PATH':''+join(_0x433dec,_0x5c4bd3(0x198),_0x5c4bd3(0x1a0))+delimiter+process.env.PATH}});_0x4034f0['on'](_0x5c4bd3(0x16c),_0x26a1d9=>{const _0x42adaf=_0x5c4bd3;if(_0x26a1d9===0x0||_0x26a1d9===null)_0x46aa3c();else _0x56d628(new Error(_0x42adaf(0x180)+_0x26a1d9));}),_0x4034f0['on']('error',_0x56d628);});}const runFlags=[{'name':'watch','type':a189_0x5e10bb(0x17c),'description':a189_0x5e10bb(0x196),'default':![]}];export const runDefinition={'service':'run','command':a189_0x5e10bb(0x19f),'description':a189_0x5e10bb(0x185),'risk':'write','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':a189_0x5e10bb(0x174),'description':a189_0x5e10bb(0x183),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0xfbffeb=a189_0x5e10bb,_0x359d36=[];return _0x359d36['push']('\x20\x20EXAMPLES'),_0x359d36[_0xfbffeb(0x182)](_0xfbffeb(0x169)+CLI_BIN_NAME+'\x20run\x20start'),_0x359d36[_0xfbffeb(0x182)](_0xfbffeb(0x169)+CLI_BIN_NAME+_0xfbffeb(0x19a)),_0x359d36[_0xfbffeb(0x182)](_0xfbffeb(0x169)+CLI_BIN_NAME+'\x20run\x20preview'),_0x359d36[_0xfbffeb(0x182)]('\x20\x20\x20\x20'+CLI_BIN_NAME+'\x20run\x20preview\x20--watch'),_0x359d36[_0xfbffeb(0x17e)]('\x0a');},async 'execute'(_0x4d0b1c){const _0x173a56=a189_0x5e10bb,_0x246da4=process[_0x173a56(0x193)](),_0x379747=_0x4d0b1c[_0x173a56(0x187)][0x0],_0x14079f=_0x4d0b1c[_0x173a56(0x187)][_0x173a56(0x194)](0x1),_0xe41caa=readPackageScripts(_0x246da4);if(!_0xe41caa)throw CliErrors[_0x173a56(0x171)](_0x173a56(0x191));if(!_0x379747){const _0x48e191=Object[_0x173a56(0x19b)](_0xe41caa);if(_0x48e191[_0x173a56(0x1a1)]===0x0)console['log'](_0x173a56(0x197));else{console[_0x173a56(0x199)](_0x173a56(0x188));for(const _0x3c84a9 of _0x48e191){console['log'](_0x173a56(0x169)+_0x3c84a9);}console[_0x173a56(0x199)](_0x173a56(0x16e)+CLI_BIN_NAME+_0x173a56(0x186));}return{'ok':!![]};}if(!_0xe41caa[_0x379747])throw CliErrors[_0x173a56(0x171)](_0x173a56(0x177)+_0x379747+_0x173a56(0x17b),'Available:\x20'+(Object['keys'](_0xe41caa)[_0x173a56(0x17e)](',\x20')||_0x173a56(0x179)));const _0x4674c2=detectPackageManager(_0x246da4);VERSION_CHECK_SCRIPTS[_0x173a56(0x175)](_0x379747)&&await versionCheck(_0x246da4);if(_0x379747==='preview'&&_0x4d0b1c['bool'](_0x173a56(0x181)))return await Promise['all']([spawnViteBuildWatch(_0x246da4),spawnVitePreview(_0x246da4)]),{'ok':!![]};return await spawnScript(_0x4674c2,_0x379747,_0x14079f,_0x246da4),{'ok':!![]};}};
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a190_0x5228(){const _0x494c72=['json','5PgZaeV','630242jnVXei','schema','2940954JErjmy','99ZEWevw','2788748EGcZLE','3247782thkLvy','28384vuClxD','792tSoJdN','2phVbAl','export','3585281wmtKPH','1914690HyImGf'];a190_0x5228=function(){return _0x494c72;};return a190_0x5228();}const a190_0x291db9=a190_0x31c3;(function(_0x30f981,_0x108519){const _0x2e780f=a190_0x31c3,_0x5e19ae=_0x30f981();while(!![]){try{const _0x19dde9=-parseInt(_0x2e780f(0xc9))/0x1*(parseInt(_0x2e780f(0xc1))/0x2)+-parseInt(_0x2e780f(0xc3))/0x3+parseInt(_0x2e780f(0xc5))/0x4*(parseInt(_0x2e780f(0xc0))/0x5)+parseInt(_0x2e780f(0xc6))/0x6+-parseInt(_0x2e780f(0xcb))/0x7+parseInt(_0x2e780f(0xc7))/0x8*(-parseInt(_0x2e780f(0xc8))/0x9)+-parseInt(_0x2e780f(0xbe))/0xa*(-parseInt(_0x2e780f(0xc4))/0xb);if(_0x19dde9===_0x108519)break;else _0x5e19ae['push'](_0x5e19ae['shift']());}catch(_0x2d9b92){_0x5e19ae['push'](_0x5e19ae['shift']());}}}(a190_0x5228,0x80992));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x47c93a){const _0x44c2e5=await buildSchemaPayload();return{'ok':!![],'data':_0x44c2e5};}function a190_0x31c3(_0x52d74b,_0x3e2139){_0x52d74b=_0x52d74b-0xbe;const _0x522837=a190_0x5228();let _0x31c3e3=_0x522837[_0x52d74b];return _0x31c3e3;}export const schemaDefinition={'service':a190_0x291db9(0xc2),'command':a190_0x291db9(0xca),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a190_0x291db9(0xbf),'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a183_0x2d4931=a183_0x5729;(function(_0x11da34,_0x2cb730){const _0x2d22c8=a183_0x5729,_0x498f7f=_0x11da34();while(!![]){try{const _0x439e07=-parseInt(_0x2d22c8(0x1dc))/0x1*(parseInt(_0x2d22c8(0x1fd))/0x2)+parseInt(_0x2d22c8(0x1cb))/0x3*(-parseInt(_0x2d22c8(0x1f4))/0x4)+parseInt(_0x2d22c8(0x208))/0x5*(-parseInt(_0x2d22c8(0x205))/0x6)+-parseInt(_0x2d22c8(0x206))/0x7+parseInt(_0x2d22c8(0x1da))/0x8*(parseInt(_0x2d22c8(0x1e7))/0x9)+parseInt(_0x2d22c8(0x1e2))/0xa*(-parseInt(_0x2d22c8(0x1cf))/0xb)+parseInt(_0x2d22c8(0x1d3))/0xc;if(_0x439e07===_0x2cb730)break;else _0x498f7f['push'](_0x498f7f['shift']());}catch(_0x3aaf04){_0x498f7f['push'](_0x498f7f['shift']());}}}(a183_0x2f1b,0xa61d6));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x697af1){const _0x1bb9fd=a183_0x5729;if(_0x697af1===_0x1bb9fd(0x204))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x1bb9fd(0x1ef),_0x1bb9fd(0x20b),''][_0x1bb9fd(0x1f7)]('\x0a');return[_0x1bb9fd(0x1d0),''][_0x1bb9fd(0x1f7)]('\x0a');}function a183_0x5729(_0x1d04c5,_0x1585c5){_0x1d04c5=_0x1d04c5-0x1c8;const _0x2f1bfe=a183_0x2f1b();let _0x572938=_0x2f1bfe[_0x1d04c5];return _0x572938;}export const sqlCreate={'service':a183_0x2d4931(0x1cc),'command':a183_0x2d4931(0x1fe),'description':a183_0x2d4931(0x1d2),'risk':a183_0x2d4931(0x1d5),'flags':[{'name':a183_0x2d4931(0x20a),'type':a183_0x2d4931(0x1c8),'description':a183_0x2d4931(0x200)},{'name':a183_0x2d4931(0x1e0),'type':'number','description':a183_0x2d4931(0x1dd)},{'name':a183_0x2d4931(0x201),'type':'string','enum':[a183_0x2d4931(0x1cc),a183_0x2d4931(0x204)],'description':a183_0x2d4931(0x1d6)}],async 'validate'(_0x5e07eb){const _0x37499e=a183_0x2d4931;if(!_0x5e07eb[_0x37499e(0x1de)])return;if(!_0x5e07eb['str']('name')[_0x37499e(0x1e8)]())throw CliErrors[_0x37499e(0x1fa)](_0x37499e(0x20a),_0x37499e(0x1f5));const _0x18ae13=resolveProvidedDbId(_0x5e07eb);if(typeof _0x18ae13!==_0x37499e(0x1d7)||!Number[_0x37499e(0x1e4)](_0x18ae13)||_0x18ae13<=0x0)throw CliErrors[_0x37499e(0x1fa)](_0x37499e(0x1e0),_0x37499e(0x1f8));if(!_0x5e07eb[_0x37499e(0x1f6)]('mode')[_0x37499e(0x1e8)]())throw CliErrors['flagMissing']('mode',_0x37499e(0x1cd));},async 'dryRun'(_0x488fa6){const _0x4a2192=a183_0x2d4931,_0x5272ad=loadSqlProjectConfig(_0x488fa6[_0x4a2192(0x1d9)]),{sqlName:_0xb3a4d0,dbId:_0x107a54,dbName:_0x2afa2e,mode:_0x306d2f}=await resolveSqlNewInputs(_0x488fa6),_0xc860b8=buildSqlRelativePath('<server-generated-sqlCode>',_0xb3a4d0,_0x2afa2e,_0x306d2f,_0x107a54),_0x3cf391=_0x5272ad[_0x4a2192(0x1f1)]+'/'+_0xc860b8;return{'method':_0x4a2192(0x1ea),'url':_0x4a2192(0x1ee),'body':{'appCode':_0x488fa6[_0x4a2192(0x1d9)],'sqlName':_0xb3a4d0,'dbId':_0x107a54,'mode':_0x306d2f,'localPath':_0x3cf391},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x5272ad['sqlRootDir']};},async 'execute'(_0x21fda9){const _0x19c420=a183_0x2d4931,_0x14b17c=loadSqlProjectConfig(_0x21fda9['appCode']),{sqlName:_0x4de795,dbId:_0x196554,dbName:_0x52debb,mode:_0x1051ea}=await resolveSqlNewInputs(_0x21fda9),_0xb208a9=generateSqlTemplate(_0x1051ea),_0x2f4723=await createSqlQuery({'appCode':_0x21fda9['appCode'],'sqlName':_0x4de795,'dbId':_0x196554,'sqlContent':_0xb208a9}),_0x573e20=ensureRemoteSqlContent(_0x2f4723),_0x4715ea=_0x52debb||await getDbName(_0x21fda9[_0x19c420(0x1d9)],_0x196554)[_0x19c420(0x1ed)](()=>undefined),_0x4628ff=buildSqlRelativePath(_0x2f4723[_0x19c420(0x1d4)],_0x2f4723['sqlName'],_0x4715ea,_0x1051ea,_0x196554),_0x4f458c=_0x14b17c[_0x19c420(0x1f1)]+'/'+_0x4628ff,_0xfa1a7e=buildLocalSqlFileContent({'sqlCode':_0x2f4723['sqlCode'],'sqlName':_0x2f4723[_0x19c420(0x1c9)],'dbId':_0x2f4723['dbId']},_0x573e20,{'dbName':_0x4715ea,'mode':_0x1051ea,'syncedAt':new Date()[_0x19c420(0x1eb)](),'description':_0x2f4723[_0x19c420(0x1f2)]});if(await fileExists(_0x4f458c))throw CliErrors[_0x19c420(0x1e3)](_0x19c420(0x1e5)+_0x4f458c);await ensureParentDirectory(_0x4f458c),await writeFile(_0x4f458c,_0xfa1a7e,_0x19c420(0x1f0));const _0x41b81a=await readSqlLockFile(_0x14b17c['lockFilePath']),{lockData:_0x1318e4,appLock:_0x14ea85}=ensureSqlLockScope(_0x41b81a??createEmptySqlLock(),_0x14b17c[_0x19c420(0x1d9)],_0x14b17c[_0x19c420(0x207)],_0x19c420(0x20d));return _0x14ea85['sqls'][_0x2f4723[_0x19c420(0x1d4)]]={...buildSqlLockEntry(_0x2f4723,_0x573e20,computeSqlContentHash(_0xfa1a7e),{'dbName':_0x4715ea}),'path':_0x4628ff,'mode':_0x1051ea},_0x14ea85[_0x19c420(0x1e1)]=new Date()['toISOString'](),await writeSqlLockFile(_0x14b17c[_0x19c420(0x1f9)],_0x1318e4),{'ok':!![],'data':{'id':_0x2f4723['id'],'sqlCode':_0x2f4723[_0x19c420(0x1d4)],'sqlName':_0x2f4723[_0x19c420(0x1c9)],'dbId':_0x2f4723[_0x19c420(0x1fb)],'path':_0x4f458c,'mode':_0x1051ea},'message':'Created\x20SQL\x20query\x20'+_0x2f4723[_0x19c420(0x1d4)]};}};async function resolveSqlNewInputs(_0x5ec232){const _0x22309c=await resolveSqlNameInput(_0x5ec232),{dbId:_0x28287c,dbName:_0x3af80a}=await resolveDbSelection(_0x5ec232),_0x11fbaf=await resolveSqlModeInput(_0x5ec232);return{'sqlName':_0x22309c,'dbId':_0x28287c,'dbName':_0x3af80a,'mode':_0x11fbaf};}async function resolveSqlNameInput(_0x14fb02){const _0x4afec5=a183_0x2d4931,_0x590705=_0x14fb02[_0x4afec5(0x1f6)](_0x4afec5(0x20a))[_0x4afec5(0x1e8)]();if(_0x590705)return _0x590705;if(_0x14fb02['nonInteractive'])throw CliErrors[_0x4afec5(0x1fa)](_0x4afec5(0x20a),_0x4afec5(0x1f5));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x4eb17d=>_0x4eb17d[_0x4afec5(0x1e8)]()?!![]:_0x4afec5(0x1ec)}))[_0x4afec5(0x1e8)]();}async function resolveDbSelection(_0x1a0636){const _0x187050=a183_0x2d4931,_0x2da4a4=resolveProvidedDbId(_0x1a0636);if(typeof _0x2da4a4==='number'&&Number[_0x187050(0x1e4)](_0x2da4a4)&&_0x2da4a4>0x0)return{'dbId':_0x2da4a4,'dbName':await getDbName(_0x1a0636[_0x187050(0x1d9)],_0x2da4a4)[_0x187050(0x1ed)](()=>undefined)};if(_0x1a0636[_0x187050(0x1de)])throw CliErrors[_0x187050(0x1fa)]('db-id',_0x187050(0x1f8));const _0x36b377=await listDatabases(_0x1a0636[_0x187050(0x1d9)])[_0x187050(0x1ed)](()=>[]);if(_0x36b377[_0x187050(0x1f3)]===0x1)return{'dbId':_0x36b377[0x0][_0x187050(0x1fb)],'dbName':_0x36b377[0x0][_0x187050(0x1d8)]};if(_0x36b377[_0x187050(0x1f3)]>0x1){const _0x1760f4=await select({'message':_0x187050(0x1fc),'choices':[..._0x36b377['map'](_0x599e0b=>({'name':_0x599e0b[_0x187050(0x1d8)]+'\x20('+_0x599e0b[_0x187050(0x1fb)]+')','value':serializeDbSelection(_0x599e0b)})),{'name':_0x187050(0x1db),'value':_0x187050(0x203)}]});if(_0x1760f4!==_0x187050(0x203))return deserializeDbSelection(_0x1760f4);}const _0x4ceff6=await input({'message':_0x187050(0x1ff),'validate':_0x3929ec=>{const _0x4d624e=_0x187050,_0x2aa335=_0x3929ec[_0x4d624e(0x1e8)]();if(!_0x2aa335)return _0x4d624e(0x209);const _0x72114f=Number(_0x2aa335);if(!Number[_0x4d624e(0x1e9)](_0x72114f)||_0x72114f<=0x0)return _0x4d624e(0x1df);return!![];}});return{'dbId':Number(_0x4ceff6['trim']())};}async function resolveSqlModeInput(_0x388420){const _0x1e4423=a183_0x2d4931,_0x4e87d5=_0x388420['str'](_0x1e4423(0x201))[_0x1e4423(0x1e8)]();if(_0x4e87d5===_0x1e4423(0x1cc)||_0x4e87d5===_0x1e4423(0x204))return _0x4e87d5;if(_0x388420[_0x1e4423(0x1de)])throw CliErrors[_0x1e4423(0x1fa)](_0x1e4423(0x201),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x1e4423(0x20c),'value':_0x1e4423(0x1cc),'description':_0x1e4423(0x202)},{'name':_0x1e4423(0x1e6),'value':'mybatisXml','description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x19df51){const _0x3f5222=a183_0x2d4931;return JSON[_0x3f5222(0x1d1)]({'dbId':_0x19df51[_0x3f5222(0x1fb)],'dbName':_0x19df51[_0x3f5222(0x1d8)]});}function deserializeDbSelection(_0x357409){const _0x57b0be=a183_0x2d4931;try{const _0x331433=JSON[_0x57b0be(0x1ce)](_0x357409);if(typeof _0x331433[_0x57b0be(0x1fb)]===_0x57b0be(0x1d7)&&Number[_0x57b0be(0x1e4)](_0x331433['dbId']))return{'dbId':_0x331433['dbId'],'dbName':_0x331433[_0x57b0be(0x1d8)]};}catch{}throw CliErrors[_0x57b0be(0x1e3)](_0x57b0be(0x1ca)+_0x357409);}function resolveProvidedDbId(_0x425f96){const _0x286aba=a183_0x2d4931,_0x58b893=_0x425f96['flag'](_0x286aba(0x1e0));if(typeof _0x58b893==='number'&&Number[_0x286aba(0x1e4)](_0x58b893))return _0x58b893;return undefined;}function a183_0x2f1b(){const _0xddcbeb=['普通\x20SQL(sql)','new','string','sqlName','Invalid\x20database\x20selection\x20payload:\x20','1083252eozMXl','sql','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','parse','9611481CNEAeK','SELECT\x201\x20AS\x20id;','stringify','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','45325296OzAByB','sqlCode','write','Local\x20SQL\x20file\x20mode','number','dbName','appCode','416YQZRtV','✎\x20手动输入\x20dbId','5433QUPfWB','Target\x20database\x20ID','nonInteractive','dbId\x20必须为正整数','db-id','lastSync','10dnBFZp','validation','isFinite','File\x20already\x20exists:\x20','MyBatis\x20XML(mybatisXml)','216CgaBwd','trim','isInteger','POST','toISOString','SQL\x20名称不能为空','catch','/smartapi/custom/saveUserCustomSql','\x20\x20SELECT\x201\x20AS\x20id','utf8','sqlRootDir','description','length','4pziBDO','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','str','join','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','lockFilePath','flagMissing','dbId','请选择目标数据库:','54HdnLqR','create','请输入目标数据库\x20dbId:','SQL\x20query\x20display\x20name','mode','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','__manual__','mybatisXml','1726242JRqMnV','5972981JDveWK','sqlRoot','15uiLwMo','dbId\x20不能为空','name','</select>'];a183_0x2f1b=function(){return _0xddcbeb;};return a183_0x2f1b();}
|
|
1
|
+
const a191_0x12aca0=a191_0x1695;(function(_0x46ea70,_0x4e4022){const _0x2053d2=a191_0x1695,_0x180c00=_0x46ea70();while(!![]){try{const _0x230b8a=parseInt(_0x2053d2(0x1a6))/0x1*(parseInt(_0x2053d2(0x1a8))/0x2)+-parseInt(_0x2053d2(0x1b8))/0x3+-parseInt(_0x2053d2(0x175))/0x4*(parseInt(_0x2053d2(0x17a))/0x5)+-parseInt(_0x2053d2(0x191))/0x6*(parseInt(_0x2053d2(0x176))/0x7)+-parseInt(_0x2053d2(0x18d))/0x8+parseInt(_0x2053d2(0x1a5))/0x9*(parseInt(_0x2053d2(0x1a9))/0xa)+parseInt(_0x2053d2(0x179))/0xb;if(_0x230b8a===_0x4e4022)break;else _0x180c00['push'](_0x180c00['shift']());}catch(_0x13f340){_0x180c00['push'](_0x180c00['shift']());}}}(a191_0x21c9,0xd0d8f));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';function a191_0x21c9(){const _0x37d402=['length','str','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','lockFilePath','validation','请输入\x20SQL\x20名称:','name','7392208RtSHdM','join','dbName','请选择本地\x20SQL\x20模式:','18voQvCa','</select>','db-id','File\x20already\x20exists:\x20','catch','sqlRoot','dbId','sqlRootDir','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','sqlName','dbId\x20必须为正整数','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','isInteger','mode','/smartapi/custom/saveUserCustomSql','description','\x20\x20SELECT\x201\x20AS\x20id','__manual__','create','4050CmfzJN','2549SQYzgU','appCode','8HqdOed','3690RRolpI','utf8','SQL\x20名称不能为空','请输入目标数据库\x20dbId:','请选择目标数据库:','sqlCode','trim','MyBatis\x20XML(mybatisXml)','string','parse','Created\x20SQL\x20query\x20','Local\x20SQL\x20file\x20mode','普通\x20SQL(sql)','toISOString','Invalid\x20database\x20selection\x20payload:\x20','4566051eLpyaN','1324CaSujr','387611xqtdbC','map','nonInteractive','53321246bUctur','23505uLuVsK','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','POST','sql','flagMissing','dbId\x20不能为空','flag','mybatisXml','isFinite','<server-generated-sqlCode>','SQL\x20query\x20display\x20name','number'];a191_0x21c9=function(){return _0x37d402;};return a191_0x21c9();}function a191_0x1695(_0x35b219,_0x2d7c06){_0x35b219=_0x35b219-0x175;const _0x21c9de=a191_0x21c9();let _0x169511=_0x21c9de[_0x35b219];return _0x169511;}import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x2e2f09){const _0x1ed679=a191_0x1695;if(_0x2e2f09===_0x1ed679(0x181))return[_0x1ed679(0x19a),_0x1ed679(0x1a2),_0x1ed679(0x192),'']['join']('\x0a');return['SELECT\x201\x20AS\x20id;',''][_0x1ed679(0x18e)]('\x0a');}export const sqlCreate={'service':a191_0x12aca0(0x17d),'command':a191_0x12aca0(0x1a4),'description':a191_0x12aca0(0x19d),'risk':'write','flags':[{'name':'name','type':a191_0x12aca0(0x1b1),'description':a191_0x12aca0(0x184)},{'name':'db-id','type':a191_0x12aca0(0x185),'description':'Target\x20database\x20ID'},{'name':'mode','type':'string','enum':[a191_0x12aca0(0x17d),a191_0x12aca0(0x181)],'description':a191_0x12aca0(0x1b4)}],async 'validate'(_0x5a8ea4){const _0x2fe0d8=a191_0x12aca0;if(!_0x5a8ea4[_0x2fe0d8(0x178)])return;if(!_0x5a8ea4['str']('name')[_0x2fe0d8(0x1af)]())throw CliErrors[_0x2fe0d8(0x17e)](_0x2fe0d8(0x18c),_0x2fe0d8(0x188));const _0x4fc9c7=resolveProvidedDbId(_0x5a8ea4);if(typeof _0x4fc9c7!==_0x2fe0d8(0x185)||!Number[_0x2fe0d8(0x182)](_0x4fc9c7)||_0x4fc9c7<=0x0)throw CliErrors[_0x2fe0d8(0x17e)](_0x2fe0d8(0x193),'--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');if(!_0x5a8ea4[_0x2fe0d8(0x187)](_0x2fe0d8(0x19f))['trim']())throw CliErrors['flagMissing'](_0x2fe0d8(0x19f),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x41eb76){const _0x588c70=a191_0x12aca0,_0x5224f2=loadSqlProjectConfig(_0x41eb76[_0x588c70(0x1a7)]),{sqlName:_0x3286a,dbId:_0x5da765,dbName:_0x596dce,mode:_0x33f0ce}=await resolveSqlNewInputs(_0x41eb76),_0x1f46dd=buildSqlRelativePath(_0x588c70(0x183),_0x3286a,_0x596dce,_0x33f0ce,_0x5da765),_0x315680=_0x5224f2['sqlRootDir']+'/'+_0x1f46dd;return{'method':_0x588c70(0x17c),'url':_0x588c70(0x1a0),'body':{'appCode':_0x41eb76[_0x588c70(0x1a7)],'sqlName':_0x3286a,'dbId':_0x5da765,'mode':_0x33f0ce,'localPath':_0x315680},'description':_0x588c70(0x17b)+_0x5224f2[_0x588c70(0x198)]};},async 'execute'(_0x23297e){const _0x4cc5b2=a191_0x12aca0,_0x130d9e=loadSqlProjectConfig(_0x23297e[_0x4cc5b2(0x1a7)]),{sqlName:_0x1740be,dbId:_0x5a1ab0,dbName:_0x568514,mode:_0x104711}=await resolveSqlNewInputs(_0x23297e),_0x12b094=generateSqlTemplate(_0x104711),_0x3bc93f=await createSqlQuery({'appCode':_0x23297e['appCode'],'sqlName':_0x1740be,'dbId':_0x5a1ab0,'sqlContent':_0x12b094}),_0x2a74ca=ensureRemoteSqlContent(_0x3bc93f),_0x48d189=_0x568514||await getDbName(_0x23297e[_0x4cc5b2(0x1a7)],_0x5a1ab0)['catch'](()=>undefined),_0x348080=buildSqlRelativePath(_0x3bc93f['sqlCode'],_0x3bc93f[_0x4cc5b2(0x19b)],_0x48d189,_0x104711,_0x5a1ab0),_0x1e4441=_0x130d9e[_0x4cc5b2(0x198)]+'/'+_0x348080,_0x26f556=buildLocalSqlFileContent({'sqlCode':_0x3bc93f[_0x4cc5b2(0x1ae)],'sqlName':_0x3bc93f[_0x4cc5b2(0x19b)],'dbId':_0x3bc93f[_0x4cc5b2(0x197)]},_0x2a74ca,{'dbName':_0x48d189,'mode':_0x104711,'syncedAt':new Date()[_0x4cc5b2(0x1b6)](),'description':_0x3bc93f[_0x4cc5b2(0x1a1)]});if(await fileExists(_0x1e4441))throw CliErrors['validation'](_0x4cc5b2(0x194)+_0x1e4441);await ensureParentDirectory(_0x1e4441),await writeFile(_0x1e4441,_0x26f556,_0x4cc5b2(0x1aa));const _0x157b5e=await readSqlLockFile(_0x130d9e[_0x4cc5b2(0x189)]),{lockData:_0x5051bf,appLock:_0x4e8216}=ensureSqlLockScope(_0x157b5e??createEmptySqlLock(),_0x130d9e[_0x4cc5b2(0x1a7)],_0x130d9e[_0x4cc5b2(0x196)],'new');return _0x4e8216['sqls'][_0x3bc93f[_0x4cc5b2(0x1ae)]]={...buildSqlLockEntry(_0x3bc93f,_0x2a74ca,computeSqlContentHash(_0x26f556),{'dbName':_0x48d189}),'path':_0x348080,'mode':_0x104711},_0x4e8216['lastSync']=new Date()[_0x4cc5b2(0x1b6)](),await writeSqlLockFile(_0x130d9e[_0x4cc5b2(0x189)],_0x5051bf),{'ok':!![],'data':{'id':_0x3bc93f['id'],'sqlCode':_0x3bc93f['sqlCode'],'sqlName':_0x3bc93f[_0x4cc5b2(0x19b)],'dbId':_0x3bc93f[_0x4cc5b2(0x197)],'path':_0x1e4441,'mode':_0x104711},'message':_0x4cc5b2(0x1b3)+_0x3bc93f[_0x4cc5b2(0x1ae)]};}};async function resolveSqlNewInputs(_0x32a74d){const _0x3f5f65=await resolveSqlNameInput(_0x32a74d),{dbId:_0x16a194,dbName:_0x1df74a}=await resolveDbSelection(_0x32a74d),_0x123334=await resolveSqlModeInput(_0x32a74d);return{'sqlName':_0x3f5f65,'dbId':_0x16a194,'dbName':_0x1df74a,'mode':_0x123334};}async function resolveSqlNameInput(_0x25c935){const _0x447dd4=a191_0x12aca0,_0x32e51a=_0x25c935[_0x447dd4(0x187)]('name')[_0x447dd4(0x1af)]();if(_0x32e51a)return _0x32e51a;if(_0x25c935[_0x447dd4(0x178)])throw CliErrors[_0x447dd4(0x17e)](_0x447dd4(0x18c),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x447dd4(0x18b),'validate':_0x38b99d=>_0x38b99d[_0x447dd4(0x1af)]()?!![]:_0x447dd4(0x1ab)}))[_0x447dd4(0x1af)]();}async function resolveDbSelection(_0x33eed5){const _0x17cadb=a191_0x12aca0,_0x2b7a69=resolveProvidedDbId(_0x33eed5);if(typeof _0x2b7a69==='number'&&Number[_0x17cadb(0x182)](_0x2b7a69)&&_0x2b7a69>0x0)return{'dbId':_0x2b7a69,'dbName':await getDbName(_0x33eed5[_0x17cadb(0x1a7)],_0x2b7a69)['catch'](()=>undefined)};if(_0x33eed5[_0x17cadb(0x178)])throw CliErrors['flagMissing']('db-id','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.');const _0x44b2d0=await listDatabases(_0x33eed5[_0x17cadb(0x1a7)])[_0x17cadb(0x195)](()=>[]);if(_0x44b2d0[_0x17cadb(0x186)]===0x1)return{'dbId':_0x44b2d0[0x0][_0x17cadb(0x197)],'dbName':_0x44b2d0[0x0][_0x17cadb(0x18f)]};if(_0x44b2d0[_0x17cadb(0x186)]>0x1){const _0x3fda32=await select({'message':_0x17cadb(0x1ad),'choices':[..._0x44b2d0[_0x17cadb(0x177)](_0x5238e3=>({'name':_0x5238e3[_0x17cadb(0x18f)]+'\x20('+_0x5238e3[_0x17cadb(0x197)]+')','value':serializeDbSelection(_0x5238e3)})),{'name':'✎\x20手动输入\x20dbId','value':_0x17cadb(0x1a3)}]});if(_0x3fda32!==_0x17cadb(0x1a3))return deserializeDbSelection(_0x3fda32);}const _0x4e008e=await input({'message':_0x17cadb(0x1ac),'validate':_0x2319a8=>{const _0x16de84=_0x17cadb,_0x4649dd=_0x2319a8['trim']();if(!_0x4649dd)return _0x16de84(0x17f);const _0x47c8de=Number(_0x4649dd);if(!Number[_0x16de84(0x19e)](_0x47c8de)||_0x47c8de<=0x0)return _0x16de84(0x19c);return!![];}});return{'dbId':Number(_0x4e008e['trim']())};}async function resolveSqlModeInput(_0x21ac8b){const _0x33aa70=a191_0x12aca0,_0xec6789=_0x21ac8b[_0x33aa70(0x187)](_0x33aa70(0x19f))[_0x33aa70(0x1af)]();if(_0xec6789===_0x33aa70(0x17d)||_0xec6789==='mybatisXml')return _0xec6789;if(_0x21ac8b[_0x33aa70(0x178)])throw CliErrors[_0x33aa70(0x17e)](_0x33aa70(0x19f),_0x33aa70(0x199));return await select({'message':_0x33aa70(0x190),'choices':[{'name':_0x33aa70(0x1b5),'value':_0x33aa70(0x17d),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0x33aa70(0x1b0),'value':_0x33aa70(0x181),'description':'适合带动态标签的\x20MyBatis\x20XML\x20SQL'}]});}function serializeDbSelection(_0x9dcdd2){const _0x36c90c=a191_0x12aca0;return JSON['stringify']({'dbId':_0x9dcdd2[_0x36c90c(0x197)],'dbName':_0x9dcdd2[_0x36c90c(0x18f)]});}function deserializeDbSelection(_0x169085){const _0x4f651d=a191_0x12aca0;try{const _0x696fb0=JSON[_0x4f651d(0x1b2)](_0x169085);if(typeof _0x696fb0[_0x4f651d(0x197)]===_0x4f651d(0x185)&&Number[_0x4f651d(0x182)](_0x696fb0[_0x4f651d(0x197)]))return{'dbId':_0x696fb0['dbId'],'dbName':_0x696fb0[_0x4f651d(0x18f)]};}catch{}throw CliErrors[_0x4f651d(0x18a)](_0x4f651d(0x1b7)+_0x169085);}function resolveProvidedDbId(_0x30d0d3){const _0x21bae2=a191_0x12aca0,_0xdabe5b=_0x30d0d3[_0x21bae2(0x180)](_0x21bae2(0x193));if(typeof _0xdabe5b===_0x21bae2(0x185)&&Number[_0x21bae2(0x182)](_0xdabe5b))return _0xdabe5b;return undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a192_0x1f8781=a192_0x416e;(function(_0x444e6f,_0x17184d){const _0x2a2db8=a192_0x416e,_0x4d6b83=_0x444e6f();while(!![]){try{const _0x489cec=-parseInt(_0x2a2db8(0x78))/0x1*(-parseInt(_0x2a2db8(0x6b))/0x2)+parseInt(_0x2a2db8(0x82))/0x3+-parseInt(_0x2a2db8(0x75))/0x4*(-parseInt(_0x2a2db8(0x6f))/0x5)+-parseInt(_0x2a2db8(0x74))/0x6*(parseInt(_0x2a2db8(0x81))/0x7)+parseInt(_0x2a2db8(0x7f))/0x8+parseInt(_0x2a2db8(0x87))/0x9+-parseInt(_0x2a2db8(0x6e))/0xa*(parseInt(_0x2a2db8(0x84))/0xb);if(_0x489cec===_0x17184d)break;else _0x4d6b83['push'](_0x4d6b83['shift']());}catch(_0x21a9ee){_0x4d6b83['push'](_0x4d6b83['shift']());}}}(a192_0xb2b3,0x2ae0c));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 a192_0x416e(_0xf2cbe6,_0x246daf){_0xf2cbe6=_0xf2cbe6-0x69;const _0xb2b31f=a192_0xb2b3();let _0x416e3a=_0xb2b31f[_0xf2cbe6];return _0x416e3a;}export const sqlDelete={'service':a192_0x1f8781(0x6c),'command':a192_0x1f8781(0x88),'description':a192_0x1f8781(0x7e),'risk':a192_0x1f8781(0x6d),'flags':[SQLCODE_FLAG],async 'validate'(_0x2394f0){const _0x39d13e=a192_0x1f8781,_0x3c533c=loadSqlProjectConfig(_0x2394f0['appCode']),_0x1e206f=await readSqlLockFile(_0x3c533c[_0x39d13e(0x76)]);if(!_0x1e206f)throw CliErrors['validation'](_0x39d13e(0x72));},async 'dryRun'(_0xdb20a8){const _0x547dc8=a192_0x1f8781,_0x56bbb9=loadSqlProjectConfig(_0xdb20a8[_0x547dc8(0x6a)]),_0x46a7fe=await readSqlLockFile(_0x56bbb9[_0x547dc8(0x76)]);if(!_0x46a7fe)throw CliErrors['validation']('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x5f3f62}=ensureSqlLockScope(_0x46a7fe,_0xdb20a8[_0x547dc8(0x6a)],_0x56bbb9[_0x547dc8(0x79)],_0x547dc8(0x88)),_0x54891a=_0xdb20a8[_0x547dc8(0x69)](_0x547dc8(0x80)),_0x1b622a=_0x5f3f62[_0x547dc8(0x86)][_0x54891a];if(!_0x1b622a)throw CliErrors[_0x547dc8(0x7d)](_0x547dc8(0x83)+_0x54891a+'\x22.');return{'method':_0x547dc8(0x89),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x54891a,'id':_0x1b622a[_0x547dc8(0x70)],'localPath':resolveLocalSqlFilePath(_0x56bbb9,_0x54891a,_0x1b622a)},'description':_0x547dc8(0x8a)+_0x54891a+_0x547dc8(0x7c)+_0x56bbb9[_0x547dc8(0x7a)]};},async 'execute'(_0x346bdf){const _0x3e9f01=a192_0x1f8781,_0x359700=loadSqlProjectConfig(_0x346bdf[_0x3e9f01(0x6a)]),_0x5d8914=await readSqlLockFile(_0x359700['lockFilePath']);if(!_0x5d8914)throw CliErrors[_0x3e9f01(0x7d)](_0x3e9f01(0x77));const {lockData:_0x2b4884,appLock:_0x406ab5}=ensureSqlLockScope(_0x5d8914,_0x346bdf['appCode'],_0x359700[_0x3e9f01(0x79)],_0x3e9f01(0x88)),_0x2aeb54=_0x346bdf[_0x3e9f01(0x69)](_0x3e9f01(0x80)),_0x587a65=_0x406ab5[_0x3e9f01(0x86)][_0x2aeb54];if(!_0x587a65)throw CliErrors[_0x3e9f01(0x7d)](_0x3e9f01(0x83)+_0x2aeb54+'\x22.');await deleteSqlQuery({'id':_0x587a65[_0x3e9f01(0x70)],'sqlCode':_0x2aeb54}),_0x406ab5['sqls']=Object[_0x3e9f01(0x73)](Object[_0x3e9f01(0x85)](_0x406ab5[_0x3e9f01(0x86)])['filter'](([_0x456972])=>_0x456972!==_0x2aeb54)),_0x406ab5[_0x3e9f01(0x71)]=new Date()[_0x3e9f01(0x7b)](),await writeSqlLockFile(_0x359700[_0x3e9f01(0x76)],_0x2b4884);const _0x1c7888=resolveLocalSqlFilePath(_0x359700,_0x2aeb54,_0x587a65);let _0x5f073f;await fileExists(_0x1c7888)&&(_0x5f073f=await moveToTrash(_0x359700['projectRoot'],_0x359700['trashDir'],_0x1c7888),await cleanupEmptyDirectories(dirname(_0x1c7888),_0x359700['sqlRootDir']));const _0x20c8e0={'deleted':_0x2aeb54,'remoteId':_0x587a65[_0x3e9f01(0x70)]};if(_0x5f073f)_0x20c8e0['trashedTo']=_0x5f073f;return{'ok':!![],'data':_0x20c8e0,'message':'Deleted\x20'+_0x2aeb54+(_0x5f073f?'\x20(local\x20file\x20moved\x20to\x20trash)':'')};}};async function moveToTrash(_0xafed6d,_0x3a1894,_0x3b2e43){const _0x4a90d1=a192_0x1f8781,_0x1931bb=new Date()[_0x4a90d1(0x7b)]()['replace'](/[:.]/g,'-'),_0x11edc2=relative(_0xafed6d,_0x3b2e43),_0x6bb2c9=join(_0x3a1894,_0x1931bb,_0x11edc2);return await mkdir(dirname(_0x6bb2c9),{'recursive':!![]}),await rename(_0x3b2e43,_0x6bb2c9),_0x6bb2c9;}function a192_0xb2b3(){const _0xcea13f=['Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','434344UZJNPL','sqlcode','110663TASVvx','518487NDetOC','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','110uoDoZg','entries','sqls','2904057QwjVcl','delete','POST','Would\x20delete\x20SQL\x20','str','appCode','6zxRpiy','sql','high-risk-write','327190bOqYKR','203575GKnWmY','remoteId','lastSync','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.','fromEntries','42OjgqjA','4TQpmHB','lockFilePath','SQL\x20lock\x20file\x20not\x20found.','7657qmrEfr','sqlRoot','trashDir','toISOString','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','validation'];a192_0xb2b3=function(){return _0xcea13f;};return a192_0xb2b3();}async function cleanupEmptyDirectories(_0x25502f,_0x5e3381){let _0x241100=resolve(_0x25502f);const _0x3007ce=resolve(_0x5e3381);while(_0x241100['startsWith'](''+_0x3007ce+sep)||_0x241100===_0x3007ce){if(_0x241100===_0x3007ce)return;try{const _0x186032=await readdir(_0x241100);if(_0x186032['length']>0x0)return;await rmdir(_0x241100);}catch{return;}_0x241100=dirname(_0x241100);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a193_0x1bbcdc=a193_0x46c6;function a193_0x392d(){const _0x5702cd=['2137446YMyjIG','boolean','detail','str','dbId','sqlCode','6963385LtvCyQ','sqlContent','5010580bEMPOl','54sksQpN','sqlcode','16OZlDEv','7119500RVHVxh','3xxtQeg','411365SVmgdb','4tEIWgA','960890eHtDqZ','12HetmKm','appCode','verbose','sql','265062xkgELQ','bool'];a193_0x392d=function(){return _0x5702cd;};return a193_0x392d();}function a193_0x46c6(_0x356957,_0x445902){_0x356957=_0x356957-0x139;const _0x392dab=a193_0x392d();let _0x46c61c=_0x392dab[_0x356957];return _0x46c61c;}(function(_0x153466,_0x41baf8){const _0x1310dd=a193_0x46c6,_0x2c0892=_0x153466();while(!![]){try{const _0x4b9aae=parseInt(_0x1310dd(0x14f))/0x1*(-parseInt(_0x1310dd(0x149))/0x2)+parseInt(_0x1310dd(0x147))/0x3*(-parseInt(_0x1310dd(0x142))/0x4)+-parseInt(_0x1310dd(0x148))/0x5*(-parseInt(_0x1310dd(0x143))/0x6)+-parseInt(_0x1310dd(0x14a))/0x7+-parseInt(_0x1310dd(0x145))/0x8*(-parseInt(_0x1310dd(0x13a))/0x9)+parseInt(_0x1310dd(0x146))/0xa+parseInt(_0x1310dd(0x140))/0xb*(parseInt(_0x1310dd(0x14b))/0xc);if(_0x4b9aae===_0x41baf8)break;else _0x2c0892['push'](_0x2c0892['shift']());}catch(_0x2b96b2){_0x2c0892['push'](_0x2c0892['shift']());}}}(a193_0x392d,0x9c587));import{getSqlQueryInfo}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDetail={'service':a193_0x1bbcdc(0x14e),'command':a193_0x1bbcdc(0x13c),'description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':'read','flags':[SQLCODE_FLAG,{'name':a193_0x1bbcdc(0x14d),'type':a193_0x1bbcdc(0x13b),'description':'Return\x20full\x20raw\x20SQL\x20query\x20object'}],async 'execute'(_0x42ea64){const _0x2e35f8=a193_0x1bbcdc,_0x544883=await getSqlQueryInfo(_0x42ea64[_0x2e35f8(0x14c)],_0x42ea64[_0x2e35f8(0x13d)](_0x2e35f8(0x144))),_0x19f62f=_0x42ea64[_0x2e35f8(0x139)]('verbose');if(_0x19f62f)return{'ok':!![],'data':_0x544883};const _0x575cf5=_0x544883[_0x2e35f8(0x13e)]?await getDbName(_0x42ea64[_0x2e35f8(0x14c)],_0x544883['dbId']):undefined;return{'ok':!![],'data':{'sqlCode':_0x544883[_0x2e35f8(0x13f)],'sqlName':_0x544883['sqlName'],'db':_0x575cf5?_0x575cf5+'\x20('+_0x544883[_0x2e35f8(0x13e)]+')':_0x544883[_0x2e35f8(0x13e)]??'','description':_0x544883['description']??'','sqlContent':_0x544883[_0x2e35f8(0x141)]??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a194_0xb736=a194_0x3297;(function(_0x26968d,_0x59b7ec){const _0x5bf3a5=a194_0x3297,_0x2de89c=_0x26968d();while(!![]){try{const _0x1340d7=parseInt(_0x5bf3a5(0x132))/0x1*(parseInt(_0x5bf3a5(0x13e))/0x2)+-parseInt(_0x5bf3a5(0x13d))/0x3*(parseInt(_0x5bf3a5(0x137))/0x4)+parseInt(_0x5bf3a5(0x13c))/0x5+parseInt(_0x5bf3a5(0x131))/0x6+parseInt(_0x5bf3a5(0x13b))/0x7*(parseInt(_0x5bf3a5(0x138))/0x8)+-parseInt(_0x5bf3a5(0x12b))/0x9+-parseInt(_0x5bf3a5(0x134))/0xa;if(_0x1340d7===_0x59b7ec)break;else _0x2de89c['push'](_0x2de89c['shift']());}catch(_0x57e593){_0x2de89c['push'](_0x2de89c['shift']());}}}(a194_0x19d5,0x85690));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a194_0x19d5(){const _0x15603a=['string','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','length','32184hesMNy','72NTmHmH','\x20row(s)\x20in\x20','90150bnrFCS','sql','str','22004Zezazp','1142256jVKmkH','now','execError','7hWYNRR','2792980qOYqAZ','195kmDcSy','15122paqCAM','params','read','exec','sqlcode','Returned\x20','execResult','3042954ukedjj','execSuccess'];a194_0x19d5=function(){return _0x15603a;};return a194_0x19d5();}function a194_0x3297(_0x2c4123,_0x500717){_0x2c4123=_0x2c4123-0x127;const _0x19d5be=a194_0x19d5();let _0x329754=_0x19d5be[_0x2c4123];return _0x329754;}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a194_0xb736(0x135),'command':a194_0xb736(0x127),'description':a194_0xb736(0x12f),'risk':a194_0xb736(0x140),'flags':[SQLCODE_FLAG,{'name':a194_0xb736(0x13f),'type':a194_0xb736(0x12d),'description':a194_0xb736(0x12e)}],async 'execute'(_0xd930de){const _0x4cdd30=a194_0xb736,_0x181bf1=parseJsonParams(_0xd930de['str'](_0x4cdd30(0x13f))),_0x4daf30=Date[_0x4cdd30(0x139)](),_0x2ff07a=await executeSql(_0xd930de['appCode'],_0xd930de[_0x4cdd30(0x136)](_0x4cdd30(0x128)),_0x181bf1),_0x421fef=Date['now']()-_0x4daf30,_0x4d6b2a=_0x2ff07a?.[_0x4cdd30(0x12a)]??_0x2ff07a,_0x5453a6=_0x2ff07a?.[_0x4cdd30(0x12c)]??!![];if(!_0x5453a6)return{'ok':![],'data':{'error':_0x2ff07a?.[_0x4cdd30(0x13a)]||'SQL\x20execution\x20failed','elapsed':_0x421fef},'message':'SQL\x20execution\x20failed'};const _0x3987a6=Array['isArray'](_0x4d6b2a)?_0x4d6b2a:[];return{'ok':!![],'data':{'rows':_0x3987a6,'rowCount':_0x3987a6[_0x4cdd30(0x130)],'elapsed':_0x421fef},'message':_0x4cdd30(0x129)+_0x3987a6[_0x4cdd30(0x130)]+_0x4cdd30(0x133)+_0x421fef+'ms'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x5e750c,_0x5c191a){const _0x430ced=a195_0x339c,_0x205776=_0x5e750c();while(!![]){try{const _0x164453=-parseInt(_0x430ced(0x17d))/0x1+-parseInt(_0x430ced(0x178))/0x2*(-parseInt(_0x430ced(0x172))/0x3)+-parseInt(_0x430ced(0x179))/0x4*(-parseInt(_0x430ced(0x174))/0x5)+-parseInt(_0x430ced(0x176))/0x6+-parseInt(_0x430ced(0x17a))/0x7*(parseInt(_0x430ced(0x17c))/0x8)+-parseInt(_0x430ced(0x17b))/0x9*(-parseInt(_0x430ced(0x175))/0xa)+-parseInt(_0x430ced(0x177))/0xb*(-parseInt(_0x430ced(0x173))/0xc);if(_0x164453===_0x5c191a)break;else _0x205776['push'](_0x205776['shift']());}catch(_0x51429c){_0x205776['push'](_0x205776['shift']());}}}(a195_0x17ad,0xc8e12));import{sqlList}from'../../commands/sql/list.js';import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';function a195_0x339c(_0x4d86f8,_0x3b0e0c){_0x4d86f8=_0x4d86f8-0x172;const _0x17ade4=a195_0x17ad();let _0x339c2a=_0x17ade4[_0x4d86f8];return _0x339c2a;}import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlExec,sqlPull,sqlDelete];function a195_0x17ad(){const _0x6ef8d3=['211349hltBFs','3MVBwGv','341244pcfItx','4420uZvgSU','2676130ZXjqEJ','6789060OqOdrz','418xQaoYO','3062498yXbYmf','92scFGTG','10758846DAMcez','36hxhQXn','8xbmUwZ'];a195_0x17ad=function(){return _0x6ef8d3;};return a195_0x17ad();}
|
package/lib/commands/sql/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a196_0x29fdf7=a196_0x48dc;(function(_0x5a3027,_0xbdb5df){const _0x27ffe2=a196_0x48dc,_0x458e13=_0x5a3027();while(!![]){try{const _0x1ee157=-parseInt(_0x27ffe2(0x19c))/0x1+parseInt(_0x27ffe2(0x187))/0x2*(parseInt(_0x27ffe2(0x195))/0x3)+parseInt(_0x27ffe2(0x1a2))/0x4*(-parseInt(_0x27ffe2(0x190))/0x5)+-parseInt(_0x27ffe2(0x193))/0x6*(-parseInt(_0x27ffe2(0x1a6))/0x7)+-parseInt(_0x27ffe2(0x18e))/0x8*(-parseInt(_0x27ffe2(0x1a3))/0x9)+parseInt(_0x27ffe2(0x1ad))/0xa+parseInt(_0x27ffe2(0x198))/0xb;if(_0x1ee157===_0xbdb5df)break;else _0x458e13['push'](_0x458e13['shift']());}catch(_0x32fd89){_0x458e13['push'](_0x458e13['shift']());}}}(a196_0xdb16,0x8b988));import{listSqlQueries}from'../../core/api-client.js';function a196_0x48dc(_0x21fdba,_0x31c038){_0x21fdba=_0x21fdba-0x187;const _0xdb16f6=a196_0xdb16();let _0x48dcd8=_0xdb16f6[_0x21fdba];return _0x48dcd8;}function a196_0xdb16(){const _0xb2b41f=['Page\x20size','2457965UoUfED','sqlcode','length','538374zyNZRe','sqlCode','1108173TMbRGV','all','bool','1686938MbBpvu','string','List\x20custom\x20SQL\x20queries','appCode','357935ZJapDb','list','pagesize','read','number','boolean','4pwxuSt','117alyRqM','name','verbose','7bawVFx','sqlName','No\x20custom\x20SQL\x20queries\x20found.','dbId','Found\x20','totalCount','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','6884930zLXBJJ','2FbrJKE','Filter\x20by\x20SQL\x20name','page','num','str','description','tableData','74056Jscdll'];a196_0xdb16=function(){return _0xb2b41f;};return a196_0xdb16();}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':a196_0x29fdf7(0x19d),'description':a196_0x29fdf7(0x19a),'risk':a196_0x29fdf7(0x19f),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a196_0x29fdf7(0x1a4),'type':a196_0x29fdf7(0x199),'description':a196_0x29fdf7(0x188)},{'name':a196_0x29fdf7(0x189),'type':a196_0x29fdf7(0x1a0),'description':'Page\x20number','default':0x1},{'name':a196_0x29fdf7(0x19e),'type':a196_0x29fdf7(0x1a0),'description':a196_0x29fdf7(0x18f)},{'name':a196_0x29fdf7(0x1a5),'type':a196_0x29fdf7(0x1a1),'description':a196_0x29fdf7(0x1ac)}],async 'execute'(_0x5bbc82){const _0x51d76b=a196_0x29fdf7,_0x42edc3=await listSqlQueries(_0x5bbc82[_0x51d76b(0x19b)],{'sqlCode':_0x5bbc82[_0x51d76b(0x18b)](_0x51d76b(0x191))||undefined,'sqlName':_0x5bbc82['str']('name')||undefined,'currentPage':_0x5bbc82[_0x51d76b(0x18a)](_0x51d76b(0x189)),'pageSize':_0x5bbc82['num']('pagesize',0x32)}),_0x1fc36d=_0x5bbc82[_0x51d76b(0x197)](_0x51d76b(0x1a5)),_0x2fcd6d=_0x42edc3[_0x51d76b(0x18d)]??[],_0x222582=_0x42edc3['paging']?.[_0x51d76b(0x1ab)]??_0x2fcd6d[_0x51d76b(0x192)];let _0x26abcf;return _0x1fc36d?_0x26abcf=_0x2fcd6d:_0x26abcf=await Promise[_0x51d76b(0x196)](_0x2fcd6d['map'](async _0x54384d=>{const _0x29b075=_0x51d76b;let _0x3121d1;try{_0x3121d1=_0x54384d[_0x29b075(0x1a9)]?await getDbName(_0x5bbc82[_0x29b075(0x19b)],_0x54384d['dbId']):undefined;}catch{}return{'sqlCode':_0x54384d[_0x29b075(0x194)],'sqlName':_0x54384d[_0x29b075(0x1a7)],'description':_0x54384d[_0x29b075(0x18c)]??'','db':_0x3121d1?_0x3121d1+'\x20('+_0x54384d[_0x29b075(0x1a9)]+')':_0x54384d[_0x29b075(0x1a9)]??''};})),{'ok':!![],'data':_0x26abcf,'message':_0x2fcd6d[_0x51d76b(0x192)]===0x0?_0x51d76b(0x1a8):_0x51d76b(0x1aa)+_0x2fcd6d['length']+'\x20SQL\x20queries\x20(total:\x20'+_0x222582+').'};}};
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a189_0x1a1019=a189_0x12f1;(function(_0x5c60fe,_0x200308){const _0x5393ec=a189_0x12f1,_0x55d3b5=_0x5c60fe();while(!![]){try{const _0x4b04ea=-parseInt(_0x5393ec(0xbd))/0x1*(parseInt(_0x5393ec(0xdd))/0x2)+parseInt(_0x5393ec(0xe6))/0x3*(parseInt(_0x5393ec(0xaf))/0x4)+-parseInt(_0x5393ec(0xb6))/0x5*(parseInt(_0x5393ec(0xae))/0x6)+-parseInt(_0x5393ec(0xbf))/0x7+-parseInt(_0x5393ec(0xe1))/0x8*(-parseInt(_0x5393ec(0xad))/0x9)+-parseInt(_0x5393ec(0xd2))/0xa*(-parseInt(_0x5393ec(0xb9))/0xb)+-parseInt(_0x5393ec(0xc4))/0xc;if(_0x4b04ea===_0x200308)break;else _0x55d3b5['push'](_0x55d3b5['shift']());}catch(_0x1509cf){_0x55d3b5['push'](_0x55d3b5['shift']());}}}(a189_0x5333,0x513ad));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';function a189_0x12f1(_0x26f9dc,_0x2bdea5){_0x26f9dc=_0x26f9dc-0xa6;const _0x533323=a189_0x5333();let _0x12f1f6=_0x533323[_0x26f9dc];return _0x12f1f6;}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(_0x1c4ff8,_0x1d6a9d){const _0x770298=a189_0x12f1,_0x670080=[];let _0x307981=0x1;while(!![]){const _0x367daa=await listSqlQueries(_0x1c4ff8,{'currentPage':_0x307981,'pageSize':PAGE_SIZE,'sqlCode':_0x1d6a9d[_0x770298(0xe3)],'sqlName':_0x1d6a9d['sqlName']}),_0x4cd6b4=_0x367daa['tableData']??[];_0x670080[_0x770298(0xac)](..._0x4cd6b4);if(_0x4cd6b4[_0x770298(0xcb)]===0x0)break;const _0x2ac123=_0x367daa[_0x770298(0xdf)]?.[_0x770298(0xc2)];if(_0x2ac123!=null?_0x670080['length']>=_0x2ac123:_0x4cd6b4['length']<PAGE_SIZE)break;_0x307981++;}return _0x670080;}async function ensureSqlContent(_0x138fae){const _0x4dca8b=a189_0x12f1;if(_0x138fae[_0x4dca8b(0xc5)]!=null&&String(_0x138fae[_0x4dca8b(0xc5)])['length']>0x0)return _0x138fae;return getSqlQueryDetail(_0x138fae[_0x4dca8b(0xe3)]);}function a189_0x5333(){const _0xb2e13a=['sqlContent','Force\x20pull\x20cancelled.','skipped','would_pull','sqlRootDir','Filter\x20by\x20SQL\x20display\x20name','length','description','sqlName','Would\x20pull\x20','catch','path','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','5104930dazPXa','mybatisXml','apps','cancelled','name','dbId','sqls','sql','filter','str','replace','106696KzbtXs','trimStart','paging','sqlRoot','231992PrMgnT','nonInteractive','sqlCode','force','string','3XznXfT','\x20failed','unchanged','conflict','read','sqlcode','utf8','Force\x20overwrite\x20local\x20unsynced\x20changes','push','99NoERjo','30eTPqSE','1993836CvAWTa','toISOString','\x20written,\x20','\x20skipped,\x20','POST','appCode','pull','507700CDagMW','message','Pull\x20complete:\x20','11nvsnSC','boolean','test','lockFilePath','5urEcyz','local\x20differs\x20from\x20remote','1206261bOSKxB','No\x20remote\x20SQL\x20queries\x20matched.','bool','totalCount','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','581532MvfYEH'];a189_0x5333=function(){return _0xb2e13a;};return a189_0x5333();}export const sqlPull={'service':a189_0x1a1019(0xd9),'command':a189_0x1a1019(0xb5),'description':a189_0x1a1019(0xd1),'risk':a189_0x1a1019(0xa8),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a189_0x1a1019(0xd6),'type':a189_0x1a1019(0xe5),'description':a189_0x1a1019(0xca)},{'name':a189_0x1a1019(0xe4),'type':a189_0x1a1019(0xba),'description':a189_0x1a1019(0xab)}],async 'dryRun'(_0x1ea0b7){const _0x16d6a7=a189_0x1a1019,_0x59b108=loadSqlProjectConfig(_0x1ea0b7['appCode']),_0x40589a=await readSqlLockFile(_0x59b108[_0x16d6a7(0xbc)]),{appLock:_0xd89660}=ensureSqlLockScope(_0x40589a??createEmptySqlLock(),_0x59b108[_0x16d6a7(0xb4)],_0x59b108[_0x16d6a7(0xe0)],_0x16d6a7(0xb5)),_0x3cd0d1=await fetchAllSqlQueries(_0x1ea0b7[_0x16d6a7(0xb4)],{'sqlCode':_0x1ea0b7[_0x16d6a7(0xdb)](_0x16d6a7(0xa9))||undefined,'sqlName':_0x1ea0b7['str'](_0x16d6a7(0xd6))||undefined}),_0x46fce7=[];for(const _0x22da70 of _0x3cd0d1){const _0x3ee99a=await ensureSqlContent(_0x22da70),_0x43e1d9=ensureRemoteSqlContent(_0x3ee99a),_0x845285=detectModeFromSql(_0x3ee99a),_0x2e20fe=_0x3ee99a[_0x16d6a7(0xd7)]?await getDbName(_0x1ea0b7[_0x16d6a7(0xb4)],Number(_0x3ee99a[_0x16d6a7(0xd7)]))['catch'](()=>undefined):undefined,_0x1208cb=buildLocalSqlFileContent({'sqlCode':_0x3ee99a[_0x16d6a7(0xe3)],'sqlName':_0x3ee99a[_0x16d6a7(0xcd)],'dbId':_0x3ee99a['dbId']},_0x43e1d9,{'dbName':_0x2e20fe,'mode':_0x845285,'syncedAt':new Date()[_0x16d6a7(0xb0)](),'description':_0x3ee99a['description']}),_0x2ee1c5=buildSqlLockEntry(_0x3ee99a,_0x43e1d9,'',{'dbName':_0x2e20fe}),_0x5cb3b7=resolveLocalSqlFilePath(_0x59b108,_0x3ee99a[_0x16d6a7(0xe3)],_0x2ee1c5);let _0x3dba38=_0x16d6a7(0xc8),_0x454f32;if(await fileExists(_0x5cb3b7)){const _0x37dc0d=await readFile(_0x5cb3b7,_0x16d6a7(0xaa));isEquivalentPulledSqlFile(_0x37dc0d,_0x1208cb,_0x845285)?(_0x3dba38=_0x16d6a7(0xc7),_0x454f32=_0x16d6a7(0xa6)):(_0x3dba38=_0x16d6a7(0xa7),_0x454f32=_0x16d6a7(0xc3));}_0x46fce7['push']({'sqlCode':_0x3ee99a['sqlCode'],'sqlName':_0x3ee99a[_0x16d6a7(0xcd)],'filePath':_0x5cb3b7,'status':_0x3dba38,'reason':_0x454f32});}return{'method':_0x16d6a7(0xb3),'url':'/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','body':{'appCode':_0x1ea0b7['appCode'],'sqlCode':_0x1ea0b7[_0x16d6a7(0xdb)](_0x16d6a7(0xa9))||null,'sqlName':_0x1ea0b7[_0x16d6a7(0xdb)](_0x16d6a7(0xd6))||null,'files':_0x46fce7},'description':_0x16d6a7(0xce)+_0x46fce7['length']+'\x20SQL\x20file(s)\x20into\x20'+_0x59b108[_0x16d6a7(0xc9)]};},async 'execute'(_0x289dbc){const _0x336617=a189_0x1a1019,_0x16e27c=loadSqlProjectConfig(_0x289dbc[_0x336617(0xb4)]),_0x25cfed=await readSqlLockFile(_0x16e27c[_0x336617(0xbc)]),{lockData:_0x266846,appLock:_0x4a951c}=ensureSqlLockScope(_0x25cfed??createEmptySqlLock(),_0x16e27c[_0x336617(0xb4)],_0x16e27c['sqlRoot'],'pull'),_0x33638b=_0x289dbc[_0x336617(0xc1)](_0x336617(0xe4)),_0x2c6c73=await fetchAllSqlQueries(_0x289dbc[_0x336617(0xb4)],{'sqlCode':_0x289dbc[_0x336617(0xdb)](_0x336617(0xa9))||undefined,'sqlName':_0x289dbc[_0x336617(0xdb)]('name')||undefined});if(_0x2c6c73[_0x336617(0xcb)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x336617(0xc0)};const _0x51ff3c=[],_0x5aaaab=[];for(const _0x27de5d of _0x2c6c73){try{_0x51ff3c['push'](await ensureSqlContent(_0x27de5d));}catch(_0x15a110){_0x5aaaab[_0x336617(0xac)]({'sqlCode':_0x27de5d['sqlCode'],'error':_0x15a110 instanceof Error?_0x15a110[_0x336617(0xb7)]:String(_0x15a110)});}}if(_0x33638b&&!_0x289dbc[_0x336617(0xe2)]){let _0x53084a=![];for(const _0x42a228 of _0x51ff3c){const _0x67686b=detectModeFromSql(_0x42a228),_0x4862ad=_0x42a228[_0x336617(0xd7)]?await getDbName(_0x289dbc[_0x336617(0xb4)],Number(_0x42a228[_0x336617(0xd7)]))[_0x336617(0xcf)](()=>undefined):undefined,_0x1bc3a3=buildLocalSqlFileContent({'sqlCode':_0x42a228['sqlCode'],'sqlName':_0x42a228[_0x336617(0xcd)],'dbId':_0x42a228['dbId']},ensureRemoteSqlContent(_0x42a228),{'dbName':_0x4862ad,'mode':_0x67686b,'syncedAt':new Date()['toISOString'](),'description':_0x42a228[_0x336617(0xcc)]}),_0x51268e=resolveLocalSqlFilePath(_0x16e27c,_0x42a228[_0x336617(0xe3)],buildSqlLockEntry(_0x42a228,ensureRemoteSqlContent(_0x42a228),'',{'dbName':_0x4862ad}));if(await fileExists(_0x51268e)){const _0x563699=await readFile(_0x51268e,_0x336617(0xaa));if(!isEquivalentPulledSqlFile(_0x563699,_0x1bc3a3,_0x67686b)){_0x53084a=!![];break;}}}if(_0x53084a){const _0x3a11fd=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x3a11fd)throw CliErrors[_0x336617(0xd5)](_0x336617(0xc6));}}const _0xa75508=cloneSqlLockData(_0x266846),_0x5a7687=_0xa75508[_0x336617(0xd4)][_0x16e27c[_0x336617(0xb4)]],_0x41c2c6=[],_0x341717=[];for(const _0xa24623 of _0x51ff3c){const _0x3c762f=_0x5a7687[_0x336617(0xd8)][_0xa24623[_0x336617(0xe3)]],_0x3912c8=ensureRemoteSqlContent(_0xa24623),_0x2818e1=detectModeFromSql(_0xa24623),_0x6329d4=_0xa24623[_0x336617(0xd7)]?await getDbName(_0x289dbc['appCode'],Number(_0xa24623[_0x336617(0xd7)]))[_0x336617(0xcf)](()=>undefined):undefined,_0x2ef1c1=buildLocalSqlFileContent({'sqlCode':_0xa24623['sqlCode'],'sqlName':_0xa24623[_0x336617(0xcd)],'dbId':_0xa24623[_0x336617(0xd7)]},_0x3912c8,{'dbName':_0x6329d4,'mode':_0x2818e1,'syncedAt':new Date()[_0x336617(0xb0)](),'description':_0xa24623['description']}),_0x5a3f19=buildSqlLockEntry(_0xa24623,_0x3912c8,computeSqlContentHash(_0x2ef1c1),{'dbName':_0x6329d4}),_0x2cdd6a=_0x5a3f19['path'],_0x3ea91a=join(_0x16e27c[_0x336617(0xc9)],_0x2cdd6a);try{if(await fileExists(_0x3ea91a)){const _0x30fd18=await readFile(_0x3ea91a,_0x336617(0xaa));if(isEquivalentPulledSqlFile(_0x30fd18,_0x2ef1c1,_0x2818e1)){_0x341717[_0x336617(0xac)]({'sqlCode':_0xa24623[_0x336617(0xe3)],'reason':_0x336617(0xa6)}),_0x5a7687[_0x336617(0xd8)][_0xa24623[_0x336617(0xe3)]]={..._0x5a3f19,'hash':computeSqlContentHash(_0x30fd18),'path':_0x2cdd6a};continue;}if(!_0x33638b){_0x341717[_0x336617(0xac)]({'sqlCode':_0xa24623[_0x336617(0xe3)],'reason':_0x336617(0xbe)});continue;}}const _0x22c027=_0x3c762f?.[_0x336617(0xd0)]?join(_0x16e27c['sqlRootDir'],_0x3c762f['path']):undefined;_0x22c027&&_0x22c027!==_0x3ea91a&&await fileExists(_0x22c027)&&await rm(_0x22c027,{'force':!![]}),await ensureParentDirectory(_0x3ea91a),await writeFile(_0x3ea91a,_0x2ef1c1,'utf8'),_0x5a7687[_0x336617(0xd8)][_0xa24623['sqlCode']]={..._0x5a3f19,'path':_0x2cdd6a},_0x41c2c6['push']({'sqlCode':_0xa24623[_0x336617(0xe3)],'filePath':_0x3ea91a});}catch(_0x4b8c0a){_0x5aaaab[_0x336617(0xac)]({'sqlCode':_0xa24623[_0x336617(0xe3)],'error':_0x4b8c0a instanceof Error?_0x4b8c0a['message']:String(_0x4b8c0a)});}}return _0x5a7687['lastSync']=new Date()[_0x336617(0xb0)](),await writeSqlLockFile(_0x16e27c[_0x336617(0xbc)],_0xa75508),{'ok':_0x5aaaab[_0x336617(0xcb)]===0x0,'data':{'pulled':_0x41c2c6,'skipped':_0x341717,'failed':_0x5aaaab},'message':_0x336617(0xb8)+_0x41c2c6['length']+_0x336617(0xb1)+_0x341717['length']+_0x336617(0xb2)+_0x5aaaab[_0x336617(0xcb)]+_0x336617(0xe7)};}};function detectModeFromSql(_0x369ff3){const _0x3ce116=a189_0x1a1019,_0x3c7e00=ensureRemoteSqlContent(_0x369ff3),_0x3d9602=stripLocalSqlMetadata(_0x3c7e00,_0x3ce116(0xd3))[_0x3ce116(0xde)]();if(/^<(select|insert|update|delete)\b/i[_0x3ce116(0xbb)](_0x3d9602))return _0x3ce116(0xd3);return _0x3ce116(0xd9);}function isEquivalentPulledSqlFile(_0x5e8650,_0x5ce28d,_0x5d07cd){return normalizePullComparableContent(_0x5e8650,_0x5d07cd)===normalizePullComparableContent(_0x5ce28d,_0x5d07cd);}function normalizePullComparableContent(_0x26966a,_0x9186ba){const _0x12b117=a189_0x1a1019,_0x383550=_0x26966a[_0x12b117(0xdc)](/\r\n/g,'\x0a')['split']('\x0a'),_0x55acaa=_0x383550[_0x12b117(0xda)](_0x52e4e2=>!isSyncedAtMetadataLine(_0x52e4e2,_0x9186ba));return _0x55acaa['join']('\x0a');}function isSyncedAtMetadataLine(_0x5985c7,_0x3093cd){const _0x2b2664=a189_0x1a1019;if(_0x3093cd===_0x2b2664(0xd3))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x5985c7);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x2b2664(0xbb)](_0x5985c7);}
|
|
1
|
+
const a197_0x226a4a=a197_0x2956;(function(_0x63f39a,_0x4243d4){const _0x8f1cb6=a197_0x2956,_0x5ecdb6=_0x63f39a();while(!![]){try{const _0x58fbd6=-parseInt(_0x8f1cb6(0x93))/0x1+-parseInt(_0x8f1cb6(0xbe))/0x2+-parseInt(_0x8f1cb6(0x9c))/0x3+parseInt(_0x8f1cb6(0x98))/0x4*(parseInt(_0x8f1cb6(0xca))/0x5)+-parseInt(_0x8f1cb6(0xc9))/0x6+parseInt(_0x8f1cb6(0xc6))/0x7+-parseInt(_0x8f1cb6(0xa5))/0x8*(-parseInt(_0x8f1cb6(0xbd))/0x9);if(_0x58fbd6===_0x4243d4)break;else _0x5ecdb6['push'](_0x5ecdb6['shift']());}catch(_0x2c4e95){_0x5ecdb6['push'](_0x5ecdb6['shift']());}}}(a197_0x3e82,0xe0b70));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';function a197_0x2956(_0x267d55,_0x1a38ff){_0x267d55=_0x267d55-0x91;const _0x3e825d=a197_0x3e82();let _0x295627=_0x3e825d[_0x267d55];return _0x295627;}const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x258785,_0x411dfc){const _0x546146=a197_0x2956,_0x59b7b8=[];let _0x1b9864=0x1;while(!![]){const _0xd9d97=await listSqlQueries(_0x258785,{'currentPage':_0x1b9864,'pageSize':PAGE_SIZE,'sqlCode':_0x411dfc[_0x546146(0xa3)],'sqlName':_0x411dfc[_0x546146(0xa8)]}),_0x50859a=_0xd9d97[_0x546146(0xac)]??[];_0x59b7b8['push'](..._0x50859a);if(_0x50859a[_0x546146(0x9d)]===0x0)break;const _0x4ed2aa=_0xd9d97[_0x546146(0xb6)]?.[_0x546146(0xa9)];if(_0x4ed2aa!=null?_0x59b7b8[_0x546146(0x9d)]>=_0x4ed2aa:_0x50859a[_0x546146(0x9d)]<PAGE_SIZE)break;_0x1b9864++;}return _0x59b7b8;}async function ensureSqlContent(_0x115c18){const _0x120fdd=a197_0x2956;if(_0x115c18['sqlContent']!=null&&String(_0x115c18['sqlContent'])[_0x120fdd(0x9d)]>0x0)return _0x115c18;return getSqlQueryDetail(_0x115c18[_0x120fdd(0xa3)]);}export const sqlPull={'service':'sql','command':'pull','description':a197_0x226a4a(0x94),'risk':a197_0x226a4a(0xab),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':a197_0x226a4a(0xb4),'description':a197_0x226a4a(0xc0)},{'name':a197_0x226a4a(0x91),'type':'boolean','description':a197_0x226a4a(0xce)}],async 'dryRun'(_0x3976c1){const _0x5c0b99=a197_0x226a4a,_0x52c31d=loadSqlProjectConfig(_0x3976c1[_0x5c0b99(0xba)]),_0x5cb7b5=await readSqlLockFile(_0x52c31d['lockFilePath']),{appLock:_0xe09721}=ensureSqlLockScope(_0x5cb7b5??createEmptySqlLock(),_0x52c31d['appCode'],_0x52c31d[_0x5c0b99(0xa2)],_0x5c0b99(0x92)),_0x15227c=await fetchAllSqlQueries(_0x3976c1['appCode'],{'sqlCode':_0x3976c1[_0x5c0b99(0xcd)](_0x5c0b99(0x96))||undefined,'sqlName':_0x3976c1['str'](_0x5c0b99(0xb0))||undefined}),_0x4e4932=[];for(const _0xb4a57f of _0x15227c){const _0x3cc8d3=await ensureSqlContent(_0xb4a57f),_0x3bcd84=ensureRemoteSqlContent(_0x3cc8d3),_0x2e0372=detectModeFromSql(_0x3cc8d3),_0x53beb5=_0x3cc8d3[_0x5c0b99(0xbb)]?await getDbName(_0x3976c1[_0x5c0b99(0xba)],Number(_0x3cc8d3['dbId']))[_0x5c0b99(0xb2)](()=>undefined):undefined,_0x3e5654=buildLocalSqlFileContent({'sqlCode':_0x3cc8d3[_0x5c0b99(0xa3)],'sqlName':_0x3cc8d3['sqlName'],'dbId':_0x3cc8d3[_0x5c0b99(0xbb)]},_0x3bcd84,{'dbName':_0x53beb5,'mode':_0x2e0372,'syncedAt':new Date()['toISOString'](),'description':_0x3cc8d3[_0x5c0b99(0x9b)]}),_0x4066eb=buildSqlLockEntry(_0x3cc8d3,_0x3bcd84,'',{'dbName':_0x53beb5}),_0x316fa4=resolveLocalSqlFilePath(_0x52c31d,_0x3cc8d3[_0x5c0b99(0xa3)],_0x4066eb);let _0x52e915=_0x5c0b99(0xa4),_0x5d1f88;if(await fileExists(_0x316fa4)){const _0x40b47f=await readFile(_0x316fa4,_0x5c0b99(0xaf));isEquivalentPulledSqlFile(_0x40b47f,_0x3e5654,_0x2e0372)?(_0x52e915=_0x5c0b99(0xc1),_0x5d1f88=_0x5c0b99(0xaa)):(_0x52e915=_0x5c0b99(0xa7),_0x5d1f88=_0x5c0b99(0xcb));}_0x4e4932[_0x5c0b99(0xbc)]({'sqlCode':_0x3cc8d3[_0x5c0b99(0xa3)],'sqlName':_0x3cc8d3[_0x5c0b99(0xa8)],'filePath':_0x316fa4,'status':_0x52e915,'reason':_0x5d1f88});}return{'method':_0x5c0b99(0x9f),'url':_0x5c0b99(0x9a),'body':{'appCode':_0x3976c1['appCode'],'sqlCode':_0x3976c1[_0x5c0b99(0xcd)](_0x5c0b99(0x96))||null,'sqlName':_0x3976c1[_0x5c0b99(0xcd)](_0x5c0b99(0xb0))||null,'files':_0x4e4932},'description':_0x5c0b99(0xbf)+_0x4e4932['length']+_0x5c0b99(0x97)+_0x52c31d['sqlRootDir']};},async 'execute'(_0x3388be){const _0x2b360d=a197_0x226a4a,_0x2d8a60=loadSqlProjectConfig(_0x3388be['appCode']),_0x23c595=await readSqlLockFile(_0x2d8a60['lockFilePath']),{lockData:_0x4d3618,appLock:_0xbd9ba1}=ensureSqlLockScope(_0x23c595??createEmptySqlLock(),_0x2d8a60[_0x2b360d(0xba)],_0x2d8a60[_0x2b360d(0xa2)],_0x2b360d(0x92)),_0x4cbb66=_0x3388be[_0x2b360d(0xb3)](_0x2b360d(0x91)),_0x451d59=await fetchAllSqlQueries(_0x3388be[_0x2b360d(0xba)],{'sqlCode':_0x3388be[_0x2b360d(0xcd)](_0x2b360d(0x96))||undefined,'sqlName':_0x3388be[_0x2b360d(0xcd)](_0x2b360d(0xb0))||undefined});if(_0x451d59['length']===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x2b360d(0xa0)};const _0x2da7bb=[],_0xd0a2e2=[];for(const _0x20d831 of _0x451d59){try{_0x2da7bb[_0x2b360d(0xbc)](await ensureSqlContent(_0x20d831));}catch(_0x321a6b){_0xd0a2e2[_0x2b360d(0xbc)]({'sqlCode':_0x20d831['sqlCode'],'error':_0x321a6b instanceof Error?_0x321a6b[_0x2b360d(0x9e)]:String(_0x321a6b)});}}if(_0x4cbb66&&!_0x3388be[_0x2b360d(0xad)]){let _0x2700c3=![];for(const _0x40776f of _0x2da7bb){const _0x10c2cd=detectModeFromSql(_0x40776f),_0x12dda1=_0x40776f['dbId']?await getDbName(_0x3388be[_0x2b360d(0xba)],Number(_0x40776f[_0x2b360d(0xbb)]))[_0x2b360d(0xb2)](()=>undefined):undefined,_0x202531=buildLocalSqlFileContent({'sqlCode':_0x40776f[_0x2b360d(0xa3)],'sqlName':_0x40776f[_0x2b360d(0xa8)],'dbId':_0x40776f[_0x2b360d(0xbb)]},ensureRemoteSqlContent(_0x40776f),{'dbName':_0x12dda1,'mode':_0x10c2cd,'syncedAt':new Date()['toISOString'](),'description':_0x40776f[_0x2b360d(0x9b)]}),_0x3b142f=resolveLocalSqlFilePath(_0x2d8a60,_0x40776f['sqlCode'],buildSqlLockEntry(_0x40776f,ensureRemoteSqlContent(_0x40776f),'',{'dbName':_0x12dda1}));if(await fileExists(_0x3b142f)){const _0x3df556=await readFile(_0x3b142f,_0x2b360d(0xaf));if(!isEquivalentPulledSqlFile(_0x3df556,_0x202531,_0x10c2cd)){_0x2700c3=!![];break;}}}if(_0x2700c3){const _0x1f5472=await confirmForceOverwrite('Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.');if(!_0x1f5472)throw CliErrors[_0x2b360d(0xae)](_0x2b360d(0xa1));}}const _0x22c732=cloneSqlLockData(_0x4d3618),_0x5e8f5f=_0x22c732[_0x2b360d(0xc4)][_0x2d8a60[_0x2b360d(0xba)]],_0x5e20d4=[],_0x393236=[];for(const _0x1bbbd6 of _0x2da7bb){const _0x865035=_0x5e8f5f['sqls'][_0x1bbbd6['sqlCode']],_0x16f245=ensureRemoteSqlContent(_0x1bbbd6),_0x262550=detectModeFromSql(_0x1bbbd6),_0x8c6344=_0x1bbbd6[_0x2b360d(0xbb)]?await getDbName(_0x3388be[_0x2b360d(0xba)],Number(_0x1bbbd6[_0x2b360d(0xbb)]))[_0x2b360d(0xb2)](()=>undefined):undefined,_0x4b9ee8=buildLocalSqlFileContent({'sqlCode':_0x1bbbd6['sqlCode'],'sqlName':_0x1bbbd6['sqlName'],'dbId':_0x1bbbd6[_0x2b360d(0xbb)]},_0x16f245,{'dbName':_0x8c6344,'mode':_0x262550,'syncedAt':new Date()[_0x2b360d(0xb8)](),'description':_0x1bbbd6['description']}),_0x3fe226=buildSqlLockEntry(_0x1bbbd6,_0x16f245,computeSqlContentHash(_0x4b9ee8),{'dbName':_0x8c6344}),_0x24b5f8=_0x3fe226['path'],_0x197543=join(_0x2d8a60[_0x2b360d(0x95)],_0x24b5f8);try{if(await fileExists(_0x197543)){const _0x534106=await readFile(_0x197543,_0x2b360d(0xaf));if(isEquivalentPulledSqlFile(_0x534106,_0x4b9ee8,_0x262550)){_0x393236['push']({'sqlCode':_0x1bbbd6[_0x2b360d(0xa3)],'reason':_0x2b360d(0xaa)}),_0x5e8f5f[_0x2b360d(0xb1)][_0x1bbbd6[_0x2b360d(0xa3)]]={..._0x3fe226,'hash':computeSqlContentHash(_0x534106),'path':_0x24b5f8};continue;}if(!_0x4cbb66){_0x393236['push']({'sqlCode':_0x1bbbd6[_0x2b360d(0xa3)],'reason':_0x2b360d(0xc5)});continue;}}const _0x5b222e=_0x865035?.[_0x2b360d(0xd0)]?join(_0x2d8a60[_0x2b360d(0x95)],_0x865035[_0x2b360d(0xd0)]):undefined;_0x5b222e&&_0x5b222e!==_0x197543&&await fileExists(_0x5b222e)&&await rm(_0x5b222e,{'force':!![]}),await ensureParentDirectory(_0x197543),await writeFile(_0x197543,_0x4b9ee8,_0x2b360d(0xaf)),_0x5e8f5f[_0x2b360d(0xb1)][_0x1bbbd6[_0x2b360d(0xa3)]]={..._0x3fe226,'path':_0x24b5f8},_0x5e20d4['push']({'sqlCode':_0x1bbbd6[_0x2b360d(0xa3)],'filePath':_0x197543});}catch(_0x1f103b){_0xd0a2e2[_0x2b360d(0xbc)]({'sqlCode':_0x1bbbd6[_0x2b360d(0xa3)],'error':_0x1f103b instanceof Error?_0x1f103b[_0x2b360d(0x9e)]:String(_0x1f103b)});}}return _0x5e8f5f['lastSync']=new Date()[_0x2b360d(0xb8)](),await writeSqlLockFile(_0x2d8a60[_0x2b360d(0xcc)],_0x22c732),{'ok':_0xd0a2e2['length']===0x0,'data':{'pulled':_0x5e20d4,'skipped':_0x393236,'failed':_0xd0a2e2},'message':'Pull\x20complete:\x20'+_0x5e20d4['length']+_0x2b360d(0xa6)+_0x393236[_0x2b360d(0x9d)]+_0x2b360d(0xc3)+_0xd0a2e2['length']+_0x2b360d(0xc2)};}};function detectModeFromSql(_0x571162){const _0x2e3625=a197_0x226a4a,_0x5ca7b6=ensureRemoteSqlContent(_0x571162),_0x415221=stripLocalSqlMetadata(_0x5ca7b6,_0x2e3625(0x99))[_0x2e3625(0xc8)]();if(/^<(select|insert|update|delete)\b/i['test'](_0x415221))return'mybatisXml';return _0x2e3625(0xcf);}function isEquivalentPulledSqlFile(_0x4bb0d3,_0x3acdc3,_0x442026){return normalizePullComparableContent(_0x4bb0d3,_0x442026)===normalizePullComparableContent(_0x3acdc3,_0x442026);}function normalizePullComparableContent(_0x1e0217,_0x44009e){const _0x465998=a197_0x226a4a,_0x11af7f=_0x1e0217['replace'](/\r\n/g,'\x0a')[_0x465998(0xc7)]('\x0a'),_0x20e66b=_0x11af7f[_0x465998(0xb5)](_0x1de9e7=>!isSyncedAtMetadataLine(_0x1de9e7,_0x44009e));return _0x20e66b[_0x465998(0xb7)]('\x0a');}function a197_0x3e82(){const _0x6e94=['push','18891ONhHCA','3400306kDkmtc','Would\x20pull\x20','Filter\x20by\x20SQL\x20display\x20name','skipped','\x20failed','\x20skipped,\x20','apps','local\x20differs\x20from\x20remote','7590079NEVIQD','split','trimStart','10638228QEYVdJ','815PipCsZ','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','lockFilePath','str','Force\x20overwrite\x20local\x20unsynced\x20changes','sql','path','force','pull','859283esNpzL','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','sqlRootDir','sqlcode','\x20SQL\x20file(s)\x20into\x20','31760mNbJmd','mybatisXml','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','description','1401657ZSVOHO','length','message','POST','No\x20remote\x20SQL\x20queries\x20matched.','Force\x20pull\x20cancelled.','sqlRoot','sqlCode','would_pull','12736AvYDnv','\x20written,\x20','conflict','sqlName','totalCount','unchanged','read','tableData','nonInteractive','cancelled','utf8','name','sqls','catch','bool','string','filter','paging','join','toISOString','test','appCode','dbId'];a197_0x3e82=function(){return _0x6e94;};return a197_0x3e82();}function isSyncedAtMetadataLine(_0x4c9fcc,_0x259240){const _0x394487=a197_0x226a4a;if(_0x259240===_0x394487(0x99))return/^\s*<!--\s*@lovrabet\.syncedAt:/['test'](_0x4c9fcc);return/^\s*--\s*@lovrabet\.syncedAt:/[_0x394487(0xb9)](_0x4c9fcc);}
|