@lovrabet/rabetbase-cli 2.3.4-beta.4 → 2.3.5-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/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(_0x34fbcb,_0x111df0){const _0x1160a3=a141_0x4d1d,_0x276b64=_0x34fbcb();while(!![]){try{const _0x1eac62=parseInt(_0x1160a3(0x135))/0x1+parseInt(_0x1160a3(0x12e))/0x2*(-parseInt(_0x1160a3(0x134))/0x3)+-parseInt(_0x1160a3(0x131))/0x4+-parseInt(_0x1160a3(0x133))/0x5*(-parseInt(_0x1160a3(0x12f))/0x6)+-parseInt(_0x1160a3(0x12c))/0x7*(parseInt(_0x1160a3(0x130))/0x8)+parseInt(_0x1160a3(0x132))/0x9*(-parseInt(_0x1160a3(0x12b))/0xa)+-parseInt(_0x1160a3(0x12d))/0xb;if(_0x1eac62===_0x111df0)break;else _0x276b64['push'](_0x276b64['shift']());}catch(_0x5b4854){_0x276b64['push'](_0x276b64['shift']());}}}(a141_0x11e2,0xeda1b));import{roleList}from'../../commands/role/list.js';function a141_0x11e2(){const _0x4edea2=['631630UvxwNN','1183IvrXfq','2268079MOTNsB','8rRdFQn','10850826TBdLQi','4984AlYxUB','545828sGWbmu','54JhbvHO','5tPmaxq','1035663dqHMfT','1372663kKBTWS'];a141_0x11e2=function(){return _0x4edea2;};return a141_0x11e2();}import{roleDetail}from'../../commands/role/detail.js';import{roleCreate}from'../../commands/role/create.js';import{roleUpdate}from'../../commands/role/update.js';function a141_0x4d1d(_0x4551f4,_0x357843){_0x4551f4=_0x4551f4-0x12b;const _0x11e2e4=a141_0x11e2();let _0x4d1d4b=_0x11e2e4[_0x4551f4];return _0x4d1d4b;}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
|
+
function a142_0x31dc(_0x3a6eb3,_0x29f567){_0x3a6eb3=_0x3a6eb3-0x77;const _0x30911=a142_0x3091();let _0x31dc6f=_0x30911[_0x3a6eb3];return _0x31dc6f;}const a142_0x14f75c=a142_0x31dc;(function(_0x50f68a,_0x325e86){const _0x4df914=a142_0x31dc,_0x114e0c=_0x50f68a();while(!![]){try{const _0x2ebe9e=-parseInt(_0x4df914(0x8f))/0x1*(-parseInt(_0x4df914(0x82))/0x2)+parseInt(_0x4df914(0x93))/0x3+parseInt(_0x4df914(0x81))/0x4+-parseInt(_0x4df914(0x94))/0x5*(-parseInt(_0x4df914(0x7d))/0x6)+-parseInt(_0x4df914(0x85))/0x7+parseInt(_0x4df914(0x91))/0x8+-parseInt(_0x4df914(0x8b))/0x9*(parseInt(_0x4df914(0x79))/0xa);if(_0x2ebe9e===_0x325e86)break;else _0x114e0c['push'](_0x114e0c['shift']());}catch(_0x54f4a7){_0x114e0c['push'](_0x114e0c['shift']());}}}(a142_0x3091,0x79774));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';const ROLE_TYPES=[a142_0x14f75c(0x8e),'DEV','USER',a142_0x14f75c(0x80)];export const roleList={'service':a142_0x14f75c(0x84),'command':a142_0x14f75c(0x86),'description':a142_0x14f75c(0x96),'risk':a142_0x14f75c(0x88),'flags':[APPCODE_FLAG_OPTIONAL,{'name':'type','type':a142_0x14f75c(0x83),'required':![],'description':a142_0x14f75c(0x87),'enum':ROLE_TYPES},{'name':'page','type':a142_0x14f75c(0x7f),'description':a142_0x14f75c(0x7e),'default':0x1},{'name':'pagesize','type':a142_0x14f75c(0x7f),'description':a142_0x14f75c(0x7c),'default':0x64}],async 'validate'(_0x405772){const _0x65b5d=a142_0x14f75c,_0x43adae=_0x405772[_0x65b5d(0x8a)]('type')[_0x65b5d(0x7a)]();if(_0x43adae&&!ROLE_TYPES[_0x65b5d(0x7b)](_0x43adae['toUpperCase']()))throw CliErrors[_0x65b5d(0x77)]('Invalid\x20--type\x20\x22'+_0x43adae+'\x22.','Use\x20one\x20of:\x20'+ROLE_TYPES[_0x65b5d(0x95)](',\x20')+'.');const _0x25093c=_0x405772['num']('page',0x1),_0x5be47a=_0x405772['num'](_0x65b5d(0x8d),0x64);if(_0x25093c<0x1)throw CliErrors[_0x65b5d(0x77)](_0x65b5d(0x99));if(_0x5be47a<0x1||_0x5be47a>0x64)throw CliErrors[_0x65b5d(0x77)](_0x65b5d(0x8c));},async 'execute'(_0x4ffe4b){const _0x5a6ded=a142_0x14f75c,_0x286b56=_0x4ffe4b['num'](_0x5a6ded(0x90),0x1)||0x1,_0x43f2a9=_0x4ffe4b[_0x5a6ded(0x98)](_0x5a6ded(0x8d),0x64)||0x64,_0x20d281=_0x4ffe4b['str'](_0x5a6ded(0x89))[_0x5a6ded(0x7a)]()[_0x5a6ded(0x97)](),{items:_0x444273,paging:_0x1d63b5}=await listAppRoles(_0x4ffe4b['appCode'],{'currentPage':_0x286b56,'pageSize':_0x43f2a9}),_0x261b53=_0x20d281?_0x444273['filter'](_0x545a41=>_0x545a41[_0x5a6ded(0x78)]===_0x20d281):_0x444273,_0x53b9b2=_0x261b53['map'](projectRole);return{'ok':!![],'data':{'roles':_0x53b9b2,'paging':_0x1d63b5},'message':_0x5a6ded(0x92)+_0x53b9b2['length']+'\x20role(s)'};}};function a142_0x3091(){const _0x3b3649=['5XznxgZ','join','List\x20user\x20groups\x20(roles)\x20for\x20the\x20current\x20app','toUpperCase','num','--page\x20must\x20be\x20greater\x20than\x20or\x20equal\x20to\x201.','validation','roleType','20fMBiXQ','trim','includes','Page\x20size\x20(1-100)','4122042wMAmud','Page\x20index\x20(1-based)','number','CUSTOM','1419984NGCBdn','14IHEEtX','string','role','2377445LlwnGA','list','Filter\x20by\x20role\x20type','read','type','str','9613782fAUXMH','--pagesize\x20must\x20be\x20between\x201\x20and\x20100.','pagesize','ADMIN','63755OzgLJZ','page','4653640aVLnYW','Found\x20','2710686JBMLvX'];a142_0x3091=function(){return _0x3b3649;};return a142_0x3091();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a143_0x124284=a143_0x39a9;(function(_0x13bc88,_0x27e7eb){const _0x142969=a143_0x39a9,_0x45776a=_0x13bc88();while(!![]){try{const _0x27909b=-parseInt(_0x142969(0xbd))/0x1*(parseInt(_0x142969(0xa3))/0x2)+parseInt(_0x142969(0xc2))/0x3*(-parseInt(_0x142969(0xbb))/0x4)+-parseInt(_0x142969(0x8a))/0x5+-parseInt(_0x142969(0x93))/0x6+parseInt(_0x142969(0xbc))/0x7*(parseInt(_0x142969(0xcb))/0x8)+-parseInt(_0x142969(0xce))/0x9*(-parseInt(_0x142969(0xc7))/0xa)+parseInt(_0x142969(0x9f))/0xb;if(_0x27909b===_0x27e7eb)break;else _0x45776a['push'](_0x45776a['shift']());}catch(_0x1f10b3){_0x45776a['push'](_0x45776a['shift']());}}}(a143_0x3141,0x37623));import{getAppRole,getTenantMembers,listAppRoles,listRoleUsers}from'../../core/api-client.js';function a143_0x3141(){const _0x4cafbf=['No\x20tenant\x20member\x20matches\x20\x22','remark','filter','14128268azSxmc','Missing\x20user\x20reference.','name','\x22:\x20','830572OUypEY','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles.','\x22\x20is\x20ambiguous\x20(ids:\x20','USER','totalCount','\x20is\x20already\x20a\x20member\x20of\x20role\x20','userList','DEV','flagMissing','\x20not\x20found\x20in\x20app\x20','Only\x20CUSTOM\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','test','find','Multiple\x20tenant\x20members\x20match\x20\x22','Role\x20name','includes','nickname','expectUserCount','join','user','CUSTOM','username','string','User\x20id,\x20username,\x20or\x20nickname\x20to\x20resolve\x20to\x20a\x20userId','554252EuQgMi','21soHHxl','1bspREk','Cannot\x20resolve\x20current\x20tenant.\x20Run\x20`rabetbase\x20auth\x20login`\x20first.','userId','map','permitCount','9wlwIof','userCount','role','Role\x20name\x20\x22','Role\x20id\x20','440060PdqBdZ','Anti-drift\x20guard:\x20fail\x20if\x20the\x20role\x27s\x20current\x20member\x20count\x20differs','Cannot\x20','roleType','459720PtLOrn','Missing\x20role\x20reference.','trim','27oZbZYQ','validation','tenant','user-add','\x20member(s)\x20but\x20role\x20has\x20','length','dryRun','expect-user-count','tenant_code','flag','roleName','Pass\x20--user\x20<id|name>.','Run\x20`role\x20list`\x20to\x20see\x20available\x20roles,\x20or\x20pass\x20--role\x20<id>.','2267230yzNTmT','str','appCode','splice','Role\x20id\x20or\x20role\x20name\x20(CUSTOM\x20roles\x20may\x20be\x20referenced\x20by\x20name)','toLowerCase','number','\x20not\x20found\x20in\x20the\x20user-role\x20list.','Disambiguate\x20with\x20--user\x20<id>.','465174gPcXrT','/smartapi/permit/user-role/update-user-list','Disambiguate\x20with\x20--role\x20<id>.','push','Pass\x20--role\x20<id|name>.','Re-run\x20`role\x20detail`\x20/\x20`role\x20list`\x20and\x20retry\x20with\x20the\x20current\x20count.','Cannot\x20change\x20the\x20permission\x20matrix\x20of\x20built-in\x20role\x20',';\x20no\x20change.','ADMIN'];a143_0x3141=function(){return _0x4cafbf;};return a143_0x3141();}import{getSessionUserInfo}from'../../auth/get-session-user.js';import{CliErrors}from'../../errors.js';export const ROLE_ID_FLAG={'name':'id','type':a143_0x124284(0x90),'required':!![],'description':'Role\x20id\x20(from\x20`role\x20list`)'};export const ROLE_REF_FLAG={'name':a143_0x124284(0xc4),'type':a143_0x124284(0xb9),'required':!![],'description':a143_0x124284(0x8e)};export const USER_REF_FLAG={'name':a143_0x124284(0xb6),'type':a143_0x124284(0xb9),'required':!![],'description':a143_0x124284(0xba)};function a143_0x39a9(_0xdb2294,_0x1b97cb){_0xdb2294=_0xdb2294-0x84;const _0x3141f2=a143_0x3141();let _0x39a978=_0x3141f2[_0xdb2294];return _0x39a978;}export const NAME_FLAG={'name':a143_0x124284(0xa1),'type':a143_0x124284(0xb9),'required':!![],'description':a143_0x124284(0xb1)};export const USER_NAME_FLAG={'name':a143_0x124284(0xa1),'type':'string','required':!![],'description':'Nickname\x20or\x20username\x20to\x20resolve\x20to\x20a\x20userId'};export const REMARK_FLAG={'name':a143_0x124284(0x9d),'type':a143_0x124284(0xb9),'required':![],'description':'Optional\x20role\x20remark/description'};export const EXPECT_USER_COUNT_FLAG={'name':a143_0x124284(0x84),'type':a143_0x124284(0x90),'required':![],'description':a143_0x124284(0xc8)};export const BUILTIN_ROLE_TYPES=[a143_0x124284(0x9b),'DEV',a143_0x124284(0xa6)];export function isBuiltinRole(_0x2f5a47){return BUILTIN_ROLE_TYPES['includes'](_0x2f5a47);}export function assertCustomRole(_0x13bd92,_0x10266c){const _0x485616=a143_0x124284;if(_0x13bd92['roleType']!==_0x485616(0xb7))throw CliErrors[_0x485616(0xcf)](_0x485616(0xc9)+_0x10266c+'\x20built-in\x20role\x20'+_0x13bd92['roleName']+'\x20('+_0x13bd92['roleType']+').',_0x485616(0xad));}export function assertPermConfigurable(_0x16869f){const _0x4b30df=a143_0x124284;if(_0x16869f[_0x4b30df(0xca)]===_0x4b30df(0xaa)||_0x16869f[_0x4b30df(0xca)]===_0x4b30df(0x9b))throw CliErrors[_0x4b30df(0xcf)](_0x4b30df(0x99)+_0x16869f[_0x4b30df(0x87)]+'\x20('+_0x16869f[_0x4b30df(0xca)]+').','DEV\x20/\x20ADMIN\x20keep\x20full\x20access\x20by\x20design;\x20configure\x20a\x20CUSTOM\x20role\x20instead.');}export function projectRole(_0x13ef7e){const _0x2ac09a=a143_0x124284;return{'id':_0x13ef7e['id'],'roleName':_0x13ef7e['roleName'],'roleType':_0x13ef7e[_0x2ac09a(0xca)],'remark':_0x13ef7e[_0x2ac09a(0x9d)],'userCount':_0x13ef7e[_0x2ac09a(0xc3)],'permitCount':_0x13ef7e[_0x2ac09a(0xc1)],'builtin':isBuiltinRole(_0x13ef7e[_0x2ac09a(0xca)])};}export async function resolveRoleRef(_0x27690f,_0x2bc6f2){const _0x15c6d1=a143_0x124284,_0x3b1bfd=_0x2bc6f2[_0x15c6d1(0xcd)]();if(!_0x3b1bfd)throw CliErrors[_0x15c6d1(0xcf)](_0x15c6d1(0xcc),_0x15c6d1(0x97));if(/^\d+$/['test'](_0x3b1bfd))return getRoleById(_0x27690f,Number(_0x3b1bfd));const _0x23fb9b=await listAllAppRoles(_0x27690f),_0x3c5c05=_0x23fb9b['filter'](_0x1a8378=>_0x1a8378[_0x15c6d1(0x87)]===_0x3b1bfd);if(_0x3c5c05['length']===0x0)throw CliErrors[_0x15c6d1(0xcf)]('Role\x20name\x20\x22'+_0x3b1bfd+'\x22\x20not\x20found\x20in\x20app\x20'+_0x27690f+'.',_0x15c6d1(0x89));if(_0x3c5c05['length']>0x1){const _0x31d6c9=_0x3c5c05[_0x15c6d1(0xc0)](_0x543c52=>_0x543c52['id'])[_0x15c6d1(0xb5)](',\x20');throw CliErrors['validation'](_0x15c6d1(0xc5)+_0x3b1bfd+_0x15c6d1(0xa5)+_0x31d6c9+').',_0x15c6d1(0x95));}return _0x3c5c05[0x0];}export async function getRoleById(_0x5b662b,_0x400dc8){const _0x41d57b=a143_0x124284,_0xae2062=await getAppRole(_0x400dc8);if(!_0xae2062)throw CliErrors[_0x41d57b(0xcf)](_0x41d57b(0xc6)+_0x400dc8+_0x41d57b(0xac)+_0x5b662b+'.',_0x41d57b(0xa4));return _0xae2062;}async function listAllAppRoles(_0x173997){const _0x34b3e2=a143_0x124284,_0x2afedf=0x64,_0x20998b=[];for(let _0x375be1=0x1;;_0x375be1+=0x1){const {items:_0x1bc32d,paging:_0x41bdef}=await listAppRoles(_0x173997,{'currentPage':_0x375be1,'pageSize':_0x2afedf});_0x20998b['push'](..._0x1bc32d);if(_0x1bc32d['length']<_0x2afedf||_0x41bdef&&_0x20998b[_0x34b3e2(0xd3)]>=_0x41bdef[_0x34b3e2(0xa7)])return _0x20998b;}}export async function resolveTenantCode(){const _0x4ea68f=a143_0x124284,_0xf43a99=await getSessionUserInfo(),_0x520973=_0xf43a99?.['user']?.[_0x4ea68f(0xd0)]?.[_0x4ea68f(0x85)];if(!_0x520973)throw CliErrors['authRequired'](_0x4ea68f(0xbe));return _0x520973;}function matchMember(_0x2001ca,_0x4c2bee){const _0xe9068a=a143_0x124284,_0x308875=_0x4c2bee[_0xe9068a(0xcd)]()[_0xe9068a(0x8f)]();return(_0x2001ca[_0xe9068a(0xb3)]??'')[_0xe9068a(0x8f)]()===_0x308875||(_0x2001ca['username']??'')[_0xe9068a(0x8f)]()===_0x308875;}export async function resolveUserRef(_0x1358d5){const _0x4910ac=a143_0x124284,_0x16d7d4=_0x1358d5['trim']();if(!_0x16d7d4)throw CliErrors[_0x4910ac(0xcf)](_0x4910ac(0xa0),_0x4910ac(0x88));const _0x22bc8e=await resolveTenantCode(),_0x521167=await getTenantMembers(_0x22bc8e);if(/^\d+$/[_0x4910ac(0xae)](_0x16d7d4)){const _0x13b9d8=Number(_0x16d7d4),_0x8a9b42=_0x521167[_0x4910ac(0xaf)](_0x26852a=>_0x26852a[_0x4910ac(0xbf)]===_0x13b9d8);return{'userId':_0x13b9d8,'username':_0x8a9b42?.['username']??String(_0x13b9d8),'nickname':_0x8a9b42?.[_0x4910ac(0xb3)],'matchedBy':'id'};}const _0x39233a=_0x521167[_0x4910ac(0x9e)](_0x32c5b2=>matchMember(_0x32c5b2,_0x16d7d4));if(_0x39233a[_0x4910ac(0xd3)]===0x0)throw CliErrors[_0x4910ac(0xcf)](_0x4910ac(0x9c)+_0x16d7d4+'\x22.','Check\x20the\x20nickname/username,\x20or\x20pass\x20--user\x20<id>.');if(_0x39233a[_0x4910ac(0xd3)]>0x1){const _0xdc8906=_0x39233a[_0x4910ac(0xc0)](_0xa285b2=>(_0xa285b2['nickname']??_0xa285b2[_0x4910ac(0xb8)]??'?')+'('+_0xa285b2[_0x4910ac(0xbf)]+')')['join'](',\x20');throw CliErrors[_0x4910ac(0xcf)](_0x4910ac(0xb0)+_0x16d7d4+_0x4910ac(0xa2)+_0xdc8906+'.',_0x4910ac(0x92));}const _0x5c4c4d=_0x39233a[0x0];return{'userId':_0x5c4c4d[_0x4910ac(0xbf)],'username':_0x5c4c4d[_0x4910ac(0xb8)]??String(_0x5c4c4d[_0x4910ac(0xbf)]),'nickname':_0x5c4c4d[_0x4910ac(0xb3)],'matchedBy':'name'};}export const UPDATE_USER_LIST_PATH=a143_0x124284(0x94);function userIdsOf(_0x59f008){const _0x14cc57=a143_0x124284;return(_0x59f008?.[_0x14cc57(0xa9)]??[])[_0x14cc57(0xc0)](_0x2d94db=>_0x2d94db[_0x14cc57(0xbf)]);}export function computeRoleUserMutation(_0x31c708){const _0x4ccc02=a143_0x124284,{operation:_0x5cfaba,appCode:_0x45cb11,roleUsers:_0xb3f388,targetRoleId:_0x346152,user:_0x59534e}=_0x31c708,_0x567c0=_0xb3f388[_0x4ccc02(0xaf)](_0x5bd577=>_0x5bd577['id']===_0x346152);if(!_0x567c0)throw CliErrors[_0x4ccc02(0xcf)]('Role\x20id\x20'+_0x346152+_0x4ccc02(0x91),_0x4ccc02(0xa4));const _0x558bed=userIdsOf(_0x567c0),_0x403930=[];if(_0x31c708[_0x4ccc02(0xb4)]!==undefined&&_0x31c708[_0x4ccc02(0xb4)]!==_0x558bed[_0x4ccc02(0xd3)])throw CliErrors[_0x4ccc02(0xcf)]('Anti-drift\x20check\x20failed:\x20expected\x20'+_0x31c708[_0x4ccc02(0xb4)]+_0x4ccc02(0xd2)+_0x558bed[_0x4ccc02(0xd3)]+'.',_0x4ccc02(0x98));const _0x3ef43e=_0x558bed[_0x4ccc02(0xb2)](_0x59534e['userId']);let _0x5c6525=![];const _0x227b40=[..._0x567c0['userList']];if(_0x5cfaba===_0x4ccc02(0xd1))_0x3ef43e?_0x403930['push']('User\x20'+_0x59534e[_0x4ccc02(0xbf)]+_0x4ccc02(0xa8)+_0x567c0[_0x4ccc02(0x87)]+_0x4ccc02(0x9a)):(_0x227b40[_0x4ccc02(0x96)]({'userId':_0x59534e['userId'],'username':_0x59534e[_0x4ccc02(0xb8)],..._0x59534e[_0x4ccc02(0xb3)]?{'nickname':_0x59534e[_0x4ccc02(0xb3)]}:{}}),_0x5c6525=!![]);else{if(!_0x3ef43e)_0x403930[_0x4ccc02(0x96)]('User\x20'+_0x59534e[_0x4ccc02(0xbf)]+'\x20is\x20not\x20a\x20member\x20of\x20role\x20'+_0x567c0['roleName']+_0x4ccc02(0x9a));else{const _0x3d973d=_0x227b40['findIndex'](_0x12662a=>_0x12662a['userId']===_0x59534e['userId']);if(_0x3d973d>=0x0)_0x227b40[_0x4ccc02(0x8d)](_0x3d973d,0x1);_0x5c6525=!![];}}const _0x2b276f=_0xb3f388[_0x4ccc02(0xc0)](_0x56c560=>_0x56c560['id']===_0x346152?{..._0x56c560,'userList':_0x227b40}:_0x56c560),_0xab2aec=_0x227b40[_0x4ccc02(0xc0)](_0x16cd6e=>_0x16cd6e[_0x4ccc02(0xbf)]),_0x45ecae={'operation':_0x5cfaba,'selector':{'appCode':_0x45cb11,'roleId':_0x346152,'roleName':_0x567c0['roleName'],'userId':_0x59534e['userId']},'before':{'userIds':_0x558bed},'after':{'userIds':_0xab2aec},'dryRun':_0x31c708[_0x4ccc02(0xd4)],'backend':{'method':'POST','path':UPDATE_USER_LIST_PATH},'warnings':_0x403930};return{'roleList':_0x2b276f,'mutation':_0x45ecae,'changed':_0x5c6525};}export async function loadRoleUsers(_0x2d3438){return listRoleUsers(_0x2d3438);}export function readRoleRef(_0x5aed05){const _0x199a98=a143_0x124284,_0x531e16=_0x5aed05[_0x199a98(0x8b)](_0x199a98(0xc4))[_0x199a98(0xcd)]();if(!_0x531e16)throw CliErrors[_0x199a98(0xab)](_0x199a98(0xc4),_0x199a98(0x97));return _0x531e16;}export async function prepareUserMutation(_0x3d37f4,_0xf85ba2,_0x1ef17b){const _0x5c34a9=a143_0x124284,_0xffccd9=readRoleRef(_0x3d37f4),_0x201e64=_0x3d37f4[_0x5c34a9(0x8b)](_0x5c34a9(0xb6))[_0x5c34a9(0xcd)]();if(!_0x201e64)throw CliErrors[_0x5c34a9(0xab)](_0x5c34a9(0xb6),'Pass\x20--user\x20<id|name>.');const _0x2672a9=_0x3d37f4[_0x5c34a9(0x86)](_0x5c34a9(0x84)),_0x54a888=_0x2672a9===undefined||_0x2672a9===null?undefined:Number(_0x2672a9),_0x48c81c=await resolveRoleRef(_0x3d37f4[_0x5c34a9(0x8c)],_0xffccd9),_0xcde9ba=await resolveUserRef(_0x201e64),_0x5b3be5=await loadRoleUsers(_0x3d37f4[_0x5c34a9(0x8c)]);return computeRoleUserMutation({'operation':_0xf85ba2,'appCode':_0x3d37f4[_0x5c34a9(0x8c)],'roleUsers':_0x5b3be5,'targetRoleId':_0x48c81c['id'],'user':{'userId':_0xcde9ba['userId'],'username':_0xcde9ba[_0x5c34a9(0xb8)],'nickname':_0xcde9ba[_0x5c34a9(0xb3)]},'dryRun':_0x1ef17b,..._0x54a888!==undefined?{'expectUserCount':_0x54a888}:{}});}
|
|
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 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a144_0x4d8790=a144_0x1a10;(function(_0xd7b65f,_0x2ec181){const _0x3dda8d=a144_0x1a10,_0x3eeef0=_0xd7b65f();while(!![]){try{const _0x340fa6=-parseInt(_0x3dda8d(0xd4))/0x1*(parseInt(_0x3dda8d(0xc6))/0x2)+-parseInt(_0x3dda8d(0xbb))/0x3*(parseInt(_0x3dda8d(0xc5))/0x4)+-parseInt(_0x3dda8d(0xc8))/0x5*(parseInt(_0x3dda8d(0xcc))/0x6)+-parseInt(_0x3dda8d(0xcf))/0x7+-parseInt(_0x3dda8d(0xc2))/0x8*(parseInt(_0x3dda8d(0xd1))/0x9)+-parseInt(_0x3dda8d(0xc4))/0xa*(-parseInt(_0x3dda8d(0xd2))/0xb)+parseInt(_0x3dda8d(0xcd))/0xc;if(_0x340fa6===_0x2ec181)break;else _0x3eeef0['push'](_0x3eeef0['shift']());}catch(_0x2911b1){_0x3eeef0['push'](_0x3eeef0['shift']());}}}(a144_0x4753,0xd4871));function a144_0x1a10(_0x51b9da,_0x248712){_0x51b9da=_0x51b9da-0xb7;const _0x47533f=a144_0x4753();let _0x1a107d=_0x47533f[_0x51b9da];return _0x1a107d;}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='/smartapi/permit/role/update';function readPatch(_0x52f2e2){const _0x141e97=a144_0x1a10,_0x6102f6=_0x52f2e2[_0x141e97(0xd3)]('name'),_0x22426a=_0x52f2e2['flag'](_0x141e97(0xc9)),_0x4ca7d5={};if(_0x6102f6!==undefined&&_0x6102f6!==null){const _0x4e4cb8=String(_0x6102f6)['trim']();if(!_0x4e4cb8)throw CliErrors[_0x141e97(0xba)](_0x141e97(0xbc));if(_0x4e4cb8[_0x141e97(0xc0)]>0x40)throw CliErrors[_0x141e97(0xba)]('Role\x20name\x20cannot\x20exceed\x2064\x20characters.');_0x4ca7d5[_0x141e97(0xb8)]=_0x4e4cb8;}_0x22426a!==undefined&&_0x22426a!==null&&(_0x4ca7d5[_0x141e97(0xc9)]=String(_0x22426a));if(_0x4ca7d5[_0x141e97(0xb8)]===undefined&&_0x4ca7d5[_0x141e97(0xc9)]===undefined)throw CliErrors[_0x141e97(0xba)](_0x141e97(0xce),'Pass\x20at\x20least\x20one\x20of\x20--name\x20/\x20--remark.');return _0x4ca7d5;}function a144_0x4753(){const _0x219662=['num','9566778ZqgKcu','54044604CgOmzx','Nothing\x20to\x20update.','2503921PshIUK','string','16164AkfeJo','5423737RyPSIR','flag','19kdNXKB','write','roleName','appCode','validation','3351063iMikNu','--name\x20cannot\x20be\x20empty.','update','POST','New\x20role\x20name','length','Updated\x20role\x20','1792pIZWtM','name','20LNPeSQ','4YeHEIs','120826khnSsH','Update\x20a\x20CUSTOM\x20role\x27s\x20name/remark\x20(DEV/ADMIN\x20rejected)','5YLxKww','remark','\x20(id='];a144_0x4753=function(){return _0x219662;};return a144_0x4753();}export const roleUpdate={'service':'role','command':a144_0x4d8790(0xbd),'description':a144_0x4d8790(0xc7),'risk':a144_0x4d8790(0xb7),'flags':[ROLE_ID_FLAG,{...REMARK_FLAG},{'name':a144_0x4d8790(0xc3),'type':a144_0x4d8790(0xd0),'required':![],'description':a144_0x4d8790(0xbf)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x4acaab){readPatch(_0x4acaab);},async 'dryRun'(_0x1d8f24){const _0x2a33b0=a144_0x4d8790,_0x292228=_0x1d8f24[_0x2a33b0(0xcb)]('id'),_0x59c737=readPatch(_0x1d8f24),_0x390a65=await getRoleById(_0x1d8f24[_0x2a33b0(0xb9)],_0x292228);return assertCustomRole(_0x390a65,_0x2a33b0(0xbd)),asDryRunResult({'operation':'update','selector':{'appCode':_0x1d8f24[_0x2a33b0(0xb9)],'roleId':_0x292228,'roleName':_0x390a65['roleName']},'before':projectRole(_0x390a65),'after':projectRole({..._0x390a65,..._0x59c737[_0x2a33b0(0xb8)]!==undefined?{'roleName':_0x59c737[_0x2a33b0(0xb8)]}:{},..._0x59c737[_0x2a33b0(0xc9)]!==undefined?{'remark':_0x59c737[_0x2a33b0(0xc9)]}:{}}),'dryRun':!![],'backend':{'method':_0x2a33b0(0xbe),'path':UPDATE_PATH},'warnings':[]},{'method':_0x2a33b0(0xbe),'url':UPDATE_PATH});},async 'execute'(_0x1c37bb){const _0x317a5d=a144_0x4d8790,_0x7c4f98=_0x1c37bb[_0x317a5d(0xcb)]('id'),_0x334d6e=readPatch(_0x1c37bb),_0x3dd84a=await getRoleById(_0x1c37bb[_0x317a5d(0xb9)],_0x7c4f98);assertCustomRole(_0x3dd84a,'update'),await updateAppRole({'id':_0x7c4f98,'appCode':_0x1c37bb['appCode'],..._0x334d6e[_0x317a5d(0xb8)]!==undefined?{'roleName':_0x334d6e[_0x317a5d(0xb8)]}:{},..._0x334d6e['remark']!==undefined?{'remark':_0x334d6e[_0x317a5d(0xc9)]}:{}});const _0x24f0b9=await getRoleById(_0x1c37bb[_0x317a5d(0xb9)],_0x7c4f98);return{'ok':!![],'data':{'operation':_0x317a5d(0xbd),'selector':{'appCode':_0x1c37bb[_0x317a5d(0xb9)],'roleId':_0x7c4f98,'roleName':_0x24f0b9[_0x317a5d(0xb8)]},'before':projectRole(_0x3dd84a),'after':projectRole(_0x24f0b9),'dryRun':![],'backend':{'method':'POST','path':UPDATE_PATH},'warnings':[]},'message':_0x317a5d(0xc1)+_0x24f0b9[_0x317a5d(0xb8)]+_0x317a5d(0xca)+_0x7c4f98+')'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a145_0x1800b8=a145_0x118e;function a145_0x118e(_0x4de042,_0x166588){_0x4de042=_0x4de042-0xb6;const _0x102903=a145_0x1029();let _0x118ee7=_0x102903[_0x4de042];return _0x118ee7;}(function(_0x1e72ae,_0x13795e){const _0x39acca=a145_0x118e,_0x32311f=_0x1e72ae();while(!![]){try{const _0x536057=-parseInt(_0x39acca(0xb6))/0x1+parseInt(_0x39acca(0xbd))/0x2+parseInt(_0x39acca(0xbe))/0x3*(parseInt(_0x39acca(0xba))/0x4)+-parseInt(_0x39acca(0xc7))/0x5+-parseInt(_0x39acca(0xbc))/0x6*(-parseInt(_0x39acca(0xc6))/0x7)+parseInt(_0x39acca(0xc5))/0x8+-parseInt(_0x39acca(0xb9))/0x9;if(_0x536057===_0x13795e)break;else _0x32311f['push'](_0x32311f['shift']());}catch(_0x1ed648){_0x32311f['push'](_0x32311f['shift']());}}}(a145_0x1029,0x41cd2));import{updateRoleUsers}from'../../core/api-client.js';import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a145_0x1029(){const _0x147fb2=['6476742cKqEIS','228ZYMuDh','Added\x20user\x20','6ySgyDY','616636dmpxqX','17475xSUSWA','No\x20change:\x20user\x20','roleName','POST','\x20to\x20role\x20','role','user-add','2179288HcOhDl','3634127LYFKiu','516355rZcIpE','\x20already\x20in\x20role\x20','selector','339484NbnwzE','Add\x20a\x20user\x20to\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','userId'];a145_0x1029=function(){return _0x147fb2;};return a145_0x1029();}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_0x1800b8(0xc3),'command':'user-add','description':a145_0x1800b8(0xb7),'risk':'high-risk-write','flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x3be62b){const _0x3b6511=a145_0x1800b8,{mutation:_0xc8619c}=await prepareUserMutation(_0x3be62b,_0x3b6511(0xc4),!![]);return asDryRunResult(_0xc8619c,{'method':_0x3b6511(0xc1),'url':UPDATE_USER_LIST_PATH});},async 'execute'(_0x488d85){const _0x1b6eae=a145_0x1800b8,{roleList:_0x5c6478,mutation:_0x10adf7,changed:_0x49378d}=await prepareUserMutation(_0x488d85,_0x1b6eae(0xc4),![]);return _0x49378d&&await updateRoleUsers(_0x488d85['appCode'],_0x5c6478),{'ok':!![],'data':_0x10adf7,'message':_0x49378d?_0x1b6eae(0xbb)+_0x10adf7[_0x1b6eae(0xc9)][_0x1b6eae(0xb8)]+_0x1b6eae(0xc2)+_0x10adf7[_0x1b6eae(0xc9)][_0x1b6eae(0xc0)]:_0x1b6eae(0xbf)+_0x10adf7[_0x1b6eae(0xc9)][_0x1b6eae(0xb8)]+_0x1b6eae(0xc8)+_0x10adf7['selector'][_0x1b6eae(0xc0)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a146_0x3547(){const _0x4109ae=['Removed\x20user\x20','385wrWKle','6GDNvkM','6471HbLLbG','105895baPQEb','5930JHDMjB','POST','1490846zqZUJb','1282143eQPdNF','No\x20change:\x20user\x20','93912RKPSGo','\x20not\x20in\x20role\x20','roleName','471354ahUujF','Remove\x20a\x20user\x20from\x20a\x20role\x20(internal\x20merge\x20+\x20anti-drift);\x20requires\x20--yes','4448dgrZgY','user-remove','selector','appCode'];a146_0x3547=function(){return _0x4109ae;};return a146_0x3547();}const a146_0x51b6c4=a146_0xc46e;(function(_0x3ba20d,_0x5aa4b5){const _0x36ff5a=a146_0xc46e,_0x18ec9b=_0x3ba20d();while(!![]){try{const _0x225d6c=-parseInt(_0x36ff5a(0xc9))/0x1+parseInt(_0x36ff5a(0xd2))/0x2+parseInt(_0x36ff5a(0xcd))/0x3+parseInt(_0x36ff5a(0xd4))/0x4*(-parseInt(_0x36ff5a(0xd9))/0x5)+parseInt(_0x36ff5a(0xc7))/0x6*(parseInt(_0x36ff5a(0xcc))/0x7)+parseInt(_0x36ff5a(0xcf))/0x8+-parseInt(_0x36ff5a(0xc8))/0x9*(parseInt(_0x36ff5a(0xca))/0xa);if(_0x225d6c===_0x5aa4b5)break;else _0x18ec9b['push'](_0x18ec9b['shift']());}catch(_0x514c99){_0x18ec9b['push'](_0x18ec9b['shift']());}}}(a146_0x3547,0x41e41));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';function a146_0xc46e(_0x48c271,_0x2e2fc9){_0x48c271=_0x48c271-0xc7;const _0x35474e=a146_0x3547();let _0xc46ed0=_0x35474e[_0x48c271];return _0xc46ed0;}export const roleUserRemove={'service':'role','command':a146_0x51b6c4(0xd5),'description':a146_0x51b6c4(0xd3),'risk':'high-risk-write','flags':[ROLE_REF_FLAG,USER_REF_FLAG,EXPECT_USER_COUNT_FLAG,APPCODE_FLAG_OPTIONAL],async 'dryRun'(_0x15072f){const _0x31a6cc=a146_0x51b6c4,{mutation:_0x2ccebe}=await prepareUserMutation(_0x15072f,_0x31a6cc(0xd5),!![]);return asDryRunResult(_0x2ccebe,{'method':_0x31a6cc(0xcb),'url':UPDATE_USER_LIST_PATH});},async 'execute'(_0xcd1ee){const _0x2f728e=a146_0x51b6c4,{roleList:_0x170541,mutation:_0x2a3a17,changed:_0x5a0ef1}=await prepareUserMutation(_0xcd1ee,_0x2f728e(0xd5),![]);return _0x5a0ef1&&await updateRoleUsers(_0xcd1ee[_0x2f728e(0xd7)],_0x170541),{'ok':!![],'data':_0x2a3a17,'message':_0x5a0ef1?_0x2f728e(0xd8)+_0x2a3a17['selector']['userId']+'\x20from\x20role\x20'+_0x2a3a17['selector'][_0x2f728e(0xd1)]:_0x2f728e(0xce)+_0x2a3a17[_0x2f728e(0xd6)]['userId']+_0x2f728e(0xd0)+_0x2a3a17['selector'][_0x2f728e(0xd1)]};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a147_0x266256=a147_0x4a83;function a147_0x4a83(_0x4da7ae,_0x491aa8){_0x4da7ae=_0x4da7ae-0x8d;const _0x107e1a=a147_0x107e();let _0x4a83b2=_0x107e1a[_0x4da7ae];return _0x4a83b2;}function a147_0x107e(){const _0x38a8b2=['role','name','str','Pass\x20--name\x20<nickname|username>.','8DftOIQ','7qiunXA','matchedBy','60oOSnMf','31960ntUiak','418VDTyNd','60905Kbhyyi','user-resolve','2025924WHRCtH','nickname','username','21646jcmLum','flagMissing','329157ZRWuQd','28881Ewppja','trim','\x22\x20→\x20userId\x20','261611BbbJXp','102OVHjzA','Resolved\x20\x22','userId'];a147_0x107e=function(){return _0x38a8b2;};return a147_0x107e();}(function(_0x14031b,_0x335467){const _0x44503e=a147_0x4a83,_0x5d7f15=_0x14031b();while(!![]){try{const _0x5993ab=parseInt(_0x44503e(0x9b))/0x1*(-parseInt(_0x44503e(0xa5))/0x2)+-parseInt(_0x44503e(0x8f))/0x3*(parseInt(_0x44503e(0x9d))/0x4)+parseInt(_0x44503e(0xa0))/0x5*(parseInt(_0x44503e(0x93))/0x6)+parseInt(_0x44503e(0x92))/0x7*(parseInt(_0x44503e(0x9a))/0x8)+parseInt(_0x44503e(0x8e))/0x9+-parseInt(_0x44503e(0x9e))/0xa*(parseInt(_0x44503e(0x9f))/0xb)+parseInt(_0x44503e(0xa2))/0xc;if(_0x5993ab===_0x335467)break;else _0x5d7f15['push'](_0x5d7f15['shift']());}catch(_0x30d005){_0x5d7f15['push'](_0x5d7f15['shift']());}}}(a147_0x107e,0x1a6cc));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_0x266256(0x96),'command':a147_0x266256(0xa1),'description':'Resolve\x20a\x20nickname/username\x20to\x20a\x20userId\x20(tenant\x20member\x20directory)','risk':'read','flags':[USER_NAME_FLAG,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x39d46e){const _0xb83074=a147_0x266256;if(!_0x39d46e[_0xb83074(0x98)]('name')[_0xb83074(0x90)]())throw CliErrors[_0xb83074(0x8d)](_0xb83074(0x97),_0xb83074(0x99));},async 'execute'(_0x3b2e13){const _0x404b5d=a147_0x266256,_0x5c337f=_0x3b2e13[_0x404b5d(0x98)](_0x404b5d(0x97))[_0x404b5d(0x90)](),_0x279f9a=await resolveUserRef(_0x5c337f);return{'ok':!![],'data':{'user':{'userId':_0x279f9a[_0x404b5d(0x95)],'username':_0x279f9a[_0x404b5d(0xa4)],'nickname':_0x279f9a[_0x404b5d(0xa3)],'matchedBy':_0x279f9a[_0x404b5d(0x9c)]}},'message':_0x404b5d(0x94)+_0x5c337f+_0x404b5d(0x91)+_0x279f9a['userId']};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a148_0x37731c=a148_0x24ea;(function(_0x5f1839,_0xa6811e){const _0x176fd6=a148_0x24ea,_0x1ef7ea=_0x5f1839();while(!![]){try{const _0x1c632c=-parseInt(_0x176fd6(0xed))/0x1+-parseInt(_0x176fd6(0xee))/0x2+parseInt(_0x176fd6(0xdf))/0x3*(parseInt(_0x176fd6(0xdd))/0x4)+parseInt(_0x176fd6(0xfe))/0x5*(-parseInt(_0x176fd6(0xd8))/0x6)+parseInt(_0x176fd6(0xfa))/0x7*(parseInt(_0x176fd6(0xf2))/0x8)+parseInt(_0x176fd6(0x107))/0x9+-parseInt(_0x176fd6(0x102))/0xa;if(_0x1c632c===_0xa6811e)break;else _0x1ef7ea['push'](_0x1ef7ea['shift']());}catch(_0x1e5fbb){_0x1ef7ea['push'](_0x1ef7ea['shift']());}}}(a148_0x3ba8,0xe44ed));import{readFileSync,existsSync}from'node:fs';function a148_0x24ea(_0x5466e8,_0x57665a){_0x5466e8=_0x5466e8-0xd4;const _0x3ba82f=a148_0x3ba8();let _0x24ead7=_0x3ba82f[_0x5466e8];return _0x24ead7;}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_0x37731c(0xdb),a148_0x37731c(0x106)]);function readPackageScripts(_0x4363a5){const _0x336f97=a148_0x37731c,_0x4d3d2f=resolve(_0x4363a5,'package.json');if(!existsSync(_0x4d3d2f))return null;try{const _0x87a869=JSON[_0x336f97(0xde)](readFileSync(_0x4d3d2f,'utf-8'));return _0x87a869[_0x336f97(0xfb)]??{};}catch{return null;}}function detectPackageManager(_0x3934ab){const _0x52835c=a148_0x37731c;if(existsSync(resolve(_0x3934ab,'bun.lockb'))||existsSync(resolve(_0x3934ab,'bun.lock')))return _0x52835c(0xe4);if(existsSync(resolve(_0x3934ab,_0x52835c(0xe0))))return _0x52835c(0x10a);if(existsSync(resolve(_0x3934ab,'yarn.lock')))return _0x52835c(0xd4);return'npm';}async function versionCheck(_0x413501){const _0x429706=a148_0x37731c,_0xc98914=await checkCliVersion();(_0xc98914[_0x429706(0xf9)]||_0xc98914['belowMinimum'])&&(printCliUpgradeWarning(_0xc98914),assertCliVersionSupported(_0xc98914));const _0x2023af=await checkSdkVersion(_0x413501);if(_0x2023af[_0x429706(0xf9)])printSdkUpgradeWarning(_0x2023af);}function spawnScript(_0x347aca,_0x2f94fb,_0x1ea350,_0xc77a32){return new Promise((_0xfc6df5,_0x1a9251)=>{const _0x3c4ecd=a148_0x24ea,_0x384b3e=[_0x3c4ecd(0xef),_0x2f94fb,..._0x1ea350],_0x17ac05=spawn(_0x347aca,_0x384b3e,{'cwd':_0xc77a32,'stdio':_0x3c4ecd(0x105),'shell':!![],'env':{...process.env,'PATH':''+join(_0xc77a32,_0x3c4ecd(0xea),_0x3c4ecd(0x104))+delimiter+process.env.PATH}});_0x17ac05['on'](_0x3c4ecd(0xe7),_0xeedcc5=>{if(_0xeedcc5===0x0||_0xeedcc5===null)_0xfc6df5();else _0x1a9251(new Error(_0x347aca+'\x20run\x20'+_0x2f94fb+'\x20exited\x20with\x20code\x20'+_0xeedcc5));}),_0x17ac05['on'](_0x3c4ecd(0xf4),_0x1a9251);});}function spawnViteBuildWatch(_0x26644c){return new Promise((_0x2e4793,_0x1d0b7c)=>{const _0x4a94f4=a148_0x24ea,_0x480d5f=spawn(_0x4a94f4(0x101),['build',_0x4a94f4(0xf1)],{'cwd':_0x26644c,'stdio':_0x4a94f4(0x105),'shell':!![],'env':{...process.env,'PATH':''+join(_0x26644c,_0x4a94f4(0xea),'.bin')+delimiter+process.env.PATH}});_0x480d5f['on'](_0x4a94f4(0xe7),_0xe686e1=>{const _0x59047b=_0x4a94f4;if(_0xe686e1===0x0||_0xe686e1===null)_0x2e4793();else _0x1d0b7c(new Error(_0x59047b(0xf3)+_0xe686e1));}),_0x480d5f['on']('error',_0x1d0b7c);});}function spawnVitePreview(_0x3698ed){return new Promise((_0x4ba444,_0x4d61f5)=>{const _0x3544ee=a148_0x24ea,_0x5056d8=spawn(_0x3544ee(0x101),[_0x3544ee(0xe1)],{'cwd':_0x3698ed,'stdio':_0x3544ee(0x105),'shell':!![],'env':{...process.env,'PATH':''+join(_0x3698ed,_0x3544ee(0xea),_0x3544ee(0x104))+delimiter+process.env.PATH}});_0x5056d8['on'](_0x3544ee(0xe7),_0x421f73=>{if(_0x421f73===0x0||_0x421f73===null)_0x4ba444();else _0x4d61f5(new Error('vite\x20preview\x20exited\x20with\x20code\x20'+_0x421f73));}),_0x5056d8['on'](_0x3544ee(0xf4),_0x4d61f5);});}const runFlags=[{'name':a148_0x37731c(0xe5),'type':a148_0x37731c(0xe9),'description':a148_0x37731c(0xe3),'default':![]}];function a148_0x3ba8(){const _0x5f6397=['length','35CBTjaY','push','No\x20scripts\x20defined\x20in\x20package.json.','vite','6422560fPlZcF','keys','.bin','inherit','dev','12155409sqthGQ','slice','\x22\x20not\x20found\x20in\x20package.json.','pnpm','cwd','yarn','has','join','args','23154ApTqbM','Run\x20a\x20package.json\x20script','\x0a\x20\x20Available\x20scripts:\x0a','start','\x20\x20\x20\x20','4wBfbdS','parse','4264824Uywahw','pnpm-lock.yaml','preview','validation','Enable\x20watch\x20mode\x20for\x20preview','bun','watch','\x20run\x20<script>\x0a','close','(none)','boolean','node_modules','log','all','56940rQYZEt','3236882fFRvtH','run','read','--watch','10520AlOaGV','vite\x20build\x20--watch\x20exited\x20with\x20code\x20','error','Available:\x20','\x20run\x20preview','Script\x20name\x20defined\x20in\x20package.json','\x0a\x20\x20Usage:\x20','needsUpgrade','2702sCWHAh','scripts','bool'];a148_0x3ba8=function(){return _0x5f6397;};return a148_0x3ba8();}export const runDefinition={'service':a148_0x37731c(0xef),'command':a148_0x37731c(0xef),'description':a148_0x37731c(0xd9),'risk':a148_0x37731c(0xf0),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'args':[{'name':'script','description':a148_0x37731c(0xf7),'required':![]}],'flags':runFlags,'helpExtra':()=>{const _0x47d5df=a148_0x37731c,_0x3728f5=[];return _0x3728f5[_0x47d5df(0xff)]('\x20\x20EXAMPLES'),_0x3728f5['push'](_0x47d5df(0xdc)+CLI_BIN_NAME+'\x20run\x20start'),_0x3728f5[_0x47d5df(0xff)]('\x20\x20\x20\x20'+CLI_BIN_NAME+'\x20run\x20build'),_0x3728f5[_0x47d5df(0xff)](_0x47d5df(0xdc)+CLI_BIN_NAME+_0x47d5df(0xf6)),_0x3728f5[_0x47d5df(0xff)]('\x20\x20\x20\x20'+CLI_BIN_NAME+'\x20run\x20preview\x20--watch'),_0x3728f5[_0x47d5df(0xd6)]('\x0a');},async 'execute'(_0x237a41){const _0x248c18=a148_0x37731c,_0x2f0acb=process[_0x248c18(0x10b)](),_0x4a57be=_0x237a41['args'][0x0],_0x13743f=_0x237a41[_0x248c18(0xd7)][_0x248c18(0x108)](0x1),_0x447adf=readPackageScripts(_0x2f0acb);if(!_0x447adf)throw CliErrors[_0x248c18(0xe2)]('No\x20package.json\x20found\x20in\x20current\x20directory.');if(!_0x4a57be){const _0x22a365=Object[_0x248c18(0x103)](_0x447adf);if(_0x22a365[_0x248c18(0xfd)]===0x0)console[_0x248c18(0xeb)](_0x248c18(0x100));else{console[_0x248c18(0xeb)](_0x248c18(0xda));for(const _0x22064b of _0x22a365){console[_0x248c18(0xeb)](_0x248c18(0xdc)+_0x22064b);}console['log'](_0x248c18(0xf8)+CLI_BIN_NAME+_0x248c18(0xe6));}return{'ok':!![]};}if(!_0x447adf[_0x4a57be])throw CliErrors[_0x248c18(0xe2)]('Script\x20\x22'+_0x4a57be+_0x248c18(0x109),_0x248c18(0xf5)+(Object[_0x248c18(0x103)](_0x447adf)[_0x248c18(0xd6)](',\x20')||_0x248c18(0xe8)));const _0xeeca8e=detectPackageManager(_0x2f0acb);VERSION_CHECK_SCRIPTS[_0x248c18(0xd5)](_0x4a57be)&&await versionCheck(_0x2f0acb);if(_0x4a57be===_0x248c18(0xe1)&&_0x237a41[_0x248c18(0xfc)](_0x248c18(0xe5)))return await Promise[_0x248c18(0xec)]([spawnViteBuildWatch(_0x2f0acb),spawnVitePreview(_0x2f0acb)]),{'ok':!![]};return await spawnScript(_0xeeca8e,_0x4a57be,_0x13743f,_0x2f0acb),{'ok':!![]};}};
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a149_0x5ba732=a149_0x5b4a;function a149_0x5068(){const _0x34dc01=['589329qTtJoE','184UXqXZt','6415mJihJf','71591FCvuEU','3556EcsRHI','24KEkYqm','Export\x20machine-readable\x20command\x20schema\x20(JSON)','json','24JbawMl','1050929zpTVve','108ETrhSf','1240222hYWCGE','2wGGAwt','read','schema','1072170btByJM','65058HWIMxL','5748MBbiKx'];a149_0x5068=function(){return _0x34dc01;};return a149_0x5068();}(function(_0x1cb870,_0x1ae929){const _0x593ad7=a149_0x5b4a,_0x46485c=_0x1cb870();while(!![]){try{const _0x430315=parseInt(_0x593ad7(0xe9))/0x1*(parseInt(_0x593ad7(0xea))/0x2)+parseInt(_0x593ad7(0xde))/0x3*(parseInt(_0x593ad7(0xe6))/0x4)+-parseInt(_0x593ad7(0xe0))/0x5*(parseInt(_0x593ad7(0xdd))/0x6)+parseInt(_0x593ad7(0xee))/0x7*(-parseInt(_0x593ad7(0xdf))/0x8)+parseInt(_0x593ad7(0xe8))/0x9*(parseInt(_0x593ad7(0xed))/0xa)+-parseInt(_0x593ad7(0xe7))/0xb*(parseInt(_0x593ad7(0xe3))/0xc)+-parseInt(_0x593ad7(0xe1))/0xd*(parseInt(_0x593ad7(0xe2))/0xe);if(_0x430315===_0x1ae929)break;else _0x46485c['push'](_0x46485c['shift']());}catch(_0x855ee8){_0x46485c['push'](_0x46485c['shift']());}}}(a149_0x5068,0xa43f0));import{buildSchemaPayload}from'../framework/schema-export.js';function a149_0x5b4a(_0x3f3948,_0x46606d){_0x3f3948=_0x3f3948-0xdd;const _0x506897=a149_0x5068();let _0x5b4a16=_0x506897[_0x3f3948];return _0x5b4a16;}async function execute(_0x2538e8){const _0x49ec42=await buildSchemaPayload();return{'ok':!![],'data':_0x49ec42};}export const schemaDefinition={'service':a149_0x5ba732(0xec),'command':'export','description':a149_0x5ba732(0xe4),'risk':a149_0x5ba732(0xeb),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'defaultOutputFormat':a149_0x5ba732(0xe5),'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a150_0x31ba63=a150_0x2521;(function(_0x34e86a,_0x1a7639){const _0x526c5f=a150_0x2521,_0x3cbce5=_0x34e86a();while(!![]){try{const _0x2f52ec=-parseInt(_0x526c5f(0xbd))/0x1*(-parseInt(_0x526c5f(0xfa))/0x2)+-parseInt(_0x526c5f(0xb4))/0x3+-parseInt(_0x526c5f(0xf6))/0x4+parseInt(_0x526c5f(0xdb))/0x5+parseInt(_0x526c5f(0xb2))/0x6*(parseInt(_0x526c5f(0xbb))/0x7)+-parseInt(_0x526c5f(0xee))/0x8+parseInt(_0x526c5f(0xb7))/0x9;if(_0x2f52ec===_0x1a7639)break;else _0x3cbce5['push'](_0x3cbce5['shift']());}catch(_0x17ab69){_0x3cbce5['push'](_0x3cbce5['shift']());}}}(a150_0x4363,0x572d1));import{writeFile}from'node:fs/promises';import{input,select}from'@inquirer/prompts';import{createSqlQuery}from'../../core/api-client.js';import{getDbName,listDatabases}from'../../core/db-resolver.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{ensureParentDirectory,fileExists}from'../../core/bff/file-system.js';import{computeSqlContentHash}from'../../core/sql-sync/hash.js';import{createEmptySqlLock,ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{buildSqlRelativePath}from'../../core/sql-sync/utils.js';import{CliErrors}from'../../errors.js';import{buildLocalSqlFileContent,buildSqlLockEntry,ensureRemoteSqlContent}from'./shared.js';function generateSqlTemplate(_0x184194){const _0x5bc53e=a150_0x2521;if(_0x184194==='mybatisXml')return[_0x5bc53e(0xb5),_0x5bc53e(0xe9),_0x5bc53e(0xe3),'']['join']('\x0a');return['SELECT\x201\x20AS\x20id;',''][_0x5bc53e(0xc4)]('\x0a');}export const sqlCreate={'service':a150_0x31ba63(0xd3),'command':a150_0x31ba63(0xc3),'description':a150_0x31ba63(0xeb),'risk':a150_0x31ba63(0xe0),'flags':[{'name':'name','type':a150_0x31ba63(0xe1),'description':a150_0x31ba63(0xef)},{'name':a150_0x31ba63(0xd1),'type':a150_0x31ba63(0xf1),'description':a150_0x31ba63(0xc2)},{'name':a150_0x31ba63(0xd5),'type':a150_0x31ba63(0xe1),'enum':[a150_0x31ba63(0xd3),a150_0x31ba63(0xcf)],'description':a150_0x31ba63(0xcb)}],async 'validate'(_0x36ce72){const _0x428e0f=a150_0x31ba63;if(!_0x36ce72['nonInteractive'])return;if(!_0x36ce72[_0x428e0f(0xd4)]('name')[_0x428e0f(0xb9)]())throw CliErrors[_0x428e0f(0xce)](_0x428e0f(0xe2),_0x428e0f(0xfb));const _0x3ac41f=resolveProvidedDbId(_0x36ce72);if(typeof _0x3ac41f!=='number'||!Number[_0x428e0f(0xbe)](_0x3ac41f)||_0x3ac41f<=0x0)throw CliErrors['flagMissing'](_0x428e0f(0xd1),_0x428e0f(0xb8));if(!_0x36ce72[_0x428e0f(0xd4)]('mode')[_0x428e0f(0xb9)]())throw CliErrors[_0x428e0f(0xce)]('mode',_0x428e0f(0xd0));},async 'dryRun'(_0x26cf9d){const _0x395ab6=a150_0x31ba63,_0x1f774f=loadSqlProjectConfig(_0x26cf9d[_0x395ab6(0xde)]),{sqlName:_0x38e8dc,dbId:_0x56e33d,dbName:_0x443d38,mode:_0x328be1}=await resolveSqlNewInputs(_0x26cf9d),_0x448914=buildSqlRelativePath(_0x395ab6(0xe4),_0x38e8dc,_0x443d38,_0x328be1,_0x56e33d),_0x33123e=_0x1f774f[_0x395ab6(0xf7)]+'/'+_0x448914;return{'method':_0x395ab6(0xd6),'url':_0x395ab6(0xdc),'body':{'appCode':_0x26cf9d['appCode'],'sqlName':_0x38e8dc,'dbId':_0x56e33d,'mode':_0x328be1,'localPath':_0x33123e},'description':_0x395ab6(0xc5)+_0x1f774f['sqlRootDir']};},async 'execute'(_0x30a99e){const _0x35c996=a150_0x31ba63,_0x44777b=loadSqlProjectConfig(_0x30a99e[_0x35c996(0xde)]),{sqlName:_0x59997b,dbId:_0x1ff8f8,dbName:_0x415195,mode:_0x412e80}=await resolveSqlNewInputs(_0x30a99e),_0x510a12=generateSqlTemplate(_0x412e80),_0x28990c=await createSqlQuery({'appCode':_0x30a99e['appCode'],'sqlName':_0x59997b,'dbId':_0x1ff8f8,'sqlContent':_0x510a12}),_0x25356e=ensureRemoteSqlContent(_0x28990c),_0x439446=_0x415195||await getDbName(_0x30a99e['appCode'],_0x1ff8f8)[_0x35c996(0xcc)](()=>undefined),_0x5b828c=buildSqlRelativePath(_0x28990c[_0x35c996(0xcd)],_0x28990c['sqlName'],_0x439446,_0x412e80,_0x1ff8f8),_0x1bd90f=_0x44777b[_0x35c996(0xf7)]+'/'+_0x5b828c,_0x5d0975=buildLocalSqlFileContent({'sqlCode':_0x28990c[_0x35c996(0xcd)],'sqlName':_0x28990c[_0x35c996(0xbc)],'dbId':_0x28990c[_0x35c996(0xe5)]},_0x25356e,{'dbName':_0x439446,'mode':_0x412e80,'syncedAt':new Date()['toISOString'](),'description':_0x28990c[_0x35c996(0xda)]});if(await fileExists(_0x1bd90f))throw CliErrors['validation'](_0x35c996(0xbf)+_0x1bd90f);await ensureParentDirectory(_0x1bd90f),await writeFile(_0x1bd90f,_0x5d0975,_0x35c996(0xdf));const _0x34a772=await readSqlLockFile(_0x44777b[_0x35c996(0xd8)]),{lockData:_0x1aa103,appLock:_0x358f9f}=ensureSqlLockScope(_0x34a772??createEmptySqlLock(),_0x44777b[_0x35c996(0xde)],_0x44777b[_0x35c996(0xc0)],_0x35c996(0xd7));return _0x358f9f[_0x35c996(0xe6)][_0x28990c[_0x35c996(0xcd)]]={...buildSqlLockEntry(_0x28990c,_0x25356e,computeSqlContentHash(_0x5d0975),{'dbName':_0x439446}),'path':_0x5b828c,'mode':_0x412e80},_0x358f9f[_0x35c996(0xf8)]=new Date()[_0x35c996(0xec)](),await writeSqlLockFile(_0x44777b['lockFilePath'],_0x1aa103),{'ok':!![],'data':{'id':_0x28990c['id'],'sqlCode':_0x28990c[_0x35c996(0xcd)],'sqlName':_0x28990c['sqlName'],'dbId':_0x28990c[_0x35c996(0xe5)],'path':_0x1bd90f,'mode':_0x412e80},'message':_0x35c996(0xb3)+_0x28990c['sqlCode']};}};async function resolveSqlNewInputs(_0x584f99){const _0x17c5aa=await resolveSqlNameInput(_0x584f99),{dbId:_0x2adb5b,dbName:_0x4f7dde}=await resolveDbSelection(_0x584f99),_0x68e437=await resolveSqlModeInput(_0x584f99);return{'sqlName':_0x17c5aa,'dbId':_0x2adb5b,'dbName':_0x4f7dde,'mode':_0x68e437};}async function resolveSqlNameInput(_0x4b4467){const _0x335f87=a150_0x31ba63,_0x5cdd89=_0x4b4467['str'](_0x335f87(0xe2))[_0x335f87(0xb9)]();if(_0x5cdd89)return _0x5cdd89;if(_0x4b4467[_0x335f87(0xed)])throw CliErrors[_0x335f87(0xce)](_0x335f87(0xe2),'--name\x20is\x20required\x20in\x20non-interactive\x20mode.');return(await input({'message':_0x335f87(0xd9),'validate':_0x1a2afa=>_0x1a2afa[_0x335f87(0xb9)]()?!![]:_0x335f87(0xc6)}))[_0x335f87(0xb9)]();}async function resolveDbSelection(_0x787571){const _0xae4456=a150_0x31ba63,_0x312837=resolveProvidedDbId(_0x787571);if(typeof _0x312837==='number'&&Number['isFinite'](_0x312837)&&_0x312837>0x0)return{'dbId':_0x312837,'dbName':await getDbName(_0x787571[_0xae4456(0xde)],_0x312837)[_0xae4456(0xcc)](()=>undefined)};if(_0x787571[_0xae4456(0xed)])throw CliErrors[_0xae4456(0xce)](_0xae4456(0xd1),_0xae4456(0xb8));const _0x12fe0a=await listDatabases(_0x787571['appCode'])[_0xae4456(0xcc)](()=>[]);if(_0x12fe0a[_0xae4456(0xdd)]===0x1)return{'dbId':_0x12fe0a[0x0][_0xae4456(0xe5)],'dbName':_0x12fe0a[0x0][_0xae4456(0xb6)]};if(_0x12fe0a[_0xae4456(0xdd)]>0x1){const _0x2d82d3=await select({'message':_0xae4456(0xc1),'choices':[..._0x12fe0a[_0xae4456(0xc7)](_0x260c4e=>({'name':_0x260c4e['dbName']+'\x20('+_0x260c4e[_0xae4456(0xe5)]+')','value':serializeDbSelection(_0x260c4e)})),{'name':_0xae4456(0xf0),'value':_0xae4456(0xe8)}]});if(_0x2d82d3!=='__manual__')return deserializeDbSelection(_0x2d82d3);}const _0x97a97f=await input({'message':_0xae4456(0xf2),'validate':_0x597c5a=>{const _0x3c6740=_0xae4456,_0x3b5292=_0x597c5a[_0x3c6740(0xb9)]();if(!_0x3b5292)return _0x3c6740(0xea);const _0x5e5726=Number(_0x3b5292);if(!Number[_0x3c6740(0xf5)](_0x5e5726)||_0x5e5726<=0x0)return _0x3c6740(0xf4);return!![];}});return{'dbId':Number(_0x97a97f[_0xae4456(0xb9)]())};}function a150_0x2521(_0xb7758e,_0x5f3a80){_0xb7758e=_0xb7758e-0xb2;const _0x4363c9=a150_0x4363();let _0x252150=_0x4363c9[_0xb7758e];return _0x252150;}async function resolveSqlModeInput(_0x1a7e54){const _0x4565d5=a150_0x31ba63,_0x38740d=_0x1a7e54[_0x4565d5(0xd4)]('mode')[_0x4565d5(0xb9)]();if(_0x38740d===_0x4565d5(0xd3)||_0x38740d==='mybatisXml')return _0x38740d;if(_0x1a7e54['nonInteractive'])throw CliErrors[_0x4565d5(0xce)]('mode','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.');return await select({'message':'请选择本地\x20SQL\x20模式:','choices':[{'name':_0x4565d5(0xf9),'value':_0x4565d5(0xd3),'description':_0x4565d5(0xfc)},{'name':_0x4565d5(0xc9),'value':_0x4565d5(0xcf),'description':_0x4565d5(0xf3)}]});}function serializeDbSelection(_0x47be16){const _0x4a9448=a150_0x31ba63;return JSON[_0x4a9448(0xca)]({'dbId':_0x47be16[_0x4a9448(0xe5)],'dbName':_0x47be16[_0x4a9448(0xb6)]});}function deserializeDbSelection(_0x44c548){const _0x11f4e4=a150_0x31ba63;try{const _0x4d4e9d=JSON[_0x11f4e4(0xba)](_0x44c548);if(typeof _0x4d4e9d[_0x11f4e4(0xe5)]===_0x11f4e4(0xf1)&&Number[_0x11f4e4(0xbe)](_0x4d4e9d[_0x11f4e4(0xe5)]))return{'dbId':_0x4d4e9d[_0x11f4e4(0xe5)],'dbName':_0x4d4e9d[_0x11f4e4(0xb6)]};}catch{}throw CliErrors[_0x11f4e4(0xe7)](_0x11f4e4(0xc8)+_0x44c548);}function a150_0x4363(){const _0x421cc1=['Target\x20database\x20ID','create','join','Would\x20create\x20a\x20new\x20SQL\x20query\x20and\x20scaffold\x20it\x20under\x20','SQL\x20名称不能为空','map','Invalid\x20database\x20selection\x20payload:\x20','MyBatis\x20XML(mybatisXml)','stringify','Local\x20SQL\x20file\x20mode','catch','sqlCode','flagMissing','mybatisXml','--mode\x20is\x20required\x20in\x20non-interactive\x20mode.','db-id','flag','sql','str','mode','POST','new','lockFilePath','请输入\x20SQL\x20名称:','description','3343945pvIXXH','/smartapi/custom/saveUserCustomSql','length','appCode','utf8','high-risk-write','string','name','</select>','<server-generated-sqlCode>','dbId','sqls','validation','__manual__','\x20\x20SELECT\x201\x20AS\x20id','dbId\x20不能为空','Create\x20a\x20new\x20custom\x20SQL\x20and\x20scaffold\x20it\x20locally','toISOString','nonInteractive','5175208bfdtMF','SQL\x20query\x20display\x20name','✎\x20手动输入\x20dbId','number','请输入目标数据库\x20dbId:','适合带动态标签的\x20MyBatis\x20XML\x20SQL','dbId\x20必须为正整数','isInteger','2662244uZwcbl','sqlRootDir','lastSync','普通\x20SQL(sql)','182CeacQD','--name\x20is\x20required\x20in\x20non-interactive\x20mode.','适合直接执行的普通\x20SELECT\x20/\x20INSERT\x20/\x20UPDATE\x20/\x20DELETE\x20语句','27732uQNxFQ','Created\x20SQL\x20query\x20','2086131LErfGj','<select\x20id=\x22query\x22\x20resultType=\x22map\x22>','dbName','10168236azczLj','--db-id\x20is\x20required\x20in\x20non-interactive\x20mode.','trim','parse','91KThLHw','sqlName','5563LHKJdP','isFinite','File\x20already\x20exists:\x20','sqlRoot','请选择目标数据库:'];a150_0x4363=function(){return _0x421cc1;};return a150_0x4363();}function resolveProvidedDbId(_0x2a6366){const _0x228f1c=a150_0x31ba63,_0x5729eb=_0x2a6366[_0x228f1c(0xd2)](_0x228f1c(0xd1));if(typeof _0x5729eb===_0x228f1c(0xf1)&&Number['isFinite'](_0x5729eb))return _0x5729eb;return undefined;}
|
|
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 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a151_0x345b68=a151_0x5d1b;(function(_0x2c1a03,_0x50c1c1){const _0x1b5524=a151_0x5d1b,_0x12ec8c=_0x2c1a03();while(!![]){try{const _0x4f01e6=-parseInt(_0x1b5524(0x8f))/0x1*(parseInt(_0x1b5524(0x85))/0x2)+parseInt(_0x1b5524(0x7a))/0x3*(parseInt(_0x1b5524(0x92))/0x4)+-parseInt(_0x1b5524(0x84))/0x5+-parseInt(_0x1b5524(0x82))/0x6*(-parseInt(_0x1b5524(0x73))/0x7)+-parseInt(_0x1b5524(0x75))/0x8+-parseInt(_0x1b5524(0x7e))/0x9+parseInt(_0x1b5524(0x81))/0xa;if(_0x4f01e6===_0x50c1c1)break;else _0x12ec8c['push'](_0x12ec8c['shift']());}catch(_0xcdbbe6){_0x12ec8c['push'](_0x12ec8c['shift']());}}}(a151_0x4533,0xb7e84));import{mkdir,readdir,rename,rmdir}from'node:fs/promises';import{dirname,join,relative,resolve,sep}from'node:path';import{deleteSqlQuery}from'../../core/api-client.js';import{loadSqlProjectConfig}from'../../core/sql-sync/config.js';import{fileExists}from'../../core/bff/file-system.js';import{resolveLocalSqlFilePath}from'../../core/sql-sync/file-system.js';function a151_0x4533(){const _0xc252fe=['/smartapi/custom/deleteUserCustomSql','4403690EyaVcp','648554JlDuLH','length','sqls','remoteId','entries','fromEntries','Deleted\x20','delete','Would\x20delete\x20SQL\x20','appCode','4RoaSOQ','No\x20SQL\x20lock\x20entry\x20found\x20for\x20\x22','toISOString','88rQirkO','sql','high-risk-write','7eeXcuq','replace','8863112gdcjkz','validation','str','lastSync','sqlRootDir','187503eIbtdC','\x20(local\x20file\x20moved\x20to\x20trash)','sqlRoot','startsWith','9970200FNiqDp','sqlcode','trashDir','29426040PZkHlq','4975158BxPEDd'];a151_0x4533=function(){return _0xc252fe;};return a151_0x4533();}import{ensureSqlLockScope,readSqlLockFile,writeSqlLockFile}from'../../core/sql-sync/lock.js';import{CliErrors}from'../../errors.js';function a151_0x5d1b(_0x2c4dd1,_0x399d88){_0x2c4dd1=_0x2c4dd1-0x72;const _0x453398=a151_0x4533();let _0x5d1b3c=_0x453398[_0x2c4dd1];return _0x5d1b3c;}import{SQLCODE_FLAG}from'../../commands/common/flags.js';export const sqlDelete={'service':a151_0x345b68(0x93),'command':a151_0x345b68(0x8c),'description':'Delete\x20a\x20SQL\x20query\x20from\x20remote\x20and\x20local','risk':a151_0x345b68(0x72),'flags':[SQLCODE_FLAG],async 'validate'(_0x5e9257){const _0x448403=a151_0x345b68,_0x3cefa1=loadSqlProjectConfig(_0x5e9257[_0x448403(0x8e)]),_0x40c32c=await readSqlLockFile(_0x3cefa1['lockFilePath']);if(!_0x40c32c)throw CliErrors[_0x448403(0x76)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');},async 'dryRun'(_0x305aa3){const _0x5eef4a=a151_0x345b68,_0x32ac28=loadSqlProjectConfig(_0x305aa3[_0x5eef4a(0x8e)]),_0x1f52d0=await readSqlLockFile(_0x32ac28['lockFilePath']);if(!_0x1f52d0)throw CliErrors[_0x5eef4a(0x76)]('SQL\x20lock\x20file\x20not\x20found.\x20Run\x20`rabetbase\x20sql\x20create`\x20or\x20`rabetbase\x20sql\x20pull`\x20first.');const {appLock:_0x4ddebd}=ensureSqlLockScope(_0x1f52d0,_0x305aa3[_0x5eef4a(0x8e)],_0x32ac28[_0x5eef4a(0x7c)],_0x5eef4a(0x8c)),_0xe60605=_0x305aa3['str'](_0x5eef4a(0x7f)),_0x37b4fc=_0x4ddebd[_0x5eef4a(0x87)][_0xe60605];if(!_0x37b4fc)throw CliErrors[_0x5eef4a(0x76)](_0x5eef4a(0x90)+_0xe60605+'\x22.');return{'method':'POST','url':_0x5eef4a(0x83),'body':{'sqlCode':_0xe60605,'id':_0x37b4fc[_0x5eef4a(0x88)],'localPath':resolveLocalSqlFilePath(_0x32ac28,_0xe60605,_0x37b4fc)},'description':_0x5eef4a(0x8d)+_0xe60605+'\x20from\x20remote\x20and\x20move\x20local\x20file\x20to\x20'+_0x32ac28[_0x5eef4a(0x80)]};},async 'execute'(_0x77a404){const _0xea907d=a151_0x345b68,_0x167435=loadSqlProjectConfig(_0x77a404['appCode']),_0x192be9=await readSqlLockFile(_0x167435['lockFilePath']);if(!_0x192be9)throw CliErrors[_0xea907d(0x76)]('SQL\x20lock\x20file\x20not\x20found.');const {lockData:_0x7fe755,appLock:_0x522e9d}=ensureSqlLockScope(_0x192be9,_0x77a404[_0xea907d(0x8e)],_0x167435[_0xea907d(0x7c)],_0xea907d(0x8c)),_0x4ba794=_0x77a404[_0xea907d(0x77)](_0xea907d(0x7f)),_0x292a47=_0x522e9d['sqls'][_0x4ba794];if(!_0x292a47)throw CliErrors[_0xea907d(0x76)](_0xea907d(0x90)+_0x4ba794+'\x22.');await deleteSqlQuery({'id':_0x292a47[_0xea907d(0x88)],'sqlCode':_0x4ba794}),_0x522e9d[_0xea907d(0x87)]=Object[_0xea907d(0x8a)](Object[_0xea907d(0x89)](_0x522e9d[_0xea907d(0x87)])['filter'](([_0x6c8ffb])=>_0x6c8ffb!==_0x4ba794)),_0x522e9d[_0xea907d(0x78)]=new Date()[_0xea907d(0x91)](),await writeSqlLockFile(_0x167435['lockFilePath'],_0x7fe755);const _0x5aa4d6=resolveLocalSqlFilePath(_0x167435,_0x4ba794,_0x292a47);let _0x2bfa00;await fileExists(_0x5aa4d6)&&(_0x2bfa00=await moveToTrash(_0x167435['projectRoot'],_0x167435['trashDir'],_0x5aa4d6),await cleanupEmptyDirectories(dirname(_0x5aa4d6),_0x167435[_0xea907d(0x79)]));const _0x1add83={'deleted':_0x4ba794,'remoteId':_0x292a47['remoteId']};if(_0x2bfa00)_0x1add83['trashedTo']=_0x2bfa00;return{'ok':!![],'data':_0x1add83,'message':_0xea907d(0x8b)+_0x4ba794+(_0x2bfa00?_0xea907d(0x7b):'')};}};async function moveToTrash(_0x1996aa,_0x13b7b4,_0x4e7d07){const _0x256f7e=a151_0x345b68,_0x2111bf=new Date()[_0x256f7e(0x91)]()[_0x256f7e(0x74)](/[:.]/g,'-'),_0x22aed3=relative(_0x1996aa,_0x4e7d07),_0x1e1847=join(_0x13b7b4,_0x2111bf,_0x22aed3);return await mkdir(dirname(_0x1e1847),{'recursive':!![]}),await rename(_0x4e7d07,_0x1e1847),_0x1e1847;}async function cleanupEmptyDirectories(_0x1fcd93,_0x5a74ff){const _0x4b4b52=a151_0x345b68;let _0x14ec4d=resolve(_0x1fcd93);const _0x21e8bc=resolve(_0x5a74ff);while(_0x14ec4d[_0x4b4b52(0x7d)](''+_0x21e8bc+sep)||_0x14ec4d===_0x21e8bc){if(_0x14ec4d===_0x21e8bc)return;try{const _0x31417f=await readdir(_0x14ec4d);if(_0x31417f[_0x4b4b52(0x86)]>0x0)return;await rmdir(_0x14ec4d);}catch{return;}_0x14ec4d=dirname(_0x14ec4d);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a152_0xc626(_0x1584bb,_0x32a337){_0x1584bb=_0x1584bb-0x1ef;const _0xffd7a=a152_0xffd7();let _0xc626ef=_0xffd7a[_0x1584bb];return _0xc626ef;}function a152_0xffd7(){const _0x549cad=['1002449zOvjlQ','appCode','description','3lsPWcJ','22616UXejVb','84fhxxPC','read','1516932YBPQad','1010zaGyKU','Return\x20full\x20raw\x20SQL\x20query\x20object','dbId','180136tShVGS','sqlName','bool','detail','verbose','302350hEMcWz','130538yGQEuv','483DqscqE','8314857tqOoEg'];a152_0xffd7=function(){return _0x549cad;};return a152_0xffd7();}const a152_0x26c8e8=a152_0xc626;(function(_0x432742,_0x909491){const _0x573305=a152_0xc626,_0x527a4e=_0x432742();while(!![]){try{const _0x2e5d4a=parseInt(_0x573305(0x201))/0x1+-parseInt(_0x573305(0x1fe))/0x2+parseInt(_0x573305(0x1f0))/0x3*(-parseInt(_0x573305(0x1f4))/0x4)+parseInt(_0x573305(0x1fd))/0x5*(-parseInt(_0x573305(0x1f2))/0x6)+-parseInt(_0x573305(0x1ff))/0x7*(-parseInt(_0x573305(0x1f1))/0x8)+-parseInt(_0x573305(0x200))/0x9+parseInt(_0x573305(0x1f5))/0xa*(parseInt(_0x573305(0x1f8))/0xb);if(_0x2e5d4a===_0x909491)break;else _0x527a4e['push'](_0x527a4e['shift']());}catch(_0xccd41f){_0x527a4e['push'](_0x527a4e['shift']());}}}(a152_0xffd7,0x9b675));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':'sql','command':a152_0x26c8e8(0x1fb),'description':'Get\x20custom\x20SQL\x20query\x20details\x20by\x20sqlCode','risk':a152_0x26c8e8(0x1f3),'flags':[SQLCODE_FLAG,{'name':'verbose','type':'boolean','description':a152_0x26c8e8(0x1f6)}],async 'execute'(_0x1c4566){const _0x476577=a152_0x26c8e8,_0x3d3a78=await getSqlQueryInfo(_0x1c4566[_0x476577(0x202)],_0x1c4566['str']('sqlcode')),_0x562f39=_0x1c4566[_0x476577(0x1fa)](_0x476577(0x1fc));if(_0x562f39)return{'ok':!![],'data':_0x3d3a78};const _0x88a398=_0x3d3a78['dbId']?await getDbName(_0x1c4566['appCode'],_0x3d3a78[_0x476577(0x1f7)]):undefined;return{'ok':!![],'data':{'sqlCode':_0x3d3a78['sqlCode'],'sqlName':_0x3d3a78[_0x476577(0x1f9)],'db':_0x88a398?_0x88a398+'\x20('+_0x3d3a78[_0x476577(0x1f7)]+')':_0x3d3a78[_0x476577(0x1f7)]??'','description':_0x3d3a78[_0x476577(0x1ef)]??'','sqlContent':_0x3d3a78['sqlContent']??''}};}};
|
package/lib/commands/sql/exec.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a153_0x37c24d=a153_0x4888;function a153_0x4888(_0x371ac7,_0x5d846b){_0x371ac7=_0x371ac7-0x11f;const _0x22dd60=a153_0x22dd();let _0x4888b3=_0x22dd60[_0x371ac7];return _0x4888b3;}(function(_0x6a550d,_0x33daba){const _0x460798=a153_0x4888,_0x2067d6=_0x6a550d();while(!![]){try{const _0x398645=parseInt(_0x460798(0x122))/0x1+parseInt(_0x460798(0x133))/0x2+parseInt(_0x460798(0x130))/0x3+parseInt(_0x460798(0x125))/0x4+-parseInt(_0x460798(0x12d))/0x5*(parseInt(_0x460798(0x129))/0x6)+parseInt(_0x460798(0x121))/0x7*(parseInt(_0x460798(0x11f))/0x8)+-parseInt(_0x460798(0x128))/0x9*(parseInt(_0x460798(0x120))/0xa);if(_0x398645===_0x33daba)break;else _0x2067d6['push'](_0x2067d6['shift']());}catch(_0x2b87b4){_0x2067d6['push'](_0x2067d6['shift']());}}}(a153_0x22dd,0x60c78));import{executeSql}from'../../core/api-client.js';import{SQLCODE_FLAG}from'../../commands/common/flags.js';function a153_0x22dd(){const _0x32240d=['execSuccess','183840qDRrsp','exec','sqlcode','now','length','12112wwqEfN','6436460juETUH','1666MpWbib','614006YDvmuL','SQL\x20parameters\x20as\x20JSON\x20string\x20(e.g.\x20\x27{\x22key\x22:\x22value\x22}\x27)','read','1921348tVHFZU','Execute\x20a\x20custom\x20SQL\x20query\x20by\x20sqlCode','execError','18xslICz','2767734glWQVK','appCode','execResult','isArray','5jVOIBP','sql','string','1795182WTwKkB','str'];a153_0x22dd=function(){return _0x32240d;};return a153_0x22dd();}import{parseJsonParams}from'../../utils/params.js';export const sqlExec={'service':a153_0x37c24d(0x12e),'command':a153_0x37c24d(0x134),'description':a153_0x37c24d(0x126),'risk':a153_0x37c24d(0x124),'flags':[SQLCODE_FLAG,{'name':'params','type':a153_0x37c24d(0x12f),'description':a153_0x37c24d(0x123)}],async 'execute'(_0x4c7421){const _0x5dbf4b=a153_0x37c24d,_0xb09c05=parseJsonParams(_0x4c7421[_0x5dbf4b(0x131)]('params')),_0x187718=Date['now'](),_0x59ee64=await executeSql(_0x4c7421[_0x5dbf4b(0x12a)],_0x4c7421[_0x5dbf4b(0x131)](_0x5dbf4b(0x135)),_0xb09c05),_0x9dc684=Date[_0x5dbf4b(0x136)]()-_0x187718,_0x34d1fa=_0x59ee64?.[_0x5dbf4b(0x12b)]??_0x59ee64,_0x471359=_0x59ee64?.[_0x5dbf4b(0x132)]??!![];if(!_0x471359)return{'ok':![],'data':{'error':_0x59ee64?.[_0x5dbf4b(0x127)]||'SQL\x20execution\x20failed','elapsed':_0x9dc684},'message':'SQL\x20execution\x20failed'};const _0x8aa3c=Array[_0x5dbf4b(0x12c)](_0x34d1fa)?_0x34d1fa:[];return{'ok':!![],'data':{'rows':_0x8aa3c,'rowCount':_0x8aa3c[_0x5dbf4b(0x137)],'elapsed':_0x9dc684},'message':'Returned\x20'+_0x8aa3c[_0x5dbf4b(0x137)]+'\x20row(s)\x20in\x20'+_0x9dc684+'ms'};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x5c7fbc,_0x103899){const _0x19e691=a154_0x4802,_0x51f832=_0x5c7fbc();while(!![]){try{const _0x1869e4=-parseInt(_0x19e691(0xb6))/0x1+parseInt(_0x19e691(0xbb))/0x2*(parseInt(_0x19e691(0xb8))/0x3)+-parseInt(_0x19e691(0xb4))/0x4*(-parseInt(_0x19e691(0xbc))/0x5)+parseInt(_0x19e691(0xb7))/0x6*(parseInt(_0x19e691(0xb2))/0x7)+-parseInt(_0x19e691(0xb5))/0x8*(-parseInt(_0x19e691(0xbd))/0x9)+-parseInt(_0x19e691(0xb3))/0xa+parseInt(_0x19e691(0xb9))/0xb*(-parseInt(_0x19e691(0xba))/0xc);if(_0x1869e4===_0x103899)break;else _0x51f832['push'](_0x51f832['shift']());}catch(_0x235301){_0x51f832['push'](_0x51f832['shift']());}}}(a154_0x1024,0x61e9a));import{sqlList}from'../../commands/sql/list.js';function a154_0x1024(){const _0x4eda9e=['3806785cVllJH','102159piQHOb','2917082whNrPt','2729370SxDgLz','4nRGfME','8hBiXrj','91372nMFoAS','6taIAmb','549aFqThN','565796niunEq','228oQnMOz','6046pyCDLT'];a154_0x1024=function(){return _0x4eda9e;};return a154_0x1024();}import{sqlDetail}from'../../commands/sql/detail.js';import{sqlValidate}from'../../commands/sql/validate.js';import{sqlSave}from'../../commands/sql/save.js';import{sqlExec}from'../../commands/sql/exec.js';import{sqlPull}from'../../commands/sql/pull.js';import{sqlCreate}from'../../commands/sql/create.js';import{sqlStatus}from'../../commands/sql/status.js';import{sqlPush}from'../../commands/sql/push.js';import{sqlDelete}from'../../commands/sql/delete.js';function a154_0x4802(_0x47a73e,_0x23dea7){_0x47a73e=_0x47a73e-0xb2;const _0x1024d5=a154_0x1024();let _0x48026a=_0x1024d5[_0x47a73e];return _0x48026a;}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_0x24c10c=a155_0x3e59;function a155_0x512a(){const _0x1bfe7d=['3076724GNUnoD','verbose','Filter\x20by\x20SQL\x20name','description','No\x20custom\x20SQL\x20queries\x20found.','sqlCode','totalCount','page','bool','tableData','sql','335324GqEqrk','num','str','pagesize','number','list','appCode','dbId','8110VMDDvP','paging','77272ntriJe','Page\x20size','271670JgxfBt','length','512415upZaTD','Return\x20full\x20SQL\x20query\x20objects\x20including\x20parameters\x20and\x20SQL\x20content','\x20SQL\x20queries\x20(total:\x20','6FuOIGx','913STdgou','342dwLyvo','3523284uYasAQ','List\x20custom\x20SQL\x20queries','all','name','sqlcode','1348iRgDKL','Found\x20'];a155_0x512a=function(){return _0x1bfe7d;};return a155_0x512a();}(function(_0x3daf35,_0x3a247c){const _0x421420=a155_0x3e59,_0x162bc2=_0x3daf35();while(!![]){try{const _0x116728=-parseInt(_0x421420(0x1c8))/0x1+-parseInt(_0x421420(0x1d9))/0x2*(parseInt(_0x421420(0x1d6))/0x3)+parseInt(_0x421420(0x1bb))/0x4*(-parseInt(_0x421420(0x1d0))/0x5)+-parseInt(_0x421420(0x1dc))/0x6+parseInt(_0x421420(0x1bd))/0x7+-parseInt(_0x421420(0x1d2))/0x8*(parseInt(_0x421420(0x1db))/0x9)+parseInt(_0x421420(0x1d4))/0xa*(parseInt(_0x421420(0x1da))/0xb);if(_0x116728===_0x3a247c)break;else _0x162bc2['push'](_0x162bc2['shift']());}catch(_0x37892b){_0x162bc2['push'](_0x162bc2['shift']());}}}(a155_0x512a,0x546b8));import{listSqlQueries}from'../../core/api-client.js';import{getDbName}from'../../core/db-resolver.js';function a155_0x3e59(_0x46cdab,_0x55b8dc){_0x46cdab=_0x46cdab-0x1bb;const _0x512a46=a155_0x512a();let _0x3e5933=_0x512a46[_0x46cdab];return _0x3e5933;}import{SQLCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';export const sqlList={'service':a155_0x24c10c(0x1c7),'command':a155_0x24c10c(0x1cd),'description':a155_0x24c10c(0x1dd),'risk':'read','flags':[SQLCODE_FLAG_OPTIONAL,{'name':a155_0x24c10c(0x1df),'type':'string','description':a155_0x24c10c(0x1bf)},{'name':a155_0x24c10c(0x1c4),'type':a155_0x24c10c(0x1cc),'description':'Page\x20number','default':0x1},{'name':a155_0x24c10c(0x1cb),'type':a155_0x24c10c(0x1cc),'description':a155_0x24c10c(0x1d3)},{'name':'verbose','type':'boolean','description':a155_0x24c10c(0x1d7)}],async 'execute'(_0x3a3d34){const _0x104978=a155_0x24c10c,_0x3493f0=await listSqlQueries(_0x3a3d34[_0x104978(0x1ce)],{'sqlCode':_0x3a3d34[_0x104978(0x1ca)](_0x104978(0x1e0))||undefined,'sqlName':_0x3a3d34[_0x104978(0x1ca)](_0x104978(0x1df))||undefined,'currentPage':_0x3a3d34[_0x104978(0x1c9)](_0x104978(0x1c4)),'pageSize':_0x3a3d34[_0x104978(0x1c9)](_0x104978(0x1cb),0x32)}),_0xef89b3=_0x3a3d34[_0x104978(0x1c5)](_0x104978(0x1be)),_0x233cbf=_0x3493f0[_0x104978(0x1c6)]??[],_0x42b2cb=_0x3493f0[_0x104978(0x1d1)]?.[_0x104978(0x1c3)]??_0x233cbf['length'];let _0x158029;return _0xef89b3?_0x158029=_0x233cbf:_0x158029=await Promise[_0x104978(0x1de)](_0x233cbf['map'](async _0xf9af6=>{const _0x2d5912=_0x104978;let _0x505ce4;try{_0x505ce4=_0xf9af6[_0x2d5912(0x1cf)]?await getDbName(_0x3a3d34['appCode'],_0xf9af6[_0x2d5912(0x1cf)]):undefined;}catch{}return{'sqlCode':_0xf9af6[_0x2d5912(0x1c2)],'sqlName':_0xf9af6['sqlName'],'description':_0xf9af6[_0x2d5912(0x1c0)]??'','db':_0x505ce4?_0x505ce4+'\x20('+_0xf9af6['dbId']+')':_0xf9af6[_0x2d5912(0x1cf)]??''};})),{'ok':!![],'data':_0x158029,'message':_0x233cbf[_0x104978(0x1d5)]===0x0?_0x104978(0x1c1):_0x104978(0x1bc)+_0x233cbf['length']+_0x104978(0x1d8)+_0x42b2cb+').'};}};
|
package/lib/commands/sql/pull.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a156_0x19d547=a156_0x51bc;(function(_0x3956d3,_0x2d1a30){const _0x272ff2=a156_0x51bc,_0x5ab3ce=_0x3956d3();while(!![]){try{const _0xc2bec1=parseInt(_0x272ff2(0x1df))/0x1*(-parseInt(_0x272ff2(0x1e6))/0x2)+-parseInt(_0x272ff2(0x219))/0x3+-parseInt(_0x272ff2(0x215))/0x4+-parseInt(_0x272ff2(0x1e5))/0x5+-parseInt(_0x272ff2(0x1dc))/0x6*(-parseInt(_0x272ff2(0x1e0))/0x7)+parseInt(_0x272ff2(0x1fe))/0x8*(-parseInt(_0x272ff2(0x205))/0x9)+parseInt(_0x272ff2(0x1fc))/0xa;if(_0xc2bec1===_0x2d1a30)break;else _0x5ab3ce['push'](_0x5ab3ce['shift']());}catch(_0x2b407c){_0x5ab3ce['push'](_0x5ab3ce['shift']());}}}(a156_0x4d08,0x5fdf1));import{readFile,rm,writeFile}from'node:fs/promises';import{join}from'node:path';import{getSqlQueryDetail,listSqlQueries}from'../../core/api-client.js';function a156_0x4d08(){const _0x19964e=['Filter\x20by\x20SQL\x20display\x20name','32220LJrlpS','pull','dbId','sqls','\x20SQL\x20file(s)\x20into\x20','lockFilePath','replace','appCode','message','lastSync','Force\x20pull\x20will\x20overwrite\x20local\x20SQL\x20that\x20differs\x20from\x20remote.','unchanged','filter','Pull\x20remote\x20SQL\x20queries\x20to\x20local\x20.rabetbase/sql/','cancelled','mybatisXml','709740rHPtzX','boolean','sql','catch','963255RfCErK','toISOString','474oFlzRN','sqlCode','split','237612ylCEaE','36057GXzMXY','str','POST','description','\x20written,\x20','3762255gPDEbp','6YLJWeG','name','sqlName','tableData','\x20skipped,\x20','\x20failed','test','write','apps','No\x20remote\x20SQL\x20queries\x20matched.','Force\x20pull\x20cancelled.','trimStart','string','sqlRoot','path','push','Force\x20overwrite\x20local\x20unsynced\x20changes','join','bool','sqlRootDir','utf8','local\x20differs\x20from\x20remote','25116270Gmvkvi','sqlcode','1256vgUHOf','sqlContent','force','/smartapi/custom/queryUserCustomSqlList\x20+\x20/smartapi/custom/getUserCustomSql','Would\x20pull\x20','length'];a156_0x4d08=function(){return _0x19964e;};return a156_0x4d08();}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(_0x775ff9,_0x2c3105){const _0x3a330c=a156_0x51bc,_0x4a2042=[];let _0x2412bf=0x1;while(!![]){const _0x3c4343=await listSqlQueries(_0x775ff9,{'currentPage':_0x2412bf,'pageSize':PAGE_SIZE,'sqlCode':_0x2c3105[_0x3a330c(0x1dd)],'sqlName':_0x2c3105[_0x3a330c(0x1e8)]}),_0xf61dcf=_0x3c4343[_0x3a330c(0x1e9)]??[];_0x4a2042['push'](..._0xf61dcf);if(_0xf61dcf[_0x3a330c(0x203)]===0x0)break;const _0x5b0eea=_0x3c4343['paging']?.['totalCount'];if(_0x5b0eea!=null?_0x4a2042[_0x3a330c(0x203)]>=_0x5b0eea:_0xf61dcf[_0x3a330c(0x203)]<PAGE_SIZE)break;_0x2412bf++;}return _0x4a2042;}async function ensureSqlContent(_0x5b556b){const _0x45f013=a156_0x51bc;if(_0x5b556b[_0x45f013(0x1ff)]!=null&&String(_0x5b556b[_0x45f013(0x1ff)])[_0x45f013(0x203)]>0x0)return _0x5b556b;return getSqlQueryDetail(_0x5b556b['sqlCode']);}export const sqlPull={'service':'sql','command':a156_0x19d547(0x206),'description':a156_0x19d547(0x212),'risk':a156_0x19d547(0x1ed),'flags':[SQLCODE_FLAG_OPTIONAL,{'name':a156_0x19d547(0x1e7),'type':a156_0x19d547(0x1f2),'description':a156_0x19d547(0x204)},{'name':a156_0x19d547(0x200),'type':a156_0x19d547(0x216),'description':a156_0x19d547(0x1f6)}],async 'dryRun'(_0x30a600){const _0x2a7079=a156_0x19d547,_0x21ce56=loadSqlProjectConfig(_0x30a600[_0x2a7079(0x20c)]),_0x51e32d=await readSqlLockFile(_0x21ce56[_0x2a7079(0x20a)]),{appLock:_0x701e83}=ensureSqlLockScope(_0x51e32d??createEmptySqlLock(),_0x21ce56['appCode'],_0x21ce56['sqlRoot'],_0x2a7079(0x206)),_0x1b0e58=await fetchAllSqlQueries(_0x30a600[_0x2a7079(0x20c)],{'sqlCode':_0x30a600[_0x2a7079(0x1e1)](_0x2a7079(0x1fd))||undefined,'sqlName':_0x30a600[_0x2a7079(0x1e1)](_0x2a7079(0x1e7))||undefined}),_0x1ea676=[];for(const _0x7b99c6 of _0x1b0e58){const _0x55a5ea=await ensureSqlContent(_0x7b99c6),_0x1198bc=ensureRemoteSqlContent(_0x55a5ea),_0x8d93ac=detectModeFromSql(_0x55a5ea),_0x493d06=_0x55a5ea['dbId']?await getDbName(_0x30a600[_0x2a7079(0x20c)],Number(_0x55a5ea[_0x2a7079(0x207)]))[_0x2a7079(0x218)](()=>undefined):undefined,_0x58141a=buildLocalSqlFileContent({'sqlCode':_0x55a5ea[_0x2a7079(0x1dd)],'sqlName':_0x55a5ea[_0x2a7079(0x1e8)],'dbId':_0x55a5ea['dbId']},_0x1198bc,{'dbName':_0x493d06,'mode':_0x8d93ac,'syncedAt':new Date()['toISOString'](),'description':_0x55a5ea[_0x2a7079(0x1e3)]}),_0x17ff0f=buildSqlLockEntry(_0x55a5ea,_0x1198bc,'',{'dbName':_0x493d06}),_0x4a38f2=resolveLocalSqlFilePath(_0x21ce56,_0x55a5ea['sqlCode'],_0x17ff0f);let _0x3004c2='would_pull',_0x56171e;if(await fileExists(_0x4a38f2)){const _0x5bee3c=await readFile(_0x4a38f2,_0x2a7079(0x1fa));isEquivalentPulledSqlFile(_0x5bee3c,_0x58141a,_0x8d93ac)?(_0x3004c2='skipped',_0x56171e='unchanged'):(_0x3004c2='conflict',_0x56171e='local\x20differs\x20from\x20remote\x20(use\x20--force\x20to\x20overwrite)');}_0x1ea676[_0x2a7079(0x1f5)]({'sqlCode':_0x55a5ea[_0x2a7079(0x1dd)],'sqlName':_0x55a5ea[_0x2a7079(0x1e8)],'filePath':_0x4a38f2,'status':_0x3004c2,'reason':_0x56171e});}return{'method':_0x2a7079(0x1e2),'url':_0x2a7079(0x201),'body':{'appCode':_0x30a600[_0x2a7079(0x20c)],'sqlCode':_0x30a600[_0x2a7079(0x1e1)](_0x2a7079(0x1fd))||null,'sqlName':_0x30a600[_0x2a7079(0x1e1)](_0x2a7079(0x1e7))||null,'files':_0x1ea676},'description':_0x2a7079(0x202)+_0x1ea676[_0x2a7079(0x203)]+_0x2a7079(0x209)+_0x21ce56[_0x2a7079(0x1f9)]};},async 'execute'(_0x4ea8c4){const _0x143d07=a156_0x19d547,_0x38c27c=loadSqlProjectConfig(_0x4ea8c4[_0x143d07(0x20c)]),_0x239e50=await readSqlLockFile(_0x38c27c['lockFilePath']),{lockData:_0x594aba,appLock:_0x1f98a6}=ensureSqlLockScope(_0x239e50??createEmptySqlLock(),_0x38c27c[_0x143d07(0x20c)],_0x38c27c[_0x143d07(0x1f3)],_0x143d07(0x206)),_0x1a5f12=_0x4ea8c4[_0x143d07(0x1f8)](_0x143d07(0x200)),_0x3be47b=await fetchAllSqlQueries(_0x4ea8c4['appCode'],{'sqlCode':_0x4ea8c4[_0x143d07(0x1e1)]('sqlcode')||undefined,'sqlName':_0x4ea8c4[_0x143d07(0x1e1)](_0x143d07(0x1e7))||undefined});if(_0x3be47b['length']===0x0)return{'ok':!![],'data':{'pulled':[],'skipped':[],'failed':[]},'message':_0x143d07(0x1ef)};const _0xd19cec=[],_0x5f067a=[];for(const _0x2ff81 of _0x3be47b){try{_0xd19cec['push'](await ensureSqlContent(_0x2ff81));}catch(_0x37e838){_0x5f067a['push']({'sqlCode':_0x2ff81[_0x143d07(0x1dd)],'error':_0x37e838 instanceof Error?_0x37e838[_0x143d07(0x20d)]:String(_0x37e838)});}}if(_0x1a5f12&&!_0x4ea8c4['nonInteractive']){let _0x190af1=![];for(const _0x2533a5 of _0xd19cec){const _0x57176d=detectModeFromSql(_0x2533a5),_0x55af91=_0x2533a5[_0x143d07(0x207)]?await getDbName(_0x4ea8c4[_0x143d07(0x20c)],Number(_0x2533a5['dbId']))[_0x143d07(0x218)](()=>undefined):undefined,_0xada290=buildLocalSqlFileContent({'sqlCode':_0x2533a5[_0x143d07(0x1dd)],'sqlName':_0x2533a5['sqlName'],'dbId':_0x2533a5[_0x143d07(0x207)]},ensureRemoteSqlContent(_0x2533a5),{'dbName':_0x55af91,'mode':_0x57176d,'syncedAt':new Date()['toISOString'](),'description':_0x2533a5[_0x143d07(0x1e3)]}),_0x1a72a0=resolveLocalSqlFilePath(_0x38c27c,_0x2533a5[_0x143d07(0x1dd)],buildSqlLockEntry(_0x2533a5,ensureRemoteSqlContent(_0x2533a5),'',{'dbName':_0x55af91}));if(await fileExists(_0x1a72a0)){const _0x3be062=await readFile(_0x1a72a0,_0x143d07(0x1fa));if(!isEquivalentPulledSqlFile(_0x3be062,_0xada290,_0x57176d)){_0x190af1=!![];break;}}}if(_0x190af1){const _0x113632=await confirmForceOverwrite(_0x143d07(0x20f));if(!_0x113632)throw CliErrors[_0x143d07(0x213)](_0x143d07(0x1f0));}}const _0x194815=cloneSqlLockData(_0x594aba),_0x27d203=_0x194815[_0x143d07(0x1ee)][_0x38c27c['appCode']],_0x2590ff=[],_0x28ad94=[];for(const _0x34722e of _0xd19cec){const _0x2e137b=_0x27d203[_0x143d07(0x208)][_0x34722e[_0x143d07(0x1dd)]],_0x4740ba=ensureRemoteSqlContent(_0x34722e),_0x3ad104=detectModeFromSql(_0x34722e),_0x317fdc=_0x34722e[_0x143d07(0x207)]?await getDbName(_0x4ea8c4['appCode'],Number(_0x34722e[_0x143d07(0x207)]))[_0x143d07(0x218)](()=>undefined):undefined,_0x5c8f54=buildLocalSqlFileContent({'sqlCode':_0x34722e[_0x143d07(0x1dd)],'sqlName':_0x34722e[_0x143d07(0x1e8)],'dbId':_0x34722e[_0x143d07(0x207)]},_0x4740ba,{'dbName':_0x317fdc,'mode':_0x3ad104,'syncedAt':new Date()[_0x143d07(0x1db)](),'description':_0x34722e['description']}),_0x57ead7=buildSqlLockEntry(_0x34722e,_0x4740ba,computeSqlContentHash(_0x5c8f54),{'dbName':_0x317fdc}),_0x312079=_0x57ead7[_0x143d07(0x1f4)],_0x3535c0=join(_0x38c27c[_0x143d07(0x1f9)],_0x312079);try{if(await fileExists(_0x3535c0)){const _0x55ac20=await readFile(_0x3535c0,_0x143d07(0x1fa));if(isEquivalentPulledSqlFile(_0x55ac20,_0x5c8f54,_0x3ad104)){_0x28ad94[_0x143d07(0x1f5)]({'sqlCode':_0x34722e[_0x143d07(0x1dd)],'reason':_0x143d07(0x210)}),_0x27d203[_0x143d07(0x208)][_0x34722e['sqlCode']]={..._0x57ead7,'hash':computeSqlContentHash(_0x55ac20),'path':_0x312079};continue;}if(!_0x1a5f12){_0x28ad94['push']({'sqlCode':_0x34722e[_0x143d07(0x1dd)],'reason':_0x143d07(0x1fb)});continue;}}const _0x16b1f9=_0x2e137b?.[_0x143d07(0x1f4)]?join(_0x38c27c[_0x143d07(0x1f9)],_0x2e137b['path']):undefined;_0x16b1f9&&_0x16b1f9!==_0x3535c0&&await fileExists(_0x16b1f9)&&await rm(_0x16b1f9,{'force':!![]}),await ensureParentDirectory(_0x3535c0),await writeFile(_0x3535c0,_0x5c8f54,_0x143d07(0x1fa)),_0x27d203[_0x143d07(0x208)][_0x34722e[_0x143d07(0x1dd)]]={..._0x57ead7,'path':_0x312079},_0x2590ff['push']({'sqlCode':_0x34722e[_0x143d07(0x1dd)],'filePath':_0x3535c0});}catch(_0x287486){_0x5f067a[_0x143d07(0x1f5)]({'sqlCode':_0x34722e[_0x143d07(0x1dd)],'error':_0x287486 instanceof Error?_0x287486[_0x143d07(0x20d)]:String(_0x287486)});}}return _0x27d203[_0x143d07(0x20e)]=new Date()['toISOString'](),await writeSqlLockFile(_0x38c27c['lockFilePath'],_0x194815),{'ok':_0x5f067a['length']===0x0,'data':{'pulled':_0x2590ff,'skipped':_0x28ad94,'failed':_0x5f067a},'message':'Pull\x20complete:\x20'+_0x2590ff[_0x143d07(0x203)]+_0x143d07(0x1e4)+_0x28ad94[_0x143d07(0x203)]+_0x143d07(0x1ea)+_0x5f067a[_0x143d07(0x203)]+_0x143d07(0x1eb)};}};function detectModeFromSql(_0x2ee725){const _0x11f6e1=a156_0x19d547,_0x8db7f=ensureRemoteSqlContent(_0x2ee725),_0x2b39bb=stripLocalSqlMetadata(_0x8db7f,_0x11f6e1(0x214))[_0x11f6e1(0x1f1)]();if(/^<(select|insert|update|delete)\b/i[_0x11f6e1(0x1ec)](_0x2b39bb))return'mybatisXml';return _0x11f6e1(0x217);}function isEquivalentPulledSqlFile(_0x413d0a,_0x106146,_0x4091bc){return normalizePullComparableContent(_0x413d0a,_0x4091bc)===normalizePullComparableContent(_0x106146,_0x4091bc);}function normalizePullComparableContent(_0x4ee8f8,_0x163773){const _0x482b63=a156_0x19d547,_0x2b9502=_0x4ee8f8[_0x482b63(0x20b)](/\r\n/g,'\x0a')[_0x482b63(0x1de)]('\x0a'),_0x13035d=_0x2b9502[_0x482b63(0x211)](_0x2717b1=>!isSyncedAtMetadataLine(_0x2717b1,_0x163773));return _0x13035d[_0x482b63(0x1f7)]('\x0a');}function a156_0x51bc(_0xb9702e,_0x3a99be){_0xb9702e=_0xb9702e-0x1db;const _0x4d0827=a156_0x4d08();let _0x51bc6f=_0x4d0827[_0xb9702e];return _0x51bc6f;}function isSyncedAtMetadataLine(_0x1fde0c,_0x2ea2ce){const _0x59d509=a156_0x19d547;if(_0x2ea2ce==='mybatisXml')return/^\s*<!--\s*@lovrabet\.syncedAt:/[_0x59d509(0x1ec)](_0x1fde0c);return/^\s*--\s*@lovrabet\.syncedAt:/['test'](_0x1fde0c);}
|
|
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();}
|