@lovrabet/rabetbase-cli 2.3.5-beta.1 → 2.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/add.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/remote-directory.js +1 -1
- package/lib/commands/app/remove.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/delete.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/list.js +1 -1
- package/lib/commands/app-config/set.js +1 -1
- package/lib/commands/app-config/shared.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-registry.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/dry-run.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/filter.js +1 -1
- package/lib/commands/data/getOne.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/data/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/generate.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-audit.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/dataset/restore.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/init/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/menu/update.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/standard-page-status.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/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.js +1 -1
- package/lib/commands/project/create/non-interactive.js +1 -1
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.js +1 -1
- package/lib/commands/project/create/use-format-code.js +1 -1
- package/lib/commands/project/create/use-install-dependencies.js +1 -1
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/init.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/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/save.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/commands/workspace/add.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/commands/workspace/remove.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/copy-directory.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/rules-cdn.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1242f8,_0x34eb90){const _0x8271c4=a141_0x1886,_0xb95f24=_0x1242f8();while(!![]){try{const _0x11e742=-parseInt(_0x8271c4(0x167))/0x1*(parseInt(_0x8271c4(0x162))/0x2)+-parseInt(_0x8271c4(0x166))/0x3*(parseInt(_0x8271c4(0x161))/0x4)+parseInt(_0x8271c4(0x160))/0x5+parseInt(_0x8271c4(0x163))/0x6*(parseInt(_0x8271c4(0x169))/0x7)+parseInt(_0x8271c4(0x16a))/0x8*(-parseInt(_0x8271c4(0x15f))/0x9)+parseInt(_0x8271c4(0x164))/0xa*(-parseInt(_0x8271c4(0x168))/0xb)+-parseInt(_0x8271c4(0x15e))/0xc*(-parseInt(_0x8271c4(0x165))/0xd);if(_0x11e742===_0x34eb90)break;else _0xb95f24['push'](_0xb95f24['shift']());}catch(_0x478c33){_0xb95f24['push'](_0xb95f24['shift']());}}}(a141_0x539f,0x7facb));import{roleList}from'../../commands/role/list.js';function a141_0x539f(){const _0x5e3965=['7aIJHSG','192ZzvClB','10495248AdMfBk','205839OhFPBD','232810kdqdIV','4DQhwjD','7608UwBZMe','5826306ZcNPil','5818840unArid','13eQIEce','407298ZdbMNc','27yVFISB','11SDTnZA'];a141_0x539f=function(){return _0x5e3965;};return a141_0x539f();}function a141_0x1886(_0x57e65a,_0x5d4391){_0x57e65a=_0x57e65a-0x15e;const _0x539f95=a141_0x539f();let _0x188685=_0x539f95[_0x57e65a];return _0x188685;}import{roleDetail}from'../../commands/role/detail.js';import{roleCreate}from'../../commands/role/create.js';import{roleUpdate}from'../../commands/role/update.js';import{roleDelete}from'../../commands/role/delete.js';import{roleUserResolve}from'../../commands/role/user-resolve.js';import{roleUserAdd}from'../../commands/role/user-add.js';import{roleUserRemove}from'../../commands/role/user-remove.js';export const roleDefinitions=[roleList,roleDetail,roleCreate,roleUpdate,roleDelete,roleUserResolve,roleUserAdd,roleUserRemove];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a142_0x44c235=a142_0x4aec;function a142_0x4433(){const _0x5539c9=['list','1976230lTLXDO','number','\x20role(s)','313600FhJUuL','page','read','35DhuLXJ','208014lgZaUg','str','Invalid\x20--type\x20\x22','Use\x20one\x20of:\x20','roleType','CUSTOM','52CPqRHv','validation','449832BEMnLa','54461msLvTE','DEV','toUpperCase','8805FibpiE','--page\x20must\x20be\x20greater\x20than\x20or\x20equal\x20to\x201.','List\x20user\x20groups\x20(roles)\x20for\x20the\x20current\x20app','map','pagesize','string','9WljIjk','num','trim','filter','appCode','type','ADMIN','570664TsiVGr','join','role','Filter\x20by\x20role\x20type','1smQFNz'];a142_0x4433=function(){return _0x5539c9;};return a142_0x4433();}(function(_0x42f63d,_0x1d704d){const _0xd2faea=a142_0x4aec,_0x3ef1a0=_0x42f63d();while(!![]){try{const _0xe7d500=parseInt(_0xd2faea(0x1d1))/0x1*(-parseInt(_0xd2faea(0x1bc))/0x2)+parseInt(_0xd2faea(0x1c0))/0x3*(-parseInt(_0xd2faea(0x1ba))/0x4)+-parseInt(_0xd2faea(0x1b0))/0x5+-parseInt(_0xd2faea(0x1b4))/0x6*(-parseInt(_0xd2faea(0x1b3))/0x7)+-parseInt(_0xd2faea(0x1cd))/0x8*(-parseInt(_0xd2faea(0x1c6))/0x9)+parseInt(_0xd2faea(0x1ad))/0xa+parseInt(_0xd2faea(0x1bd))/0xb;if(_0xe7d500===_0x1d704d)break;else _0x3ef1a0['push'](_0x3ef1a0['shift']());}catch(_0x1a9980){_0x3ef1a0['push'](_0x3ef1a0['shift']());}}}(a142_0x4433,0x1da75));import{listAppRoles}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{projectRole}from'../../commands/role/shared.js';function a142_0x4aec(_0x5ad942,_0x4cd91a){_0x5ad942=_0x5ad942-0x1ac;const _0x44337a=a142_0x4433();let _0x4aece4=_0x44337a[_0x5ad942];return _0x4aece4;}const ROLE_TYPES=[a142_0x44c235(0x1cc),a142_0x44c235(0x1be),'USER',a142_0x44c235(0x1b9)];export const roleList={'service':a142_0x44c235(0x1cf),'command':a142_0x44c235(0x1ac),'description':a142_0x44c235(0x1c2),'risk':a142_0x44c235(0x1b2),'flags':[APPCODE_FLAG_OPTIONAL,{'name':a142_0x44c235(0x1cb),'type':a142_0x44c235(0x1c5),'required':![],'description':a142_0x44c235(0x1d0),'enum':ROLE_TYPES},{'name':a142_0x44c235(0x1b1),'type':'number','description':'Page\x20index\x20(1-based)','default':0x1},{'name':a142_0x44c235(0x1c4),'type':a142_0x44c235(0x1ae),'description':'Page\x20size\x20(1-100)','default':0x64}],async 'validate'(_0x2722ba){const _0x5f1d85=a142_0x44c235,_0x315eb0=_0x2722ba[_0x5f1d85(0x1b5)](_0x5f1d85(0x1cb))[_0x5f1d85(0x1c8)]();if(_0x315eb0&&!ROLE_TYPES['includes'](_0x315eb0[_0x5f1d85(0x1bf)]()))throw CliErrors['validation'](_0x5f1d85(0x1b6)+_0x315eb0+'\x22.',_0x5f1d85(0x1b7)+ROLE_TYPES[_0x5f1d85(0x1ce)](',\x20')+'.');const _0x33ce19=_0x2722ba[_0x5f1d85(0x1c7)]('page',0x1),_0x142653=_0x2722ba[_0x5f1d85(0x1c7)](_0x5f1d85(0x1c4),0x64);if(_0x33ce19<0x1)throw CliErrors['validation'](_0x5f1d85(0x1c1));if(_0x142653<0x1||_0x142653>0x64)throw CliErrors[_0x5f1d85(0x1bb)]('--pagesize\x20must\x20be\x20between\x201\x20and\x20100.');},async 'execute'(_0x3eb640){const _0x27db5f=a142_0x44c235,_0x40efb7=_0x3eb640[_0x27db5f(0x1c7)](_0x27db5f(0x1b1),0x1)||0x1,_0xad058=_0x3eb640[_0x27db5f(0x1c7)]('pagesize',0x64)||0x64,_0x22e991=_0x3eb640[_0x27db5f(0x1b5)](_0x27db5f(0x1cb))[_0x27db5f(0x1c8)]()[_0x27db5f(0x1bf)](),{items:_0x23b274,paging:_0xc4ff19}=await listAppRoles(_0x3eb640[_0x27db5f(0x1ca)],{'currentPage':_0x40efb7,'pageSize':_0xad058}),_0x11b1c0=_0x22e991?_0x23b274[_0x27db5f(0x1c9)](_0xaffa7=>_0xaffa7[_0x27db5f(0x1b8)]===_0x22e991):_0x23b274,_0x577e70=_0x11b1c0[_0x27db5f(0x1c3)](projectRole);return{'ok':!![],'data':{'roles':_0x577e70,'paging':_0xc4ff19},'message':'Found\x20'+_0x577e70['length']+_0x27db5f(0x1af)};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a143_0x27acf6=a143_0x5cc4;(function(_0x3d05fd,_0x1bb44c){const _0x57bda8=a143_0x5cc4,_0x32e8dc=_0x3d05fd();while(!![]){try{const _0x29d433=parseInt(_0x57bda8(0x191))/0x1+parseInt(_0x57bda8(0x1cd))/0x2+-parseInt(_0x57bda8(0x1a4))/0x3+-parseInt(_0x57bda8(0x1b0))/0x4+-parseInt(_0x57bda8(0x1ab))/0x5*(parseInt(_0x57bda8(0x1a8))/0x6)+-parseInt(_0x57bda8(0x19b))/0x7+parseInt(_0x57bda8(0x1b2))/0x8*(parseInt(_0x57bda8(0x1a6))/0x9);if(_0x29d433===_0x1bb44c)break;else _0x32e8dc['push'](_0x32e8dc['shift']());}catch(_0xb908fd){_0x32e8dc['push'](_0x32e8dc['shift']());}}}(a143_0xb612,0x65d45));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':a143_0x27acf6(0x1c8),'required':!![],'description':'Role\x20id\x20(from\x20`role\x20list`)'};export const ROLE_REF_FLAG={'name':a143_0x27acf6(0x1c0),'type':a143_0x27acf6(0x1a3),'required':!![],'description':'Role\x20id\x20or\x20role\x20name\x20(CUSTOM\x20roles\x20may\x20be\x20referenced\x20by\x20name)'};export const USER_REF_FLAG={'name':a143_0x27acf6(0x1c5),'type':a143_0x27acf6(0x1a3),'required':!![],'description':a143_0x27acf6(0x1c1)};export const NAME_FLAG={'name':a143_0x27acf6(0x189),'type':a143_0x27acf6(0x1a3),'required':!![],'description':a143_0x27acf6(0x194)};export const USER_NAME_FLAG={'name':a143_0x27acf6(0x189),'type':a143_0x27acf6(0x1a3),'required':!![],'description':a143_0x27acf6(0x1c3)};export const REMARK_FLAG={'name':a143_0x27acf6(0x198),'type':a143_0x27acf6(0x1a3),'required':![],'description':a143_0x27acf6(0x1ae)};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':a143_0x27acf6(0x1c8),'required':![],'description':a143_0x27acf6(0x1be)};export const BUILTIN_ROLE_TYPES=[a143_0x27acf6(0x195),'DEV','USER'];export function isBuiltinRole(_0x5dc3d9){const _0x1ee149=a143_0x27acf6;return BUILTIN_ROLE_TYPES[_0x1ee149(0x193)](_0x5dc3d9);}export function assertCustomRole(_0x449641,_0x552f87){const _0x51ccaa=a143_0x27acf6;if(_0x449641[_0x51ccaa(0x19c)]!==_0x51ccaa(0x1b8))throw CliErrors[_0x51ccaa(0x1a5)]('Cannot\x20'+_0x552f87+'\x20built-in\x20role\x20'+_0x449641[_0x51ccaa(0x1bf)]+'\x20('+_0x449641[_0x51ccaa(0x19c)]+').',_0x51ccaa(0x197));}export function assertPermConfigurable(_0x327667){const _0x360045=a143_0x27acf6;if(_0x327667[_0x360045(0x19c)]==='DEV'||_0x327667[_0x360045(0x19c)]==='ADMIN')throw CliErrors[_0x360045(0x1a5)](_0x360045(0x1ca)+_0x327667['roleName']+'\x20('+_0x327667['roleType']+').','DEV\x20/\x20ADMIN\x20keep\x20full\x20access\x20by\x20design;\x20configure\x20a\x20CUSTOM\x20role\x20instead.');}export function projectRole(_0x4b6138){const _0x343e79=a143_0x27acf6;return{'id':_0x4b6138['id'],'roleName':_0x4b6138[_0x343e79(0x1bf)],'roleType':_0x4b6138[_0x343e79(0x19c)],'remark':_0x4b6138[_0x343e79(0x198)],'userCount':_0x4b6138['userCount'],'permitCount':_0x4b6138[_0x343e79(0x1b9)],'builtin':isBuiltinRole(_0x4b6138[_0x343e79(0x19c)])};}export async function resolveRoleRef(_0xb75952,_0x2b04c8){const _0x474737=a143_0x27acf6,_0x466e48=_0x2b04c8['trim']();if(!_0x466e48)throw CliErrors['validation'](_0x474737(0x1b1),_0x474737(0x1bb));if(/^\d+$/[_0x474737(0x19a)](_0x466e48))return getRoleById(_0xb75952,Number(_0x466e48));const _0x5dc6ed=await listAllAppRoles(_0xb75952),_0x246331=_0x5dc6ed[_0x474737(0x1a7)](_0x27aad1=>_0x27aad1['roleName']===_0x466e48);if(_0x246331['length']===0x0)throw CliErrors[_0x474737(0x1a5)](_0x474737(0x1ad)+_0x466e48+_0x474737(0x1c6)+_0xb75952+'.',_0x474737(0x18f));if(_0x246331[_0x474737(0x1a9)]>0x1){const _0x44f1b9=_0x246331[_0x474737(0x1af)](_0x2fef42=>_0x2fef42['id'])[_0x474737(0x19f)](',\x20');throw CliErrors[_0x474737(0x1a5)](_0x474737(0x1ad)+_0x466e48+'\x22\x20is\x20ambiguous\x20(ids:\x20'+_0x44f1b9+').','Disambiguate\x20with\x20--role\x20<id>.');}return _0x246331[0x0];}export async function getRoleById(_0x3ccf3c,_0x3ffa09){const _0x51a98c=a143_0x27acf6,_0x32e3e2=await getAppRole(_0x3ffa09);if(!_0x32e3e2)throw CliErrors[_0x51a98c(0x1a5)](_0x51a98c(0x18d)+_0x3ffa09+'\x20not\x20found\x20in\x20app\x20'+_0x3ccf3c+'.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.');return _0x32e3e2;}async function listAllAppRoles(_0x54ab61){const _0x4586f1=a143_0x27acf6,_0x2dc63a=0x64,_0x5d978d=[];for(let _0x40efd0=0x1;;_0x40efd0+=0x1){const {items:_0x148c69,paging:_0x4a69b6}=await listAppRoles(_0x54ab61,{'currentPage':_0x40efd0,'pageSize':_0x2dc63a});_0x5d978d['push'](..._0x148c69);if(_0x148c69['length']<_0x2dc63a||_0x4a69b6&&_0x5d978d[_0x4586f1(0x1a9)]>=_0x4a69b6['totalCount'])return _0x5d978d;}}export async function resolveTenantCode(){const _0x4add92=a143_0x27acf6,_0x1a5496=await getSessionUserInfo(),_0x146a2d=_0x1a5496?.['user']?.[_0x4add92(0x1cb)]?.[_0x4add92(0x19d)];if(!_0x146a2d)throw CliErrors[_0x4add92(0x1aa)]('Cannot\x20resolve\x20current\x20tenant.\x20Run\x20`rabetbase\x20auth\x20login`\x20first.');return _0x146a2d;}function matchMember(_0x56b0cb,_0x4751d7){const _0x4538fb=a143_0x27acf6,_0x1f66b7=_0x4751d7[_0x4538fb(0x1a2)]()[_0x4538fb(0x1bd)]();return(_0x56b0cb['nickname']??'')[_0x4538fb(0x1bd)]()===_0x1f66b7||(_0x56b0cb[_0x4538fb(0x18a)]??'')[_0x4538fb(0x1bd)]()===_0x1f66b7;}function a143_0x5cc4(_0x1cc7a6,_0x29465b){_0x1cc7a6=_0x1cc7a6-0x188;const _0xb61289=a143_0xb612();let _0x5cc48e=_0xb61289[_0x1cc7a6];return _0x5cc48e;}export async function resolveUserRef(_0x1c26a6){const _0x1fcb12=a143_0x27acf6,_0x5f099b=_0x1c26a6[_0x1fcb12(0x1a2)]();if(!_0x5f099b)throw CliErrors['validation']('Missing\x20user\x20reference.',_0x1fcb12(0x1c7));const _0xdd213d=await resolveTenantCode(),_0x47b3a=await getTenantMembers(_0xdd213d);if(/^\d+$/[_0x1fcb12(0x19a)](_0x5f099b)){const _0x166eab=Number(_0x5f099b),_0x18a326=_0x47b3a[_0x1fcb12(0x1c2)](_0x158866=>_0x158866[_0x1fcb12(0x1c9)]===_0x166eab);return{'userId':_0x166eab,'username':_0x18a326?.[_0x1fcb12(0x18a)]??String(_0x166eab),'nickname':_0x18a326?.[_0x1fcb12(0x1cc)],'matchedBy':'id'};}const _0x429a51=_0x47b3a[_0x1fcb12(0x1a7)](_0x197242=>matchMember(_0x197242,_0x5f099b));if(_0x429a51['length']===0x0)throw CliErrors[_0x1fcb12(0x1a5)]('No\x20tenant\x20member\x20matches\x20\x22'+_0x5f099b+'\x22.','Check\x20the\x20nickname/username,\x20or\x20pass\x20--user\x20<id>.');if(_0x429a51['length']>0x1){const _0x308c0f=_0x429a51['map'](_0x3c3add=>(_0x3c3add[_0x1fcb12(0x1cc)]??_0x3c3add[_0x1fcb12(0x18a)]??'?')+'('+_0x3c3add[_0x1fcb12(0x1c9)]+')')[_0x1fcb12(0x19f)](',\x20');throw CliErrors[_0x1fcb12(0x1a5)](_0x1fcb12(0x1ac)+_0x5f099b+_0x1fcb12(0x1bc)+_0x308c0f+'.',_0x1fcb12(0x19e));}const _0x3c81e6=_0x429a51[0x0];return{'userId':_0x3c81e6[_0x1fcb12(0x1c9)],'username':_0x3c81e6[_0x1fcb12(0x18a)]??String(_0x3c81e6[_0x1fcb12(0x1c9)]),'nickname':_0x3c81e6[_0x1fcb12(0x1cc)],'matchedBy':'name'};}function a143_0xb612(){const _0x3f4cbf=['name','username','/smartapi/permit/user-role/update-user-list','splice','Role\x20id\x20','\x20member(s)\x20but\x20role\x20has\x20','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles,\x20or\x20pass\x20--role\x20<id>.','dryRun','455019DhsTPN','expect-user-count','includes','Role\x20name','ADMIN','flag','Only\x20CUSTOM\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','remark','userList','test','4117771hwkZTF','roleType','tenant_code','Disambiguate\x20with\x20--user\x20<id>.','join','\x20not\x20found\x20in\x20the\x20user-role\x20list.','\x20is\x20not\x20a\x20member\x20of\x20role\x20','trim','string','752043GHSNox','validation','3325392IMjYtq','filter','228qmSyBy','length','authRequired','89040jyiKNd','Multiple\x20tenant\x20members\x20match\x20\x22','Role\x20name\x20\x22','Optional\x20role\x20remark/description','map','1624588nAHTCz','Missing\x20role\x20reference.','24iqKcMr','expectUserCount','Re-run\x20`role\x20detail`\x20/\x20`role\x20list`\x20and\x20retry\x20with\x20the\x20current\x20count.','flagMissing','findIndex','push','CUSTOM','permitCount','\x20is\x20already\x20a\x20member\x20of\x20role\x20','Pass\x20--role\x20<id|name>.','\x22:\x20','toLowerCase','Anti-drift\x20guard:\x20fail\x20if\x20the\x20role\x27s\x20current\x20member\x20count\x20differs','roleName','role','User\x20id,\x20username,\x20or\x20nickname\x20to\x20resolve\x20to\x20a\x20userId','find','Nickname\x20or\x20username\x20to\x20resolve\x20to\x20a\x20userId','appCode','user','\x22\x20not\x20found\x20in\x20app\x20','Pass\x20--user\x20<id|name>.','number','userId','Cannot\x20change\x20the\x20permission\x20matrix\x20of\x20built-in\x20role\x20','tenant','nickname','1550790kaafHT','user-add','User\x20',';\x20no\x20change.'];a143_0xb612=function(){return _0x3f4cbf;};return a143_0xb612();}export const UPDATE_USER_LIST_PATH=a143_0x27acf6(0x18b);function userIdsOf(_0x13ee51){const _0x5198ba=a143_0x27acf6;return(_0x13ee51?.[_0x5198ba(0x199)]??[])[_0x5198ba(0x1af)](_0x50aba7=>_0x50aba7[_0x5198ba(0x1c9)]);}export function computeRoleUserMutation(_0x54f613){const _0x184422=a143_0x27acf6,{operation:_0x578d4b,appCode:_0x116fff,roleUsers:_0x264d7e,targetRoleId:_0x211afd,user:_0x119be6}=_0x54f613,_0x21f8db=_0x264d7e['find'](_0x356193=>_0x356193['id']===_0x211afd);if(!_0x21f8db)throw CliErrors[_0x184422(0x1a5)](_0x184422(0x18d)+_0x211afd+_0x184422(0x1a0),'Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.');const _0x39a04b=userIdsOf(_0x21f8db),_0x1e08f3=[];if(_0x54f613['expectUserCount']!==undefined&&_0x54f613[_0x184422(0x1b3)]!==_0x39a04b[_0x184422(0x1a9)])throw CliErrors[_0x184422(0x1a5)]('Anti-drift\x20check\x20failed:\x20expected\x20'+_0x54f613['expectUserCount']+_0x184422(0x18e)+_0x39a04b['length']+'.',_0x184422(0x1b4));const _0x38f217=_0x39a04b['includes'](_0x119be6[_0x184422(0x1c9)]);let _0x265fb7=![];const _0x293d62=[..._0x21f8db['userList']];if(_0x578d4b===_0x184422(0x1ce))_0x38f217?_0x1e08f3[_0x184422(0x1b7)](_0x184422(0x1cf)+_0x119be6[_0x184422(0x1c9)]+_0x184422(0x1ba)+_0x21f8db[_0x184422(0x1bf)]+_0x184422(0x188)):(_0x293d62[_0x184422(0x1b7)]({'userId':_0x119be6[_0x184422(0x1c9)],'username':_0x119be6['username'],..._0x119be6[_0x184422(0x1cc)]?{'nickname':_0x119be6[_0x184422(0x1cc)]}:{}}),_0x265fb7=!![]);else{if(!_0x38f217)_0x1e08f3[_0x184422(0x1b7)](_0x184422(0x1cf)+_0x119be6['userId']+_0x184422(0x1a1)+_0x21f8db[_0x184422(0x1bf)]+';\x20no\x20change.');else{const _0x55129e=_0x293d62[_0x184422(0x1b6)](_0x495cbc=>_0x495cbc['userId']===_0x119be6['userId']);if(_0x55129e>=0x0)_0x293d62[_0x184422(0x18c)](_0x55129e,0x1);_0x265fb7=!![];}}const _0x3940ac=_0x264d7e[_0x184422(0x1af)](_0x19601e=>_0x19601e['id']===_0x211afd?{..._0x19601e,'userList':_0x293d62}:_0x19601e),_0x4a694e=_0x293d62[_0x184422(0x1af)](_0x14b1eb=>_0x14b1eb[_0x184422(0x1c9)]),_0x4256e3={'operation':_0x578d4b,'selector':{'appCode':_0x116fff,'roleId':_0x211afd,'roleName':_0x21f8db[_0x184422(0x1bf)],'userId':_0x119be6[_0x184422(0x1c9)]},'before':{'userIds':_0x39a04b},'after':{'userIds':_0x4a694e},'dryRun':_0x54f613[_0x184422(0x190)],'backend':{'method':'POST','path':UPDATE_USER_LIST_PATH},'warnings':_0x1e08f3};return{'roleList':_0x3940ac,'mutation':_0x4256e3,'changed':_0x265fb7};}export async function loadRoleUsers(_0x207dbd){return listRoleUsers(_0x207dbd);}export function readRoleRef(_0x21b659){const _0x2adafc=a143_0x27acf6,_0xa8bda=_0x21b659['str'](_0x2adafc(0x1c0))[_0x2adafc(0x1a2)]();if(!_0xa8bda)throw CliErrors[_0x2adafc(0x1b5)](_0x2adafc(0x1c0),_0x2adafc(0x1bb));return _0xa8bda;}export async function prepareUserMutation(_0x51bfd2,_0x267f45,_0x214427){const _0x2b5791=a143_0x27acf6,_0x4164ab=readRoleRef(_0x51bfd2),_0x4be6de=_0x51bfd2['str']('user')['trim']();if(!_0x4be6de)throw CliErrors['flagMissing'](_0x2b5791(0x1c5),_0x2b5791(0x1c7));const _0x5c982c=_0x51bfd2[_0x2b5791(0x196)](_0x2b5791(0x192)),_0x3b0090=_0x5c982c===undefined||_0x5c982c===null?undefined:Number(_0x5c982c),_0x19bf26=await resolveRoleRef(_0x51bfd2['appCode'],_0x4164ab),_0x6e9323=await resolveUserRef(_0x4be6de),_0x5a477d=await loadRoleUsers(_0x51bfd2[_0x2b5791(0x1c4)]);return computeRoleUserMutation({'operation':_0x267f45,'appCode':_0x51bfd2[_0x2b5791(0x1c4)],'roleUsers':_0x5a477d,'targetRoleId':_0x19bf26['id'],'user':{'userId':_0x6e9323[_0x2b5791(0x1c9)],'username':_0x6e9323[_0x2b5791(0x18a)],'nickname':_0x6e9323[_0x2b5791(0x1cc)]},'dryRun':_0x214427,..._0x3b0090!==undefined?{'expectUserCount':_0x3b0090}:{}});}
|
|
1
|
+
const a143_0x217e48=a143_0x40ed;(function(_0x464445,_0xd3cc87){const _0x611c87=a143_0x40ed,_0x4cf3e9=_0x464445();while(!![]){try{const _0x35dab7=-parseInt(_0x611c87(0x185))/0x1*(-parseInt(_0x611c87(0x19b))/0x2)+parseInt(_0x611c87(0x1ab))/0x3+-parseInt(_0x611c87(0x15f))/0x4+-parseInt(_0x611c87(0x169))/0x5+parseInt(_0x611c87(0x196))/0x6*(-parseInt(_0x611c87(0x179))/0x7)+-parseInt(_0x611c87(0x1aa))/0x8*(-parseInt(_0x611c87(0x194))/0x9)+-parseInt(_0x611c87(0x175))/0xa*(-parseInt(_0x611c87(0x19f))/0xb);if(_0x35dab7===_0xd3cc87)break;else _0x4cf3e9['push'](_0x4cf3e9['shift']());}catch(_0x4a58a1){_0x4cf3e9['push'](_0x4cf3e9['shift']());}}}(a143_0x395c,0x2ec7c));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':'number','required':!![],'description':a143_0x217e48(0x164)};export const ROLE_REF_FLAG={'name':a143_0x217e48(0x181),'type':'string','required':!![],'description':'Role\x20id\x20or\x20role\x20name\x20(CUSTOM\x20roles\x20may\x20be\x20referenced\x20by\x20name)'};function a143_0x40ed(_0x148aa5,_0x4f472f){_0x148aa5=_0x148aa5-0x15e;const _0x395cc6=a143_0x395c();let _0x40ed62=_0x395cc6[_0x148aa5];return _0x40ed62;}export const USER_REF_FLAG={'name':a143_0x217e48(0x180),'type':a143_0x217e48(0x19a),'required':!![],'description':a143_0x217e48(0x17d)};export const NAME_FLAG={'name':a143_0x217e48(0x19c),'type':'string','required':!![],'description':'Role\x20name'};export const USER_NAME_FLAG={'name':'name','type':a143_0x217e48(0x19a),'required':!![],'description':a143_0x217e48(0x199)};export const REMARK_FLAG={'name':a143_0x217e48(0x184),'type':a143_0x217e48(0x19a),'required':![],'description':'Optional\x20role\x20remark/description'};export const EXPECT_USER_COUNT_FLAG={'name':a143_0x217e48(0x16a),'type':a143_0x217e48(0x165),'required':![],'description':a143_0x217e48(0x163)};export const BUILTIN_ROLE_TYPES=[a143_0x217e48(0x176),'DEV','USER'];export function isBuiltinRole(_0x854401){return BUILTIN_ROLE_TYPES['includes'](_0x854401);}export function assertCustomRole(_0x135cf5,_0x3924d5){const _0x3c5129=a143_0x217e48;if(_0x135cf5['roleType']!==_0x3c5129(0x170))throw CliErrors['validation'](_0x3c5129(0x166)+_0x3924d5+_0x3c5129(0x177)+_0x135cf5[_0x3c5129(0x1a0)]+'\x20('+_0x135cf5[_0x3c5129(0x189)]+').',_0x3c5129(0x19d));}function a143_0x395c(){const _0x3436c9=['Role\x20id\x20','Pass\x20--user\x20<id|name>.','dryRun','CUSTOM','join','flag','username','\x20is\x20already\x20a\x20member\x20of\x20role\x20','327750VlzXoH','ADMIN','\x20built-in\x20role\x20','permitCount','7irFgYe','Missing\x20user\x20reference.','totalCount','findIndex','User\x20id,\x20username,\x20or\x20nickname\x20to\x20resolve\x20to\x20a\x20userId','POST','DEV','user','role','Disambiguate\x20with\x20--role\x20<id>.','Role\x20name\x20\x22','remark','5821EyrnSQ','push','map','toLowerCase','roleType','Missing\x20role\x20reference.','userId','userList','User\x20','Pass\x20--role\x20<id|name>.','DEV\x20/\x20ADMIN\x20keep\x20full\x20access\x20by\x20design;\x20configure\x20a\x20CUSTOM\x20role\x20instead.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.','Cannot\x20resolve\x20current\x20tenant.\x20Run\x20`rabetbase\x20auth\x20login`\x20first.','trim','\x22\x20not\x20found\x20in\x20app\x20','1099665zNWgXV','\x22:\x20','554700yIDgyI','\x20is\x20not\x20a\x20member\x20of\x20role\x20','flagMissing','Nickname\x20or\x20username\x20to\x20resolve\x20to\x20a\x20userId','string','18HUGymV','name','Only\x20CUSTOM\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','Check\x20the\x20nickname/username,\x20or\x20pass\x20--user\x20<id>.','165FXZfDE','roleName','splice','expectUserCount','userCount','test','validation','str','length','user-add','tenant_code','8yQWqQn','381855JvHArR',';\x20no\x20change.','nickname','863672KNiGXV','Cannot\x20change\x20the\x20permission\x20matrix\x20of\x20built-in\x20role\x20','appCode','\x22\x20is\x20ambiguous\x20(ids:\x20','Anti-drift\x20guard:\x20fail\x20if\x20the\x20role\x27s\x20current\x20member\x20count\x20differs','Role\x20id\x20(from\x20`role\x20list`)','number','Cannot\x20','\x20not\x20found\x20in\x20app\x20','find','1467520oOTcEs','expect-user-count','authRequired','Anti-drift\x20check\x20failed:\x20expected\x20'];a143_0x395c=function(){return _0x3436c9;};return a143_0x395c();}export function assertPermConfigurable(_0x3b028b){const _0x4b0a27=a143_0x217e48;if(_0x3b028b['roleType']===_0x4b0a27(0x17f)||_0x3b028b[_0x4b0a27(0x189)]===_0x4b0a27(0x176))throw CliErrors[_0x4b0a27(0x1a5)](_0x4b0a27(0x160)+_0x3b028b['roleName']+'\x20('+_0x3b028b[_0x4b0a27(0x189)]+').',_0x4b0a27(0x18f));}export function projectRole(_0x3785d3){const _0x8dd903=a143_0x217e48;return{'id':_0x3785d3['id'],'roleName':_0x3785d3[_0x8dd903(0x1a0)],'roleType':_0x3785d3[_0x8dd903(0x189)],'remark':_0x3785d3[_0x8dd903(0x184)],'userCount':_0x3785d3[_0x8dd903(0x1a3)],'permitCount':_0x3785d3[_0x8dd903(0x178)],'builtin':isBuiltinRole(_0x3785d3['roleType'])};}export async function resolveRoleRef(_0x36099a,_0x11c598){const _0x55b099=a143_0x217e48,_0x2149c7=_0x11c598[_0x55b099(0x192)]();if(!_0x2149c7)throw CliErrors[_0x55b099(0x1a5)](_0x55b099(0x18a),_0x55b099(0x18e));if(/^\d+$/[_0x55b099(0x1a4)](_0x2149c7))return getRoleById(_0x36099a,Number(_0x2149c7));const _0x52f2f6=await listAllAppRoles(_0x36099a),_0x1544b5=_0x52f2f6['filter'](_0x2f09b2=>_0x2f09b2[_0x55b099(0x1a0)]===_0x2149c7);if(_0x1544b5[_0x55b099(0x1a7)]===0x0)throw CliErrors[_0x55b099(0x1a5)](_0x55b099(0x183)+_0x2149c7+_0x55b099(0x193)+_0x36099a+'.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles,\x20or\x20pass\x20--role\x20<id>.');if(_0x1544b5[_0x55b099(0x1a7)]>0x1){const _0x830479=_0x1544b5[_0x55b099(0x187)](_0x3a04fb=>_0x3a04fb['id'])[_0x55b099(0x171)](',\x20');throw CliErrors[_0x55b099(0x1a5)](_0x55b099(0x183)+_0x2149c7+_0x55b099(0x162)+_0x830479+').',_0x55b099(0x182));}return _0x1544b5[0x0];}export async function getRoleById(_0x1461a0,_0x2a9634){const _0x1a2227=a143_0x217e48,_0x18efc6=await getAppRole(_0x2a9634);if(!_0x18efc6)throw CliErrors['validation'](_0x1a2227(0x16d)+_0x2a9634+_0x1a2227(0x167)+_0x1461a0+'.',_0x1a2227(0x190));return _0x18efc6;}async function listAllAppRoles(_0x5b7b30){const _0x198d50=a143_0x217e48,_0x16c0f4=0x64,_0xff6b0=[];for(let _0x5512e1=0x1;;_0x5512e1+=0x1){const {items:_0x290f7d,paging:_0x3b7942}=await listAppRoles(_0x5b7b30,{'currentPage':_0x5512e1,'pageSize':_0x16c0f4});_0xff6b0[_0x198d50(0x186)](..._0x290f7d);if(_0x290f7d['length']<_0x16c0f4||_0x3b7942&&_0xff6b0[_0x198d50(0x1a7)]>=_0x3b7942[_0x198d50(0x17b)])return _0xff6b0;}}export async function resolveTenantCode(){const _0x4f326e=a143_0x217e48,_0x10deac=await getSessionUserInfo(),_0x15283a=_0x10deac?.[_0x4f326e(0x180)]?.['tenant']?.[_0x4f326e(0x1a9)];if(!_0x15283a)throw CliErrors[_0x4f326e(0x16b)](_0x4f326e(0x191));return _0x15283a;}function matchMember(_0x980d9c,_0x4f40e8){const _0x16c9e7=a143_0x217e48,_0x2e20ab=_0x4f40e8['trim']()['toLowerCase']();return(_0x980d9c[_0x16c9e7(0x15e)]??'')[_0x16c9e7(0x188)]()===_0x2e20ab||(_0x980d9c[_0x16c9e7(0x173)]??'')[_0x16c9e7(0x188)]()===_0x2e20ab;}export async function resolveUserRef(_0x5284c0){const _0x10a3f4=a143_0x217e48,_0x1ac75c=_0x5284c0[_0x10a3f4(0x192)]();if(!_0x1ac75c)throw CliErrors[_0x10a3f4(0x1a5)](_0x10a3f4(0x17a),_0x10a3f4(0x16e));const _0x5cc7aa=await resolveTenantCode(),_0x13c4b9=await getTenantMembers(_0x5cc7aa);if(/^\d+$/[_0x10a3f4(0x1a4)](_0x1ac75c)){const _0x3c89b8=Number(_0x1ac75c),_0x5ca09e=_0x13c4b9[_0x10a3f4(0x168)](_0x2f7422=>_0x2f7422[_0x10a3f4(0x18b)]===_0x3c89b8);return{'userId':_0x3c89b8,'username':_0x5ca09e?.[_0x10a3f4(0x173)]??String(_0x3c89b8),'nickname':_0x5ca09e?.[_0x10a3f4(0x15e)],'matchedBy':'id'};}const _0xb3579e=_0x13c4b9['filter'](_0x37a74b=>matchMember(_0x37a74b,_0x1ac75c));if(_0xb3579e[_0x10a3f4(0x1a7)]===0x0)throw CliErrors[_0x10a3f4(0x1a5)]('No\x20tenant\x20member\x20matches\x20\x22'+_0x1ac75c+'\x22.',_0x10a3f4(0x19e));if(_0xb3579e[_0x10a3f4(0x1a7)]>0x1){const _0x55c5d8=_0xb3579e[_0x10a3f4(0x187)](_0xb3f327=>(_0xb3f327[_0x10a3f4(0x15e)]??_0xb3f327[_0x10a3f4(0x173)]??'?')+'('+_0xb3f327[_0x10a3f4(0x18b)]+')')[_0x10a3f4(0x171)](',\x20');throw CliErrors[_0x10a3f4(0x1a5)]('Multiple\x20tenant\x20members\x20match\x20\x22'+_0x1ac75c+_0x10a3f4(0x195)+_0x55c5d8+'.','Disambiguate\x20with\x20--user\x20<id>.');}const _0x5ed3c4=_0xb3579e[0x0];return{'userId':_0x5ed3c4['userId'],'username':_0x5ed3c4['username']??String(_0x5ed3c4[_0x10a3f4(0x18b)]),'nickname':_0x5ed3c4[_0x10a3f4(0x15e)],'matchedBy':_0x10a3f4(0x19c)};}export const UPDATE_USER_LIST_PATH='/smartapi/permit/user-role/update-user-list';function userIdsOf(_0x2615a6){const _0x739ffd=a143_0x217e48;return(_0x2615a6?.[_0x739ffd(0x18c)]??[])['map'](_0x2478ad=>_0x2478ad[_0x739ffd(0x18b)]);}export function computeRoleUserMutation(_0x1338c1){const _0x18cbbb=a143_0x217e48,{operation:_0x2248ba,appCode:_0x566199,roleUsers:_0x248a6c,targetRoleId:_0x130bd4,user:_0x1a371e}=_0x1338c1,_0x16b3e5=_0x248a6c[_0x18cbbb(0x168)](_0xb62c5d=>_0xb62c5d['id']===_0x130bd4);if(!_0x16b3e5)throw CliErrors[_0x18cbbb(0x1a5)](_0x18cbbb(0x16d)+_0x130bd4+'\x20not\x20found\x20in\x20the\x20user-role\x20list.',_0x18cbbb(0x190));const _0x31bc04=userIdsOf(_0x16b3e5),_0xd6a517=[];if(_0x1338c1[_0x18cbbb(0x1a2)]!==undefined&&_0x1338c1[_0x18cbbb(0x1a2)]!==_0x31bc04[_0x18cbbb(0x1a7)])throw CliErrors['validation'](_0x18cbbb(0x16c)+_0x1338c1[_0x18cbbb(0x1a2)]+'\x20member(s)\x20but\x20role\x20has\x20'+_0x31bc04['length']+'.','Re-run\x20`role\x20detail`\x20/\x20`role\x20list`\x20and\x20retry\x20with\x20the\x20current\x20count.');const _0x1e68b8=_0x31bc04['includes'](_0x1a371e['userId']);let _0x5b3358=![];const _0x3c08a5=[..._0x16b3e5[_0x18cbbb(0x18c)]];if(_0x2248ba===_0x18cbbb(0x1a8))_0x1e68b8?_0xd6a517['push'](_0x18cbbb(0x18d)+_0x1a371e['userId']+_0x18cbbb(0x174)+_0x16b3e5[_0x18cbbb(0x1a0)]+_0x18cbbb(0x1ac)):(_0x3c08a5['push']({'userId':_0x1a371e[_0x18cbbb(0x18b)],'username':_0x1a371e['username'],..._0x1a371e[_0x18cbbb(0x15e)]?{'nickname':_0x1a371e['nickname']}:{}}),_0x5b3358=!![]);else{if(!_0x1e68b8)_0xd6a517[_0x18cbbb(0x186)](_0x18cbbb(0x18d)+_0x1a371e[_0x18cbbb(0x18b)]+_0x18cbbb(0x197)+_0x16b3e5[_0x18cbbb(0x1a0)]+_0x18cbbb(0x1ac));else{const _0x2e09dd=_0x3c08a5[_0x18cbbb(0x17c)](_0x1c750d=>_0x1c750d[_0x18cbbb(0x18b)]===_0x1a371e['userId']);if(_0x2e09dd>=0x0)_0x3c08a5[_0x18cbbb(0x1a1)](_0x2e09dd,0x1);_0x5b3358=!![];}}const _0x56106b=_0x248a6c[_0x18cbbb(0x187)](_0x11a20f=>_0x11a20f['id']===_0x130bd4?{..._0x11a20f,'userList':_0x3c08a5}:_0x11a20f),_0x4ca262=_0x3c08a5['map'](_0x438087=>_0x438087[_0x18cbbb(0x18b)]),_0x36cde4={'operation':_0x2248ba,'selector':{'appCode':_0x566199,'roleId':_0x130bd4,'roleName':_0x16b3e5[_0x18cbbb(0x1a0)],'userId':_0x1a371e[_0x18cbbb(0x18b)]},'before':{'userIds':_0x31bc04},'after':{'userIds':_0x4ca262},'dryRun':_0x1338c1[_0x18cbbb(0x16f)],'backend':{'method':_0x18cbbb(0x17e),'path':UPDATE_USER_LIST_PATH},'warnings':_0xd6a517};return{'roleList':_0x56106b,'mutation':_0x36cde4,'changed':_0x5b3358};}export async function loadRoleUsers(_0x2460cd){return listRoleUsers(_0x2460cd);}export function readRoleRef(_0x36c1df){const _0x138032=a143_0x217e48,_0x344337=_0x36c1df[_0x138032(0x1a6)](_0x138032(0x181))[_0x138032(0x192)]();if(!_0x344337)throw CliErrors[_0x138032(0x198)](_0x138032(0x181),_0x138032(0x18e));return _0x344337;}export async function prepareUserMutation(_0x2f4a7a,_0x22846b,_0x371cb8){const _0x1e84b2=a143_0x217e48,_0x32f173=readRoleRef(_0x2f4a7a),_0x33244b=_0x2f4a7a[_0x1e84b2(0x1a6)](_0x1e84b2(0x180))[_0x1e84b2(0x192)]();if(!_0x33244b)throw CliErrors[_0x1e84b2(0x198)](_0x1e84b2(0x180),'Pass\x20--user\x20<id|name>.');const _0x2166d3=_0x2f4a7a[_0x1e84b2(0x172)]('expect-user-count'),_0x18135b=_0x2166d3===undefined||_0x2166d3===null?undefined:Number(_0x2166d3),_0x47cb76=await resolveRoleRef(_0x2f4a7a[_0x1e84b2(0x161)],_0x32f173),_0x3d2ba7=await resolveUserRef(_0x33244b),_0x530d41=await loadRoleUsers(_0x2f4a7a[_0x1e84b2(0x161)]);return computeRoleUserMutation({'operation':_0x22846b,'appCode':_0x2f4a7a['appCode'],'roleUsers':_0x530d41,'targetRoleId':_0x47cb76['id'],'user':{'userId':_0x3d2ba7['userId'],'username':_0x3d2ba7['username'],'nickname':_0x3d2ba7[_0x1e84b2(0x15e)]},'dryRun':_0x371cb8,..._0x18135b!==undefined?{'expectUserCount':_0x18135b}:{}});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a144_0x4b7468=a144_0x24fb;(function(_0x3537f5,_0x3fb404){const _0x5a8d18=a144_0x24fb,_0x57823=_0x3537f5();while(!![]){try{const _0x173818=-parseInt(_0x5a8d18(0x17b))/0x1*(parseInt(_0x5a8d18(0x18f))/0x2)+-parseInt(_0x5a8d18(0x192))/0x3+-parseInt(_0x5a8d18(0x18e))/0x4*(parseInt(_0x5a8d18(0x199))/0x5)+-parseInt(_0x5a8d18(0x187))/0x6*(parseInt(_0x5a8d18(0x17f))/0x7)+-parseInt(_0x5a8d18(0x17d))/0x8*(parseInt(_0x5a8d18(0x194))/0x9)+-parseInt(_0x5a8d18(0x179))/0xa*(parseInt(_0x5a8d18(0x18d))/0xb)+parseInt(_0x5a8d18(0x182))/0xc*(parseInt(_0x5a8d18(0x191))/0xd);if(_0x173818===_0x3fb404)break;else _0x57823['push'](_0x57823['shift']());}catch(_0x45b4f0){_0x57823['push'](_0x57823['shift']());}}}(a144_0x2093,0x4456d));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=a144_0x4b7468(0x186);function readPatch(_0x59af4a){const _0x311d88=a144_0x4b7468,_0x565987=_0x59af4a['flag'](_0x311d88(0x197)),_0x157cd3=_0x59af4a['flag']('remark'),_0x4fbadb={};if(_0x565987!==undefined&&_0x565987!==null){const _0x3509fb=String(_0x565987)[_0x311d88(0x19a)]();if(!_0x3509fb)throw CliErrors['validation'](_0x311d88(0x189));if(_0x3509fb[_0x311d88(0x17c)]>0x40)throw CliErrors['validation'](_0x311d88(0x185));_0x4fbadb[_0x311d88(0x18c)]=_0x3509fb;}_0x157cd3!==undefined&&_0x157cd3!==null&&(_0x4fbadb['remark']=String(_0x157cd3));if(_0x4fbadb[_0x311d88(0x18c)]===undefined&&_0x4fbadb[_0x311d88(0x184)]===undefined)throw CliErrors[_0x311d88(0x190)](_0x311d88(0x196),_0x311d88(0x17e));return _0x4fbadb;}function a144_0x2093(){const _0x20cc6f=['num','New\x20role\x20name','60LYiygt','appCode','remark','Role\x20name\x20cannot\x20exceed\x2064\x20characters.','/smartapi/permit/role/update','84NwpxzF','role','--name\x20cannot\x20be\x20empty.','\x20(id=','Update\x20a\x20CUSTOM\x20role\x27s\x20name/remark\x20(DEV/ADMIN\x20rejected)','roleName','11WiRvJy','271132SeBsly','18454cYvUsV','validation','4385459MTBqei','572805kgfjCm','string','90qOtYSY','POST','Nothing\x20to\x20update.','name','write','10jkkDZZ','trim','update','2926460GZEfJB','Updated\x20role\x20','29bMwvsd','length','142136PPZajv','Pass\x20at\x20least\x20one\x20of\x20--name\x20/\x20--remark.','171199jrHhRT'];a144_0x2093=function(){return _0x20cc6f;};return a144_0x2093();}function a144_0x24fb(_0x6e0100,_0x3aa579){_0x6e0100=_0x6e0100-0x179;const _0x2093c1=a144_0x2093();let _0x24fb21=_0x2093c1[_0x6e0100];return _0x24fb21;}export const roleUpdate={'service':a144_0x4b7468(0x188),'command':'update','description':a144_0x4b7468(0x18b),'risk':a144_0x4b7468(0x198),'flags':[ROLE_ID_FLAG,{...REMARK_FLAG},{'name':a144_0x4b7468(0x197),'type':a144_0x4b7468(0x193),'required':![],'description':a144_0x4b7468(0x181)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x11ff24){readPatch(_0x11ff24);},async 'dryRun'(_0x3ad5fe){const _0x5b815f=a144_0x4b7468,_0x5270da=_0x3ad5fe[_0x5b815f(0x180)]('id'),_0x38bff2=readPatch(_0x3ad5fe),_0x2efecd=await getRoleById(_0x3ad5fe[_0x5b815f(0x183)],_0x5270da);return assertCustomRole(_0x2efecd,_0x5b815f(0x19b)),asDryRunResult({'operation':_0x5b815f(0x19b),'selector':{'appCode':_0x3ad5fe[_0x5b815f(0x183)],'roleId':_0x5270da,'roleName':_0x2efecd[_0x5b815f(0x18c)]},'before':projectRole(_0x2efecd),'after':projectRole({..._0x2efecd,..._0x38bff2['roleName']!==undefined?{'roleName':_0x38bff2[_0x5b815f(0x18c)]}:{},..._0x38bff2[_0x5b815f(0x184)]!==undefined?{'remark':_0x38bff2['remark']}:{}}),'dryRun':!![],'backend':{'method':_0x5b815f(0x195),'path':UPDATE_PATH},'warnings':[]},{'method':_0x5b815f(0x195),'url':UPDATE_PATH});},async 'execute'(_0x5d745f){const _0x1ef499=a144_0x4b7468,_0x506ab5=_0x5d745f[_0x1ef499(0x180)]('id'),_0x5ce914=readPatch(_0x5d745f),_0x5280b5=await getRoleById(_0x5d745f['appCode'],_0x506ab5);assertCustomRole(_0x5280b5,_0x1ef499(0x19b)),await updateAppRole({'id':_0x506ab5,'appCode':_0x5d745f['appCode'],..._0x5ce914[_0x1ef499(0x18c)]!==undefined?{'roleName':_0x5ce914[_0x1ef499(0x18c)]}:{},..._0x5ce914[_0x1ef499(0x184)]!==undefined?{'remark':_0x5ce914[_0x1ef499(0x184)]}:{}});const _0x43ca45=await getRoleById(_0x5d745f[_0x1ef499(0x183)],_0x506ab5);return{'ok':!![],'data':{'operation':'update','selector':{'appCode':_0x5d745f['appCode'],'roleId':_0x506ab5,'roleName':_0x43ca45['roleName']},'before':projectRole(_0x5280b5),'after':projectRole(_0x43ca45),'dryRun':![],'backend':{'method':_0x1ef499(0x195),'path':UPDATE_PATH},'warnings':[]},'message':_0x1ef499(0x17a)+_0x43ca45[_0x1ef499(0x18c)]+_0x1ef499(0x18a)+_0x506ab5+')'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a145_0x3343(){const _0xcc06f4=['100933RCvTBZ','high-risk-write','POST','14758656zCPQaH','Add\x20a\x20user\x20to\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','63yDqXpq','role','roleName','55AtfwKq','userId','6669762TcxBpO','Added\x20user\x20','1425AkrZPL','user-add','12428801Jnnbvu','\x20to\x20role\x20','appCode','3088EghkRn','selector','537748oDGcyL','\x20already\x20in\x20role\x20','8650970zNOszg'];a145_0x3343=function(){return _0xcc06f4;};return a145_0x3343();}function a145_0x2f24(_0x3c0273,_0x3b504a){_0x3c0273=_0x3c0273-0x140;const _0x334373=a145_0x3343();let _0x2f2464=_0x334373[_0x3c0273];return _0x2f2464;}const a145_0x34905f=a145_0x2f24;(function(_0x582b80,_0x53085b){const _0x43310d=a145_0x2f24,_0x4bbf82=_0x582b80();while(!![]){try{const _0x1439fa=parseInt(_0x43310d(0x14c))/0x1+parseInt(_0x43310d(0x147))/0x2*(parseInt(_0x43310d(0x142))/0x3)+parseInt(_0x43310d(0x149))/0x4*(parseInt(_0x43310d(0x154))/0x5)+parseInt(_0x43310d(0x140))/0x6+parseInt(_0x43310d(0x144))/0x7+parseInt(_0x43310d(0x14f))/0x8+parseInt(_0x43310d(0x151))/0x9*(-parseInt(_0x43310d(0x14b))/0xa);if(_0x1439fa===_0x53085b)break;else _0x4bbf82['push'](_0x4bbf82['shift']());}catch(_0x2af763){_0x4bbf82['push'](_0x4bbf82['shift']());}}}(a145_0x3343,0xf1917));import{updateRoleUsers}from'../../core/api-client.js';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';export const roleUserAdd={'service':a145_0x34905f(0x152),'command':'user-add','description':a145_0x34905f(0x150),'risk':a145_0x34905f(0x14d),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x1fb547){const _0x5c45bb=a145_0x34905f,{mutation:_0x17c8ff}=await prepareUserMutation(_0x1fb547,_0x5c45bb(0x143),!![]);return asDryRunResult(_0x17c8ff,{'method':_0x5c45bb(0x14e),'url':UPDATE_USER_LIST_PATH});},async 'execute'(_0xfd8c77){const _0x6b65be=a145_0x34905f,{roleList:_0x33b5cb,mutation:_0x3501c2,changed:_0x2a6b76}=await prepareUserMutation(_0xfd8c77,_0x6b65be(0x143),![]);return _0x2a6b76&&await updateRoleUsers(_0xfd8c77[_0x6b65be(0x146)],_0x33b5cb),{'ok':!![],'data':_0x3501c2,'message':_0x2a6b76?_0x6b65be(0x141)+_0x3501c2[_0x6b65be(0x148)]['userId']+_0x6b65be(0x145)+_0x3501c2[_0x6b65be(0x148)][_0x6b65be(0x153)]:'No\x20change:\x20user\x20'+_0x3501c2[_0x6b65be(0x148)][_0x6b65be(0x155)]+_0x6b65be(0x14a)+_0x3501c2[_0x6b65be(0x148)][_0x6b65be(0x153)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a146_0x343bb2=a146_0x99fc;(function(_0x4dbe28,_0x1e872){const _0x416fa9=a146_0x99fc,_0x3dbffe=_0x4dbe28();while(!![]){try{const _0x20d28e=parseInt(_0x416fa9(0x88))/0x1*(parseInt(_0x416fa9(0x8c))/0x2)+parseInt(_0x416fa9(0x7d))/0x3*(-parseInt(_0x416fa9(0x76))/0x4)+-parseInt(_0x416fa9(0x8b))/0x5*(parseInt(_0x416fa9(0x85))/0x6)+-parseInt(_0x416fa9(0x7e))/0x7*(parseInt(_0x416fa9(0x75))/0x8)+parseInt(_0x416fa9(0x79))/0x9*(-parseInt(_0x416fa9(0x7a))/0xa)+-parseInt(_0x416fa9(0x77))/0xb+parseInt(_0x416fa9(0x89))/0xc*(parseInt(_0x416fa9(0x83))/0xd);if(_0x20d28e===_0x1e872)break;else _0x3dbffe['push'](_0x3dbffe['shift']());}catch(_0x579e3d){_0x3dbffe['push'](_0x3dbffe['shift']());}}}(a146_0x19fb,0x8b610));import{updateRoleUsers}from'../../core/api-client.js';function a146_0x99fc(_0x2d639e,_0x495784){_0x2d639e=_0x2d639e-0x75;const _0x19fb85=a146_0x19fb();let _0x99fcc1=_0x19fb85[_0x2d639e];return _0x99fcc1;}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';export const roleUserRemove={'service':a146_0x343bb2(0x86),'command':a146_0x343bb2(0x7c),'description':a146_0x343bb2(0x84),'risk':a146_0x343bb2(0x80),'flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x17435f){const _0x3c173f=a146_0x343bb2,{mutation:_0x4a284d}=await prepareUserMutation(_0x17435f,_0x3c173f(0x7c),!![]);return asDryRunResult(_0x4a284d,{'method':_0x3c173f(0x8a),'url':UPDATE_USER_LIST_PATH});},async 'execute'(_0x31adb1){const _0x17d655=a146_0x343bb2,{roleList:_0x2f9298,mutation:_0x49c50a,changed:_0x31f5f4}=await prepareUserMutation(_0x31adb1,'user-remove',![]);return _0x31f5f4&&await updateRoleUsers(_0x31adb1[_0x17d655(0x81)],_0x2f9298),{'ok':!![],'data':_0x49c50a,'message':_0x31f5f4?_0x17d655(0x8d)+_0x49c50a[_0x17d655(0x7b)]['userId']+_0x17d655(0x7f)+_0x49c50a[_0x17d655(0x7b)][_0x17d655(0x87)]:_0x17d655(0x82)+_0x49c50a[_0x17d655(0x7b)][_0x17d655(0x78)]+'\x20not\x20in\x20role\x20'+_0x49c50a[_0x17d655(0x7b)][_0x17d655(0x87)]};}};function a146_0x19fb(){const _0x10d408=['appCode','No\x20change:\x20user\x20','22254661ieVUaU','Remove\x20a\x20user\x20from\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','6mZhNOg','role','roleName','8359joWkQa','12XNfBtW','POST','700265CyCNOA','74TAcenb','Removed\x20user\x20','104dvCpkv','2148628ZpoVIr','2753201LuyvLT','userId','18dEWxwJ','951410hvRChE','selector','user-remove','3NMFoOz','179039QoLICC','\x20from\x20role\x20','high-risk-write'];a146_0x19fb=function(){return _0x10d408;};return a146_0x19fb();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a147_0x5d13(_0x1641e7,_0x5d7d5f){_0x1641e7=_0x1641e7-0x1b7;const _0x50b4a7=a147_0x50b4();let _0x5d13b8=_0x50b4a7[_0x1641e7];return _0x5d13b8;}const a147_0x3f8c0d=a147_0x5d13;(function(_0x4fd4a6,_0x25c491){const _0x3b4f02=a147_0x5d13,_0x279b03=_0x4fd4a6();while(!![]){try{const _0x53e1a7=-parseInt(_0x3b4f02(0x1c5))/0x1+-parseInt(_0x3b4f02(0x1c1))/0x2+parseInt(_0x3b4f02(0x1bd))/0x3+-parseInt(_0x3b4f02(0x1c3))/0x4+-parseInt(_0x3b4f02(0x1b7))/0x5+-parseInt(_0x3b4f02(0x1bb))/0x6+parseInt(_0x3b4f02(0x1c8))/0x7*(parseInt(_0x3b4f02(0x1c4))/0x8);if(_0x53e1a7===_0x25c491)break;else _0x279b03['push'](_0x279b03['shift']());}catch(_0x50292a){_0x279b03['push'](_0x279b03['shift']());}}}(a147_0x50b4,0xdc97b));function a147_0x50b4(){const _0x2807ff=['1583902HjpOBh','name','Pass\x20--name\x20<nickname|username>.','3752ZkISAZ','str','Resolved\x20\x22','5323755cEBhqW','matchedBy','userId','flagMissing','3235512YzSIlg','read','3835701UTOTzs','\x22\x20→\x20userId\x20','role','trim','2536610bXECLq','nickname','7179912vxgcEz','87704czNCXo'];a147_0x50b4=function(){return _0x2807ff;};return a147_0x50b4();}import{CliErrors}from'../../errors.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{resolveUserRef,USER_NAME_FLAG}from'../../commands/role/shared.js';export const roleUserResolve={'service':a147_0x3f8c0d(0x1bf),'command':'user-resolve','description':'Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','risk':a147_0x3f8c0d(0x1bc),'flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x52e3bc){const _0xefba4a=a147_0x3f8c0d;if(!_0x52e3bc['str']('name')['trim']())throw CliErrors[_0xefba4a(0x1ba)](_0xefba4a(0x1c6),_0xefba4a(0x1c7));},async 'execute'(_0x26e24b){const _0x2557a3=a147_0x3f8c0d,_0x10598a=_0x26e24b[_0x2557a3(0x1c9)](_0x2557a3(0x1c6))[_0x2557a3(0x1c0)](),_0x4613b4=await resolveUserRef(_0x10598a);return{'ok':!![],'data':{'user':{'userId':_0x4613b4['userId'],'username':_0x4613b4['username'],'nickname':_0x4613b4[_0x2557a3(0x1c2)],'matchedBy':_0x4613b4[_0x2557a3(0x1b8)]}},'message':_0x2557a3(0x1ca)+_0x10598a+_0x2557a3(0x1be)+_0x4613b4[_0x2557a3(0x1b9)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a148_0x4ca9f8=a148_0xcec6;(function(_0x2cf4b4,_0x1eed4e){const _0x14336b=a148_0xcec6,_0x1f7a10=_0x2cf4b4();while(!![]){try{const _0x13f6dd=-parseInt(_0x14336b(0xe9))/0x1*(parseInt(_0x14336b(0xcc))/0x2)+parseInt(_0x14336b(0xc2))/0x3+parseInt(_0x14336b(0xfa))/0x4+-parseInt(_0x14336b(0xf9))/0x5*(parseInt(_0x14336b(0xda))/0x6)+-parseInt(_0x14336b(0xe1))/0x7+parseInt(_0x14336b(0xc5))/0x8*(parseInt(_0x14336b(0xd1))/0x9)+parseInt(_0x14336b(0xd2))/0xa;if(_0x13f6dd===_0x1eed4e)break;else _0x1f7a10['push'](_0x1f7a10['shift']());}catch(_0x44525b){_0x1f7a10['push'](_0x1f7a10['shift']());}}}(a148_0x15f7,0x666ca));import{readFileSync,existsSync}from'node:fs';function a148_0x15f7(){const _0x1d709b=['vite\x20build\x20--watch\x20exited\x20with\x20code\x20','dev','19559iVmjTZ','node_modules','\x20run\x20preview\x20--watch','parse','cwd','run','has','build','vite','push','yarn','\x20run\x20preview','yarn.lock','bool','\x20run\x20start','Script\x20\x22','10wTSyps','650756INokwp','close','Enable\x20watch\x20mode\x20for\x20preview','inherit','Run\x20a\x20package.json\x20script','990543JYWWOQ','package.json','--watch','8EnlPRf','No\x20package.json\x20found\x20in\x20current\x20directory.','\x20run\x20<script>\x0a','log','No\x20scripts\x20defined\x20in\x20package.json.','join','\x20\x20EXAMPLES','14XRfzao','needsUpgrade','bun','.bin','vite\x20preview\x20exited\x20with\x20code\x20','355599qHPKcz','8544280nBWPaq','scripts','(none)','read','\x22\x20not\x20found\x20in\x20package.json.','npm','\x20\x20\x20\x20','preview','1072314mScmyI','\x0a\x20\x20Usage:\x20','Script\x20name\x20defined\x20in\x20package.json','validation','args','\x20exited\x20with\x20code\x20','watch','3310496guXoBr','Available:\x20','keys','start','error','bun.lockb'];a148_0x15f7=function(){return _0x1d709b;};return a148_0x15f7();}import{CLI_BIN_NAME}from'../../constant/cli.js';import{resolve,delimiter,join}from'node:path';import{spawn}from'node:child_process';import{CliErrors}from'../../errors.js';import{checkSdkVersion,printSdkUpgradeWarning}from'../../utils/check-sdk-version.js';import{assertCliVersionSupported,checkCliVersion,printCliUpgradeWarning}from'../../utils/cli-version-check.js';const VERSION_CHECK_SCRIPTS=new Set([a148_0x4ca9f8(0xe4),a148_0x4ca9f8(0xe8)]);function readPackageScripts(_0x4e66ac){const _0x58fb95=a148_0x4ca9f8,_0x1f3f45=resolve(_0x4e66ac,_0x58fb95(0xc3));if(!existsSync(_0x1f3f45))return null;try{const _0x3336ec=JSON[_0x58fb95(0xec)](readFileSync(_0x1f3f45,'utf-8'));return _0x3336ec[_0x58fb95(0xd3)]??{};}catch{return null;}}function a148_0xcec6(_0x529bfe,_0x2148f1){_0x529bfe=_0x529bfe-0xc2;const _0x15f77d=a148_0x15f7();let _0xcec668=_0x15f77d[_0x529bfe];return _0xcec668;}function detectPackageManager(_0x306870){const _0x1c567=a148_0x4ca9f8;if(existsSync(resolve(_0x306870,_0x1c567(0xe6)))||existsSync(resolve(_0x306870,'bun.lock')))return _0x1c567(0xce);if(existsSync(resolve(_0x306870,'pnpm-lock.yaml')))return'pnpm';if(existsSync(resolve(_0x306870,_0x1c567(0xf5))))return _0x1c567(0xf3);return _0x1c567(0xd7);}async function versionCheck(_0x57219b){const _0x1c143d=a148_0x4ca9f8,_0x196af1=await checkCliVersion();(_0x196af1[_0x1c143d(0xcd)]||_0x196af1['belowMinimum'])&&(printCliUpgradeWarning(_0x196af1),assertCliVersionSupported(_0x196af1));const _0x5a6032=await checkSdkVersion(_0x57219b);if(_0x5a6032['needsUpgrade'])printSdkUpgradeWarning(_0x5a6032);}function spawnScript(_0x33933a,_0x1c51d9,_0x19ae8f,_0x4e7cc6){return new Promise((_0x2d2438,_0x3ddf97)=>{const _0x40d57c=a148_0xcec6,_0x2ed564=[_0x40d57c(0xee),_0x1c51d9,..._0x19ae8f],_0x527b8c=spawn(_0x33933a,_0x2ed564,{'cwd':_0x4e7cc6,'stdio':_0x40d57c(0xfd),'shell':!![],'env':{...process.env,'PATH':''+join(_0x4e7cc6,_0x40d57c(0xea),_0x40d57c(0xcf))+delimiter+process.env.PATH}});_0x527b8c['on'](_0x40d57c(0xfb),_0x482aa5=>{const _0x664830=_0x40d57c;if(_0x482aa5===0x0||_0x482aa5===null)_0x2d2438();else _0x3ddf97(new Error(_0x33933a+'\x20run\x20'+_0x1c51d9+_0x664830(0xdf)+_0x482aa5));}),_0x527b8c['on'](_0x40d57c(0xe5),_0x3ddf97);});}function spawnViteBuildWatch(_0x4bd8d9){return new Promise((_0x1500ce,_0x4411ee)=>{const _0x3db4f7=a148_0xcec6,_0x39b232=spawn(_0x3db4f7(0xf1),[_0x3db4f7(0xf0),_0x3db4f7(0xc4)],{'cwd':_0x4bd8d9,'stdio':_0x3db4f7(0xfd),'shell':!![],'env':{...process.env,'PATH':''+join(_0x4bd8d9,_0x3db4f7(0xea),_0x3db4f7(0xcf))+delimiter+process.env.PATH}});_0x39b232['on'](_0x3db4f7(0xfb),_0x25981f=>{const _0x1d8396=_0x3db4f7;if(_0x25981f===0x0||_0x25981f===null)_0x1500ce();else _0x4411ee(new Error(_0x1d8396(0xe7)+_0x25981f));}),_0x39b232['on'](_0x3db4f7(0xe5),_0x4411ee);});}function spawnVitePreview(_0x59111d){return new Promise((_0x1b2296,_0x40b986)=>{const _0x4704bb=a148_0xcec6,_0x49cccd=spawn(_0x4704bb(0xf1),[_0x4704bb(0xd9)],{'cwd':_0x59111d,'stdio':_0x4704bb(0xfd),'shell':!![],'env':{...process.env,'PATH':''+join(_0x59111d,_0x4704bb(0xea),_0x4704bb(0xcf))+delimiter+process.env.PATH}});_0x49cccd['on'](_0x4704bb(0xfb),_0x22d801=>{const _0x331269=_0x4704bb;if(_0x22d801===0x0||_0x22d801===null)_0x1b2296();else _0x40b986(new Error(_0x331269(0xd0)+_0x22d801));}),_0x49cccd['on']('error',_0x40b986);});}const runFlags=[{'name':a148_0x4ca9f8(0xe0),'type':'boolean','description':a148_0x4ca9f8(0xfc),'default':![]}];export const runDefinition={'service':a148_0x4ca9f8(0xee),'command':'run','description':a148_0x4ca9f8(0xfe),'risk':a148_0x4ca9f8(0xd5),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':'script','description':a148_0x4ca9f8(0xdc),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x3163b3=a148_0x4ca9f8,_0x452f97=[];return _0x452f97[_0x3163b3(0xf2)](_0x3163b3(0xcb)),_0x452f97[_0x3163b3(0xf2)](_0x3163b3(0xd8)+CLI_BIN_NAME+_0x3163b3(0xf7)),_0x452f97[_0x3163b3(0xf2)](_0x3163b3(0xd8)+CLI_BIN_NAME+'\x20run\x20build'),_0x452f97[_0x3163b3(0xf2)](_0x3163b3(0xd8)+CLI_BIN_NAME+_0x3163b3(0xf4)),_0x452f97[_0x3163b3(0xf2)]('\x20\x20\x20\x20'+CLI_BIN_NAME+_0x3163b3(0xeb)),_0x452f97[_0x3163b3(0xca)]('\x0a');},async 'execute'(_0x2224b1){const _0x1fb1bb=a148_0x4ca9f8,_0x5a0178=process[_0x1fb1bb(0xed)](),_0x46942b=_0x2224b1[_0x1fb1bb(0xde)][0x0],_0x421dc3=_0x2224b1[_0x1fb1bb(0xde)]['slice'](0x1),_0x28957b=readPackageScripts(_0x5a0178);if(!_0x28957b)throw CliErrors['validation'](_0x1fb1bb(0xc6));if(!_0x46942b){const _0x38c905=Object[_0x1fb1bb(0xe3)](_0x28957b);if(_0x38c905['length']===0x0)console[_0x1fb1bb(0xc8)](_0x1fb1bb(0xc9));else{console[_0x1fb1bb(0xc8)]('\x0a\x20\x20Available\x20scripts:\x0a');for(const _0x2150f2 of _0x38c905){console[_0x1fb1bb(0xc8)](_0x1fb1bb(0xd8)+_0x2150f2);}console[_0x1fb1bb(0xc8)](_0x1fb1bb(0xdb)+CLI_BIN_NAME+_0x1fb1bb(0xc7));}return{'ok':!![]};}if(!_0x28957b[_0x46942b])throw CliErrors[_0x1fb1bb(0xdd)](_0x1fb1bb(0xf8)+_0x46942b+_0x1fb1bb(0xd6),_0x1fb1bb(0xe2)+(Object[_0x1fb1bb(0xe3)](_0x28957b)[_0x1fb1bb(0xca)](',\x20')||_0x1fb1bb(0xd4)));const _0x311462=detectPackageManager(_0x5a0178);VERSION_CHECK_SCRIPTS[_0x1fb1bb(0xef)](_0x46942b)&&await versionCheck(_0x5a0178);if(_0x46942b===_0x1fb1bb(0xd9)&&_0x2224b1[_0x1fb1bb(0xf6)]('watch'))return await Promise['all']([spawnViteBuildWatch(_0x5a0178),spawnVitePreview(_0x5a0178)]),{'ok':!![]};return await spawnScript(_0x311462,_0x46942b,_0x421dc3,_0x5a0178),{'ok':!![]};}};
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a149_0x5ed3d0=a149_0xc755;(function(_0x313f44,_0x1ec1be){const _0x575682=a149_0xc755,_0x68752d=_0x313f44();while(!![]){try{const _0x4cde28=-parseInt(_0x575682(0x1df))/0x1*(-parseInt(_0x575682(0x1e6))/0x2)+parseInt(_0x575682(0x1dd))/0x3+-parseInt(_0x575682(0x1e0))/0x4+parseInt(_0x575682(0x1e4))/0x5+parseInt(_0x575682(0x1e2))/0x6+-parseInt(_0x575682(0x1e5))/0x7+-parseInt(_0x575682(0x1e7))/0x8;if(_0x4cde28===_0x1ec1be)break;else _0x68752d['push'](_0x68752d['shift']());}catch(_0x253a87){_0x68752d['push'](_0x68752d['shift']());}}}(a149_0x751e,0xc0e33));function a149_0xc755(_0xd03b2f,_0x3e7fcf){_0xd03b2f=_0xd03b2f-0x1dd;const _0x751e7d=a149_0x751e();let _0xc75516=_0x751e7d[_0xd03b2f];return _0xc75516;}function a149_0x751e(){const _0x5a2dfe=['165876TJCkPb','read','463HGvcyH','1747256UpEUXc','export','6570048eZRhjO','schema','7616670DFiooS','1019662FqzhNl','1246PIPPCJ','12716288osmJlu'];a149_0x751e=function(){return _0x5a2dfe;};return a149_0x751e();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0xfa703f){const _0x146c53=await buildSchemaPayload();return{'ok':!![],'data':_0x146c53};}export const schemaDefinition={'service':a149_0x5ed3d0(0x1e3),'command':a149_0x5ed3d0(0x1e1),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a149_0x5ed3d0(0x1de),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':'json','flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a150_0x3d8304=a150_0x3774;(function(_0x319636,_0x21425a){const _0x1daa32=a150_0x3774,_0x1923aa=_0x319636();while(!![]){try{const _0x5ec143=parseInt(_0x1daa32(0x74))/0x1+parseInt(_0x1daa32(0x6c))/0x2+parseInt(_0x1daa32(0x86))/0x3*(parseInt(_0x1daa32(0x77))/0x4)+-parseInt(_0x1daa32(0xa9))/0x5*(-parseInt(_0x1daa32(0x7d))/0x6)+-parseInt(_0x1daa32(0x92))/0x7*(parseInt(_0x1daa32(0x9b))/0x8)+-parseInt(_0x1daa32(0x8e))/0x9+-parseInt(_0x1daa32(0x72))/0xa;if(_0x5ec143===_0x21425a)break;else _0x1923aa['push'](_0x1923aa['shift']());}catch(_0x1034cc){_0x1923aa['push'](_0x1923aa['shift']());}}}(a150_0x2c4d,0xb8e4f));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';function a150_0x3774(_0x542bdb,_0x27bdea){_0x542bdb=_0x542bdb-0x6c;const _0x2c4dc8=a150_0x2c4d();let _0x37746c=_0x2c4dc8[_0x542bdb];return _0x37746c;}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(_0x54160c){const _0x491e12=a150_0x3774;if(_0x54160c===_0x491e12(0x81))return[_0x491e12(0xa3),_0x491e12(0x93),_0x491e12(0x76),'']['join']('\x0a');return[_0x491e12(0x9a),''][_0x491e12(0x88)]('\x0a');}export const sqlCreate={'service':a150_0x3d8304(0x84),'command':a150_0x3d8304(0x9e),'description':'Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','risk':a150_0x3d8304(0xaa),'flags':[{'name':a150_0x3d8304(0xad),'type':a150_0x3d8304(0x87),'description':a150_0x3d8304(0x7b)},{'name':a150_0x3d8304(0x78),'type':a150_0x3d8304(0xb1),'description':'Target\x20database\x20ID'},{'name':a150_0x3d8304(0x73),'type':a150_0x3d8304(0x87),'enum':['sql',a150_0x3d8304(0x81)],'description':a150_0x3d8304(0xaf)}],async 'validate'(_0x92e9c9){const _0x36db61=a150_0x3d8304;if(!_0x92e9c9['nonInteractive'])return;if(!_0x92e9c9[_0x36db61(0x7c)](_0x36db61(0xad))[_0x36db61(0x8d)]())throw CliErrors[_0x36db61(0x97)](_0x36db61(0xad),_0x36db61(0xa8));const _0x124596=resolveProvidedDbId(_0x92e9c9);if(typeof _0x124596!==_0x36db61(0xb1)||!Number[_0x36db61(0x9c)](_0x124596)||_0x124596<=0x0)throw CliErrors[_0x36db61(0x97)]('db-id',_0x36db61(0x80));if(!_0x92e9c9[_0x36db61(0x7c)](_0x36db61(0x73))[_0x36db61(0x8d)]())throw CliErrors[_0x36db61(0x97)]('mode',_0x36db61(0x95));},async 'dryRun'(_0x35909f){const _0x5984fb=a150_0x3d8304,_0x5a3b75=loadSqlProjectConfig(_0x35909f[_0x5984fb(0x91)]),{sqlName:_0x214c34,dbId:_0x3254c6,dbName:_0x2d7053,mode:_0x32341f}=await resolveSqlNewInputs(_0x35909f),_0x3caf76=buildSqlRelativePath(_0x5984fb(0x8f),_0x214c34,_0x2d7053,_0x32341f,_0x3254c6),_0x29b613=_0x5a3b75['sqlRootDir']+'/'+_0x3caf76;return{'method':_0x5984fb(0xac),'url':_0x5984fb(0x7a),'body':{'appCode':_0x35909f['appCode'],'sqlName':_0x214c34,'dbId':_0x3254c6,'mode':_0x32341f,'localPath':_0x29b613},'description':_0x5984fb(0x9f)+_0x5a3b75[_0x5984fb(0xa2)]};},async 'execute'(_0x3bce55){const _0x1f7848=a150_0x3d8304,_0xe8fb36=loadSqlProjectConfig(_0x3bce55[_0x1f7848(0x91)]),{sqlName:_0x46319e,dbId:_0x15b221,dbName:_0x294da1,mode:_0x4e236f}=await resolveSqlNewInputs(_0x3bce55),_0x543ab4=generateSqlTemplate(_0x4e236f),_0x33111c=await createSqlQuery({'appCode':_0x3bce55[_0x1f7848(0x91)],'sqlName':_0x46319e,'dbId':_0x15b221,'sqlContent':_0x543ab4}),_0x1612a4=ensureRemoteSqlContent(_0x33111c),_0x5ea6c9=_0x294da1||await getDbName(_0x3bce55[_0x1f7848(0x91)],_0x15b221)[_0x1f7848(0x8c)](()=>undefined),_0x31abdb=buildSqlRelativePath(_0x33111c['sqlCode'],_0x33111c[_0x1f7848(0x99)],_0x5ea6c9,_0x4e236f,_0x15b221),_0x4596f0=_0xe8fb36[_0x1f7848(0xa2)]+'/'+_0x31abdb,_0x4cf628=buildLocalSqlFileContent({'sqlCode':_0x33111c['sqlCode'],'sqlName':_0x33111c[_0x1f7848(0x99)],'dbId':_0x33111c[_0x1f7848(0xa7)]},_0x1612a4,{'dbName':_0x5ea6c9,'mode':_0x4e236f,'syncedAt':new Date()['toISOString'](),'description':_0x33111c[_0x1f7848(0x94)]});if(await fileExists(_0x4596f0))throw CliErrors[_0x1f7848(0x83)]('File\x20already\x20exists:\x20'+_0x4596f0);await ensureParentDirectory(_0x4596f0),await writeFile(_0x4596f0,_0x4cf628,'utf8');const _0x233599=await readSqlLockFile(_0xe8fb36[_0x1f7848(0x79)]),{lockData:_0xb778d7,appLock:_0x1ff943}=ensureSqlLockScope(_0x233599??createEmptySqlLock(),_0xe8fb36[_0x1f7848(0x91)],_0xe8fb36[_0x1f7848(0xb0)],_0x1f7848(0x9d));return _0x1ff943[_0x1f7848(0x75)][_0x33111c[_0x1f7848(0xae)]]={...buildSqlLockEntry(_0x33111c,_0x1612a4,computeSqlContentHash(_0x4cf628),{'dbName':_0x5ea6c9}),'path':_0x31abdb,'mode':_0x4e236f},_0x1ff943[_0x1f7848(0x89)]=new Date()['toISOString'](),await writeSqlLockFile(_0xe8fb36[_0x1f7848(0x79)],_0xb778d7),{'ok':!![],'data':{'id':_0x33111c['id'],'sqlCode':_0x33111c[_0x1f7848(0xae)],'sqlName':_0x33111c[_0x1f7848(0x99)],'dbId':_0x33111c[_0x1f7848(0xa7)],'path':_0x4596f0,'mode':_0x4e236f},'message':_0x1f7848(0x6f)+_0x33111c['sqlCode']};}};async function resolveSqlNewInputs(_0x401d19){const _0x1dda6e=await resolveSqlNameInput(_0x401d19),{dbId:_0x5ce646,dbName:_0x41e337}=await resolveDbSelection(_0x401d19),_0x26034c=await resolveSqlModeInput(_0x401d19);return{'sqlName':_0x1dda6e,'dbId':_0x5ce646,'dbName':_0x41e337,'mode':_0x26034c};}async function resolveSqlNameInput(_0x5f4408){const _0x408bb0=a150_0x3d8304,_0x2530db=_0x5f4408[_0x408bb0(0x7c)](_0x408bb0(0xad))['trim']();if(_0x2530db)return _0x2530db;if(_0x5f4408[_0x408bb0(0xa5)])throw CliErrors[_0x408bb0(0x97)](_0x408bb0(0xad),_0x408bb0(0xa8));return(await input({'message':_0x408bb0(0x6e),'validate':_0x2aeb92=>_0x2aeb92[_0x408bb0(0x8d)]()?!![]:_0x408bb0(0x90)}))['trim']();}async function resolveDbSelection(_0x2bbffe){const _0x28f217=a150_0x3d8304,_0x5d0de6=resolveProvidedDbId(_0x2bbffe);if(typeof _0x5d0de6===_0x28f217(0xb1)&&Number[_0x28f217(0x9c)](_0x5d0de6)&&_0x5d0de6>0x0)return{'dbId':_0x5d0de6,'dbName':await getDbName(_0x2bbffe['appCode'],_0x5d0de6)[_0x28f217(0x8c)](()=>undefined)};if(_0x2bbffe['nonInteractive'])throw CliErrors[_0x28f217(0x97)](_0x28f217(0x78),_0x28f217(0x80));const _0xfa7145=await listDatabases(_0x2bbffe[_0x28f217(0x91)])['catch'](()=>[]);if(_0xfa7145[_0x28f217(0x85)]===0x1)return{'dbId':_0xfa7145[0x0][_0x28f217(0xa7)],'dbName':_0xfa7145[0x0][_0x28f217(0x6d)]};if(_0xfa7145[_0x28f217(0x85)]>0x1){const _0x53ad32=await select({'message':_0x28f217(0x7f),'choices':[..._0xfa7145[_0x28f217(0x82)](_0x3f9708=>({'name':_0x3f9708['dbName']+'\x20('+_0x3f9708[_0x28f217(0xa7)]+')','value':serializeDbSelection(_0x3f9708)})),{'name':'✎\x20手动输入\x20dbId','value':'__manual__'}]});if(_0x53ad32!==_0x28f217(0xab))return deserializeDbSelection(_0x53ad32);}const _0x58e0fa=await input({'message':_0x28f217(0x96),'validate':_0x12fec1=>{const _0x2c8866=_0x28f217,_0x4f708d=_0x12fec1[_0x2c8866(0x8d)]();if(!_0x4f708d)return _0x2c8866(0x98);const _0x5c324a=Number(_0x4f708d);if(!Number[_0x2c8866(0x8b)](_0x5c324a)||_0x5c324a<=0x0)return _0x2c8866(0x7e);return!![];}});return{'dbId':Number(_0x58e0fa[_0x28f217(0x8d)]())};}async function resolveSqlModeInput(_0x2c3b05){const _0xabe1ae=a150_0x3d8304,_0x52e3a9=_0x2c3b05['str']('mode')[_0xabe1ae(0x8d)]();if(_0x52e3a9===_0xabe1ae(0x84)||_0x52e3a9===_0xabe1ae(0x81))return _0x52e3a9;if(_0x2c3b05[_0xabe1ae(0xa5)])throw CliErrors['flagMissing'](_0xabe1ae(0x73),'--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':_0xabe1ae(0xa0),'choices':[{'name':_0xabe1ae(0x8a),'value':_0xabe1ae(0x84),'description':'适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句'},{'name':_0xabe1ae(0xa6),'value':'mybatisXml','description':_0xabe1ae(0x70)}]});}function a150_0x2c4d(){const _0x27b276=['dbName','请输入\x20SQL\x20名称:','Created\x20SQL\x20query\x20','适合带动态标签的\x20MyBatis\x20XML\x20SQL','Invalid\x20database\x20selection\x20payload:\x20','8554180NBPJmE','mode','888226afiyZC','sqls','</select>','28228sJXvrx','db-id','lockFilePath','/smartapi/custom/saveUserCustomSql','SQL\x20query\x20display\x20name','str','3075474JvfIjR','dbId\x20必须为正整数','请选择目标数据库:','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','mybatisXml','map','validation','sql','length','282LNiaBb','string','join','lastSync','普通\x20SQL(sql)','isInteger','catch','trim','6893289hTfQMu','<server-generated-sqlCode>','SQL\x20名称不能为空','appCode','21pbkNxm','\x20\x20SELECT\x201\x20AS\x20id','description','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','请输入目标数据库\x20dbId:','flagMissing','dbId\x20不能为空','sqlName','SELECT\x201\x20AS\x20id;','179336VfFgQe','isFinite','new','create','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','请选择本地\x20SQL\x20模式:','stringify','sqlRootDir','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','parse','nonInteractive','MyBatis\x20XML(mybatisXml)','dbId','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','5XNbjaA','high-risk-write','__manual__','POST','name','sqlCode','Local\x20SQL\x20file\x20mode','sqlRoot','number','763508tcJhgu'];a150_0x2c4d=function(){return _0x27b276;};return a150_0x2c4d();}function serializeDbSelection(_0x21af78){const _0x472a43=a150_0x3d8304;return JSON[_0x472a43(0xa1)]({'dbId':_0x21af78[_0x472a43(0xa7)],'dbName':_0x21af78[_0x472a43(0x6d)]});}function deserializeDbSelection(_0x2bc9e8){const _0x201a4f=a150_0x3d8304;try{const _0x13197c=JSON[_0x201a4f(0xa4)](_0x2bc9e8);if(typeof _0x13197c['dbId']==='number'&&Number[_0x201a4f(0x9c)](_0x13197c[_0x201a4f(0xa7)]))return{'dbId':_0x13197c[_0x201a4f(0xa7)],'dbName':_0x13197c[_0x201a4f(0x6d)]};}catch{}throw CliErrors[_0x201a4f(0x83)](_0x201a4f(0x71)+_0x2bc9e8);}function resolveProvidedDbId(_0x35dda5){const _0x44b8a7=a150_0x3d8304,_0x2b87ae=_0x35dda5['flag']('db-id');if(typeof _0x2b87ae===_0x44b8a7(0xb1)&&Number['isFinite'](_0x2b87ae))return _0x2b87ae;return undefined;}
|
|
1
|
+
const a150_0x188c14=a150_0x97ee;(function(_0x326162,_0x1de628){const _0x3f24f6=a150_0x97ee,_0x1485a3=_0x326162();while(!![]){try{const _0x474c7c=-parseInt(_0x3f24f6(0x1fc))/0x1*(parseInt(_0x3f24f6(0x1d7))/0x2)+parseInt(_0x3f24f6(0x1f3))/0x3+parseInt(_0x3f24f6(0x1f7))/0x4+-parseInt(_0x3f24f6(0x1f4))/0x5+-parseInt(_0x3f24f6(0x1e3))/0x6*(-parseInt(_0x3f24f6(0x1c6))/0x7)+-parseInt(_0x3f24f6(0x1e0))/0x8+-parseInt(_0x3f24f6(0x200))/0x9*(parseInt(_0x3f24f6(0x1e7))/0xa);if(_0x474c7c===_0x1de628)break;else _0x1485a3['push'](_0x1485a3['shift']());}catch(_0x547869){_0x1485a3['push'](_0x1485a3['shift']());}}}(a150_0x180c,0xb2634));import{writeFile}from'node:fs/promises';function a150_0x97ee(_0x2fad55,_0x3d189d){_0x2fad55=_0x2fad55-0x1bf;const _0x180ccc=a150_0x180c();let _0x97eef9=_0x180ccc[_0x2fad55];return _0x97eef9;}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(_0x23c331){const _0x33a081=a150_0x97ee;if(_0x23c331===_0x33a081(0x1d8))return['<select\x20id=\x22query\x22\x20resultType=\x22map\x22>',_0x33a081(0x1cc),_0x33a081(0x1ca),''][_0x33a081(0x1ff)]('\x0a');return[_0x33a081(0x1f8),'']['join']('\x0a');}export const sqlCreate={'service':a150_0x188c14(0x1fb),'command':'create','description':a150_0x188c14(0x1f6),'risk':a150_0x188c14(0x1f5),'flags':[{'name':a150_0x188c14(0x1de),'type':a150_0x188c14(0x1d3),'description':a150_0x188c14(0x1ec)},{'name':a150_0x188c14(0x204),'type':'number','description':a150_0x188c14(0x1d9)},{'name':'mode','type':a150_0x188c14(0x1d3),'enum':[a150_0x188c14(0x1fb),a150_0x188c14(0x1d8)],'description':a150_0x188c14(0x1df)}],async 'validate'(_0x2231f6){const _0x4b756a=a150_0x188c14;if(!_0x2231f6[_0x4b756a(0x1fe)])return;if(!_0x2231f6[_0x4b756a(0x1dc)]('name')[_0x4b756a(0x1eb)]())throw CliErrors[_0x4b756a(0x1cb)]('name',_0x4b756a(0x1e1));const _0x133d1b=resolveProvidedDbId(_0x2231f6);if(typeof _0x133d1b!==_0x4b756a(0x1f9)||!Number[_0x4b756a(0x1c3)](_0x133d1b)||_0x133d1b<=0x0)throw CliErrors[_0x4b756a(0x1cb)]('db-id',_0x4b756a(0x202));if(!_0x2231f6['str'](_0x4b756a(0x1d4))[_0x4b756a(0x1eb)]())throw CliErrors[_0x4b756a(0x1cb)]('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');},async 'dryRun'(_0x1e73d0){const _0x5e00da=a150_0x188c14,_0x3d88ba=loadSqlProjectConfig(_0x1e73d0[_0x5e00da(0x1fd)]),{sqlName:_0x4ac00d,dbId:_0x2a50a3,dbName:_0x28d7ab,mode:_0x122e49}=await resolveSqlNewInputs(_0x1e73d0),_0x216685=buildSqlRelativePath(_0x5e00da(0x1e8),_0x4ac00d,_0x28d7ab,_0x122e49,_0x2a50a3),_0x45f51b=_0x3d88ba['sqlRootDir']+'/'+_0x216685;return{'method':_0x5e00da(0x1f0),'url':_0x5e00da(0x1e5),'body':{'appCode':_0x1e73d0[_0x5e00da(0x1fd)],'sqlName':_0x4ac00d,'dbId':_0x2a50a3,'mode':_0x122e49,'localPath':_0x45f51b},'description':'Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20'+_0x3d88ba[_0x5e00da(0x1e9)]};},async 'execute'(_0x4ad6bc){const _0x1772c1=a150_0x188c14,_0x3739a8=loadSqlProjectConfig(_0x4ad6bc['appCode']),{sqlName:_0xaf047a,dbId:_0x58be28,dbName:_0xd47d82,mode:_0x51fc47}=await resolveSqlNewInputs(_0x4ad6bc),_0x1830d9=generateSqlTemplate(_0x51fc47),_0x5e10e6=await createSqlQuery({'appCode':_0x4ad6bc[_0x1772c1(0x1fd)],'sqlName':_0xaf047a,'dbId':_0x58be28,'sqlContent':_0x1830d9}),_0xff9e2b=ensureRemoteSqlContent(_0x5e10e6),_0x53576a=_0xd47d82||await getDbName(_0x4ad6bc[_0x1772c1(0x1fd)],_0x58be28)[_0x1772c1(0x1ef)](()=>undefined),_0x3d1c44=buildSqlRelativePath(_0x5e10e6[_0x1772c1(0x205)],_0x5e10e6[_0x1772c1(0x1fa)],_0x53576a,_0x51fc47,_0x58be28),_0x284e1d=_0x3739a8[_0x1772c1(0x1e9)]+'/'+_0x3d1c44,_0x3abe13=buildLocalSqlFileContent({'sqlCode':_0x5e10e6[_0x1772c1(0x205)],'sqlName':_0x5e10e6[_0x1772c1(0x1fa)],'dbId':_0x5e10e6[_0x1772c1(0x1d0)]},_0xff9e2b,{'dbName':_0x53576a,'mode':_0x51fc47,'syncedAt':new Date()['toISOString'](),'description':_0x5e10e6[_0x1772c1(0x1c1)]});if(await fileExists(_0x284e1d))throw CliErrors[_0x1772c1(0x1c0)]('File\x20already\x20exists:\x20'+_0x284e1d);await ensureParentDirectory(_0x284e1d),await writeFile(_0x284e1d,_0x3abe13,_0x1772c1(0x1ea));const _0x430b28=await readSqlLockFile(_0x3739a8[_0x1772c1(0x1ed)]),{lockData:_0x561c7f,appLock:_0x276014}=ensureSqlLockScope(_0x430b28??createEmptySqlLock(),_0x3739a8[_0x1772c1(0x1fd)],_0x3739a8[_0x1772c1(0x1ee)],_0x1772c1(0x201));return _0x276014[_0x1772c1(0x1dd)][_0x5e10e6['sqlCode']]={...buildSqlLockEntry(_0x5e10e6,_0xff9e2b,computeSqlContentHash(_0x3abe13),{'dbName':_0x53576a}),'path':_0x3d1c44,'mode':_0x51fc47},_0x276014[_0x1772c1(0x1bf)]=new Date()[_0x1772c1(0x1c4)](),await writeSqlLockFile(_0x3739a8[_0x1772c1(0x1ed)],_0x561c7f),{'ok':!![],'data':{'id':_0x5e10e6['id'],'sqlCode':_0x5e10e6['sqlCode'],'sqlName':_0x5e10e6[_0x1772c1(0x1fa)],'dbId':_0x5e10e6[_0x1772c1(0x1d0)],'path':_0x284e1d,'mode':_0x51fc47},'message':_0x1772c1(0x206)+_0x5e10e6[_0x1772c1(0x205)]};}};async function resolveSqlNewInputs(_0x47ba7f){const _0x367732=await resolveSqlNameInput(_0x47ba7f),{dbId:_0xb45f03,dbName:_0x1a1459}=await resolveDbSelection(_0x47ba7f),_0x477e37=await resolveSqlModeInput(_0x47ba7f);return{'sqlName':_0x367732,'dbId':_0xb45f03,'dbName':_0x1a1459,'mode':_0x477e37};}async function resolveSqlNameInput(_0x154642){const _0x4bd189=a150_0x188c14,_0x141873=_0x154642[_0x4bd189(0x1dc)](_0x4bd189(0x1de))[_0x4bd189(0x1eb)]();if(_0x141873)return _0x141873;if(_0x154642[_0x4bd189(0x1fe)])throw CliErrors[_0x4bd189(0x1cb)](_0x4bd189(0x1de),_0x4bd189(0x1e1));return(await input({'message':'请输入\x20SQL\x20名称:','validate':_0x747119=>_0x747119[_0x4bd189(0x1eb)]()?!![]:_0x4bd189(0x1e4)}))[_0x4bd189(0x1eb)]();}function a150_0x180c(){const _0x250983=['适合带动态标签的\x20MyBatis\x20XML\x20SQL','138338djtZFo','mybatisXml','Target\x20database\x20ID','__manual__','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','str','sqls','name','Local\x20SQL\x20file\x20mode','1853696ODRlLn','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','请选择目标数据库:','2299182jEFxlO','SQL\x20名称不能为空','/smartapi/custom/saveUserCustomSql','dbId\x20必须为正整数','250xyuTji','<server-generated-sqlCode>','sqlRootDir','utf8','trim','SQL\x20query\x20display\x20name','lockFilePath','sqlRoot','catch','POST','stringify','parse','1092309zqkTcV','829910hudanH','high-risk-write','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','5681120ERzEIN','SELECT\x201\x20AS\x20id;','number','sqlName','sql','15UyAiNq','appCode','nonInteractive','join','603coCSDw','new','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','dbId\x20不能为空','db-id','sqlCode','Created\x20SQL\x20query\x20','lastSync','validation','description','请选择本地\x20SQL\x20模式:','isFinite','toISOString','Invalid\x20database\x20selection\x20payload:\x20','7UzdoRD','dbName','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','length','</select>','flagMissing','\x20\x20SELECT\x201\x20AS\x20id','isInteger','请输入目标数据库\x20dbId:','map','dbId','普通\x20SQL(sql)','flag','string','mode','MyBatis\x20XML(mybatisXml)'];a150_0x180c=function(){return _0x250983;};return a150_0x180c();}async function resolveDbSelection(_0x532401){const _0x4093ac=a150_0x188c14,_0x29252b=resolveProvidedDbId(_0x532401);if(typeof _0x29252b===_0x4093ac(0x1f9)&&Number['isFinite'](_0x29252b)&&_0x29252b>0x0)return{'dbId':_0x29252b,'dbName':await getDbName(_0x532401['appCode'],_0x29252b)[_0x4093ac(0x1ef)](()=>undefined)};if(_0x532401[_0x4093ac(0x1fe)])throw CliErrors[_0x4093ac(0x1cb)](_0x4093ac(0x204),_0x4093ac(0x202));const _0x6165aa=await listDatabases(_0x532401[_0x4093ac(0x1fd)])[_0x4093ac(0x1ef)](()=>[]);if(_0x6165aa['length']===0x1)return{'dbId':_0x6165aa[0x0]['dbId'],'dbName':_0x6165aa[0x0][_0x4093ac(0x1c7)]};if(_0x6165aa[_0x4093ac(0x1c9)]>0x1){const _0x3c5fed=await select({'message':_0x4093ac(0x1e2),'choices':[..._0x6165aa[_0x4093ac(0x1cf)](_0x4cc20b=>({'name':_0x4cc20b[_0x4093ac(0x1c7)]+'\x20('+_0x4cc20b[_0x4093ac(0x1d0)]+')','value':serializeDbSelection(_0x4cc20b)})),{'name':'✎\x20手动输入\x20dbId','value':_0x4093ac(0x1da)}]});if(_0x3c5fed!=='__manual__')return deserializeDbSelection(_0x3c5fed);}const _0x34bbd8=await input({'message':_0x4093ac(0x1ce),'validate':_0x5dfaf8=>{const _0x150392=_0x4093ac,_0x1450ce=_0x5dfaf8[_0x150392(0x1eb)]();if(!_0x1450ce)return _0x150392(0x203);const _0x3f1029=Number(_0x1450ce);if(!Number[_0x150392(0x1cd)](_0x3f1029)||_0x3f1029<=0x0)return _0x150392(0x1e6);return!![];}});return{'dbId':Number(_0x34bbd8[_0x4093ac(0x1eb)]())};}async function resolveSqlModeInput(_0x15671f){const _0xaa2edc=a150_0x188c14,_0x58cfb0=_0x15671f[_0xaa2edc(0x1dc)](_0xaa2edc(0x1d4))['trim']();if(_0x58cfb0==='sql'||_0x58cfb0===_0xaa2edc(0x1d8))return _0x58cfb0;if(_0x15671f[_0xaa2edc(0x1fe)])throw CliErrors[_0xaa2edc(0x1cb)]('mode',_0xaa2edc(0x1db));return await select({'message':_0xaa2edc(0x1c2),'choices':[{'name':_0xaa2edc(0x1d1),'value':_0xaa2edc(0x1fb),'description':_0xaa2edc(0x1c8)},{'name':_0xaa2edc(0x1d5),'value':_0xaa2edc(0x1d8),'description':_0xaa2edc(0x1d6)}]});}function serializeDbSelection(_0x13c51d){const _0xce856b=a150_0x188c14;return JSON[_0xce856b(0x1f1)]({'dbId':_0x13c51d[_0xce856b(0x1d0)],'dbName':_0x13c51d[_0xce856b(0x1c7)]});}function deserializeDbSelection(_0x21d757){const _0x1da942=a150_0x188c14;try{const _0x924420=JSON[_0x1da942(0x1f2)](_0x21d757);if(typeof _0x924420[_0x1da942(0x1d0)]===_0x1da942(0x1f9)&&Number[_0x1da942(0x1c3)](_0x924420[_0x1da942(0x1d0)]))return{'dbId':_0x924420[_0x1da942(0x1d0)],'dbName':_0x924420[_0x1da942(0x1c7)]};}catch{}throw CliErrors[_0x1da942(0x1c0)](_0x1da942(0x1c5)+_0x21d757);}function resolveProvidedDbId(_0x1877cd){const _0x5ac82d=a150_0x188c14,_0x2e6a47=_0x1877cd[_0x5ac82d(0x1d2)](_0x5ac82d(0x204));if(typeof _0x2e6a47===_0x5ac82d(0x1f9)&&Number[_0x5ac82d(0x1c3)](_0x2e6a47))return _0x2e6a47;return undefined;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a151_0x46e412=a151_0x187c;(function(_0x2deb85,_0xedd53f){const _0x473233=a151_0x187c,_0x19c1ce=_0x2deb85();while(!![]){try{const _0x2af35d=-parseInt(_0x473233(0x166))/0x1*(-parseInt(_0x473233(0x17a))/0x2)+-parseInt(_0x473233(0x154))/0x3+parseInt(_0x473233(0x167))/0x4+parseInt(_0x473233(0x16c))/0x5*(parseInt(_0x473233(0x173))/0x6)+-parseInt(_0x473233(0x15e))/0x7*(-parseInt(_0x473233(0x162))/0x8)+parseInt(_0x473233(0x158))/0x9*(-parseInt(_0x473233(0x174))/0xa)+-parseInt(_0x473233(0x16a))/0xb*(parseInt(_0x473233(0x169))/0xc);if(_0x2af35d===_0xedd53f)break;else _0x19c1ce['push'](_0x19c1ce['shift']());}catch(_0x333f34){_0x19c1ce['push'](_0x19c1ce['shift']());}}}(a151_0x5171,0x547a0));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';function a151_0x187c(_0x12d8e2,_0x3a87b2){_0x12d8e2=_0x12d8e2-0x154;const _0x517118=a151_0x5171();let _0x187c97=_0x517118[_0x12d8e2];return _0x187c97;}import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';function a151_0x5171(){const _0x46bdc0=['140UIojVg','1593168qQWuru','Would\x20delete\x20SQL\x20','69288NRePFs','143KQtMXw','lockFilePath','155dyZTQV','delete','length','\x20(local\x20file\x20moved\x20to\x20trash)','toISOString','validation','trashedTo','71544GWilrP','5789270BLieMS','POST','sqlRootDir','startsWith','high-risk-write','str','5342YtOMMd','trashDir','appCode','1677219XLuvzt','SQL\x20lock\x20file\x20not\x20found.','sqls','filter','9uWsbet','sqlRoot','entries','fromEntries','Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','Deleted\x20','2920414UQeBrQ','\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20','remoteId','sqlcode','8wDpFfI','sql','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.'];a151_0x5171=function(){return _0x46bdc0;};return a151_0x5171();}import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a151_0x46e412(0x163),'command':a151_0x46e412(0x16d),'description':a151_0x46e412(0x15c),'risk':a151_0x46e412(0x178),'flags':[SQLCODE_FLAG],async 'validate'(_0x6f3617){const _0x3916b4=a151_0x46e412,_0x367cdf=loadSqlProjectConfig(_0x6f3617[_0x3916b4(0x17c)]),_0x317b7b=await readSqlLockFile(_0x367cdf['lockFilePath']);if(!_0x317b7b)throw CliErrors[_0x3916b4(0x171)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x14b2d7){const _0x4c4dc7=a151_0x46e412,_0x29dbe2=loadSqlProjectConfig(_0x14b2d7[_0x4c4dc7(0x17c)]),_0xc8f7c0=await readSqlLockFile(_0x29dbe2['lockFilePath']);if(!_0xc8f7c0)throw CliErrors['validation'](_0x4c4dc7(0x165));const {appLock:_0x572f33}=ensureSqlLockScope(_0xc8f7c0,_0x14b2d7[_0x4c4dc7(0x17c)],_0x29dbe2[_0x4c4dc7(0x159)],_0x4c4dc7(0x16d)),_0x5cceb3=_0x14b2d7[_0x4c4dc7(0x179)]('sqlcode'),_0x10fb41=_0x572f33[_0x4c4dc7(0x156)][_0x5cceb3];if(!_0x10fb41)throw CliErrors[_0x4c4dc7(0x171)](_0x4c4dc7(0x164)+_0x5cceb3+'\x22.');return{'method':_0x4c4dc7(0x175),'url':'/smartapi/custom/deleteUserCustomSql','body':{'sqlCode':_0x5cceb3,'id':_0x10fb41[_0x4c4dc7(0x160)],'localPath':resolveLocalSqlFilePath(_0x29dbe2,_0x5cceb3,_0x10fb41)},'description':_0x4c4dc7(0x168)+_0x5cceb3+_0x4c4dc7(0x15f)+_0x29dbe2[_0x4c4dc7(0x17b)]};},async 'execute'(_0x20df6b){const _0x4d0516=a151_0x46e412,_0x250014=loadSqlProjectConfig(_0x20df6b['appCode']),_0x20791b=await readSqlLockFile(_0x250014[_0x4d0516(0x16b)]);if(!_0x20791b)throw CliErrors[_0x4d0516(0x171)](_0x4d0516(0x155));const {lockData:_0x3fd8b4,appLock:_0x50593c}=ensureSqlLockScope(_0x20791b,_0x20df6b[_0x4d0516(0x17c)],_0x250014['sqlRoot'],_0x4d0516(0x16d)),_0x37a501=_0x20df6b['str'](_0x4d0516(0x161)),_0x3a1025=_0x50593c[_0x4d0516(0x156)][_0x37a501];if(!_0x3a1025)throw CliErrors[_0x4d0516(0x171)](_0x4d0516(0x164)+_0x37a501+'\x22.');await deleteSqlQuery({'id':_0x3a1025[_0x4d0516(0x160)],'sqlCode':_0x37a501}),_0x50593c[_0x4d0516(0x156)]=Object[_0x4d0516(0x15b)](Object[_0x4d0516(0x15a)](_0x50593c['sqls'])[_0x4d0516(0x157)](([_0x4ffca5])=>_0x4ffca5!==_0x37a501)),_0x50593c['lastSync']=new Date()[_0x4d0516(0x170)](),await writeSqlLockFile(_0x250014[_0x4d0516(0x16b)],_0x3fd8b4);const _0x97808=resolveLocalSqlFilePath(_0x250014,_0x37a501,_0x3a1025);let _0x32336b;await fileExists(_0x97808)&&(_0x32336b=await moveToTrash(_0x250014['projectRoot'],_0x250014[_0x4d0516(0x17b)],_0x97808),await cleanupEmptyDirectories(dirname(_0x97808),_0x250014[_0x4d0516(0x176)]));const _0x519401={'deleted':_0x37a501,'remoteId':_0x3a1025[_0x4d0516(0x160)]};if(_0x32336b)_0x519401[_0x4d0516(0x172)]=_0x32336b;return{'ok':!![],'data':_0x519401,'message':_0x4d0516(0x15d)+_0x37a501+(_0x32336b?_0x4d0516(0x16f):'')};}};async function moveToTrash(_0x4b03ca,_0x50f793,_0x43297a){const _0x157966=a151_0x46e412,_0x2620e5=new Date()[_0x157966(0x170)]()['replace'](/[:.]/g,'-'),_0x36440b=relative(_0x4b03ca,_0x43297a),_0x502458=join(_0x50f793,_0x2620e5,_0x36440b);return await mkdir(dirname(_0x502458),{'recursive':!![]}),await rename(_0x43297a,_0x502458),_0x502458;}async function cleanupEmptyDirectories(_0xd65c8b,_0x30bd2d){const _0x26273c=a151_0x46e412;let _0x36279b=resolve(_0xd65c8b);const _0x38d289=resolve(_0x30bd2d);while(_0x36279b[_0x26273c(0x177)](''+_0x38d289+sep)||_0x36279b===_0x38d289){if(_0x36279b===_0x38d289)return;try{const _0x7e6b51=await readdir(_0x36279b);if(_0x7e6b51[_0x26273c(0x16e)]>0x0)return;await rmdir(_0x36279b);}catch{return;}_0x36279b=dirname(_0x36279b);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a152_0x3f55(_0x4c8759,_0x371165){_0x4c8759=_0x4c8759-0x1dd;const _0x1abf52=a152_0x1abf();let _0x3f557a=_0x1abf52[_0x4c8759];return _0x3f557a;}const a152_0x4d38d3=a152_0x3f55;(function(_0x3b3e2d,_0x54f6e9){const _0x2fd395=a152_0x3f55,_0x4c1dfa=_0x3b3e2d();while(!![]){try{const _0x2429a3=-parseInt(_0x2fd395(0x1dd))/0x1*(parseInt(_0x2fd395(0x1e5))/0x2)+parseInt(_0x2fd395(0x1ef))/0x3+-parseInt(_0x2fd395(0x1e1))/0x4+parseInt(_0x2fd395(0x1e4))/0x5+parseInt(_0x2fd395(0x1e0))/0x6+parseInt(_0x2fd395(0x1e7))/0x7+parseInt(_0x2fd395(0x1eb))/0x8;if(_0x2429a3===_0x54f6e9)break;else _0x4c1dfa['push'](_0x4c1dfa['shift']());}catch(_0x400510){_0x4c1dfa['push'](_0x4c1dfa['shift']());}}}(a152_0x1abf,0x559f8));function a152_0x1abf(){const _0x11a3ef=['dbId','958125ikxNjG','Return\x20full\x20raw\x20SQL\x20query\x20object','36573PVktKW','detail','sql','1608156jVbpOv','2762480GkpSUg','sqlCode','verbose','3325985ZgHNWK','34LidfgV','sqlContent','551208ixdyqE','read','Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','appCode','2653848RJLjJM','sqlcode','sqlName'];a152_0x1abf=function(){return _0x11a3ef;};return a152_0x1abf();}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':a152_0x4d38d3(0x1df),'command':a152_0x4d38d3(0x1de),'description':a152_0x4d38d3(0x1e9),'risk':a152_0x4d38d3(0x1e8),'flags':[SQLCODE_FLAG,{'name':'verbose','type':'boolean','description':a152_0x4d38d3(0x1f0)}],async 'execute'(_0x3bd715){const _0x38997e=a152_0x4d38d3,_0x3e7c40=await getSqlQueryInfo(_0x3bd715[_0x38997e(0x1ea)],_0x3bd715['str'](_0x38997e(0x1ec))),_0x5bd049=_0x3bd715['bool'](_0x38997e(0x1e3));if(_0x5bd049)return{'ok':!![],'data':_0x3e7c40};const _0x13aa23=_0x3e7c40[_0x38997e(0x1ee)]?await getDbName(_0x3bd715[_0x38997e(0x1ea)],_0x3e7c40[_0x38997e(0x1ee)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x3e7c40[_0x38997e(0x1e2)],'sqlName':_0x3e7c40[_0x38997e(0x1ed)],'db':_0x13aa23?_0x13aa23+'\x20('+_0x3e7c40['dbId']+')':_0x3e7c40[_0x38997e(0x1ee)]??'','description':_0x3e7c40['description']??'','sqlContent':_0x3e7c40[_0x38997e(0x1e6)]??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a153_0x13e9f6=a153_0x4ca3;function a153_0x4ca3(_0x321ac3,_0x11a5f3){_0x321ac3=_0x321ac3-0x95;const _0x37b5db=a153_0x37b5();let _0x4ca312=_0x37b5db[_0x321ac3];return _0x4ca312;}(function(_0x5d0c4d,_0x13c584){const _0x5dd577=a153_0x4ca3,_0x4147ae=_0x5d0c4d();while(!![]){try{const _0x3216c1=-parseInt(_0x5dd577(0xa4))/0x1*(-parseInt(_0x5dd577(0x9d))/0x2)+-parseInt(_0x5dd577(0xa2))/0x3+parseInt(_0x5dd577(0xa1))/0x4*(parseInt(_0x5dd577(0xac))/0x5)+parseInt(_0x5dd577(0xab))/0x6+parseInt(_0x5dd577(0x97))/0x7*(parseInt(_0x5dd577(0xa9))/0x8)+-parseInt(_0x5dd577(0xad))/0x9*(parseInt(_0x5dd577(0x9f))/0xa)+-parseInt(_0x5dd577(0xa6))/0xb*(parseInt(_0x5dd577(0x95))/0xc);if(_0x3216c1===_0x13c584)break;else _0x4147ae['push'](_0x4147ae['shift']());}catch(_0x5fefa5){_0x4147ae['push'](_0x4147ae['shift']());}}}(a153_0x37b5,0x32622));import{executeSql}from'../../core/api-client.js';function a153_0x37b5(){const _0xa3d296=['Returned\x20','6UVIPwg','sqlcode','792580ccKzQH','execResult','182916kbiIKb','567393rrCyPv','length','74265fjsElV','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','4279nAeNwJ','SQL\x20execution\x20failed','execError','2523704RPNvhw','appCode','1569906yhmczU','35kqbqaN','18vxaaIM','execSuccess','\x20row(s)\x20in\x20','now','17460oXQdUy','read','7AozcMW','str','string','params','isArray'];a153_0x37b5=function(){return _0xa3d296;};return a153_0x37b5();}import{SQLCODE_FLAG}from'../../commands/common/flags.js';import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':'sql','command':'exec','description':'Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','risk':a153_0x13e9f6(0x96),'flags':[SQLCODE_FLAG,{'name':a153_0x13e9f6(0x9a),'type':a153_0x13e9f6(0x99),'description':a153_0x13e9f6(0xa5)}],async 'execute'(_0x56046f){const _0x3d8537=a153_0x13e9f6,_0x102885=parseJsonParams(_0x56046f[_0x3d8537(0x98)]('params')),_0x42e587=Date[_0x3d8537(0xb0)](),_0x3dfc9a=await executeSql(_0x56046f[_0x3d8537(0xaa)],_0x56046f[_0x3d8537(0x98)](_0x3d8537(0x9e)),_0x102885),_0x1ad85f=Date['now']()-_0x42e587,_0x4ab687=_0x3dfc9a?.[_0x3d8537(0xa0)]??_0x3dfc9a,_0x15e69a=_0x3dfc9a?.[_0x3d8537(0xae)]??!![];if(!_0x15e69a)return{'ok':![],'data':{'error':_0x3dfc9a?.[_0x3d8537(0xa8)]||'SQL\x20execution\x20failed','elapsed':_0x1ad85f},'message':_0x3d8537(0xa7)};const _0x2d5232=Array[_0x3d8537(0x9b)](_0x4ab687)?_0x4ab687:[];return{'ok':!![],'data':{'rows':_0x2d5232,'rowCount':_0x2d5232[_0x3d8537(0xa3)],'elapsed':_0x1ad85f},'message':_0x3d8537(0x9c)+_0x2d5232[_0x3d8537(0xa3)]+_0x3d8537(0xaf)+_0x1ad85f+'ms'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0xace369,_0x3a22b2){const _0x1752c0=a154_0x578d,_0x2bf586=_0xace369();while(!![]){try{const _0xe9d3c3=-parseInt(_0x1752c0(0x17c))/0x1+-parseInt(_0x1752c0(0x180))/0x2*(-parseInt(_0x1752c0(0x184))/0x3)+parseInt(_0x1752c0(0x185))/0x4*(parseInt(_0x1752c0(0x17e))/0x5)+-parseInt(_0x1752c0(0x183))/0x6+-parseInt(_0x1752c0(0x17d))/0x7*(-parseInt(_0x1752c0(0x181))/0x8)+parseInt(_0x1752c0(0x17f))/0x9+-parseInt(_0x1752c0(0x182))/0xa;if(_0xe9d3c3===_0x3a22b2)break;else _0x2bf586['push'](_0x2bf586['shift']());}catch(_0x50c61d){_0x2bf586['push'](_0x2bf586['shift']());}}}(a154_0x3fa6,0xbd149));import{sqlList}from'../../commands/sql/list.js';function a154_0x578d(_0x3a78b6,_0x27f443){_0x3a78b6=_0x3a78b6-0x17c;const _0x3fa648=a154_0x3fa6();let _0x578dd5=_0x3fa648[_0x3a78b6];return _0x578dd5;}import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';function a154_0x3fa6(){const _0x2aeaef=['58SkMFJN','16TaqXAL','20086340uEfZlH','5410110AuAkrO','117309EaZyWL','35200okHyfC','1017691VLZpUi','3335990shonWQ','670AoxGrO','12925404nSDSsE'];a154_0x3fa6=function(){return _0x2aeaef;};return a154_0x3fa6();}import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';export const sqlDefinitions=[sqlList,sqlDetail,sqlStatus,sqlCreate,sqlPush,sqlValidate,sqlSave,sqlExec,sqlPull,sqlDelete];
|
package/lib/commands/sql/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a155_0x260bbe=a155_0x404e;(function(_0x33e35,_0x45f043){const _0x207610=a155_0x404e,_0x1d8090=_0x33e35();while(!![]){try{const _0x38ba9c=parseInt(_0x207610(0x19e))/0x1*(-parseInt(_0x207610(0x1a7))/0x2)+-parseInt(_0x207610(0x1ae))/0x3+parseInt(_0x207610(0x19d))/0x4+parseInt(_0x207610(0x197))/0x5*(parseInt(_0x207610(0x195))/0x6)+parseInt(_0x207610(0x19a))/0x7*(-parseInt(_0x207610(0x1b3))/0x8)+parseInt(_0x207610(0x1a8))/0x9+parseInt(_0x207610(0x198))/0xa*(parseInt(_0x207610(0x1ac))/0xb);if(_0x38ba9c===_0x45f043)break;else _0x1d8090['push'](_0x1d8090['shift']());}catch(_0x498093){_0x1d8090['push'](_0x1d8090['shift']());}}}(a155_0x1c68,0xdd99b));import{listSqlQueries}from'../../core/api-client.js';function a155_0x404e(_0xd43c8a,_0x487fb5){_0xd43c8a=_0xd43c8a-0x194;const _0x1c68e8=a155_0x1c68();let _0x404eaf=_0x1c68e8[_0xd43c8a];return _0x404eaf;}import{getDbName}from'../../core/db-resolver.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':'sql','command':'list','description':a155_0x260bbe(0x1a2),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a155_0x260bbe(0x1a4),'type':'string','description':'Filter\x20by\x20SQL\x20name'},{'name':a155_0x260bbe(0x1a9),'type':a155_0x260bbe(0x19c),'description':a155_0x260bbe(0x1ad),'default':0x1},{'name':'pagesize','type':'number','description':'Page\x20size'},{'name':'verbose','type':a155_0x260bbe(0x1a1),'description':'Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content'}],async 'execute'(_0x3d7d7d){const _0xa6c37b=a155_0x260bbe,_0x143073=await listSqlQueries(_0x3d7d7d[_0xa6c37b(0x1a3)],{'sqlCode':_0x3d7d7d[_0xa6c37b(0x1af)](_0xa6c37b(0x19f))||undefined,'sqlName':_0x3d7d7d[_0xa6c37b(0x1af)](_0xa6c37b(0x1a4))||undefined,'currentPage':_0x3d7d7d[_0xa6c37b(0x1a0)](_0xa6c37b(0x1a9)),'pageSize':_0x3d7d7d[_0xa6c37b(0x1a0)](_0xa6c37b(0x194),0x32)}),_0x4187b7=_0x3d7d7d[_0xa6c37b(0x1b2)]('verbose'),_0x5a2d20=_0x143073['tableData']??[],_0x45cc6f=_0x143073[_0xa6c37b(0x1b5)]?.[_0xa6c37b(0x1aa)]??_0x5a2d20['length'];let _0x5b93d5;return _0x4187b7?_0x5b93d5=_0x5a2d20:_0x5b93d5=await Promise[_0xa6c37b(0x19b)](_0x5a2d20[_0xa6c37b(0x1ab)](async _0x430fb6=>{const _0xad1802=_0xa6c37b;let _0x524a33;try{_0x524a33=_0x430fb6[_0xad1802(0x196)]?await getDbName(_0x3d7d7d[_0xad1802(0x1a3)],_0x430fb6[_0xad1802(0x196)]):undefined;}catch{}return{'sqlCode':_0x430fb6[_0xad1802(0x199)],'sqlName':_0x430fb6[_0xad1802(0x1b1)],'description':_0x430fb6[_0xad1802(0x1a6)]??'','db':_0x524a33?_0x524a33+'\x20('+_0x430fb6[_0xad1802(0x196)]+')':_0x430fb6['dbId']??''};})),{'ok':!![],'data':_0x5b93d5,'message':_0x5a2d20[_0xa6c37b(0x1b4)]===0x0?_0xa6c37b(0x1b0):_0xa6c37b(0x1a5)+_0x5a2d20[_0xa6c37b(0x1b4)]+_0xa6c37b(0x1b6)+_0x45cc6f+').'};}};function a155_0x1c68(){const _0x11d208=['bool','2816epccXs','length','paging','\x20SQL\x20queries\x20(total:\x20','pagesize','32118ZAsTyr','dbId','455Yolntu','3175390lrCTaD','sqlCode','14931cgPaqt','all','number','4854936Pddbte','31499ORANuB','sqlcode','num','boolean','List\x20custom\x20SQL\x20queries','appCode','name','Found\x20','description','36HQYQgK','7352775QIeMSm','page','totalCount','map','11skCuAf','Page\x20number','1829694wJgAQE','str','No\x20custom\x20SQL\x20queries\x20found.','sqlName'];a155_0x1c68=function(){return _0x11d208;};return a155_0x1c68();}
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a156_0x34fbd7=a156_0x4bca;(function(_0x2d7e9c,_0x46869c){const _0x30170c=a156_0x4bca,_0x1175a2=_0x2d7e9c();while(!![]){try{const _0x9c8043=parseInt(_0x30170c(0xc9))/0x1+-parseInt(_0x30170c(0xc4))/0x2+parseInt(_0x30170c(0xd2))/0x3*(-parseInt(_0x30170c(0xb2))/0x4)+parseInt(_0x30170c(0xc7))/0x5*(parseInt(_0x30170c(0xbe))/0x6)+-parseInt(_0x30170c(0xea))/0x7+parseInt(_0x30170c(0xcb))/0x8+-parseInt(_0x30170c(0xd3))/0x9;if(_0x9c8043===_0x46869c)break;else _0x1175a2['push'](_0x1175a2['shift']());}catch(_0x29da71){_0x1175a2['push'](_0x1175a2['shift']());}}}(a156_0x2e3b,0x2f51e));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x4e48a3,_0x4b3135){const _0xf77c26=a156_0x4bca,_0x49c2c4=[];let _0x521fcd=0x1;while(!![]){const _0x13d859=await listSqlQueries(_0x4e48a3,{'currentPage':_0x521fcd,'pageSize':PAGE_SIZE,'sqlCode':_0x4b3135[_0xf77c26(0xbf)],'sqlName':_0x4b3135[_0xf77c26(0xca)]}),_0x3e300c=_0x13d859[_0xf77c26(0xb5)]??[];_0x49c2c4[_0xf77c26(0xda)](..._0x3e300c);if(_0x3e300c[_0xf77c26(0xd9)]===0x0)break;const _0x17fa12=_0x13d859[_0xf77c26(0xc3)]?.[_0xf77c26(0xb7)];if(_0x17fa12!=null?_0x49c2c4['length']>=_0x17fa12:_0x3e300c[_0xf77c26(0xd9)]<PAGE_SIZE)break;_0x521fcd++;}return _0x49c2c4;}async function ensureSqlContent(_0x2ede69){const _0x49c661=a156_0x4bca;if(_0x2ede69[_0x49c661(0xe1)]!=null&&String(_0x2ede69[_0x49c661(0xe1)])[_0x49c661(0xd9)]>0x0)return _0x2ede69;return getSqlQueryDetail(_0x2ede69[_0x49c661(0xbf)]);}export const sqlPull={'service':a156_0x34fbd7(0xb8),'command':'pull','description':a156_0x34fbd7(0xe6),'risk':'write','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a156_0x34fbd7(0xd8),'type':'string','description':'Filter\x20by\x20SQL\x20display\x20name'},{'name':a156_0x34fbd7(0xcc),'type':a156_0x34fbd7(0xc0),'description':a156_0x34fbd7(0xd6)}],async 'dryRun'(_0x17f04b){const _0x477110=a156_0x34fbd7,_0x3d20df=loadSqlProjectConfig(_0x17f04b[_0x477110(0xbd)]),_0x2e1b2b=await readSqlLockFile(_0x3d20df[_0x477110(0xb9)]),{appLock:_0x366bfd}=ensureSqlLockScope(_0x2e1b2b??createEmptySqlLock(),_0x3d20df[_0x477110(0xbd)],_0x3d20df['sqlRoot'],_0x477110(0xe0)),_0xbea892=await fetchAllSqlQueries(_0x17f04b[_0x477110(0xbd)],{'sqlCode':_0x17f04b[_0x477110(0xc5)](_0x477110(0xe3))||undefined,'sqlName':_0x17f04b[_0x477110(0xc5)](_0x477110(0xd8))||undefined}),_0x5b11f3=[];for(const _0x60b00b of _0xbea892){const _0x5bf1da=await ensureSqlContent(_0x60b00b),_0x5c536b=ensureRemoteSqlContent(_0x5bf1da),_0x4abb65=detectModeFromSql(_0x5bf1da),_0x43a6ab=_0x5bf1da['dbId']?await getDbName(_0x17f04b['appCode'],Number(_0x5bf1da[_0x477110(0xb4)]))[_0x477110(0xcf)](()=>undefined):undefined,_0x35fc24=buildLocalSqlFileContent({'sqlCode':_0x5bf1da['sqlCode'],'sqlName':_0x5bf1da[_0x477110(0xca)],'dbId':_0x5bf1da['dbId']},_0x5c536b,{'dbName':_0x43a6ab,'mode':_0x4abb65,'syncedAt':new Date()['toISOString'](),'description':_0x5bf1da[_0x477110(0xde)]}),_0x499fb1=buildSqlLockEntry(_0x5bf1da,_0x5c536b,'',{'dbName':_0x43a6ab}),_0x27cf7b=resolveLocalSqlFilePath(_0x3d20df,_0x5bf1da[_0x477110(0xbf)],_0x499fb1);let _0x870197=_0x477110(0xdb),_0x2341ac;if(await fileExists(_0x27cf7b)){const _0x447f2d=await readFile(_0x27cf7b,_0x477110(0xd1));isEquivalentPulledSqlFile(_0x447f2d,_0x35fc24,_0x4abb65)?(_0x870197=_0x477110(0xd4),_0x2341ac=_0x477110(0xc2)):(_0x870197=_0x477110(0xc8),_0x2341ac=_0x477110(0xce));}_0x5b11f3[_0x477110(0xda)]({'sqlCode':_0x5bf1da[_0x477110(0xbf)],'sqlName':_0x5bf1da[_0x477110(0xca)],'filePath':_0x27cf7b,'status':_0x870197,'reason':_0x2341ac});}return{'method':'POST','url':_0x477110(0xe7),'body':{'appCode':_0x17f04b[_0x477110(0xbd)],'sqlCode':_0x17f04b[_0x477110(0xc5)]('sqlcode')||null,'sqlName':_0x17f04b['str'](_0x477110(0xd8))||null,'files':_0x5b11f3},'description':_0x477110(0xb1)+_0x5b11f3[_0x477110(0xd9)]+_0x477110(0xb6)+_0x3d20df[_0x477110(0xcd)]};},async 'execute'(_0x22633f){const _0x1fb8e3=a156_0x34fbd7,_0x667b86=loadSqlProjectConfig(_0x22633f['appCode']),_0x42befb=await readSqlLockFile(_0x667b86[_0x1fb8e3(0xb9)]),{lockData:_0x52ab66,appLock:_0x3b0bca}=ensureSqlLockScope(_0x42befb??createEmptySqlLock(),_0x667b86['appCode'],_0x667b86[_0x1fb8e3(0xba)],_0x1fb8e3(0xe0)),_0x5037ca=_0x22633f[_0x1fb8e3(0xc1)](_0x1fb8e3(0xcc)),_0x579d08=await fetchAllSqlQueries(_0x22633f[_0x1fb8e3(0xbd)],{'sqlCode':_0x22633f[_0x1fb8e3(0xc5)](_0x1fb8e3(0xe3))||undefined,'sqlName':_0x22633f[_0x1fb8e3(0xc5)](_0x1fb8e3(0xd8))||undefined});if(_0x579d08[_0x1fb8e3(0xd9)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x1fb8e3(0xdc)};const _0xe3aa2c=[],_0x682dfc=[];for(const _0x1c1aa4 of _0x579d08){try{_0xe3aa2c[_0x1fb8e3(0xda)](await ensureSqlContent(_0x1c1aa4));}catch(_0x21ad0f){_0x682dfc[_0x1fb8e3(0xda)]({'sqlCode':_0x1c1aa4[_0x1fb8e3(0xbf)],'error':_0x21ad0f instanceof Error?_0x21ad0f[_0x1fb8e3(0xeb)]:String(_0x21ad0f)});}}if(_0x5037ca&&!_0x22633f[_0x1fb8e3(0xe5)]){let _0x5b9fc6=![];for(const _0x26cab5 of _0xe3aa2c){const _0x3ebb6a=detectModeFromSql(_0x26cab5),_0x92bfa6=_0x26cab5['dbId']?await getDbName(_0x22633f[_0x1fb8e3(0xbd)],Number(_0x26cab5[_0x1fb8e3(0xb4)]))['catch'](()=>undefined):undefined,_0x3d0a69=buildLocalSqlFileContent({'sqlCode':_0x26cab5[_0x1fb8e3(0xbf)],'sqlName':_0x26cab5['sqlName'],'dbId':_0x26cab5[_0x1fb8e3(0xb4)]},ensureRemoteSqlContent(_0x26cab5),{'dbName':_0x92bfa6,'mode':_0x3ebb6a,'syncedAt':new Date()['toISOString'](),'description':_0x26cab5[_0x1fb8e3(0xde)]}),_0x4097a6=resolveLocalSqlFilePath(_0x667b86,_0x26cab5[_0x1fb8e3(0xbf)],buildSqlLockEntry(_0x26cab5,ensureRemoteSqlContent(_0x26cab5),'',{'dbName':_0x92bfa6}));if(await fileExists(_0x4097a6)){const _0xcccfc3=await readFile(_0x4097a6,_0x1fb8e3(0xd1));if(!isEquivalentPulledSqlFile(_0xcccfc3,_0x3d0a69,_0x3ebb6a)){_0x5b9fc6=!![];break;}}}if(_0x5b9fc6){const _0x5c6a26=await confirmForceOverwrite(_0x1fb8e3(0xe9));if(!_0x5c6a26)throw CliErrors['cancelled'](_0x1fb8e3(0xbb));}}const _0x3cf9c4=cloneSqlLockData(_0x52ab66),_0x443c96=_0x3cf9c4[_0x1fb8e3(0xe2)][_0x667b86[_0x1fb8e3(0xbd)]],_0x42254e=[],_0x1ce2b6=[];for(const _0x49ee90 of _0xe3aa2c){const _0x4589e8=_0x443c96[_0x1fb8e3(0xec)][_0x49ee90[_0x1fb8e3(0xbf)]],_0x123a38=ensureRemoteSqlContent(_0x49ee90),_0x3cb93a=detectModeFromSql(_0x49ee90),_0x5d899c=_0x49ee90[_0x1fb8e3(0xb4)]?await getDbName(_0x22633f['appCode'],Number(_0x49ee90[_0x1fb8e3(0xb4)]))[_0x1fb8e3(0xcf)](()=>undefined):undefined,_0x1fa48e=buildLocalSqlFileContent({'sqlCode':_0x49ee90[_0x1fb8e3(0xbf)],'sqlName':_0x49ee90[_0x1fb8e3(0xca)],'dbId':_0x49ee90[_0x1fb8e3(0xb4)]},_0x123a38,{'dbName':_0x5d899c,'mode':_0x3cb93a,'syncedAt':new Date()[_0x1fb8e3(0xc6)](),'description':_0x49ee90[_0x1fb8e3(0xde)]}),_0x4abc63=buildSqlLockEntry(_0x49ee90,_0x123a38,computeSqlContentHash(_0x1fa48e),{'dbName':_0x5d899c}),_0x337ed1=_0x4abc63['path'],_0x18182f=join(_0x667b86[_0x1fb8e3(0xcd)],_0x337ed1);try{if(await fileExists(_0x18182f)){const _0x3c150c=await readFile(_0x18182f,_0x1fb8e3(0xd1));if(isEquivalentPulledSqlFile(_0x3c150c,_0x1fa48e,_0x3cb93a)){_0x1ce2b6[_0x1fb8e3(0xda)]({'sqlCode':_0x49ee90[_0x1fb8e3(0xbf)],'reason':_0x1fb8e3(0xc2)}),_0x443c96[_0x1fb8e3(0xec)][_0x49ee90[_0x1fb8e3(0xbf)]]={..._0x4abc63,'hash':computeSqlContentHash(_0x3c150c),'path':_0x337ed1};continue;}if(!_0x5037ca){_0x1ce2b6[_0x1fb8e3(0xda)]({'sqlCode':_0x49ee90[_0x1fb8e3(0xbf)],'reason':_0x1fb8e3(0xed)});continue;}}const _0x4faffd=_0x4589e8?.[_0x1fb8e3(0xe8)]?join(_0x667b86['sqlRootDir'],_0x4589e8[_0x1fb8e3(0xe8)]):undefined;_0x4faffd&&_0x4faffd!==_0x18182f&&await fileExists(_0x4faffd)&&await rm(_0x4faffd,{'force':!![]}),await ensureParentDirectory(_0x18182f),await writeFile(_0x18182f,_0x1fa48e,_0x1fb8e3(0xd1)),_0x443c96[_0x1fb8e3(0xec)][_0x49ee90['sqlCode']]={..._0x4abc63,'path':_0x337ed1},_0x42254e['push']({'sqlCode':_0x49ee90['sqlCode'],'filePath':_0x18182f});}catch(_0x3553f3){_0x682dfc[_0x1fb8e3(0xda)]({'sqlCode':_0x49ee90[_0x1fb8e3(0xbf)],'error':_0x3553f3 instanceof Error?_0x3553f3[_0x1fb8e3(0xeb)]:String(_0x3553f3)});}}return _0x443c96[_0x1fb8e3(0xe4)]=new Date()[_0x1fb8e3(0xc6)](),await writeSqlLockFile(_0x667b86[_0x1fb8e3(0xb9)],_0x3cf9c4),{'ok':_0x682dfc[_0x1fb8e3(0xd9)]===0x0,'data':{'pulled':_0x42254e,'skipped':_0x1ce2b6,'failed':_0x682dfc},'message':'Pull\x20complete:\x20'+_0x42254e[_0x1fb8e3(0xd9)]+_0x1fb8e3(0xd0)+_0x1ce2b6[_0x1fb8e3(0xd9)]+_0x1fb8e3(0xdd)+_0x682dfc[_0x1fb8e3(0xd9)]+_0x1fb8e3(0xd7)};}};function a156_0x4bca(_0x3a2fb4,_0x4b7069){_0x3a2fb4=_0x3a2fb4-0xb1;const _0x2e3be3=a156_0x2e3b();let _0x4bcaee=_0x2e3be3[_0x3a2fb4];return _0x4bcaee;}function detectModeFromSql(_0x19d3bf){const _0x1c3370=a156_0x34fbd7,_0x36d181=ensureRemoteSqlContent(_0x19d3bf),_0xb653ac=stripLocalSqlMetadata(_0x36d181,_0x1c3370(0xd5))['trimStart']();if(/^<(select|insert|update|delete)\b/i['test'](_0xb653ac))return _0x1c3370(0xd5);return _0x1c3370(0xb8);}function isEquivalentPulledSqlFile(_0x12200b,_0x14e1d7,_0x5e0464){return normalizePullComparableContent(_0x12200b,_0x5e0464)===normalizePullComparableContent(_0x14e1d7,_0x5e0464);}function normalizePullComparableContent(_0x87d985,_0x1c8dac){const _0x3a64ec=a156_0x34fbd7,_0x51b61c=_0x87d985[_0x3a64ec(0xdf)](/\r\n/g,'\x0a')['split']('\x0a'),_0x3c1607=_0x51b61c[_0x3a64ec(0xb3)](_0x4a779a=>!isSyncedAtMetadataLine(_0x4a779a,_0x1c8dac));return _0x3c1607['join']('\x0a');}function isSyncedAtMetadataLine(_0x2a492e,_0x178ea6){const _0xf7ecf9=a156_0x34fbd7;if(_0x178ea6==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0xf7ecf9(0xbc)](_0x2a492e);return/^\s*--\s*@lovrabet\.syncedAt:/[_0xf7ecf9(0xbc)](_0x2a492e);}function a156_0x2e3b(){const _0x3a3ea7=['lastSync','nonInteractive','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','path','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','520422gHIGIv','message','sqls','local\x20differs\x20from\x20remote','Would\x20pull\x20','689236zHydhW','filter','dbId','tableData','\x20SQL\x20file(s)\x20into\x20','totalCount','sql','lockFilePath','sqlRoot','Force\x20pull\x20cancelled.','test','appCode','154578MhlTjV','sqlCode','boolean','bool','unchanged','paging','377934ajQfdx','str','toISOString','55ZOTXGe','conflict','316569INAqez','sqlName','3051648EZwjoL','force','sqlRootDir','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','catch','\x20written,\x20','utf8','3TSbJOY','3167766eTlRyO','skipped','mybatisXml','Force\x20overwrite\x20local\x20unsynced\x20changes','\x20failed','name','length','push','would_pull','No\x20remote\x20SQL\x20queries\x20matched.','\x20skipped,\x20','description','replace','pull','sqlContent','apps','sqlcode'];a156_0x2e3b=function(){return _0x3a3ea7;};return a156_0x2e3b();}
|
|
1
|
+
const a156_0x25f5f9=a156_0x4e7e;(function(_0x235f48,_0x5e89e0){const _0x734e8=a156_0x4e7e,_0x110f60=_0x235f48();while(!![]){try{const _0x373a57=parseInt(_0x734e8(0x1e2))/0x1+-parseInt(_0x734e8(0x1cf))/0x2+-parseInt(_0x734e8(0x1bb))/0x3+-parseInt(_0x734e8(0x1e5))/0x4+-parseInt(_0x734e8(0x1e9))/0x5+parseInt(_0x734e8(0x1e7))/0x6*(parseInt(_0x734e8(0x1c8))/0x7)+-parseInt(_0x734e8(0x1d2))/0x8*(-parseInt(_0x734e8(0x1c9))/0x9);if(_0x373a57===_0x5e89e0)break;else _0x110f60['push'](_0x110f60['shift']());}catch(_0x493e2f){_0x110f60['push'](_0x110f60['shift']());}}}(a156_0x3123,0x78a4c));import{readFile,rm,writeFile}from'node:fs/promises';function a156_0x4e7e(_0x46c395,_0x5803f5){_0x46c395=_0x46c395-0x1b8;const _0x3123e9=a156_0x3123();let _0x4e7e24=_0x3123e9[_0x46c395];return _0x4e7e24;}import{join}from'node:path';function a156_0x3123(){const _0x36e808=['local\x20differs\x20from\x20remote','description','boolean','replace','Pull\x20complete:\x20','trimStart','\x20skipped,\x20','force','1041372jYialV','unchanged','name','test','appCode','nonInteractive','catch','dbId','write','push','utf8','lockFilePath','toISOString','294EYUZod','9mEGnDb','bool','Would\x20pull\x20','No\x20remote\x20SQL\x20queries\x20matched.','totalCount','paging','1315064iYJPcX','sqlcode','tableData','14849632DJUHOa','path','apps','Filter\x20by\x20SQL\x20display\x20name','POST','mybatisXml','length','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','pull','message','sqlContent','\x20SQL\x20file(s)\x20into\x20','Force\x20pull\x20cancelled.','sqlRoot','sqlCode','split','515772hATBEv','sqlName','local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)','3236416ZFEpci','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','92802JzfVjw','sqls','3568370jUMtqc','str','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql'];a156_0x3123=function(){return _0x36e808;};return a156_0x3123();}import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{getDbName}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';import{CliErrors}from'../../errors.js';import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{buildLocalSqlFileContent,buildSqlLockEntry,cloneSqlLockData,confirmForceOverwrite,ensureRemoteSqlContent,stripLocalSqlMetadata}from'./shared.js';const PAGE_SIZE=0x64;async function fetchAllSqlQueries(_0x1d293e,_0x2e2acd){const _0x2cecce=a156_0x4e7e,_0x58138e=[];let _0x3bb689=0x1;while(!![]){const _0x5cdfbe=await listSqlQueries(_0x1d293e,{'currentPage':_0x3bb689,'pageSize':PAGE_SIZE,'sqlCode':_0x2e2acd[_0x2cecce(0x1e0)],'sqlName':_0x2e2acd['sqlName']}),_0x31d915=_0x5cdfbe[_0x2cecce(0x1d1)]??[];_0x58138e[_0x2cecce(0x1c4)](..._0x31d915);if(_0x31d915[_0x2cecce(0x1d8)]===0x0)break;const _0x56d4ff=_0x5cdfbe[_0x2cecce(0x1ce)]?.[_0x2cecce(0x1cd)];if(_0x56d4ff!=null?_0x58138e[_0x2cecce(0x1d8)]>=_0x56d4ff:_0x31d915[_0x2cecce(0x1d8)]<PAGE_SIZE)break;_0x3bb689++;}return _0x58138e;}async function ensureSqlContent(_0x12b1d2){const _0x11ed34=a156_0x4e7e;if(_0x12b1d2[_0x11ed34(0x1dc)]!=null&&String(_0x12b1d2[_0x11ed34(0x1dc)])[_0x11ed34(0x1d8)]>0x0)return _0x12b1d2;return getSqlQueryDetail(_0x12b1d2['sqlCode']);}export const sqlPull={'service':'sql','command':a156_0x25f5f9(0x1da),'description':a156_0x25f5f9(0x1d9),'risk':a156_0x25f5f9(0x1c3),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':'name','type':'string','description':a156_0x25f5f9(0x1d5)},{'name':a156_0x25f5f9(0x1ba),'type':a156_0x25f5f9(0x1ee),'description':'Force\x20overwrite\x20local\x20unsynced\x20changes'}],async 'dryRun'(_0x537232){const _0x3f7b12=a156_0x25f5f9,_0x171579=loadSqlProjectConfig(_0x537232[_0x3f7b12(0x1bf)]),_0x1e4e97=await readSqlLockFile(_0x171579[_0x3f7b12(0x1c6)]),{appLock:_0x93748e}=ensureSqlLockScope(_0x1e4e97??createEmptySqlLock(),_0x171579['appCode'],_0x171579[_0x3f7b12(0x1df)],_0x3f7b12(0x1da)),_0x56b94f=await fetchAllSqlQueries(_0x537232[_0x3f7b12(0x1bf)],{'sqlCode':_0x537232[_0x3f7b12(0x1ea)](_0x3f7b12(0x1d0))||undefined,'sqlName':_0x537232[_0x3f7b12(0x1ea)](_0x3f7b12(0x1bd))||undefined}),_0x57e00b=[];for(const _0x126162 of _0x56b94f){const _0x1df58a=await ensureSqlContent(_0x126162),_0x312837=ensureRemoteSqlContent(_0x1df58a),_0x18abd8=detectModeFromSql(_0x1df58a),_0x4f1a30=_0x1df58a[_0x3f7b12(0x1c2)]?await getDbName(_0x537232[_0x3f7b12(0x1bf)],Number(_0x1df58a[_0x3f7b12(0x1c2)]))[_0x3f7b12(0x1c1)](()=>undefined):undefined,_0x127a29=buildLocalSqlFileContent({'sqlCode':_0x1df58a[_0x3f7b12(0x1e0)],'sqlName':_0x1df58a[_0x3f7b12(0x1e3)],'dbId':_0x1df58a[_0x3f7b12(0x1c2)]},_0x312837,{'dbName':_0x4f1a30,'mode':_0x18abd8,'syncedAt':new Date()[_0x3f7b12(0x1c7)](),'description':_0x1df58a['description']}),_0x29bad2=buildSqlLockEntry(_0x1df58a,_0x312837,'',{'dbName':_0x4f1a30}),_0x2960e2=resolveLocalSqlFilePath(_0x171579,_0x1df58a['sqlCode'],_0x29bad2);let _0x1bccbf='would_pull',_0x2c3f40;if(await fileExists(_0x2960e2)){const _0x861c5a=await readFile(_0x2960e2,_0x3f7b12(0x1c5));isEquivalentPulledSqlFile(_0x861c5a,_0x127a29,_0x18abd8)?(_0x1bccbf='skipped',_0x2c3f40='unchanged'):(_0x1bccbf='conflict',_0x2c3f40=_0x3f7b12(0x1e4));}_0x57e00b[_0x3f7b12(0x1c4)]({'sqlCode':_0x1df58a[_0x3f7b12(0x1e0)],'sqlName':_0x1df58a[_0x3f7b12(0x1e3)],'filePath':_0x2960e2,'status':_0x1bccbf,'reason':_0x2c3f40});}return{'method':_0x3f7b12(0x1d6),'url':_0x3f7b12(0x1eb),'body':{'appCode':_0x537232[_0x3f7b12(0x1bf)],'sqlCode':_0x537232[_0x3f7b12(0x1ea)](_0x3f7b12(0x1d0))||null,'sqlName':_0x537232[_0x3f7b12(0x1ea)](_0x3f7b12(0x1bd))||null,'files':_0x57e00b},'description':_0x3f7b12(0x1cb)+_0x57e00b[_0x3f7b12(0x1d8)]+_0x3f7b12(0x1dd)+_0x171579['sqlRootDir']};},async 'execute'(_0x2e2a12){const _0x43a1f4=a156_0x25f5f9,_0xbd9006=loadSqlProjectConfig(_0x2e2a12[_0x43a1f4(0x1bf)]),_0x55dabb=await readSqlLockFile(_0xbd9006[_0x43a1f4(0x1c6)]),{lockData:_0x32d304,appLock:_0x1ff840}=ensureSqlLockScope(_0x55dabb??createEmptySqlLock(),_0xbd9006[_0x43a1f4(0x1bf)],_0xbd9006['sqlRoot'],_0x43a1f4(0x1da)),_0x20f74c=_0x2e2a12[_0x43a1f4(0x1ca)]('force'),_0xe6c0a6=await fetchAllSqlQueries(_0x2e2a12[_0x43a1f4(0x1bf)],{'sqlCode':_0x2e2a12[_0x43a1f4(0x1ea)](_0x43a1f4(0x1d0))||undefined,'sqlName':_0x2e2a12['str'](_0x43a1f4(0x1bd))||undefined});if(_0xe6c0a6[_0x43a1f4(0x1d8)]===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x43a1f4(0x1cc)};const _0x2ca76e=[],_0x3b4eb1=[];for(const _0x27e5fe of _0xe6c0a6){try{_0x2ca76e['push'](await ensureSqlContent(_0x27e5fe));}catch(_0x43497c){_0x3b4eb1['push']({'sqlCode':_0x27e5fe[_0x43a1f4(0x1e0)],'error':_0x43497c instanceof Error?_0x43497c[_0x43a1f4(0x1db)]:String(_0x43497c)});}}if(_0x20f74c&&!_0x2e2a12[_0x43a1f4(0x1c0)]){let _0x406cd5=![];for(const _0x1186d9 of _0x2ca76e){const _0x2e85c1=detectModeFromSql(_0x1186d9),_0x425048=_0x1186d9[_0x43a1f4(0x1c2)]?await getDbName(_0x2e2a12[_0x43a1f4(0x1bf)],Number(_0x1186d9[_0x43a1f4(0x1c2)]))[_0x43a1f4(0x1c1)](()=>undefined):undefined,_0x530045=buildLocalSqlFileContent({'sqlCode':_0x1186d9[_0x43a1f4(0x1e0)],'sqlName':_0x1186d9[_0x43a1f4(0x1e3)],'dbId':_0x1186d9[_0x43a1f4(0x1c2)]},ensureRemoteSqlContent(_0x1186d9),{'dbName':_0x425048,'mode':_0x2e85c1,'syncedAt':new Date()['toISOString'](),'description':_0x1186d9[_0x43a1f4(0x1ed)]}),_0x565137=resolveLocalSqlFilePath(_0xbd9006,_0x1186d9[_0x43a1f4(0x1e0)],buildSqlLockEntry(_0x1186d9,ensureRemoteSqlContent(_0x1186d9),'',{'dbName':_0x425048}));if(await fileExists(_0x565137)){const _0x4d8500=await readFile(_0x565137,'utf8');if(!isEquivalentPulledSqlFile(_0x4d8500,_0x530045,_0x2e85c1)){_0x406cd5=!![];break;}}}if(_0x406cd5){const _0x2b9325=await confirmForceOverwrite(_0x43a1f4(0x1e6));if(!_0x2b9325)throw CliErrors['cancelled'](_0x43a1f4(0x1de));}}const _0x53ea1a=cloneSqlLockData(_0x32d304),_0x1c46a7=_0x53ea1a[_0x43a1f4(0x1d4)][_0xbd9006[_0x43a1f4(0x1bf)]],_0x2efa7c=[],_0x1edcf9=[];for(const _0x5963e2 of _0x2ca76e){const _0x3cf6d7=_0x1c46a7[_0x43a1f4(0x1e8)][_0x5963e2[_0x43a1f4(0x1e0)]],_0x22f4c2=ensureRemoteSqlContent(_0x5963e2),_0x1edad6=detectModeFromSql(_0x5963e2),_0x4f0092=_0x5963e2[_0x43a1f4(0x1c2)]?await getDbName(_0x2e2a12[_0x43a1f4(0x1bf)],Number(_0x5963e2[_0x43a1f4(0x1c2)]))['catch'](()=>undefined):undefined,_0x2c6069=buildLocalSqlFileContent({'sqlCode':_0x5963e2['sqlCode'],'sqlName':_0x5963e2[_0x43a1f4(0x1e3)],'dbId':_0x5963e2[_0x43a1f4(0x1c2)]},_0x22f4c2,{'dbName':_0x4f0092,'mode':_0x1edad6,'syncedAt':new Date()[_0x43a1f4(0x1c7)](),'description':_0x5963e2[_0x43a1f4(0x1ed)]}),_0x3dbe3c=buildSqlLockEntry(_0x5963e2,_0x22f4c2,computeSqlContentHash(_0x2c6069),{'dbName':_0x4f0092}),_0x2cfa7a=_0x3dbe3c['path'],_0x2b907b=join(_0xbd9006['sqlRootDir'],_0x2cfa7a);try{if(await fileExists(_0x2b907b)){const _0x2e382f=await readFile(_0x2b907b,_0x43a1f4(0x1c5));if(isEquivalentPulledSqlFile(_0x2e382f,_0x2c6069,_0x1edad6)){_0x1edcf9['push']({'sqlCode':_0x5963e2[_0x43a1f4(0x1e0)],'reason':_0x43a1f4(0x1bc)}),_0x1c46a7[_0x43a1f4(0x1e8)][_0x5963e2[_0x43a1f4(0x1e0)]]={..._0x3dbe3c,'hash':computeSqlContentHash(_0x2e382f),'path':_0x2cfa7a};continue;}if(!_0x20f74c){_0x1edcf9['push']({'sqlCode':_0x5963e2[_0x43a1f4(0x1e0)],'reason':_0x43a1f4(0x1ec)});continue;}}const _0x59a856=_0x3cf6d7?.[_0x43a1f4(0x1d3)]?join(_0xbd9006['sqlRootDir'],_0x3cf6d7[_0x43a1f4(0x1d3)]):undefined;_0x59a856&&_0x59a856!==_0x2b907b&&await fileExists(_0x59a856)&&await rm(_0x59a856,{'force':!![]}),await ensureParentDirectory(_0x2b907b),await writeFile(_0x2b907b,_0x2c6069,_0x43a1f4(0x1c5)),_0x1c46a7[_0x43a1f4(0x1e8)][_0x5963e2[_0x43a1f4(0x1e0)]]={..._0x3dbe3c,'path':_0x2cfa7a},_0x2efa7c[_0x43a1f4(0x1c4)]({'sqlCode':_0x5963e2['sqlCode'],'filePath':_0x2b907b});}catch(_0x57060e){_0x3b4eb1[_0x43a1f4(0x1c4)]({'sqlCode':_0x5963e2[_0x43a1f4(0x1e0)],'error':_0x57060e instanceof Error?_0x57060e['message']:String(_0x57060e)});}}return _0x1c46a7['lastSync']=new Date()[_0x43a1f4(0x1c7)](),await writeSqlLockFile(_0xbd9006[_0x43a1f4(0x1c6)],_0x53ea1a),{'ok':_0x3b4eb1[_0x43a1f4(0x1d8)]===0x0,'data':{'pulled':_0x2efa7c,'skipped':_0x1edcf9,'failed':_0x3b4eb1},'message':_0x43a1f4(0x1f0)+_0x2efa7c[_0x43a1f4(0x1d8)]+'\x20written,\x20'+_0x1edcf9['length']+_0x43a1f4(0x1b9)+_0x3b4eb1['length']+'\x20failed'};}};function detectModeFromSql(_0x19650c){const _0x312911=a156_0x25f5f9,_0x5c82c4=ensureRemoteSqlContent(_0x19650c),_0x5644a3=stripLocalSqlMetadata(_0x5c82c4,_0x312911(0x1d7))[_0x312911(0x1b8)]();if(/^<(select|insert|update|delete)\b/i[_0x312911(0x1be)](_0x5644a3))return _0x312911(0x1d7);return'sql';}function isEquivalentPulledSqlFile(_0x4ed7e2,_0x5bfdb4,_0x105ce8){return normalizePullComparableContent(_0x4ed7e2,_0x105ce8)===normalizePullComparableContent(_0x5bfdb4,_0x105ce8);}function normalizePullComparableContent(_0xf8f982,_0x25dd2d){const _0x2226ff=a156_0x25f5f9,_0x3209c8=_0xf8f982[_0x2226ff(0x1ef)](/\r\n/g,'\x0a')[_0x2226ff(0x1e1)]('\x0a'),_0x421035=_0x3209c8['filter'](_0x1c396d=>!isSyncedAtMetadataLine(_0x1c396d,_0x25dd2d));return _0x421035['join']('\x0a');}function isSyncedAtMetadataLine(_0x3df622,_0x18d24b){const _0x5077e0=a156_0x25f5f9;if(_0x18d24b==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x5077e0(0x1be)](_0x3df622);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x3df622);}
|