@lovrabet/rabetbase-cli 2.4.1 → 2.4.3-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/members-list.js +1 -1
- package/lib/commands/app/remote-directory.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/delete.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/list.js +1 -1
- package/lib/commands/app-config/set.js +1 -1
- package/lib/commands/app-config/shared.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-registry.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/async-task.js +1 -1
- package/lib/commands/common/dry-run.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/filter.js +1 -1
- package/lib/commands/data/getOne.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/data/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/generate.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-audit.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/dataset/restore.js +1 -1
- package/lib/commands/db/analysis-batching.js +1 -1
- package/lib/commands/db/analyze-batch-plan.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/kb/create.js +1 -1
- package/lib/commands/kb/delete.js +1 -1
- package/lib/commands/kb/detail.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/kb/list.js +1 -1
- package/lib/commands/kb/shared.js +1 -1
- package/lib/commands/kb/update.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/asset-update.js +1 -1
- package/lib/commands/menu/delete.js +1 -1
- package/lib/commands/menu/external-link-create.js +1 -1
- package/lib/commands/menu/external-link-update.js +1 -1
- package/lib/commands/menu/group-create.js +1 -1
- package/lib/commands/menu/group-update.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/move.js +1 -1
- package/lib/commands/menu/regroup-start.js +1 -1
- package/lib/commands/menu/rename.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/delete-plan.js +1 -1
- package/lib/commands/menu/shared/facts.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/mutations.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/react/create.js +1 -1
- package/lib/commands/page/react/detail.js +1 -1
- package/lib/commands/page/react/list.js +1 -1
- package/lib/commands/page/react/publish.js +1 -1
- package/lib/commands/page/react/shared.js +1 -1
- package/lib/commands/page/react/syntax.js +1 -1
- package/lib/commands/page/react/template.js +1 -1
- package/lib/commands/page/react/update.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/restore.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/standard-page-status.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/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/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/role/user-resolve.js +1 -1
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/commands/task/index.js +1 -1
- package/lib/commands/task/status.js +1 -1
- package/lib/commands/tenant/index.js +1 -1
- package/lib/commands/tenant/members-list.js +1 -1
- package/lib/commands/tenant/shared.js +1 -1
- package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/add.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/commands/workspace/remove.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-index-auditor.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/error-output.js +1 -1
- package/lib/framework/explicit-yes.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/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 +8 -4
- package/skills/rabetbase/SKILL.md +1 -1
- package/skills/rabetbase/references/rabetbase-page-react-detail.md +1 -1
- package/skills/rabetbase.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
function a104_0x3ac7(){const _0x9cd5ea=['kb_id_invalid','\x20is\x20not\x20company-scoped.','message','\x20while\x20page\x20','\x20records.','kb_list_contract_invalid','\x20request\x20was\x20sent,\x20but\x20its\x20final\x20company\x20knowledge-base\x20state\x20could\x20not\x20be\x20verified.','utf8','Run\x20`rabetbase\x20kb\x20list\x20--format\x20compress`\x20to\x20inspect\x20the\x20resolved\x20app.','from','9259821okIfsP','string','9884922tvaDgN','cookie','\x20while\x20id\x20','createTime','push','Knowledge-base\x20get-one\x20returned\x20id\x20','Knowledge\x20base\x20','bool','Knowledge-base\x20list\x20returned\x20page\x20','\x20response\x20contains\x20an\x20invalid\x20version.','number','kb_response_invalid','updateTime','byteSize','Knowledge-base\x20content\x20path\x20is\x20not\x20a\x20regular\x20file:\x20','length','items','282865bFkHpo','Do\x20not\x20resubmit\x20automatically.\x20Resolve\x20the\x20app\x20again\x20and\x20inspect\x20the\x20target\x20state\x20manually.','currentPage','appCode','content','Knowledge-base\x20content\x20file\x20is\x20blank:\x20','7jwZQYK','kb_confirmation_required','kb_file_unreadable','yes','isFile','12BKsBLD','update','filter','sha256','hex','Knowledge-base\x20list\x20stopped\x20at\x20','kb_file_required','version','company','Knowledge-base\x20list\x20total\x20changed\x20from\x20','scope','\x20response\x20is\x20missing\x20','Run\x20the\x20same\x20command\x20with\x20--dry-run\x20first,\x20then\x20add\x20--yes\x20after\x20reviewing\x20the\x20plan.','964520BbCDtt','isSafeInteger','outcome_unknown','Cannot\x20access\x20knowledge-base\x20content\x20file:\x20','verification_unavailable','14521190NFfKNn','stringify','kb_scope_mismatch','num','Run\x20the\x20command\x20with\x20--dry-run\x20again\x20and\x20review\x20the\x20latest\x20version\x20before\x20retrying.',',\x20current\x20','kb_content_invalid','add','sha256:','5173059aQBjml','8vqqMlY','9180226mOYAaX','contentHash','kb_state_drift','Company\x20knowledge\x20base\x20not\x20found:\x20','title','Knowledge-base\x20content\x20file\x20is\x20not\x20valid\x20UTF-8:\x20','2XbDLuC','kb_','\x20was\x20requested.','paging','cause','306','dry-run','Knowledge-base\x20content\x20file\x20path\x20is\x20required.','trim','Cannot\x20read\x20knowledge-base\x20content\x20file:\x20','Knowledge-base\x20list\x20returned\x20an\x20invalid\x20or\x20repeated\x20id:\x20','--id\x20must\x20be\x20a\x20positive\x20safe\x20integer.','\x20does\x20not\x20belong\x20to\x20company\x20scope\x20for\x20app\x20','kb_not_found'];a104_0x3ac7=function(){return _0x9cd5ea;};return a104_0x3ac7();}const a104_0x161617=a104_0x13ab;(function(_0x35fd48,_0x2aac53){const _0x40f70d=a104_0x13ab,_0x5f3a52=_0x35fd48();while(!![]){try{const _0x28c799=-parseInt(_0x40f70d(0xb6))/0x1+-parseInt(_0x40f70d(0xcc))/0x2*(-parseInt(_0x40f70d(0xc4))/0x3)+-parseInt(_0x40f70d(0xa9))/0x4*(-parseInt(_0x40f70d(0x9e))/0x5)+-parseInt(_0x40f70d(0x8d))/0x6*(-parseInt(_0x40f70d(0xa4))/0x7)+-parseInt(_0x40f70d(0xc5))/0x8*(parseInt(_0x40f70d(0x8b))/0x9)+-parseInt(_0x40f70d(0xbb))/0xa+parseInt(_0x40f70d(0xc6))/0xb;if(_0x28c799===_0x2aac53)break;else _0x5f3a52['push'](_0x5f3a52['shift']());}catch(_0xc2fdae){_0x5f3a52['push'](_0x5f3a52['shift']());}}}(a104_0x3ac7,0xe3339));import{createHash}from'node:crypto';function a104_0x13ab(_0x389d09,_0x16f222){_0x389d09=_0x389d09-0x7e;const _0x3ac774=a104_0x3ac7();let _0x13ab8a=_0x3ac774[_0x389d09];return _0x13ab8a;}import{readFile,stat}from'node:fs/promises';import{resolve}from'node:path';import{TextDecoder}from'node:util';import{getEnterpriseKnowledgeBase,getPlatformErrorCode,listEnterpriseKnowledgeBases}from'../../core/api-client.js';import{CliError}from'../../errors.js';const LIST_PAGE_SIZE=0x32,DATA_NOT_EXIST_ERROR_CODE=a104_0x161617(0xd1);export function kbError(_0x3ca57d,_0x1c4192,_0x558075){return new CliError(_0x3ca57d,0x1,_0x1c4192,_0x558075);}export function readKbId(_0x264c39){const _0x386e43=a104_0x161617,_0x4f436a=_0x264c39[_0x386e43(0xbe)]('id');if(!Number['isSafeInteger'](_0x4f436a)||_0x4f436a<=0x0)throw kbError(_0x386e43(0x81),_0x386e43(0x7e));return _0x4f436a;}export function requireKbExplicitYes(_0x2be4b0){const _0x4d7a35=a104_0x161617;if(_0x2be4b0['bool'](_0x4d7a35(0xd2))||_0x2be4b0[_0x4d7a35(0x94)](_0x4d7a35(0xa7)))return;throw kbError(_0x4d7a35(0xa5),'This\x20company\x20knowledge-base\x20mutation\x20requires\x20explicit\x20--yes.',_0x4d7a35(0xb5));}function sha256(_0x315ff5){const _0x301c04=a104_0x161617;return _0x301c04(0xc3)+createHash(_0x301c04(0xac))[_0x301c04(0xaa)](_0x315ff5)['digest'](_0x301c04(0xad));}export function inspectKbContent(_0x2ce17a){const _0x29a794=a104_0x161617,_0x39d939=Buffer[_0x29a794(0x8a)](_0x2ce17a,_0x29a794(0x88));return{'content':_0x2ce17a,'byteSize':_0x39d939['byteLength'],'contentHash':sha256(_0x39d939)};}export async function readKbFile(_0x5e6d99){const _0x4b2480=a104_0x161617,_0x33ae6b=_0x5e6d99[_0x4b2480(0xd4)]();if(!_0x33ae6b)throw kbError(_0x4b2480(0xaf),_0x4b2480(0xd3),'Pass\x20--file\x20<knowledge.md>.');const _0x49ec94=resolve(_0x33ae6b);let _0x241c92;try{_0x241c92=await stat(_0x49ec94);}catch(_0x1ed622){throw kbError('kb_file_unreadable',_0x4b2480(0xb9)+_0x33ae6b,_0x1ed622 instanceof Error?_0x1ed622[_0x4b2480(0x83)]:String(_0x1ed622));}if(!_0x241c92[_0x4b2480(0xa8)]())throw kbError('kb_file_invalid',_0x4b2480(0x9b)+_0x33ae6b);let _0x378a17;try{_0x378a17=await readFile(_0x49ec94);}catch(_0x3c2bec){throw kbError(_0x4b2480(0xa6),_0x4b2480(0xd5)+_0x33ae6b,_0x3c2bec instanceof Error?_0x3c2bec['message']:String(_0x3c2bec));}let _0xaba57e;try{_0xaba57e=new TextDecoder('utf-8',{'fatal':!![],'ignoreBOM':!![]})['decode'](_0x378a17);}catch{throw kbError(_0x4b2480(0xc1),_0x4b2480(0xcb)+_0x33ae6b);}if(!_0xaba57e[_0x4b2480(0xd4)]())throw kbError(_0x4b2480(0xc1),_0x4b2480(0xa3)+_0x33ae6b);return inspectKbContent(_0xaba57e);}export async function verifyKbMutationReadback(_0x52a9df,_0x22d99e,_0x5e9b69){const _0x15bef2=a104_0x161617;try{return await _0x5e9b69();}catch(_0x601611){const _0x1a6289=kbError(_0x15bef2(0xcd)+_0x52a9df+'_'+(_0x22d99e?_0x15bef2(0xb8):_0x15bef2(0xba)),'The\x20'+_0x52a9df+_0x15bef2(0x87),_0x15bef2(0x9f));Object['defineProperty'](_0x1a6289,_0x15bef2(0xd0),{'value':_0x601611,'enumerable':![]});throw _0x1a6289;}}function requireRecordText(_0x47acd2,_0x167e4b,_0x512273,_0x4e02ea={}){const _0x53740b=a104_0x161617;if(typeof _0x47acd2==='string'&&(_0x4e02ea['allowEmpty']||_0x47acd2['trim']()))return _0x47acd2;throw kbError('kb_response_invalid',_0x53740b(0x93)+String(_0x512273)+_0x53740b(0xb4)+_0x167e4b+'.');}export function projectKb(_0x13b2b8){const _0x375bb4=a104_0x161617;if(!Number[_0x375bb4(0xb7)](_0x13b2b8['id'])||_0x13b2b8['id']<=0x0)throw kbError(_0x375bb4(0x98),'Knowledge-base\x20response\x20contains\x20an\x20invalid\x20id.');if(!Number[_0x375bb4(0xb7)](_0x13b2b8[_0x375bb4(0xb0)])||_0x13b2b8[_0x375bb4(0xb0)]<0x0)throw kbError(_0x375bb4(0x98),_0x375bb4(0x93)+_0x13b2b8['id']+_0x375bb4(0x96));if(_0x13b2b8['scope']!=='company')throw kbError(_0x375bb4(0xbd),_0x375bb4(0x93)+_0x13b2b8['id']+_0x375bb4(0x82));const _0x51422f=requireRecordText(_0x13b2b8[_0x375bb4(0xa1)],_0x375bb4(0xa1),_0x13b2b8['id']),_0x117c13=requireRecordText(_0x13b2b8[_0x375bb4(0xca)],_0x375bb4(0xca),_0x13b2b8['id']),_0x2ff4cd=inspectKbContent(requireRecordText(_0x13b2b8['content'],_0x375bb4(0xa2),_0x13b2b8['id'],{'allowEmpty':!![]})),_0x20a730=typeof _0x13b2b8['createTime']===_0x375bb4(0x8c)||typeof _0x13b2b8[_0x375bb4(0x90)]===_0x375bb4(0x97)?_0x13b2b8[_0x375bb4(0x90)]:undefined,_0x137cab=typeof _0x13b2b8[_0x375bb4(0x99)]==='string'||typeof _0x13b2b8[_0x375bb4(0x99)]===_0x375bb4(0x97)?_0x13b2b8[_0x375bb4(0x99)]:undefined,_0x2083e4=sha256(JSON[_0x375bb4(0xbc)]({'id':_0x13b2b8['id'],'scope':_0x13b2b8[_0x375bb4(0xb3)],'appCode':_0x51422f,'title':_0x117c13,'version':_0x13b2b8[_0x375bb4(0xb0)],'contentHash':_0x2ff4cd[_0x375bb4(0xc7)],'createTime':_0x20a730,'updateTime':_0x137cab}));return{'id':_0x13b2b8['id'],'scope':_0x375bb4(0xb1),'appCode':_0x51422f,'title':_0x117c13,'version':_0x13b2b8[_0x375bb4(0xb0)],'contentByteSize':_0x2ff4cd[_0x375bb4(0x9a)],'contentHash':_0x2ff4cd[_0x375bb4(0xc7)],'snapshotHash':_0x2083e4,..._0x20a730!==undefined?{'createTime':_0x20a730}:{},..._0x137cab!==undefined?{'updateTime':_0x137cab}:{}};}export function assertCompanyKnowledgeBase(_0x1be85f,_0x38eb35,_0x5567c0){const _0x12e5c0=a104_0x161617;if(_0x5567c0!==undefined&&_0x1be85f['id']!==_0x5567c0)throw kbError(_0x12e5c0(0x98),_0x12e5c0(0x92)+_0x1be85f['id']+_0x12e5c0(0x8f)+_0x5567c0+'\x20was\x20requested.');if(_0x1be85f[_0x12e5c0(0xb3)]!==_0x12e5c0(0xb1)||_0x1be85f[_0x12e5c0(0xa1)]!==_0x38eb35)throw kbError(_0x12e5c0(0xbd),_0x12e5c0(0x93)+_0x1be85f['id']+_0x12e5c0(0x7f)+_0x38eb35+'.');}export async function fetchAllCompanyKnowledgeBases(_0xd6ae4b,_0xd93c24){const _0x33f327=a104_0x161617,_0x1618bc=[],_0x361bd5=new Set();let _0x5a7042=0x1,_0x44b88a=0x0,_0x19dc6f;while(!![]){const _0x4101fd=await listEnterpriseKnowledgeBases(_0xd6ae4b[_0x33f327(0x8e)],{'currentPage':_0x5a7042,'pageSize':LIST_PAGE_SIZE,'appCode':_0xd6ae4b[_0x33f327(0xa1)],..._0xd93c24}),_0x5335a4=_0x4101fd[_0x33f327(0xcf)]?.['totalCount'];if(_0x4101fd[_0x33f327(0xcf)]?.[_0x33f327(0xa0)]!==undefined&&_0x4101fd[_0x33f327(0xcf)][_0x33f327(0xa0)]!==_0x5a7042)throw kbError(_0x33f327(0x86),_0x33f327(0x95)+_0x4101fd[_0x33f327(0xcf)]['currentPage']+_0x33f327(0x84)+_0x5a7042+_0x33f327(0xce));if(_0x5335a4!==undefined){if(_0x19dc6f!==undefined&&_0x5335a4!==_0x19dc6f)throw kbError(_0x33f327(0x86),_0x33f327(0xb2)+_0x19dc6f+'\x20to\x20'+_0x5335a4+'\x20during\x20paging.','Retry\x20the\x20read\x20after\x20concurrent\x20updates\x20have\x20settled.');_0x19dc6f=_0x5335a4;}for(const _0x2489ec of _0x4101fd[_0x33f327(0x9d)]){if(!Number[_0x33f327(0xb7)](_0x2489ec['id'])||_0x361bd5['has'](_0x2489ec['id']))throw kbError('kb_list_contract_invalid',_0x33f327(0xd6)+String(_0x2489ec['id'])+'.');_0x361bd5[_0x33f327(0xc2)](_0x2489ec['id']),_0x2489ec[_0x33f327(0xb3)]==='company'&&_0x2489ec[_0x33f327(0xa1)]===_0xd6ae4b[_0x33f327(0xa1)]&&_0x1618bc[_0x33f327(0x91)](_0x2489ec);}_0x44b88a+=_0x4101fd[_0x33f327(0x9d)][_0x33f327(0x9c)];if(_0x5335a4!==undefined&&_0x44b88a>=_0x5335a4)break;if(_0x4101fd[_0x33f327(0x9d)]['length']<LIST_PAGE_SIZE){if(_0x5335a4!==undefined&&_0x44b88a<_0x5335a4)throw kbError(_0x33f327(0x86),_0x33f327(0xae)+_0x44b88a+'\x20of\x20'+_0x5335a4+_0x33f327(0x85));break;}_0x5a7042+=0x1;}return _0x1618bc;}export function findExactCompanyKnowledgeBases(_0x37d0f2,_0x47a0b1,_0x5737c1){const _0x46d5b9=a104_0x161617;return _0x37d0f2[_0x46d5b9(0xab)](_0x2b96ac=>_0x2b96ac[_0x46d5b9(0xb3)]==='company'&&_0x2b96ac['appCode']===_0x47a0b1&&_0x2b96ac[_0x46d5b9(0xca)]===_0x5737c1);}export async function getKbOrNull(_0x2bb400,_0x1caca0){try{const _0x52503e=await getEnterpriseKnowledgeBase(_0x2bb400['cookie'],_0x1caca0);return assertCompanyKnowledgeBase(_0x52503e,_0x2bb400['appCode'],_0x1caca0),_0x52503e;}catch(_0x330521){if(getPlatformErrorCode(_0x330521)===DATA_NOT_EXIST_ERROR_CODE)return null;throw _0x330521;}}export async function requireKb(_0x5503d6,_0x38b47e){const _0x5d521f=a104_0x161617,_0x13acda=await getKbOrNull(_0x5503d6,_0x38b47e);if(!_0x13acda)throw kbError(_0x5d521f(0x80),_0x5d521f(0xc9)+_0x38b47e,_0x5d521f(0x89));return _0x13acda;}export function assertExpectedKbVersion(_0x528596,_0x288814){const _0x453dbb=a104_0x161617;if(_0x288814===undefined||_0x528596[_0x453dbb(0xb0)]===_0x288814)return;throw kbError(_0x453dbb(0xc8),'Knowledge\x20base\x20'+_0x528596['id']+'\x20version\x20changed:\x20expected\x20'+_0x288814+_0x453dbb(0xc0)+_0x528596[_0x453dbb(0xb0)]+'.',_0x453dbb(0xbf));}
|
|
1
|
+
const a104_0x4b1a26=a104_0x4332;(function(_0x302e6e,_0xe2bf60){const _0x335c35=a104_0x4332,_0x4e1fde=_0x302e6e();while(!![]){try{const _0x314659=-parseInt(_0x335c35(0x23b))/0x1+-parseInt(_0x335c35(0x202))/0x2+parseInt(_0x335c35(0x21e))/0x3+parseInt(_0x335c35(0x20d))/0x4*(parseInt(_0x335c35(0x1ef))/0x5)+parseInt(_0x335c35(0x21f))/0x6*(-parseInt(_0x335c35(0x212))/0x7)+parseInt(_0x335c35(0x22a))/0x8+parseInt(_0x335c35(0x1ed))/0x9;if(_0x314659===_0xe2bf60)break;else _0x4e1fde['push'](_0x4e1fde['shift']());}catch(_0x1f751c){_0x4e1fde['push'](_0x4e1fde['shift']());}}}(a104_0x44eb,0x84840));import{createHash}from'node:crypto';import{readFile,stat}from'node:fs/promises';import{resolve}from'node:path';import{TextDecoder}from'node:util';import{getEnterpriseKnowledgeBase,getPlatformErrorCode,listEnterpriseKnowledgeBases}from'../../core/api-client.js';import{CliError}from'../../errors.js';const LIST_PAGE_SIZE=0x32,DATA_NOT_EXIST_ERROR_CODE=a104_0x4b1a26(0x1f6);export function kbError(_0x56a2c9,_0xcc361e,_0x52ad40){return new CliError(_0x56a2c9,0x1,_0xcc361e,_0x52ad40);}export function readKbId(_0x3e714f){const _0x1e06d5=a104_0x4b1a26,_0x24c146=_0x3e714f[_0x1e06d5(0x23a)]('id');if(!Number[_0x1e06d5(0x237)](_0x24c146)||_0x24c146<=0x0)throw kbError('kb_id_invalid','--id\x20must\x20be\x20a\x20positive\x20safe\x20integer.');return _0x24c146;}export function requireKbExplicitYes(_0x28d074){const _0xd0ef68=a104_0x4b1a26;if(_0x28d074[_0xd0ef68(0x1e4)](_0xd0ef68(0x219))||_0x28d074[_0xd0ef68(0x1e4)](_0xd0ef68(0x213)))return;throw kbError(_0xd0ef68(0x200),'This\x20company\x20knowledge-base\x20mutation\x20requires\x20explicit\x20--yes.',_0xd0ef68(0x1ee));}function sha256(_0x446c6c){const _0x3b544b=a104_0x4b1a26;return _0x3b544b(0x218)+createHash(_0x3b544b(0x201))['update'](_0x446c6c)[_0x3b544b(0x238)](_0x3b544b(0x224));}export function inspectKbContent(_0x2e2a60){const _0x2d93c1=a104_0x4b1a26,_0x548529=Buffer[_0x2d93c1(0x211)](_0x2e2a60,'utf8');return{'content':_0x2e2a60,'byteSize':_0x548529[_0x2d93c1(0x207)],'contentHash':sha256(_0x548529)};}export async function readKbFile(_0x4126b6){const _0x589062=a104_0x4b1a26,_0xc353f7=_0x4126b6[_0x589062(0x21c)]();if(!_0xc353f7)throw kbError(_0x589062(0x21d),'Knowledge-base\x20content\x20file\x20path\x20is\x20required.',_0x589062(0x1ea));const _0x233666=resolve(_0xc353f7);let _0x4427ac;try{_0x4427ac=await stat(_0x233666);}catch(_0x217dc4){throw kbError(_0x589062(0x215),'Cannot\x20access\x20knowledge-base\x20content\x20file:\x20'+_0xc353f7,_0x217dc4 instanceof Error?_0x217dc4['message']:String(_0x217dc4));}if(!_0x4427ac[_0x589062(0x214)]())throw kbError(_0x589062(0x20b),_0x589062(0x216)+_0xc353f7);let _0x44fa38;try{_0x44fa38=await readFile(_0x233666);}catch(_0x245c2b){throw kbError(_0x589062(0x215),_0x589062(0x1e8)+_0xc353f7,_0x245c2b instanceof Error?_0x245c2b[_0x589062(0x225)]:String(_0x245c2b));}let _0x32f82f;try{_0x32f82f=new TextDecoder(_0x589062(0x1f5),{'fatal':!![],'ignoreBOM':!![]})['decode'](_0x44fa38);}catch{throw kbError(_0x589062(0x227),_0x589062(0x22d)+_0xc353f7);}if(!_0x32f82f[_0x589062(0x21c)]())throw kbError(_0x589062(0x227),_0x589062(0x21b)+_0xc353f7);return inspectKbContent(_0x32f82f);}export async function verifyKbMutationReadback(_0x116a4e,_0x2babaf,_0xce3ec7){const _0x138c9a=a104_0x4b1a26;try{return await _0xce3ec7();}catch(_0x188080){const _0x40c55b=kbError(_0x138c9a(0x234)+_0x116a4e+'_'+(_0x2babaf?_0x138c9a(0x22c):_0x138c9a(0x210)),_0x138c9a(0x236)+_0x116a4e+_0x138c9a(0x1f7),_0x138c9a(0x1fb));Object[_0x138c9a(0x209)](_0x40c55b,_0x138c9a(0x22b),{'value':_0x188080,'enumerable':![]});throw _0x40c55b;}}function requireRecordText(_0x172107,_0x2975a9,_0x2c571e,_0x59db27={}){const _0x470914=a104_0x4b1a26;if(typeof _0x172107===_0x470914(0x20e)&&(_0x59db27[_0x470914(0x206)]||_0x172107[_0x470914(0x21c)]()))return _0x172107;throw kbError('kb_response_invalid',_0x470914(0x20f)+String(_0x2c571e)+_0x470914(0x208)+_0x2975a9+'.');}export function projectKb(_0x5a89d7){const _0x176e55=a104_0x4b1a26;if(!Number[_0x176e55(0x237)](_0x5a89d7['id'])||_0x5a89d7['id']<=0x0)throw kbError(_0x176e55(0x221),_0x176e55(0x1e3));if(!Number[_0x176e55(0x237)](_0x5a89d7[_0x176e55(0x20a)])||_0x5a89d7[_0x176e55(0x20a)]<0x0)throw kbError('kb_response_invalid',_0x176e55(0x20f)+_0x5a89d7['id']+'\x20response\x20contains\x20an\x20invalid\x20version.');if(_0x5a89d7[_0x176e55(0x1e7)]!==_0x176e55(0x1ff))throw kbError('kb_scope_mismatch',_0x176e55(0x20f)+_0x5a89d7['id']+_0x176e55(0x229));const _0x14cc75=requireRecordText(_0x5a89d7['appCode'],_0x176e55(0x239),_0x5a89d7['id']),_0x5b35e5=requireRecordText(_0x5a89d7[_0x176e55(0x217)],'title',_0x5a89d7['id']),_0x4a650e=inspectKbContent(requireRecordText(_0x5a89d7[_0x176e55(0x228)],_0x176e55(0x228),_0x5a89d7['id'],{'allowEmpty':!![]})),_0x2f374e=typeof _0x5a89d7[_0x176e55(0x1fc)]===_0x176e55(0x20e)||typeof _0x5a89d7['createTime']===_0x176e55(0x1fd)?_0x5a89d7[_0x176e55(0x1fc)]:undefined,_0x54a2fb=typeof _0x5a89d7['updateTime']===_0x176e55(0x20e)||typeof _0x5a89d7[_0x176e55(0x204)]==='number'?_0x5a89d7[_0x176e55(0x204)]:undefined,_0x208ff4=sha256(JSON[_0x176e55(0x230)]({'id':_0x5a89d7['id'],'scope':_0x5a89d7[_0x176e55(0x1e7)],'appCode':_0x14cc75,'title':_0x5b35e5,'version':_0x5a89d7[_0x176e55(0x20a)],'contentHash':_0x4a650e[_0x176e55(0x1e6)],'createTime':_0x2f374e,'updateTime':_0x54a2fb}));return{'id':_0x5a89d7['id'],'scope':'company','appCode':_0x14cc75,'title':_0x5b35e5,'version':_0x5a89d7[_0x176e55(0x20a)],'contentByteSize':_0x4a650e[_0x176e55(0x1f1)],'contentHash':_0x4a650e[_0x176e55(0x1e6)],'snapshotHash':_0x208ff4,..._0x2f374e!==undefined?{'createTime':_0x2f374e}:{},..._0x54a2fb!==undefined?{'updateTime':_0x54a2fb}:{}};}export function assertCompanyKnowledgeBase(_0x10223f,_0x4e5787,_0x1f0482){const _0x41c3ba=a104_0x4b1a26;if(_0x1f0482!==undefined&&_0x10223f['id']!==_0x1f0482)throw kbError(_0x41c3ba(0x221),_0x41c3ba(0x1ec)+_0x10223f['id']+_0x41c3ba(0x1e2)+_0x1f0482+_0x41c3ba(0x1f3));if(_0x10223f[_0x41c3ba(0x1e7)]!==_0x41c3ba(0x1ff)||_0x10223f[_0x41c3ba(0x239)]!==_0x4e5787)throw kbError(_0x41c3ba(0x220),'Knowledge\x20base\x20'+_0x10223f['id']+_0x41c3ba(0x22e)+_0x4e5787+'.');}export async function fetchAllCompanyKnowledgeBases(_0x51dcba,_0x4bfb7f){const _0x4ace5e=a104_0x4b1a26,_0x17c693=[],_0x2a7e84=new Set();let _0xfc79a=0x1,_0x3031fd=0x0,_0x1691d9;while(!![]){const _0x2e5d50=await listEnterpriseKnowledgeBases(_0x51dcba[_0x4ace5e(0x232)],{'currentPage':_0xfc79a,'pageSize':LIST_PAGE_SIZE,'appCode':_0x51dcba[_0x4ace5e(0x239)],..._0x4bfb7f}),_0x7afc3=_0x2e5d50['paging']?.[_0x4ace5e(0x1fa)];if(_0x2e5d50[_0x4ace5e(0x203)]?.[_0x4ace5e(0x1e5)]!==undefined&&_0x2e5d50[_0x4ace5e(0x203)][_0x4ace5e(0x1e5)]!==_0xfc79a)throw kbError(_0x4ace5e(0x1e9),_0x4ace5e(0x1f4)+_0x2e5d50[_0x4ace5e(0x203)][_0x4ace5e(0x1e5)]+_0x4ace5e(0x222)+_0xfc79a+'\x20was\x20requested.');if(_0x7afc3!==undefined){if(_0x1691d9!==undefined&&_0x7afc3!==_0x1691d9)throw kbError(_0x4ace5e(0x1e9),_0x4ace5e(0x20c)+_0x1691d9+_0x4ace5e(0x1f0)+_0x7afc3+_0x4ace5e(0x1f8),'Retry\x20the\x20read\x20after\x20concurrent\x20updates\x20have\x20settled.');_0x1691d9=_0x7afc3;}for(const _0x1afded of _0x2e5d50[_0x4ace5e(0x223)]){if(!Number['isSafeInteger'](_0x1afded['id'])||_0x2a7e84[_0x4ace5e(0x1fe)](_0x1afded['id']))throw kbError(_0x4ace5e(0x1e9),_0x4ace5e(0x1f2)+String(_0x1afded['id'])+'.');_0x2a7e84[_0x4ace5e(0x205)](_0x1afded['id']),_0x1afded[_0x4ace5e(0x1e7)]===_0x4ace5e(0x1ff)&&_0x1afded[_0x4ace5e(0x239)]===_0x51dcba[_0x4ace5e(0x239)]&&_0x17c693[_0x4ace5e(0x21a)](_0x1afded);}_0x3031fd+=_0x2e5d50[_0x4ace5e(0x223)][_0x4ace5e(0x1eb)];if(_0x7afc3!==undefined&&_0x3031fd>=_0x7afc3)break;if(_0x2e5d50[_0x4ace5e(0x223)][_0x4ace5e(0x1eb)]<LIST_PAGE_SIZE){if(_0x7afc3!==undefined&&_0x3031fd<_0x7afc3)throw kbError(_0x4ace5e(0x1e9),'Knowledge-base\x20list\x20stopped\x20at\x20'+_0x3031fd+_0x4ace5e(0x1f9)+_0x7afc3+'\x20records.');break;}_0xfc79a+=0x1;}return _0x17c693;}function a104_0x4332(_0x113fb0,_0x13f85f){_0x113fb0=_0x113fb0-0x1e2;const _0x44eb38=a104_0x44eb();let _0x433223=_0x44eb38[_0x113fb0];return _0x433223;}function a104_0x44eb(){const _0x4d6a74=['cause','outcome_unknown','Knowledge-base\x20content\x20file\x20is\x20not\x20valid\x20UTF-8:\x20','\x20does\x20not\x20belong\x20to\x20company\x20scope\x20for\x20app\x20','Company\x20knowledge\x20base\x20not\x20found:\x20','stringify','filter','cookie','Run\x20`rabetbase\x20kb\x20list\x20--format\x20compress`\x20to\x20inspect\x20the\x20resolved\x20app.','kb_','kb_not_found','The\x20','isSafeInteger','digest','appCode','num','412215ZMIkGf','\x20while\x20id\x20','Knowledge-base\x20response\x20contains\x20an\x20invalid\x20id.','bool','currentPage','contentHash','scope','Cannot\x20read\x20knowledge-base\x20content\x20file:\x20','kb_list_contract_invalid','Pass\x20--file\x20<knowledge.md>.','length','Knowledge-base\x20get-one\x20returned\x20id\x20','595755yLmJin','Run\x20the\x20same\x20command\x20with\x20--dry-run\x20first,\x20then\x20add\x20--yes\x20after\x20reviewing\x20the\x20plan.','17075ZWhZBH','\x20to\x20','byteSize','Knowledge-base\x20list\x20returned\x20an\x20invalid\x20or\x20repeated\x20id:\x20','\x20was\x20requested.','Knowledge-base\x20list\x20returned\x20page\x20','utf-8','306','\x20request\x20was\x20sent,\x20but\x20its\x20final\x20company\x20knowledge-base\x20state\x20could\x20not\x20be\x20verified.','\x20during\x20paging.','\x20of\x20','totalCount','Do\x20not\x20resubmit\x20automatically.\x20Resolve\x20the\x20app\x20again\x20and\x20inspect\x20the\x20target\x20state\x20manually.','createTime','number','has','company','kb_confirmation_required','sha256','900208fAzXFL','paging','updateTime','add','allowEmpty','byteLength','\x20response\x20is\x20missing\x20','defineProperty','version','kb_file_invalid','Knowledge-base\x20list\x20total\x20changed\x20from\x20','232jnmGbF','string','Knowledge\x20base\x20','verification_unavailable','from','665FPvBsr','yes','isFile','kb_file_unreadable','Knowledge-base\x20content\x20path\x20is\x20not\x20a\x20regular\x20file:\x20','title','sha256:','dry-run','push','Knowledge-base\x20content\x20file\x20is\x20blank:\x20','trim','kb_file_required','2408091oClNTe','12678WWJiZx','kb_scope_mismatch','kb_response_invalid','\x20while\x20page\x20','items','hex','message','Run\x20the\x20command\x20with\x20--dry-run\x20again\x20and\x20review\x20the\x20latest\x20version\x20before\x20retrying.','kb_content_invalid','content','\x20is\x20not\x20company-scoped.','4311008UOwAMj'];a104_0x44eb=function(){return _0x4d6a74;};return a104_0x44eb();}export function findExactCompanyKnowledgeBases(_0x5e426a,_0x172c1c,_0x17d571){const _0x1df2b5=a104_0x4b1a26;return _0x5e426a[_0x1df2b5(0x231)](_0x1b4bc3=>_0x1b4bc3[_0x1df2b5(0x1e7)]===_0x1df2b5(0x1ff)&&_0x1b4bc3[_0x1df2b5(0x239)]===_0x172c1c&&_0x1b4bc3[_0x1df2b5(0x217)]===_0x17d571);}export async function getKbOrNull(_0x428d0a,_0x35c8d9){const _0x3b1315=a104_0x4b1a26;try{const _0x365686=await getEnterpriseKnowledgeBase(_0x428d0a[_0x3b1315(0x232)],_0x35c8d9);return assertCompanyKnowledgeBase(_0x365686,_0x428d0a['appCode'],_0x35c8d9),_0x365686;}catch(_0x151c3c){if(getPlatformErrorCode(_0x151c3c)===DATA_NOT_EXIST_ERROR_CODE)return null;throw _0x151c3c;}}export async function requireKb(_0x3475ae,_0x124b9a){const _0x21e99d=a104_0x4b1a26,_0x2aed1f=await getKbOrNull(_0x3475ae,_0x124b9a);if(!_0x2aed1f)throw kbError(_0x21e99d(0x235),_0x21e99d(0x22f)+_0x124b9a,_0x21e99d(0x233));return _0x2aed1f;}export function assertExpectedKbVersion(_0x207c11,_0x3e82e3){const _0x578c27=a104_0x4b1a26;if(_0x3e82e3===undefined||_0x207c11[_0x578c27(0x20a)]===_0x3e82e3)return;throw kbError('kb_state_drift',_0x578c27(0x20f)+_0x207c11['id']+'\x20version\x20changed:\x20expected\x20'+_0x3e82e3+',\x20current\x20'+_0x207c11[_0x578c27(0x20a)]+'.',_0x578c27(0x226));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a105_0x1e58(_0x166d1f,_0x346761){_0x166d1f=_0x166d1f-0x115;const _0x5830e6=a105_0x5830();let _0x1e5802=_0x5830e6[_0x166d1f];return _0x1e5802;}const a105_0x2ae079=a105_0x1e58;(function(_0x568ec7,_0x1822d8){const _0x15d57d=a105_0x1e58,_0x444022=_0x568ec7();while(!![]){try{const _0x24633f=-parseInt(_0x15d57d(0x11b))/0x1+parseInt(_0x15d57d(0x134))/0x2+parseInt(_0x15d57d(0x131))/0x3+-parseInt(_0x15d57d(0x144))/0x4*(parseInt(_0x15d57d(0x13a))/0x5)+parseInt(_0x15d57d(0x132))/0x6+parseInt(_0x15d57d(0x122))/0x7*(-parseInt(_0x15d57d(0x11c))/0x8)+parseInt(_0x15d57d(0x12c))/0x9*(parseInt(_0x15d57d(0x12e))/0xa);if(_0x24633f===_0x1822d8)break;else _0x444022['push'](_0x444022['shift']());}catch(_0xff472){_0x444022['push'](_0x444022['shift']());}}}(a105_0x5830,0xb1a3c));import{isPlatformTransportFailure,updateEnterpriseKnowledgeBase}from'../../core/api-client.js';import{asDryRunResult}from'../../commands/common/dry-run.js';import{assertCompanyKnowledgeBase,assertExpectedKbVersion,inspectKbContent,kbError,projectKb,readKbFile,readKbId,requireKb,requireKbExplicitYes,verifyKbMutationReadback}from'../../commands/kb/shared.js';const UPDATE_PATH=a105_0x2ae079(0x127),NON_ATOMIC_WARNING=a105_0x2ae079(0x11e);function readUpdatePatch(_0x47ba1b){const _0x2d3a9a=a105_0x2ae079,_0xf2e8b9=readKbId(_0x47ba1b),_0x634596=_0x47ba1b['flag']('title'),_0x4ccb3f=_0x47ba1b['flag'](_0x2d3a9a(0x143)),_0x2ba146=_0x47ba1b[_0x2d3a9a(0x126)]('expected-version'),_0x487c80=_0x634596===undefined?undefined:String(_0x634596)[_0x2d3a9a(0x123)]();if(_0x634596!==undefined&&!_0x487c80)throw kbError(_0x2d3a9a(0x118),_0x2d3a9a(0x120));const _0x56ddfb=_0x4ccb3f===undefined?undefined:String(_0x4ccb3f)[_0x2d3a9a(0x123)]();if(_0x4ccb3f!==undefined&&!_0x56ddfb)throw kbError(_0x2d3a9a(0x11d),_0x2d3a9a(0x12d));if(_0x487c80===undefined&&_0x56ddfb===undefined)throw kbError(_0x2d3a9a(0x12f),_0x2d3a9a(0x146),'Pass\x20at\x20least\x20one\x20of\x20--title\x20or\x20--file.');let _0x133650;if(_0x2ba146!==undefined){_0x133650=Number(_0x2ba146);if(!Number[_0x2d3a9a(0x116)](_0x133650)||_0x133650<0x0)throw kbError(_0x2d3a9a(0x130),_0x2d3a9a(0x11f));}return{'id':_0xf2e8b9,'title':_0x487c80,'file':_0x56ddfb,'expectedVersion':_0x133650};}function a105_0x5830(){const _0x45233a=['Nothing\x20to\x20update.','contentHash','kb_update_outcome_unknown','Inspect\x20it\x20with\x20`rabetbase\x20kb\x20detail\x20--id\x20','patch','Replacement\x20UTF-8\x20text\x20or\x20Markdown\x20content\x20file','replacement','isSafeInteger','version','kb_title_invalid','before','expectedVersion','689198qbeCiC','616744IdraNn','kb_file_required','--expected-version\x20is\x20a\x20non-atomic\x20read-before-write\x20assertion;\x20the\x20server\x20update\x20contract\x20has\x20no\x20version\x20predicate.','--expected-version\x20must\x20be\x20a\x20non-negative\x20safe\x20integer.','--title\x20cannot\x20be\x20empty.','push','70trJlqC','trim','New\x20knowledge-base\x20title','Update\x20a\x20company\x20knowledge\x20base\x20with\x20preflight\x20drift\x20protection','flag','/admin/knowledge-base/update','planned','expected-version','Updated\x20company\x20knowledge\x20base\x20','company','468pxJijH','--file\x20cannot\x20be\x20empty.','54590ACHVjG','kb_update_empty','kb_expected_version_invalid','4318269bWoDDX','7118520Edmlbt','\x20does\x20not\x20prove\x20the\x20requested\x20update\x20state.','185608PuIcRD','content','Non-atomic\x20preflight\x20assertion\x20for\x20the\x20current\x20version','update','Update\x20response\x20was\x20unavailable;\x20verified\x20applicable\x20postconditions\x20by\x20exact\x20ID\x20without\x20resubmitting.','\x20--format\x20compress','2875GpfSjP','cookie','number','Company\x20knowledge-base\x20id','POST','rabetbase\x20kb\x20detail\x20--id\x20','beforeRecord','title','\x20--format\x20compress`;\x20do\x20not\x20resubmit\x20automatically.','file','5668ulWTkZ','appCode'];a105_0x5830=function(){return _0x45233a;};return a105_0x5830();}async function prepareUpdate(_0x32c286){const _0x4ae602=a105_0x2ae079,_0x107c2e=readUpdatePatch(_0x32c286),_0xc40aeb=await requireKb(_0x32c286,_0x107c2e['id']);assertExpectedKbVersion(_0xc40aeb,_0x107c2e[_0x4ae602(0x11a)]);const _0x9291e6=_0x107c2e[_0x4ae602(0x143)]?await readKbFile(_0x107c2e[_0x4ae602(0x143)]):undefined,_0x319af1=projectKb(_0xc40aeb),_0x182dc6=projectKb({..._0xc40aeb,..._0x107c2e[_0x4ae602(0x141)]!==undefined?{'title':_0x107c2e[_0x4ae602(0x141)]}:{},..._0x9291e6?{'content':_0x9291e6[_0x4ae602(0x135)]}:{}});return{'patch':_0x107c2e,'beforeRecord':_0xc40aeb,'before':_0x319af1,'planned':_0x182dc6,'replacement':_0x9291e6};}export const kbUpdate={'service':'kb','command':a105_0x2ae079(0x137),'description':a105_0x2ae079(0x125),'risk':'high-risk-write','requiresAppCode':!![],'structuredErrors':!![],'flags':[{'name':'id','type':a105_0x2ae079(0x13c),'required':!![],'description':a105_0x2ae079(0x13d)},{'name':a105_0x2ae079(0x141),'type':'string','required':![],'description':a105_0x2ae079(0x124)},{'name':'file','type':'string','required':![],'description':a105_0x2ae079(0x14b)},{'name':a105_0x2ae079(0x129),'type':'number','required':![],'description':a105_0x2ae079(0x136)}],async 'validate'(_0x304138){readUpdatePatch(_0x304138),requireKbExplicitYes(_0x304138);},async 'dryRun'(_0x5f125d){const _0x5ec235=a105_0x2ae079,_0x5b15e2=await prepareUpdate(_0x5f125d),_0x1662b5=_0x5b15e2[_0x5ec235(0x14a)]['expectedVersion']!==undefined?[NON_ATOMIC_WARNING]:[];return asDryRunResult({'operation':_0x5ec235(0x137),'selector':{'id':_0x5b15e2['before']['id'],'scope':'company','appCode':_0x5b15e2[_0x5ec235(0x119)][_0x5ec235(0x145)]},'before':_0x5b15e2[_0x5ec235(0x119)],'after':_0x5b15e2[_0x5ec235(0x128)],'dryRun':!![],'backend':{'method':_0x5ec235(0x13e),'path':UPDATE_PATH},'warnings':_0x1662b5,'verification':{'expectedVersion':_0x5b15e2['patch'][_0x5ec235(0x11a)]??null,'atomicCompareAndSet':![],'plannedSnapshotHash':_0x5b15e2[_0x5ec235(0x119)]['snapshotHash'],'lookupCommand':_0x5ec235(0x13f)+_0x5b15e2[_0x5ec235(0x119)]['id']+'\x20--format\x20compress'}},{'method':'POST','url':UPDATE_PATH});},async 'execute'(_0x3f1e65){const _0x4c2a0a=a105_0x2ae079;requireKbExplicitYes(_0x3f1e65);const _0x3a207b=await prepareUpdate(_0x3f1e65),_0x3d43f7={'id':_0x3a207b[_0x4c2a0a(0x14a)]['id'],..._0x3a207b[_0x4c2a0a(0x14a)][_0x4c2a0a(0x141)]!==undefined?{'title':_0x3a207b[_0x4c2a0a(0x14a)][_0x4c2a0a(0x141)]}:{},..._0x3a207b['replacement']?{'content':_0x3a207b['replacement'][_0x4c2a0a(0x135)]}:{}};let _0x4f10e0=![];try{const _0x4ac810=await updateEnterpriseKnowledgeBase(_0x3f1e65[_0x4c2a0a(0x13b)],_0x3d43f7);assertCompanyKnowledgeBase(_0x4ac810,_0x3f1e65[_0x4c2a0a(0x145)],_0x3a207b[_0x4c2a0a(0x14a)]['id']);}catch(_0x4e487a){if(!isPlatformTransportFailure(_0x4e487a))throw _0x4e487a;_0x4f10e0=!![];}const _0x3588ae=await verifyKbMutationReadback(_0x4c2a0a(0x137),_0x4f10e0,()=>requireKb(_0x3f1e65,_0x3a207b[_0x4c2a0a(0x14a)]['id'])),_0x1c3c73=projectKb(_0x3588ae),_0x570c7e=_0x3a207b[_0x4c2a0a(0x14a)][_0x4c2a0a(0x141)]===undefined||_0x3588ae[_0x4c2a0a(0x141)]===_0x3a207b[_0x4c2a0a(0x14a)]['title'],_0x4c3f90=!_0x3a207b[_0x4c2a0a(0x115)]||inspectKbContent(_0x3588ae[_0x4c2a0a(0x135)])[_0x4c2a0a(0x147)]===_0x3a207b[_0x4c2a0a(0x115)][_0x4c2a0a(0x147)],_0x41b186=!_0x3a207b['replacement']||_0x3588ae[_0x4c2a0a(0x117)]>_0x3a207b[_0x4c2a0a(0x140)][_0x4c2a0a(0x117)],_0x21331f=!_0x4f10e0||_0x3a207b[_0x4c2a0a(0x115)]!==undefined||_0x3a207b[_0x4c2a0a(0x14a)]['title']===undefined||_0x3a207b[_0x4c2a0a(0x140)]['title']!==_0x3a207b[_0x4c2a0a(0x14a)][_0x4c2a0a(0x141)];if(!_0x570c7e||!_0x4c3f90||!_0x41b186||!_0x21331f)throw kbError(_0x4f10e0?_0x4c2a0a(0x148):'kb_verification_failed','Company\x20knowledge\x20base\x20'+_0x3a207b['patch']['id']+_0x4c2a0a(0x133),_0x4c2a0a(0x149)+_0x3a207b[_0x4c2a0a(0x14a)]['id']+_0x4c2a0a(0x142));const _0x14c229=[];return _0x3a207b[_0x4c2a0a(0x14a)][_0x4c2a0a(0x11a)]!==undefined&&_0x14c229[_0x4c2a0a(0x121)](NON_ATOMIC_WARNING),_0x4f10e0&&_0x14c229[_0x4c2a0a(0x121)](_0x4c2a0a(0x138)),{'ok':!![],'data':{'operation':'update','selector':{'id':_0x1c3c73['id'],'scope':_0x4c2a0a(0x12b),'appCode':_0x1c3c73[_0x4c2a0a(0x145)]},'before':_0x3a207b[_0x4c2a0a(0x119)],'after':_0x1c3c73,'dryRun':![],'backend':{'method':_0x4c2a0a(0x13e),'path':UPDATE_PATH},'warnings':_0x14c229,'verification':{'status':'verified','recoveredAfterUnknownResponse':_0x4f10e0,'expectedVersion':_0x3a207b[_0x4c2a0a(0x14a)][_0x4c2a0a(0x11a)]??null,'atomicCompareAndSet':![],'lookupCommand':_0x4c2a0a(0x13f)+_0x1c3c73['id']+_0x4c2a0a(0x139)}},'message':_0x4c2a0a(0x12a)+_0x1c3c73['id']};}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a106_0x4e2f7a=a106_0x1f81;(function(_0x2797a2,_0x24424f){const _0x1dad34=a106_0x1f81,_0x456cda=_0x2797a2();while(!![]){try{const _0x3c180e=parseInt(_0x1dad34(0xe2))/0x1+parseInt(_0x1dad34(0xe9))/0x2+-parseInt(_0x1dad34(0xe4))/0x3*(-parseInt(_0x1dad34(0xd9))/0x4)+-parseInt(_0x1dad34(0xdd))/0x5*(parseInt(_0x1dad34(0xcc))/0x6)+parseInt(_0x1dad34(0xe5))/0x7+parseInt(_0x1dad34(0xd5))/0x8+-parseInt(_0x1dad34(0xdb))/0x9;if(_0x3c180e===_0x24424f)break;else _0x456cda['push'](_0x456cda['shift']());}catch(_0x2cf9e){_0x456cda['push'](_0x456cda['shift']());}}}(a106_0x1e01,0x44902));import{logger}from'../../utils/logger.js';function printLogs(_0x395124){const _0x47bbb7=a106_0x1f81;if(_0x395124['length']===0x0){console[_0x47bbb7(0xca)](_0x47bbb7(0xe8));return;}console[_0x47bbb7(0xca)](_0x47bbb7(0xe7)),_0x395124[_0x47bbb7(0xe1)]((_0x341aa0,_0x2a3533)=>{const _0x12a205=_0x47bbb7,_0x35812e=new Date(_0x341aa0['timestamp'])[_0x12a205(0xda)](_0x12a205(0xcb)),_0x294f81=_0x341aa0[_0x12a205(0xe6)]==='success'?'√':_0x341aa0[_0x12a205(0xe6)]===_0x12a205(0xd6)?'×':_0x341aa0[_0x12a205(0xe6)]==='warn'?'!':'i';console[_0x12a205(0xca)](_0x2a3533+0x1+'.\x20'+_0x294f81+'\x20['+_0x341aa0[_0x12a205(0xd8)]+']\x20'+_0x341aa0[_0x12a205(0xde)]),console[_0x12a205(0xca)](_0x12a205(0xcd)+_0x35812e),_0x341aa0['duration']&&console['log']('\x20\x20\x20Duration:\x20'+_0x341aa0[_0x12a205(0xe3)]+'ms'),_0x341aa0[_0x12a205(0xd7)]&&Object[_0x12a205(0xe0)](_0x341aa0['details'])[_0x12a205(0xd4)]>0x0&&console[_0x12a205(0xca)](_0x12a205(0xd1)+JSON[_0x12a205(0xdf)](_0x341aa0[_0x12a205(0xd7)],null,0x2)),console[_0x12a205(0xca)]('');});}function a106_0x1f81(_0x560cd2,_0x43f708){_0x560cd2=_0x560cd2-0xc9;const _0x1e0132=a106_0x1e01();let _0x1f81b9=_0x1e0132[_0x560cd2];return _0x1f81b9;}export const logsDefinitions=[{'service':a106_0x4e2f7a(0xdc),'command':a106_0x4e2f7a(0xce),'description':a106_0x4e2f7a(0xd2),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x4d6a93){return printLogs(logger['readLogs']()),{'ok':!![]};}},{'service':a106_0x4e2f7a(0xdc),'command':a106_0x4e2f7a(0xd0),'description':a106_0x4e2f7a(0xcf),'risk':a106_0x4e2f7a(0xd3),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x58e57b){const _0x145ec4=a106_0x4e2f7a;return logger['clearLogs'](),console['log'](_0x145ec4(0xc9)),{'ok':!![]};}}];function a106_0x1e01(){const _0x3075b5=['Clear\x20command\x20history\x20logs','clear','\x20\x20\x20Details:\x20','View\x20command\x20history\x20logs','write','length','2018264pDiKLX','error','details','command','32ZYaLYL','toLocaleString','2290311UTKyrE','logs','565VXuVBD','message','stringify','keys','forEach','363341VWGzoy','duration','45717VxqDkK','922936zzTwIu','level','*\x20Lovrabet\x20CLI\x20logs:\x0a','*\x20No\x20logs\x20found','373944tvWPgU','*\x20Logs\x20cleared','log','en-US','27666mdzYMb','\x20\x20\x20Time:\x20','show'];a106_0x1e01=function(){return _0x3075b5;};return a106_0x1e01();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a107_0x3985b2=a107_0x3e81;(function(_0x39e591,_0x23b643){const _0x2da4f7=a107_0x3e81,_0x966485=_0x39e591();while(!![]){try{const _0x5e3e36=parseInt(_0x2da4f7(0x174))/0x1*(parseInt(_0x2da4f7(0x15f))/0x2)+parseInt(_0x2da4f7(0x19d))/0x3+parseInt(_0x2da4f7(0x18b))/0x4*(-parseInt(_0x2da4f7(0x19b))/0x5)+parseInt(_0x2da4f7(0x167))/0x6+-parseInt(_0x2da4f7(0x184))/0x7*(parseInt(_0x2da4f7(0x180))/0x8)+-parseInt(_0x2da4f7(0x175))/0x9+-parseInt(_0x2da4f7(0x162))/0xa;if(_0x5e3e36===_0x23b643)break;else _0x966485['push'](_0x966485['shift']());}catch(_0x563f60){_0x966485['push'](_0x966485['shift']());}}}(a107_0x467c,0x1ddac));import a107_0xc5405c from'chalk';import{filterMenusWithResources,fetchOnlineMenuList}from'../../commands/menu/shared/logic.js';import{renderUpdateSummary}from'../../commands/menu/shared/compare-table.js';import{askJsUrl,askCssUrl,askConfirm,startSpinner,stopSpinner,isInteractive,requireInteractive}from'../../commands/menu/shared/inquirer.js';import{CliErrors}from'../../errors.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';import{runMenuUpdateCore}from'../../commands/menu/shared/update-core.js';import{selectMenusForUpdate}from'../../commands/menu/shared/update-core.js';import{isInProject}from'../../context.js';export const menuAssetUpdate={'service':'menu','command':a107_0x3985b2(0x15c),'description':a107_0x3985b2(0x16b),'risk':a107_0x3985b2(0x160),'flags':[{'name':a107_0x3985b2(0x166),'type':'string','description':a107_0x3985b2(0x18c)+a107_0x3985b2(0x1a1)},{'name':'mode','type':'string','description':'Resource\x20update\x20mode:\x20replace\x20rewrites\x20resources\x20from\x20supplied\x20URLs;\x20'+'patch\x20replaces\x20a\x20supplied\x20type\x20only\x20when\x20the\x20existing\x20target\x20is\x20unambiguous','enum':['replace',a107_0x3985b2(0x16c)],'default':a107_0x3985b2(0x16c)},{'name':a107_0x3985b2(0x16d),'type':a107_0x3985b2(0x179),'description':a107_0x3985b2(0x16f)},{'name':'menu-ids','type':a107_0x3985b2(0x19f),'description':a107_0x3985b2(0x17a)},{'name':a107_0x3985b2(0x17c),'type':'string','description':a107_0x3985b2(0x177)},{'name':a107_0x3985b2(0x18e),'type':a107_0x3985b2(0x179),'description':a107_0x3985b2(0x188)},{'name':a107_0x3985b2(0x163),'type':a107_0x3985b2(0x19f),'enum':['import',a107_0x3985b2(0x172),'fetch'],'description':a107_0x3985b2(0x1ac)}],async 'dryRun'(_0x3ef557){const _0x570824=a107_0x3985b2;ensureRunnableContext(_0x3ef557[_0x570824(0x1a6)],_0x3ef557[_0x570824(0x161)]);const _0x473adb=await runMenuUpdateCore(_0x3ef557[_0x570824(0x181)],_0x3ef557[_0x570824(0x190)],_0x3ef557[_0x570824(0x18d)](_0x570824(0x166)),{'mode':parseMode(_0x3ef557[_0x570824(0x18d)]('mode')),'dryRun':!![],'force':_0x3ef557[_0x570824(0x191)]('force'),'selection':parseSelection(_0x3ef557),'loadScriptMode':parseLoadScriptMode(_0x3ef557[_0x570824(0x18d)](_0x570824(0x163)))});return{'method':'POST','url':_0x570824(0x185),'body':_0x473adb,'description':_0x473adb[_0x570824(0x19c)]?'No\x20menus\x20with\x20existing\x20resources\x20would\x20be\x20updated.':'Would\x20update\x20'+(_0x473adb[_0x570824(0x18a)]?.[_0x570824(0x16a)]??0x0)+_0x570824(0x178)};},async 'execute'(_0x4ed46f){const _0xba3caf=a107_0x3985b2;ensureRunnableContext(_0x4ed46f[_0xba3caf(0x1a6)],_0x4ed46f[_0xba3caf(0x161)]);const _0x49ae5f=_0x4ed46f[_0xba3caf(0x1a8)](_0xba3caf(0x1ae)),_0x4630ae=_0x4ed46f['str'](_0xba3caf(0x166)),_0xe492fd=parseMode(_0x4ed46f[_0xba3caf(0x18d)](_0xba3caf(0x1a7))),_0x1909a2=_0x4ed46f[_0xba3caf(0x191)]('force'),_0x380a81=parseLoadScriptMode(_0x4ed46f[_0xba3caf(0x18d)](_0xba3caf(0x163))),_0x32d70f=parseParams(_0x4630ae),_0x48b2e7=!!(_0x32d70f[_0xba3caf(0x196)]||_0x32d70f[_0xba3caf(0x15a)]);if(_0x49ae5f||_0x48b2e7&&!isInteractive()){const _0x1cc9b3=await runMenuUpdateCore(_0x4ed46f[_0xba3caf(0x181)],_0x4ed46f[_0xba3caf(0x190)],_0x4630ae,{'mode':_0xe492fd,'force':_0x1909a2,'selection':parseSelection(_0x4ed46f),'loadScriptMode':_0x380a81});return _0x1cc9b3['skipped']?writeCliSideChannelLine('!\x20No\x20menus\x20with\x20existing\x20resources\x20found'):(writeCliSideChannelLine(_0xba3caf(0x171)+_0x1cc9b3[_0xba3caf(0x170)]+_0xba3caf(0x187)),_0x1cc9b3[_0xba3caf(0x1ab)]>0x0&&writeCliSideChannelLine('!\x20'+_0x1cc9b3[_0xba3caf(0x1ab)]+'\x20menu(s)\x20failed')),{'ok':_0x1cc9b3[_0xba3caf(0x1ab)]===0x0,'data':_0x1cc9b3,'message':_0x1cc9b3['skipped']?'Menu\x20asset\x20update\x20skipped':_0xba3caf(0x1a2)+_0x1cc9b3[_0xba3caf(0x170)]+_0xba3caf(0x199)+_0x1cc9b3[_0xba3caf(0x1ab)]+'\x20failed.'};}requireInteractive();const _0x3fe4c4=startSpinner('Fetching\x20online\x20menu\x20list...');let _0x2d86ad;try{_0x2d86ad=await fetchOnlineMenuList(_0x4ed46f[_0xba3caf(0x181)],_0x4ed46f[_0xba3caf(0x190)]),stopSpinner(_0x3fe4c4,_0xba3caf(0x173),!![]);}catch(_0x581a29){stopSpinner(_0x3fe4c4,_0xba3caf(0x1a0),![]);throw CliErrors[_0xba3caf(0x192)](_0x581a29 instanceof Error?_0x581a29[_0xba3caf(0x193)]:_0xba3caf(0x1a0));}const _0x1f8e52=filterMenusWithResources(_0x2d86ad),_0x2250bb=parseSelection(_0x4ed46f,![]),_0x16ae34=_0x2250bb?selectMenusForUpdate(_0x1f8e52,_0x2250bb):_0x1f8e52;if(_0x16ae34[_0xba3caf(0x16a)]===0x0)return writeCliSideChannelLine(a107_0xc5405c[_0xba3caf(0x169)]('\x20\x20!\x20No\x20menus\x20with\x20existing\x20resources\x20found')),{'ok':!![]};writeCliSideChannelLine(''),writeCliSideChannelLine(a107_0xc5405c[_0xba3caf(0x16e)](_0xba3caf(0x17d)+_0x16ae34[_0xba3caf(0x16a)]+_0xba3caf(0x183))),writeCliSideChannelLine(renderUpdateSummary(_0x16ae34[_0xba3caf(0x164)](_0x2c657e=>_0x2c657e[_0xba3caf(0x1ad)]),[_0x32d70f[_0xba3caf(0x196)],_0x32d70f[_0xba3caf(0x15a)]])),writeCliSideChannelLine('');let _0x965f48=_0x32d70f[_0xba3caf(0x196)],_0x422661=_0x32d70f[_0xba3caf(0x15a)];!_0x965f48&&(_0x965f48=await askJsUrl());!_0x422661&&(_0x422661=await askCssUrl());const _0x4abdfd=await askConfirm('\x20\x20Update\x20'+_0x16ae34[_0xba3caf(0x16a)]+'\x20menu(s)\x20with\x20JS:\x20'+_0x965f48+_0xba3caf(0x194)+_0x422661+'?');if(!_0x4abdfd)return writeCliSideChannelLine(a107_0xc5405c[_0xba3caf(0x17f)](_0xba3caf(0x17e))),{'ok':!![]};const _0x3d6bb4=startSpinner(_0xba3caf(0x182)+_0x16ae34[_0xba3caf(0x16a)]+_0xba3caf(0x1aa));try{const _0x5c2ec9=await runMenuUpdateCore(_0x4ed46f['appCode'],_0x4ed46f[_0xba3caf(0x190)],JSON[_0xba3caf(0x197)]({'jsUrl':_0x965f48,'cssUrl':_0x422661}),{'mode':_0xe492fd,'force':_0x1909a2,'selection':{'all':![],'menuIds':_0x16ae34[_0xba3caf(0x164)](_0x15940f=>_0x15940f['id']),'paths':[]},'loadScriptMode':_0x380a81});return stopSpinner(_0x3d6bb4,_0xba3caf(0x15d)+_0x5c2ec9[_0xba3caf(0x170)]+_0xba3caf(0x18f),_0x5c2ec9[_0xba3caf(0x1ab)]===0x0),{'ok':_0x5c2ec9['failed']===0x0,'data':_0x5c2ec9,'message':_0x5c2ec9[_0xba3caf(0x1ab)]>0x0?_0xba3caf(0x1a2)+_0x5c2ec9[_0xba3caf(0x170)]+_0xba3caf(0x199)+_0x5c2ec9[_0xba3caf(0x1ab)]+'\x20failed.':_0xba3caf(0x1a2)+_0x5c2ec9[_0xba3caf(0x170)]+'\x20updated.'};}catch(_0x2f3cf1){stopSpinner(_0x3d6bb4,'Menu\x20asset\x20update\x20failed',![]);throw CliErrors[_0xba3caf(0x192)](_0x2f3cf1 instanceof Error?_0x2f3cf1['message']:_0xba3caf(0x19e));}}};function ensureRunnableContext(_0x1d447d,_0x1d7f49){const _0x14ec34=a107_0x3985b2,_0x25feeb=_0x1d447d[_0x14ec34(0x198)]?String(_0x1d447d['appcode'])[_0x14ec34(0x1a4)]():'';if(!isInProject()&&!_0x1d7f49&&!_0x25feeb)throw CliErrors[_0x14ec34(0x192)](_0x14ec34(0x195)+'Run\x20inside\x20a\x20directory\x20with\x20.rabetbase.json,\x20or\x20pass\x20--appcode\x20<code>.');}function parseMode(_0x361ae9){const _0x9f0a87=a107_0x3985b2;if(!_0x361ae9)return _0x9f0a87(0x16c);if(_0x361ae9===_0x9f0a87(0x1a9)||_0x361ae9==='patch')return _0x361ae9;throw CliErrors['validation'](_0x9f0a87(0x176));}function parseSelection(_0x14c078,_0x58cfd4=!![]){const _0x5bb571=a107_0x3985b2,_0x37e77f=_0x14c078[_0x5bb571(0x191)](_0x5bb571(0x18e)),_0x3c1272=parseMenuIds(_0x14c078[_0x5bb571(0x18d)](_0x5bb571(0x168))),_0x23cb27=parseCsv(_0x14c078[_0x5bb571(0x18d)]('paths')),_0x47c973=_0x3c1272[_0x5bb571(0x16a)]>0x0||_0x23cb27['length']>0x0;if(_0x37e77f&&_0x47c973)throw CliErrors['validation'](_0x5bb571(0x15e));if(!_0x37e77f&&!_0x47c973){if(!_0x58cfd4)return undefined;throw CliErrors['validation']('menu\x20asset-update\x20requires\x20an\x20explicit\x20target:\x20pass\x20--all,\x20--menu-ids,\x20or\x20--paths.');}return{'all':_0x37e77f,'menuIds':_0x3c1272,'paths':_0x23cb27};}function a107_0x3e81(_0x2babda,_0x1017c7){_0x2babda=_0x2babda-0x15a;const _0x467c10=a107_0x467c();let _0x3e8185=_0x467c10[_0x2babda];return _0x3e8185;}function parseMenuIds(_0x31106b){const _0x3df16c=a107_0x3985b2,_0x1c0f27=parseCsv(_0x31106b),_0x976b1e=_0x1c0f27[_0x3df16c(0x164)](Number);if(_0x976b1e[_0x3df16c(0x189)](_0x28eb63=>!Number[_0x3df16c(0x15b)](_0x28eb63)||_0x28eb63<=0x0))throw CliErrors[_0x3df16c(0x192)](_0x3df16c(0x19a));return[...new Set(_0x976b1e)];}function parseCsv(_0x47845f){const _0x18f041=a107_0x3985b2;return[...new Set(_0x47845f['split'](',')[_0x18f041(0x164)](_0x134da9=>_0x134da9[_0x18f041(0x1a4)]())[_0x18f041(0x17b)](Boolean))];}function parseLoadScriptMode(_0x5f5ceb){const _0x5c66fc=a107_0x3985b2;if(!_0x5f5ceb)return undefined;if(_0x5f5ceb==='import'||_0x5f5ceb==='script'||_0x5f5ceb===_0x5c66fc(0x1a3))return _0x5f5ceb;throw CliErrors[_0x5c66fc(0x192)](_0x5c66fc(0x1a5));}function parseParams(_0x2286f5){const _0x212df2=a107_0x3985b2;if(!_0x2286f5)return{};try{const _0x4d5c07=JSON[_0x212df2(0x186)](_0x2286f5);if(typeof _0x4d5c07!==_0x212df2(0x165)||_0x4d5c07===null||Array['isArray'](_0x4d5c07))return{};return{'jsUrl':typeof _0x4d5c07[_0x212df2(0x196)]===_0x212df2(0x19f)?_0x4d5c07[_0x212df2(0x196)][_0x212df2(0x1a4)]():undefined,'cssUrl':typeof _0x4d5c07[_0x212df2(0x15a)]===_0x212df2(0x19f)?_0x4d5c07[_0x212df2(0x15a)][_0x212df2(0x1a4)]():undefined};}catch{return{};}}function a107_0x467c(){const _0xf05f98=['1082205ZiXjgY','Invalid\x20--mode.\x20Allowed\x20values:\x20replace,\x20patch','Exact\x20comma-separated\x20menu\x20paths\x20to\x20update','\x20menu\x20resource\x20set(s).','boolean','Exact\x20comma-separated\x20menu\x20IDs\x20to\x20update','filter','paths','\x20\x20Found\x20','\x20\x20Cancelled.','gray','6728EDFMmq','appCode','Updating\x20','\x20menu(s)\x20with\x20existing\x20resources','651UKMPDn','/smartapi/menu/update','parse','\x20menu(s)\x20updated','Explicitly\x20update\x20every\x20menu\x20that\x20has\x20resources','some','diffs','76LDNJyV','Pre-fill\x20JS/CSS\x20URLs\x20to\x20update.\x20','str','all','\x20menu(s)','cookie','bool','validation','message','\x20and\x20CSS:\x20','menu\x20asset-update\x20requires\x20a\x20project\x20context\x20or\x20explicit\x20--appcode.\x20','jsUrl','stringify','appcode','\x20updated,\x20','--menu-ids\x20must\x20contain\x20positive\x20safe\x20integers.','1955LQNHCT','skipped','76839YnkNxX','Menu\x20asset\x20update\x20failed','string','Failed\x20to\x20fetch\x20online\x20menu\x20list','JSON:\x20{\x22jsUrl\x22:\x22https://...js\x22,\x22cssUrl\x22:\x22https://...css\x22}','Menu\x20asset\x20update\x20completed:\x20','fetch','trim','Invalid\x20--load-mode.\x20Allowed\x20values:\x20import,\x20script,\x20fetch','rawFlags','mode','flag','replace','\x20menu(s)...','failed','Explicitly\x20change\x20the\x20microfrontend\x20resource\x20loading\x20mode','label','yes','cssUrl','isSafeInteger','asset-update','Updated\x20','--all\x20cannot\x20be\x20combined\x20with\x20--menu-ids\x20or\x20--paths.','2cdNggD','high-risk-write','selectedAppName','843500mzwCIp','load-mode','map','object','params','1024098icRRYQ','menu-ids','yellow','length','Update\x20CDN\x20asset\x20URLs\x20for\x20selected\x20online\x20menus\x20with\x20existing\x20resources','patch','force','cyan','Allow\x20replace\x20mode\x20to\x20remove\x20existing\x20JS\x20resources','updated','✓\x20Menu\x20asset\x20update\x20completed:\x20','script','Online\x20menu\x20list\x20fetched','216225FiIodz'];a107_0x467c=function(){return _0xf05f98;};return a107_0x467c();}
|
|
1
|
+
const a107_0xd31b9e=a107_0xe87f;(function(_0x26603e,_0x58d168){const _0x32b8e7=a107_0xe87f,_0xee62e=_0x26603e();while(!![]){try{const _0x583419=-parseInt(_0x32b8e7(0x1a5))/0x1+parseInt(_0x32b8e7(0x1c2))/0x2+parseInt(_0x32b8e7(0x1bc))/0x3*(-parseInt(_0x32b8e7(0x1b7))/0x4)+parseInt(_0x32b8e7(0x1f3))/0x5*(-parseInt(_0x32b8e7(0x1a7))/0x6)+parseInt(_0x32b8e7(0x19e))/0x7*(parseInt(_0x32b8e7(0x1ef))/0x8)+-parseInt(_0x32b8e7(0x1eb))/0x9+parseInt(_0x32b8e7(0x1d4))/0xa;if(_0x583419===_0x58d168)break;else _0xee62e['push'](_0xee62e['shift']());}catch(_0x580565){_0xee62e['push'](_0xee62e['shift']());}}}(a107_0xf930,0x3a9cd));import a107_0x5bf979 from'chalk';function a107_0xe87f(_0x2d3184,_0x301e83){_0x2d3184=_0x2d3184-0x19d;const _0xf930c3=a107_0xf930();let _0xe87fbd=_0xf930c3[_0x2d3184];return _0xe87fbd;}import{filterMenusWithResources,fetchOnlineMenuList}from'../../commands/menu/shared/logic.js';import{renderUpdateSummary}from'../../commands/menu/shared/compare-table.js';import{askJsUrl,askCssUrl,askConfirm,startSpinner,stopSpinner,isInteractive,requireInteractive}from'../../commands/menu/shared/inquirer.js';import{CliErrors}from'../../errors.js';import{writeCliSideChannelLine}from'../../utils/write-cli-side-channel.js';import{runMenuUpdateCore}from'../../commands/menu/shared/update-core.js';import{selectMenusForUpdate}from'../../commands/menu/shared/update-core.js';import{isInProject}from'../../context.js';export const menuAssetUpdate={'service':'menu','command':'asset-update','description':a107_0xd31b9e(0x1a2),'risk':a107_0xd31b9e(0x1bf),'flags':[{'name':a107_0xd31b9e(0x1ee),'type':'string','description':'Pre-fill\x20JS/CSS\x20URLs\x20to\x20update.\x20'+'JSON:\x20{\x22jsUrl\x22:\x22https://...js\x22,\x22cssUrl\x22:\x22https://...css\x22}'},{'name':a107_0xd31b9e(0x1b6),'type':'string','description':a107_0xd31b9e(0x1be)+a107_0xd31b9e(0x1cc),'enum':[a107_0xd31b9e(0x1c8),a107_0xd31b9e(0x1e0)],'default':'patch'},{'name':a107_0xd31b9e(0x1a1),'type':a107_0xd31b9e(0x1c4),'description':a107_0xd31b9e(0x1b2)},{'name':'menu-ids','type':a107_0xd31b9e(0x1d5),'description':a107_0xd31b9e(0x1e3)},{'name':a107_0xd31b9e(0x1d9),'type':'string','description':'Exact\x20comma-separated\x20menu\x20paths\x20to\x20update'},{'name':a107_0xd31b9e(0x1de),'type':a107_0xd31b9e(0x1c4),'description':a107_0xd31b9e(0x1df)},{'name':a107_0xd31b9e(0x1a8),'type':'string','enum':[a107_0xd31b9e(0x1db),a107_0xd31b9e(0x1cd),a107_0xd31b9e(0x1e2)],'description':a107_0xd31b9e(0x1d3)}],async 'dryRun'(_0x248ef6){const _0x12ebe4=a107_0xd31b9e;ensureRunnableContext(_0x248ef6[_0x12ebe4(0x1d8)],_0x248ef6[_0x12ebe4(0x1e6)]);const _0xfce768=await runMenuUpdateCore(_0x248ef6[_0x12ebe4(0x1e7)],_0x248ef6[_0x12ebe4(0x1e8)],_0x248ef6[_0x12ebe4(0x1c7)]('params'),{'mode':parseMode(_0x248ef6[_0x12ebe4(0x1c7)]('mode')),'dryRun':!![],'force':_0x248ef6['bool']('force'),'selection':parseSelection(_0x248ef6),'loadScriptMode':parseLoadScriptMode(_0x248ef6[_0x12ebe4(0x1c7)](_0x12ebe4(0x1a8)))});return{'method':'POST','url':_0x12ebe4(0x1d6),'body':_0xfce768,'description':_0xfce768['skipped']?_0x12ebe4(0x1a9):_0x12ebe4(0x1d1)+(_0xfce768[_0x12ebe4(0x1b1)]?.['length']??0x0)+_0x12ebe4(0x1c3)};},async 'execute'(_0x1d9f20){const _0x471e03=a107_0xd31b9e;ensureRunnableContext(_0x1d9f20['rawFlags'],_0x1d9f20[_0x471e03(0x1e6)]);const _0x542889=_0x1d9f20[_0x471e03(0x1a6)]('yes'),_0x3e5825=_0x1d9f20[_0x471e03(0x1c7)](_0x471e03(0x1ee)),_0x5ec290=parseMode(_0x1d9f20[_0x471e03(0x1c7)](_0x471e03(0x1b6))),_0x371e5f=_0x1d9f20[_0x471e03(0x1a3)](_0x471e03(0x1a1)),_0x41191a=parseLoadScriptMode(_0x1d9f20[_0x471e03(0x1c7)]('load-mode')),_0x29e47b=parseParams(_0x3e5825),_0x4e1956=!!(_0x29e47b[_0x471e03(0x1d2)]||_0x29e47b[_0x471e03(0x1af)]);if(_0x542889||_0x4e1956&&!isInteractive()){const _0x5c8a44=await runMenuUpdateCore(_0x1d9f20[_0x471e03(0x1e7)],_0x1d9f20[_0x471e03(0x1e8)],_0x3e5825,{'mode':_0x5ec290,'force':_0x371e5f,'selection':parseSelection(_0x1d9f20),'loadScriptMode':_0x41191a});return _0x5c8a44[_0x471e03(0x1c9)]?writeCliSideChannelLine(_0x471e03(0x19d)):(writeCliSideChannelLine(_0x471e03(0x1f1)+_0x5c8a44[_0x471e03(0x1c1)]+_0x471e03(0x1da)),_0x5c8a44[_0x471e03(0x1ea)]>0x0&&writeCliSideChannelLine('!\x20'+_0x5c8a44[_0x471e03(0x1ea)]+'\x20menu(s)\x20failed')),{'ok':_0x5c8a44['failed']===0x0,'data':_0x5c8a44,'message':_0x5c8a44[_0x471e03(0x1c9)]?_0x471e03(0x1cb):_0x471e03(0x1ed)+_0x5c8a44[_0x471e03(0x1c1)]+_0x471e03(0x1b9)+_0x5c8a44[_0x471e03(0x1ea)]+_0x471e03(0x1ec)};}requireInteractive();const _0x3b301f=startSpinner(_0x471e03(0x1dc));let _0x1e2be5;try{_0x1e2be5=await fetchOnlineMenuList(_0x1d9f20['appCode'],_0x1d9f20['cookie']),stopSpinner(_0x3b301f,'Online\x20menu\x20list\x20fetched',!![]);}catch(_0x11c4ef){stopSpinner(_0x3b301f,_0x471e03(0x1b4),![]);throw CliErrors[_0x471e03(0x1b5)](_0x11c4ef instanceof Error?_0x11c4ef['message']:_0x471e03(0x1b4));}const _0x2313b6=filterMenusWithResources(_0x1e2be5),_0x20f8f5=parseSelection(_0x1d9f20,![]),_0x338b0e=_0x20f8f5?selectMenusForUpdate(_0x2313b6,_0x20f8f5):_0x2313b6;if(_0x338b0e[_0x471e03(0x1f0)]===0x0)return writeCliSideChannelLine(a107_0x5bf979[_0x471e03(0x1b8)]('\x20\x20!\x20No\x20menus\x20with\x20existing\x20resources\x20found')),{'ok':!![]};writeCliSideChannelLine(''),writeCliSideChannelLine(a107_0x5bf979[_0x471e03(0x1ca)]('\x20\x20Found\x20'+_0x338b0e[_0x471e03(0x1f0)]+_0x471e03(0x1ae))),writeCliSideChannelLine(renderUpdateSummary(_0x338b0e[_0x471e03(0x1b3)](_0x3a2013=>_0x3a2013[_0x471e03(0x1ce)]),[_0x29e47b[_0x471e03(0x1d2)],_0x29e47b['cssUrl']])),writeCliSideChannelLine('');let _0x31aee7=_0x29e47b[_0x471e03(0x1d2)],_0x235187=_0x29e47b[_0x471e03(0x1af)];!_0x31aee7&&(_0x31aee7=await askJsUrl());!_0x235187&&(_0x235187=await askCssUrl());const _0x176173=await askConfirm('\x20\x20Update\x20'+_0x338b0e[_0x471e03(0x1f0)]+_0x471e03(0x1d0)+_0x31aee7+_0x471e03(0x1bd)+_0x235187+'?');if(!_0x176173)return writeCliSideChannelLine(a107_0x5bf979[_0x471e03(0x1ad)](_0x471e03(0x1e9))),{'ok':!![]};const _0x544625=startSpinner('Updating\x20'+_0x338b0e[_0x471e03(0x1f0)]+_0x471e03(0x1a0));try{const _0x381ac5=await runMenuUpdateCore(_0x1d9f20[_0x471e03(0x1e7)],_0x1d9f20['cookie'],JSON[_0x471e03(0x1cf)]({'jsUrl':_0x31aee7,'cssUrl':_0x235187}),{'mode':_0x5ec290,'force':_0x371e5f,'selection':{'all':![],'menuIds':_0x338b0e[_0x471e03(0x1b3)](_0x46b91a=>_0x46b91a['id']),'paths':[]},'loadScriptMode':_0x41191a});return stopSpinner(_0x544625,_0x471e03(0x1e4)+_0x381ac5['updated']+_0x471e03(0x1c0),_0x381ac5['failed']===0x0),{'ok':_0x381ac5[_0x471e03(0x1ea)]===0x0,'data':_0x381ac5,'message':_0x381ac5[_0x471e03(0x1ea)]>0x0?'Menu\x20asset\x20update\x20completed:\x20'+_0x381ac5[_0x471e03(0x1c1)]+'\x20updated,\x20'+_0x381ac5[_0x471e03(0x1ea)]+'\x20failed.':_0x471e03(0x1ed)+_0x381ac5[_0x471e03(0x1c1)]+_0x471e03(0x19f)};}catch(_0x3874d0){stopSpinner(_0x544625,_0x471e03(0x1dd),![]);throw CliErrors['validation'](_0x3874d0 instanceof Error?_0x3874d0['message']:'Menu\x20asset\x20update\x20failed');}}};function a107_0xf930(){const _0x319a9d=['Menu\x20asset\x20update\x20completed:\x20','params','344LeMNio','length','✓\x20Menu\x20asset\x20update\x20completed:\x20','--menu-ids\x20must\x20contain\x20positive\x20safe\x20integers.','40ojJaNh','!\x20No\x20menus\x20with\x20existing\x20resources\x20found','34517GOkCOW','\x20updated.','\x20menu(s)...','force','Update\x20CDN\x20asset\x20URLs\x20for\x20selected\x20online\x20menus\x20with\x20existing\x20resources','bool','object','107535AOUlvS','flag','320766uvgcrT','load-mode','No\x20menus\x20with\x20existing\x20resources\x20would\x20be\x20updated.','Run\x20inside\x20a\x20directory\x20with\x20.rabetbase.json,\x20or\x20pass\x20--appcode\x20<code>.','isArray','split','gray','\x20menu(s)\x20with\x20existing\x20resources','cssUrl','menu\x20asset-update\x20requires\x20an\x20explicit\x20target:\x20pass\x20--all,\x20--menu-ids,\x20or\x20--paths.','diffs','Allow\x20replace\x20mode\x20to\x20remove\x20existing\x20JS\x20resources','map','Failed\x20to\x20fetch\x20online\x20menu\x20list','validation','mode','28KpvqhU','yellow','\x20updated,\x20','some','trim','117435ESGIBp','\x20and\x20CSS:\x20','Resource\x20update\x20mode:\x20replace\x20rewrites\x20resources\x20from\x20supplied\x20URLs;\x20','high-risk-write','\x20menu(s)','updated','299838GenQIL','\x20menu\x20resource\x20set(s).','boolean','filter','menu\x20asset-update\x20requires\x20a\x20project\x20context\x20or\x20explicit\x20--appcode.\x20','str','replace','skipped','cyan','Menu\x20asset\x20update\x20skipped','patch\x20replaces\x20a\x20supplied\x20type\x20only\x20when\x20the\x20existing\x20target\x20is\x20unambiguous','script','label','stringify','\x20menu(s)\x20with\x20JS:\x20','Would\x20update\x20','jsUrl','Explicitly\x20change\x20the\x20microfrontend\x20resource\x20loading\x20mode','11214010nozJWS','string','/smartapi/menu/update','Invalid\x20--mode.\x20Allowed\x20values:\x20replace,\x20patch','rawFlags','paths','\x20menu(s)\x20updated','import','Fetching\x20online\x20menu\x20list...','Menu\x20asset\x20update\x20failed','all','Explicitly\x20update\x20every\x20menu\x20that\x20has\x20resources','patch','isSafeInteger','fetch','Exact\x20comma-separated\x20menu\x20IDs\x20to\x20update','Updated\x20','appcode','selectedAppName','appCode','cookie','\x20\x20Cancelled.','failed','3906342CUapml','\x20failed.'];a107_0xf930=function(){return _0x319a9d;};return a107_0xf930();}function ensureRunnableContext(_0x591cf5,_0x5e886c){const _0x46420a=a107_0xd31b9e,_0x356ed0=_0x591cf5[_0x46420a(0x1e5)]?String(_0x591cf5[_0x46420a(0x1e5)])[_0x46420a(0x1bb)]():'';if(!isInProject()&&!_0x5e886c&&!_0x356ed0)throw CliErrors[_0x46420a(0x1b5)](_0x46420a(0x1c6)+_0x46420a(0x1aa));}function parseMode(_0x3f3002){const _0x4ed771=a107_0xd31b9e;if(!_0x3f3002)return'patch';if(_0x3f3002==='replace'||_0x3f3002===_0x4ed771(0x1e0))return _0x3f3002;throw CliErrors['validation'](_0x4ed771(0x1d7));}function parseSelection(_0x2ae24f,_0x300466=!![]){const _0x18816e=a107_0xd31b9e,_0x36a18c=_0x2ae24f[_0x18816e(0x1a3)](_0x18816e(0x1de)),_0x528e63=parseMenuIds(_0x2ae24f[_0x18816e(0x1c7)]('menu-ids')),_0x3c43b7=parseCsv(_0x2ae24f[_0x18816e(0x1c7)](_0x18816e(0x1d9))),_0x468fca=_0x528e63[_0x18816e(0x1f0)]>0x0||_0x3c43b7[_0x18816e(0x1f0)]>0x0;if(_0x36a18c&&_0x468fca)throw CliErrors['validation']('--all\x20cannot\x20be\x20combined\x20with\x20--menu-ids\x20or\x20--paths.');if(!_0x36a18c&&!_0x468fca){if(!_0x300466)return undefined;throw CliErrors[_0x18816e(0x1b5)](_0x18816e(0x1b0));}return{'all':_0x36a18c,'menuIds':_0x528e63,'paths':_0x3c43b7};}function parseMenuIds(_0x6be1de){const _0x4d5164=a107_0xd31b9e,_0x49dee5=parseCsv(_0x6be1de),_0x196b64=_0x49dee5['map'](Number);if(_0x196b64[_0x4d5164(0x1ba)](_0x596636=>!Number[_0x4d5164(0x1e1)](_0x596636)||_0x596636<=0x0))throw CliErrors[_0x4d5164(0x1b5)](_0x4d5164(0x1f2));return[...new Set(_0x196b64)];}function parseCsv(_0x3e30c2){const _0x41882c=a107_0xd31b9e;return[...new Set(_0x3e30c2[_0x41882c(0x1ac)](',')['map'](_0x539ac8=>_0x539ac8['trim']())[_0x41882c(0x1c5)](Boolean))];}function parseLoadScriptMode(_0x11a67c){const _0x682eef=a107_0xd31b9e;if(!_0x11a67c)return undefined;if(_0x11a67c===_0x682eef(0x1db)||_0x11a67c===_0x682eef(0x1cd)||_0x11a67c==='fetch')return _0x11a67c;throw CliErrors['validation']('Invalid\x20--load-mode.\x20Allowed\x20values:\x20import,\x20script,\x20fetch');}function parseParams(_0x201ab0){const _0x3f3a4b=a107_0xd31b9e;if(!_0x201ab0)return{};try{const _0x417a20=JSON['parse'](_0x201ab0);if(typeof _0x417a20!==_0x3f3a4b(0x1a4)||_0x417a20===null||Array[_0x3f3a4b(0x1ab)](_0x417a20))return{};return{'jsUrl':typeof _0x417a20[_0x3f3a4b(0x1d2)]===_0x3f3a4b(0x1d5)?_0x417a20[_0x3f3a4b(0x1d2)]['trim']():undefined,'cssUrl':typeof _0x417a20[_0x3f3a4b(0x1af)]===_0x3f3a4b(0x1d5)?_0x417a20['cssUrl'][_0x3f3a4b(0x1bb)]():undefined};}catch{return{};}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a108_0x3fd744=a108_0x330a;function a108_0x583f(){const _0x2df324=['hash','menu_page_shared','folder','rabetbase\x20menu\x20list\x20--format\x20json','\x20is\x20not\x20a\x20folder.','Handle\x20child\x20ids\x20in\x20the\x20platform\x20first:\x20','batch\x20delete','Would\x20batch\x20delete\x20','Batch\x20delete\x20request\x20for\x20menu\x20','menu_delete_page_bound','\x20menu(s)\x20under\x20exact\x20id\x20','Backend\x20reported\x20','\x20is\x20type\x20\x22','expiresAt','451716HtQQRn','unknown','target','map','menu_folder_resources_invalid','\x20is\x20unexpectedly\x20bound\x20to\x20page\x20','Menu\x20delete\x20plan\x20does\x20not\x20contain\x20the\x20complete\x20current\x20subtree\x20in\x20leaf-first\x20order.','snapshotHash','\x22;\x20--recursive\x20requires\x20a\x20folder\x20root.','string','--plan-out\x20is\x20required\x20for\x20menu\x20delete\x20dry-run\x20so\x20execution\x20can\x20consume\x20the\x20reviewed\x20plan.','remainingIds','selector',';\x20execution\x20must\x20consume\x20','POST','cookie','flagMissing','):\x20','Inspect\x20the\x20folder\x20in\x20the\x20platform\x20before\x20deleting\x20it.','115pAKawn','causeCode','expect-parent-id','expected-children-count','Deleting\x20page-bound\x20menus\x20invokes\x20the\x20platform\x27s\x20existing\x20page\x20and\x20PageSchema\x20cascade;\x20listed\x20page\x20ids\x20are\x20direct\x20menu\x20bindings.','2970EJDNwd','Page\x20bindings\x20are\x20referenced\x20by\x20menus\x20outside\x20the\x20delete\x20plan:\x20','Keep\x20every\x20shared\x20page\x20reference\x20outside\x20this\x20operation,\x20or\x20choose\x20a\x20folder\x20whose\x20complete\x20subtree\x20contains\x20all\x20references.','snapshot','menu_tree_invalid','dry-run','Remove\x20or\x20verify\x20the\x20resource\x20bindings\x20in\x20the\x20platform\x20before\x20deleting\x20the\x20folder.','str','Inspect\x20the\x20latest\x20menu\x20facts\x20and\x20generate\x20a\x20new\x20delete\x20plan;\x20do\x20not\x20retry\x20this\x20plan.','130arOrhe','failed','childrenCount','join','type','plan','menu','menu_verification_failed','read\x20menu\x20state\x20after\x20batch\x20delete\x20count\x20mismatch','resources','cascade','path','/smartapi/menu/batchDelete','9567rHebjQ','recursive','268287lpZGsi','createdAt','toLowerCase','One\x20or\x20more\x20planned\x20menus\x20are\x20still\x20present\x20after\x20the\x20batch\x20delete\x20request:\x20','Required\x20for\x20execution;\x20consume\x20an\x20unexpired\x20plan\x20created\x20by\x20--plan-out','Menu\x20tree\x20contains\x20a\x20cycle\x20at\x20menu\x20','The\x20batch\x20response\x20count\x20did\x20not\x20match\x20the\x20reviewed\x20target\x20count;\x20do\x20not\x20retry\x20the\x20same\x20plan.','verify\x20batch\x20delete','validation','Post-failure\x20menu\x20readback\x20failed\x20(','Menu\x20','Recursive\x20menu\x20delete\x20plan\x20root\x20','\x20has\x20','batch-delete','76314EzJqJm','641951ukeaeH','Menu\x20delete\x20execution\x20consumes\x20only\x20--plan;\x20remove\x20','indexOf','add','message','\x20->\x20menu\x20','Folder\x20','\x20still\x20references\x20','byId','absentIds','The\x20batch\x20delete\x20request\x20was\x20accepted,\x20but\x20its\x20final\x20online\x20state\x20is\x20unconfirmed.','menus','Post-mismatch\x20menu\x20readback\x20failed\x20(','trim','187284kJHxUH','Menu\x20delete\x20plan\x20cascade\x20does\x20not\x20match\x20the\x20reviewed\x20target\x20page\x20facts.','causeMessage','push','menu_batch_delete_count_mismatch','boolean','Inspect\x20and\x20repair\x20the\x20folder\x20resource\x20binding\x20in\x20the\x20platform\x20before\x20deleting\x20it.','Deleted\x20','pre-write-plan-validation','resourcesValid','childrenIds','Required\x20with\x20--dry-run;\x20write\x20the\x20reviewed\x20plan\x20to\x20a\x20new\x20local\x20JSON\x20file','batch-delete-menu','appCode','pageId','read\x20menu\x20state\x20after\x20batch\x20delete\x20failure','filter','6190fdGEGt','The\x20backend\x20acknowledged\x20the\x20batch\x20request,\x20but\x20final\x20menu\x20facts\x20did\x20not\x20confirm\x20every\x20deletion.','224schCyU','6XASvIQ','unconfirmed','Delete\x20an\x20exact\x20menu\x20or\x20a\x20folder\x20subtree\x20from\x20a\x20reviewed\x20plan','plan-validation','has','verification','\x20direct\x20child\x20menu(s)\x20and\x20cannot\x20be\x20deleted.','delete','size','length','The\x20batch\x20delete\x20may\x20have\x20partially\x20applied;\x20inspect\x20the\x20latest\x20menu\x20facts\x20before\x20creating\x20a\x20new\x20plan.','expect-path','Exact\x20menu\x20id\x20(required\x20with\x20--dry-run)','plan-out','menu_plan_invalid','3736mXaVVq','\x20has\x20an\x20unreadable\x20extend.resources\x20value\x20and\x20cannot\x20be\x20proven\x20empty.','deleteOrder','--plan\x20cannot\x20be\x20combined\x20with\x20--dry-run;\x20use\x20--plan-out.','bool','high-risk-write','\x20completed\x20but\x20readback\x20could\x20not\x20confirm\x20absence','menu_folder_has_resources','stringify'];a108_0x583f=function(){return _0x2df324;};return a108_0x583f();}(function(_0x2ac571,_0xabd1b2){const _0x5425e1=a108_0x330a,_0x20cf00=_0x2ac571();while(!![]){try{const _0x59b396=-parseInt(_0x5425e1(0x155))/0x1+parseInt(_0x5425e1(0x177))/0x2*(-parseInt(_0x5425e1(0x146))/0x3)+parseInt(_0x5425e1(0x163))/0x4*(parseInt(_0x5425e1(0x129))/0x5)+-parseInt(_0x5425e1(0x154))/0x6*(-parseInt(_0x5425e1(0x176))/0x7)+parseInt(_0x5425e1(0xff))/0x8*(-parseInt(_0x5425e1(0x144))/0x9)+parseInt(_0x5425e1(0x174))/0xa*(parseInt(_0x5425e1(0x12e))/0xb)+-parseInt(_0x5425e1(0x116))/0xc*(-parseInt(_0x5425e1(0x137))/0xd);if(_0x59b396===_0xabd1b2)break;else _0x20cf00['push'](_0x20cf00['shift']());}catch(_0x1fa6ca){_0x20cf00['push'](_0x20cf00['shift']());}}}(a108_0x583f,0x978f8));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a108_0x330a(_0x596a91,_0x425094){_0x596a91=_0x596a91-0xf2;const _0x583fb1=a108_0x583f();let _0x330a28=_0x583fb1[_0x596a91];return _0x330a28;}import{assertMenuDeletePlanCurrent,assertMenuDeletePlanExecutable,createMenuDeletePlanFile,mutationPlanFromDeleteFile,readMenuDeletePlan,writeMenuDeletePlan}from'../../commands/menu/shared/delete-plan.js';import{fetchMenuSnapshot}from'../../commands/menu/shared/facts.js';import{MENU_EXPECT_FLAGS,MENU_ID_FLAG,asVerificationError,assertExpectedState,describeMenuErrorCause,fetchMutationSnapshot,hasFlag,mapMenuApiError,menuDryRunResult,menuError,menuFailure,mutationResult,requireExplicitYes,requireMenu,validateExactId}from'../../commands/menu/shared/mutations.js';import{batchDeleteMenuEntities}from'../../commands/menu/shared/service.js';import{CliError,CliErrors}from'../../errors.js';const BACKEND=[{'method':a108_0x3fd744(0x124),'path':a108_0x3fd744(0x143)}],MENU_DELETE_ID_FLAG={...MENU_ID_FLAG,'required':![],'description':a108_0x3fd744(0xfc)},MENU_DELETE_RECURSIVE_FLAG={'name':'recursive','type':a108_0x3fd744(0x168),'description':'Include\x20every\x20descendant\x20of\x20the\x20exact\x20folder\x20id,\x20deleting\x20leaves\x20first'},MENU_DELETE_PLAN_OUT_FLAG={'name':a108_0x3fd744(0xfd),'type':a108_0x3fd744(0x11f),'description':a108_0x3fd744(0x16e)},MENU_DELETE_PLAN_FLAG={'name':'plan','type':a108_0x3fd744(0x11f),'description':a108_0x3fd744(0x14a)};export const menuDelete={'service':a108_0x3fd744(0x13d),'command':a108_0x3fd744(0xf7),'description':a108_0x3fd744(0xf2),'risk':a108_0x3fd744(0x104),'structuredErrors':!![],'flags':[MENU_DELETE_ID_FLAG,MENU_DELETE_RECURSIVE_FLAG,MENU_DELETE_PLAN_OUT_FLAG,MENU_DELETE_PLAN_FLAG,...MENU_EXPECT_FLAGS,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x40df45){const _0xc451c3=a108_0x3fd744;_0x40df45[_0xc451c3(0x103)](_0xc451c3(0x133))?validateDeleteDryRunInput(_0x40df45):validateDeleteExecuteInput(_0x40df45),requireExplicitYes(_0x40df45);},async 'dryRun'(_0x553c8a){const _0x329d33=a108_0x3fd744;validateDeleteDryRunInput(_0x553c8a);const _0x4acb72=await buildDeletePlan(_0x553c8a),_0x3bd287=createMenuDeletePlanFile(_0x553c8a[_0x329d33(0x170)],_0x4acb72),_0x1969a3=await writeMenuDeletePlan(_0x553c8a[_0x329d33(0x135)]('plan-out'),_0x3bd287),_0x563956=mutationResult({..._0x4acb72,'planFile':{'path':_0x1969a3,'createdAt':_0x3bd287[_0x329d33(0x147)],'expiresAt':_0x3bd287[_0x329d33(0x115)]}});return menuDryRunResult(_0x563956,{'method':'POST','url':'/smartapi/menu/batchDelete','body':{'idList':_0x563956[_0x329d33(0x101)]},'description':_0x329d33(0x10f)+(_0x563956['deleteOrder']?.[_0x329d33(0xf9)]??0x1)+_0x329d33(0x112)+_0x563956[_0x329d33(0x122)]['id']+_0x329d33(0x123)+_0x1969a3+'.'});},async 'execute'(_0x290ce4){const _0x3fdaca=a108_0x3fd744;requireExplicitYes(_0x290ce4),validateDeleteExecuteInput(_0x290ce4);const _0x47e09f=await readMenuDeletePlan(_0x290ce4[_0x3fdaca(0x135)](_0x3fdaca(0x13c))),_0x3a41b1=mutationPlanFromDeleteFile(_0x47e09f[_0x3fdaca(0x13c)],_0x47e09f[_0x3fdaca(0x142)]),_0x2d9525=_0x47e09f[_0x3fdaca(0x13c)][_0x3fdaca(0x118)]['id'];try{assertMenuDeletePlanExecutable(_0x47e09f[_0x3fdaca(0x13c)],_0x290ce4[_0x3fdaca(0x170)]);}catch(_0x10a3fa){throw menuFailure(asMenuError(_0x10a3fa),_0x3a41b1,{'stage':_0x3fdaca(0xf3),'failed':{'id':_0x2d9525}});}let _0x2a5c09,_0xd87a42;try{_0x2a5c09=await fetchMutationSnapshot(_0x290ce4,'execute\x20reviewed\x20delete\x20plan',_0x2d9525),_0xd87a42=assertMenuDeletePlanCurrent(_0x47e09f[_0x3fdaca(0x13c)],_0x290ce4[_0x3fdaca(0x170)],_0x2a5c09),assertDeleteTargetsComplete(_0x47e09f['plan'],_0x2a5c09),_0xd87a42['forEach'](_0x1386b9=>assertDeleteSafety(_0x1386b9,_0x47e09f[_0x3fdaca(0x13c)][_0x3fdaca(0x145)])),assertNoSharedPages(_0x2a5c09,_0xd87a42),assertCascadeMatchesPlan(_0x3a41b1,_0xd87a42);}catch(_0x2943d8){throw menuFailure(asMenuError(_0x2943d8),_0x3a41b1,{'stage':_0x3fdaca(0x16b),'failed':{'id':_0x2d9525}});}const _0xd36b17=_0x47e09f[_0x3fdaca(0x13c)]['deleteOrder'];let _0xbe6ec7;try{_0xbe6ec7=await batchDeleteMenuEntities(_0x290ce4[_0x3fdaca(0x125)],_0xd36b17);}catch(_0x3db500){const _0x31f7f5=mapMenuApiError(_0x3db500,_0x3fdaca(0x10e)),_0x30900c=[_0x3fdaca(0xfa)];let _0x96b439;try{_0x96b439=await readDeleteOutcome(_0x290ce4,_0xd36b17);}catch(_0x4d7fa4){const _0x2176e4=describeMenuErrorCause(_0x4d7fa4,_0x3fdaca(0x172),_0x2d9525);_0x30900c['push'](_0x3fdaca(0x14f)+_0x2176e4[_0x3fdaca(0x12a)]+_0x3fdaca(0x127)+_0x2176e4[_0x3fdaca(0x165)]);throw menuFailure(_0x31f7f5,_0x3a41b1,{'stage':_0x3fdaca(0x153),'failed':{'targetIds':_0xd36b17,'targetIdsAbsent':_0x3fdaca(0x178),..._0x2176e4},'warnings':_0x30900c,'verification':{'status':_0x3fdaca(0x138),'lookupCommand':'rabetbase\x20menu\x20list\x20--format\x20json','targetIds':_0xd36b17}});}throw menuFailure(_0x31f7f5,_0x3a41b1,{'stage':_0x3fdaca(0x153),'succeeded':_0x96b439[_0x3fdaca(0x15e)][_0x3fdaca(0x119)](_0xd06d14=>({'id':_0xd06d14,'deleted':!![]})),'failed':{'targetIds':_0xd36b17,'absentIds':_0x96b439['absentIds'],'remainingIds':_0x96b439[_0x3fdaca(0x121)]},'warnings':_0x30900c,'verification':verificationFromOutcome(_0x96b439)});}if(_0xbe6ec7!==_0xd36b17[_0x3fdaca(0xf9)]){const _0xcba1b7=menuError(_0x3fdaca(0x167),_0x3fdaca(0x113)+_0xbe6ec7+'\x20deleted\x20menus;\x20expected\x20'+_0xd36b17[_0x3fdaca(0xf9)]+'.','Inspect\x20the\x20latest\x20menu\x20facts\x20and\x20generate\x20a\x20new\x20delete\x20plan;\x20do\x20not\x20retry\x20this\x20plan.'),_0x2b5b3e=[_0x3fdaca(0x14c)];let _0x54e74a;try{_0x54e74a=await readDeleteOutcome(_0x290ce4,_0xd36b17);}catch(_0x342aee){const _0x28afc1=describeMenuErrorCause(_0x342aee,_0x3fdaca(0x13f),_0x2d9525);_0x2b5b3e[_0x3fdaca(0x166)](_0x3fdaca(0x161)+_0x28afc1[_0x3fdaca(0x12a)]+_0x3fdaca(0x127)+_0x28afc1['causeMessage']);throw menuFailure(_0xcba1b7,_0x3a41b1,{'stage':_0x3fdaca(0x153),'failed':{'targetIds':_0xd36b17,'expectedCount':_0xd36b17[_0x3fdaca(0xf9)],'reportedDeletedCount':_0xbe6ec7,'targetIdsAbsent':_0x3fdaca(0x178),..._0x28afc1},'warnings':_0x2b5b3e,'verification':{'status':'failed','lookupCommand':_0x3fdaca(0x10b),'targetIds':_0xd36b17}});}throw menuFailure(_0xcba1b7,_0x3a41b1,{'stage':_0x3fdaca(0x153),'succeeded':_0x54e74a[_0x3fdaca(0x15e)]['map'](_0x3981cf=>({'id':_0x3981cf,'deleted':!![]})),'failed':{'targetIds':_0xd36b17,'expectedCount':_0xd36b17[_0x3fdaca(0xf9)],'reportedDeletedCount':_0xbe6ec7,'absentIds':_0x54e74a[_0x3fdaca(0x15e)],'remainingIds':_0x54e74a[_0x3fdaca(0x121)]},'warnings':_0x2b5b3e,'verification':verificationFromOutcome(_0x54e74a)});}let _0x305466;try{_0x305466=await readDeleteOutcome(_0x290ce4,_0xd36b17);}catch(_0x5267d1){const _0x3209f5=describeMenuErrorCause(_0x5267d1,_0x3fdaca(0x14d),_0x2d9525),_0x38eacc=asVerificationError(_0x5267d1,_0x3fdaca(0x110)+_0x2d9525+_0x3fdaca(0x105));throw menuFailure(_0x38eacc,_0x3a41b1,{'stage':_0x3fdaca(0xf5),'succeeded':_0xd36b17[_0x3fdaca(0x119)](_0x3c1f8d=>({'id':_0x3c1f8d,'deleteRequested':!![]})),'failed':{'id':_0x2d9525,'targetIds':_0xd36b17,'targetIdsAbsent':_0x3fdaca(0x178),..._0x3209f5},'warnings':[_0x3fdaca(0x15f)],'verification':{'status':'failed','lookupCommand':_0x3fdaca(0x10b),'targetIds':_0xd36b17}});}if(_0x305466['remainingIds'][_0x3fdaca(0xf9)]>0x0){const _0xc04d95=menuError(_0x3fdaca(0x13e),_0x3fdaca(0x149)+_0x305466['remainingIds'][_0x3fdaca(0x13a)](',\x20')+'.',_0x3fdaca(0x136));throw menuFailure(_0xc04d95,_0x3a41b1,{'stage':_0x3fdaca(0xf5),'succeeded':_0xd36b17[_0x3fdaca(0x119)](_0x190d3f=>({'id':_0x190d3f,'deleteRequested':!![]})),'failed':{'id':_0x2d9525,'targetIds':_0xd36b17,'absentIds':_0x305466[_0x3fdaca(0x15e)],'remainingIds':_0x305466[_0x3fdaca(0x121)]},'warnings':[_0x3fdaca(0x175)],'verification':verificationFromOutcome(_0x305466)});}const _0x46a1e3=_0xd36b17[_0x3fdaca(0x119)](_0x3d0e3b=>({'id':_0x3d0e3b,'deleted':!![]})),_0x46d697=mutationResult({..._0x3a41b1,'dryRun':![],'succeeded':_0x46a1e3,'verification':{'checkedBy':'menu\x20list','plannedSnapshotHash':_0x3a41b1[_0x3fdaca(0x11d)],'finalSnapshotHash':_0x305466[_0x3fdaca(0x131)][_0x3fdaca(0x108)],'reportedDeletedCount':_0xbe6ec7,'targetAbsent':!_0x305466['snapshot'][_0x3fdaca(0x15d)][_0x3fdaca(0xf4)](_0x2d9525),'allTargetsAbsent':!![],'targetIds':_0xd36b17}});return{'ok':!![],'data':_0x46d697,'message':_0x3fdaca(0x16a)+_0x46a1e3['length']+_0x3fdaca(0x112)+_0x2d9525+'.'};}};async function readDeleteOutcome(_0x45e596,_0x2a1365){const _0x19462a=a108_0x3fd744,_0x5916b7=await fetchMenuSnapshot(_0x45e596[_0x19462a(0x170)],_0x45e596[_0x19462a(0x125)]);return{'snapshot':_0x5916b7,'absentIds':_0x2a1365[_0x19462a(0x173)](_0x4ded09=>!_0x5916b7[_0x19462a(0x15d)][_0x19462a(0xf4)](_0x4ded09)),'remainingIds':_0x2a1365['filter'](_0x8fc693=>_0x5916b7[_0x19462a(0x15d)]['has'](_0x8fc693))};}function verificationFromOutcome(_0x44cf70){const _0x579c3e=a108_0x3fd744;return{'checkedBy':'menu\x20list','absentIds':_0x44cf70[_0x579c3e(0x15e)],'remainingIds':_0x44cf70[_0x579c3e(0x121)]};}function validateDeleteDryRunInput(_0x1858da){const _0x2df801=a108_0x3fd744;validateExactId(_0x1858da);if(!hasFlag(_0x1858da,_0x2df801(0xfd))||!_0x1858da[_0x2df801(0x135)](_0x2df801(0xfd))[_0x2df801(0x162)]())throw CliErrors[_0x2df801(0x126)](_0x2df801(0xfd),_0x2df801(0x120));if(hasFlag(_0x1858da,_0x2df801(0x13c)))throw CliErrors[_0x2df801(0x14e)](_0x2df801(0x102));}function validateDeleteExecuteInput(_0x2a91d2){const _0x504cb6=a108_0x3fd744;if(!hasFlag(_0x2a91d2,_0x504cb6(0x13c))||!_0x2a91d2[_0x504cb6(0x135)](_0x504cb6(0x13c))[_0x504cb6(0x162)]())throw CliErrors['flagMissing']('plan','--plan\x20is\x20required\x20for\x20menu\x20delete\x20execution.');const _0x15fb75=['id',_0x504cb6(0x145),'plan-out',_0x504cb6(0x12b),_0x504cb6(0xfb),_0x504cb6(0x12c)][_0x504cb6(0x173)](_0x59ba13=>hasFlag(_0x2a91d2,_0x59ba13));if(_0x15fb75[_0x504cb6(0xf9)]>0x0)throw CliErrors[_0x504cb6(0x14e)](_0x504cb6(0x156)+_0x15fb75[_0x504cb6(0x119)](_0x3cb753=>'--'+_0x3cb753)[_0x504cb6(0x13a)](',\x20')+'.');}async function buildDeletePlan(_0x245da1){const _0x4a22f5=a108_0x3fd744,_0xaa3cd4=validateExactId(_0x245da1),_0x3dbe6f=await fetchMutationSnapshot(_0x245da1,'plan\x20delete',_0xaa3cd4),_0x41649c=requireMenu(_0x3dbe6f,_0xaa3cd4);assertExpectedState(_0x245da1,_0x41649c);const _0x4d317a=_0x245da1[_0x4a22f5(0x103)](_0x4a22f5(0x145));let _0x5767b3;if(_0x4d317a){if(_0x41649c[_0x4a22f5(0x13b)][_0x4a22f5(0x162)]()['toLowerCase']()!==_0x4a22f5(0x10a))throw menuError('menu_recursive_requires_folder',_0x4a22f5(0x150)+_0x41649c['id']+_0x4a22f5(0x114)+(_0x41649c[_0x4a22f5(0x13b)]||_0x4a22f5(0x117))+_0x4a22f5(0x11e));_0x5767b3=collectDeleteTargets(_0x3dbe6f,_0x41649c),_0x5767b3['forEach'](_0x4a2c48=>assertDeleteSafety(_0x4a2c48,!![]));}else assertDeleteSafety(_0x41649c),_0x5767b3=[_0x41649c];assertNoSharedPages(_0x3dbe6f,_0x5767b3);const _0x1a32e8=_0x5767b3[_0x4a22f5(0x119)](_0x4abb91=>_0x4abb91['id']),_0x39867f=cascadeForTargets(_0x5767b3),_0x54cd4d=_0x39867f['pages'][_0x4a22f5(0xf9)]>0x0?[_0x4a22f5(0x12d)]:[];return mutationResult({'operation':_0x4a22f5(0xf7),'selector':{'id':_0xaa3cd4,'recursive':_0x4d317a},'before':_0x41649c,'after':null,'dryRun':!![],'backend':[...BACKEND],'plannedActions':[{'stage':_0x4a22f5(0x16f),'method':'POST','path':'/smartapi/menu/batchDelete','body':{'idList':_0x1a32e8}}],'targets':_0x5767b3,'deleteOrder':_0x1a32e8,'snapshotHash':_0x3dbe6f['hash'],'cascade':_0x39867f,'warnings':_0x54cd4d});}function assertDeleteSafety(_0x1c8999,_0x5f04d2=![]){const _0x3a5379=a108_0x3fd744,_0x1a7236=_0x1c8999[_0x3a5379(0x13b)][_0x3a5379(0x162)]()[_0x3a5379(0x148)]()==='folder';if(_0x1c8999[_0x3a5379(0x139)]>0x0&&(!_0x5f04d2||!_0x1a7236))throw menuError('menu_non_empty',_0x3a5379(0x150)+_0x1c8999['id']+_0x3a5379(0x152)+_0x1c8999['childrenCount']+_0x3a5379(0xf6),_0x3a5379(0x10d)+_0x1c8999[_0x3a5379(0x16d)][_0x3a5379(0x13a)](',\x20'));if(_0x1a7236&&_0x1c8999[_0x3a5379(0x171)]!=null)throw menuError(_0x3a5379(0x111),'Folder\x20'+_0x1c8999['id']+_0x3a5379(0x11b)+_0x1c8999[_0x3a5379(0x171)]+'\x20and\x20cannot\x20be\x20deleted\x20safely.',_0x3a5379(0x128));if(!_0x1a7236)return;if(!_0x1c8999[_0x3a5379(0x16c)])throw menuError(_0x3a5379(0x11a),_0x3a5379(0x15b)+_0x1c8999['id']+_0x3a5379(0x100),_0x3a5379(0x169));if(_0x1c8999[_0x3a5379(0x140)][_0x3a5379(0xf9)]>0x0)throw menuError(_0x3a5379(0x106),'Folder\x20'+_0x1c8999['id']+_0x3a5379(0x15c)+_0x1c8999[_0x3a5379(0x140)]['length']+'\x20resource\x20URL(s).',_0x3a5379(0x134));}function collectDeleteTargets(_0x4691ec,_0x59d738){const _0x33ae21=[],_0x242e62=new Set(),_0x1d145f=new Set(),_0x443ab4=_0x395a65=>{const _0x30819a=a108_0x330a;if(_0x242e62[_0x30819a(0xf4)](_0x395a65['id']))throw menuError(_0x30819a(0x132),_0x30819a(0x14b)+_0x395a65['id']+'.');if(_0x1d145f[_0x30819a(0xf4)](_0x395a65['id']))return;_0x242e62[_0x30819a(0x158)](_0x395a65['id']);for(const _0x51171f of _0x395a65[_0x30819a(0x16d)]){const _0x14a52b=_0x4691ec['byId']['get'](_0x51171f);if(!_0x14a52b)throw menuError(_0x30819a(0x132),'Menu\x20'+_0x395a65['id']+'\x20references\x20missing\x20child\x20'+_0x51171f+'.');_0x443ab4(_0x14a52b);}_0x242e62[_0x30819a(0xf7)](_0x395a65['id']),_0x1d145f[_0x30819a(0x158)](_0x395a65['id']),_0x33ae21[_0x30819a(0x166)](_0x395a65);};return _0x443ab4(_0x59d738),_0x33ae21;}function assertDeleteTargetsComplete(_0x512309,_0x2a8fa6){const _0xb8090e=a108_0x3fd744,_0x2e3599=requireMenu(_0x2a8fa6,_0x512309[_0xb8090e(0x118)]['id']);if(_0x512309['recursive']&&_0x2e3599[_0xb8090e(0x13b)][_0xb8090e(0x162)]()['toLowerCase']()!==_0xb8090e(0x10a))throw menuError(_0xb8090e(0xfe),_0xb8090e(0x151)+_0x2e3599['id']+_0xb8090e(0x10c));const _0xb3d897=_0x512309['recursive']?collectDeleteTargets(_0x2a8fa6,_0x2e3599)[_0xb8090e(0x119)](_0x2a689a=>_0x2a689a['id']):[_0x2e3599['id']];if(JSON['stringify'](_0x512309[_0xb8090e(0x101)])!==JSON[_0xb8090e(0x107)](_0xb3d897))throw menuError(_0xb8090e(0xfe),_0xb8090e(0x11c),'Generate\x20a\x20new\x20plan\x20with\x20--dry-run\x20--plan-out\x20and\x20do\x20not\x20remove\x20or\x20reorder\x20targets.');}function assertNoSharedPages(_0x2179e1,_0x2d8fcb){const _0x1de8a8=a108_0x3fd744,_0xb06837=new Set(_0x2d8fcb[_0x1de8a8(0x119)](_0x36b5e7=>_0x36b5e7['id'])),_0x5e8d24=new Set(_0x2d8fcb[_0x1de8a8(0x119)](_0x4e75ec=>_0x4e75ec[_0x1de8a8(0x171)])[_0x1de8a8(0x173)](_0x14ccac=>_0x14ccac!=null));if(_0x5e8d24[_0x1de8a8(0xf8)]===0x0)return;const _0x2389f6=_0x2179e1[_0x1de8a8(0x160)][_0x1de8a8(0x173)](_0x286b54=>!_0xb06837['has'](_0x286b54['id'])&&_0x286b54[_0x1de8a8(0x171)]!=null&&_0x5e8d24[_0x1de8a8(0xf4)](_0x286b54[_0x1de8a8(0x171)]));if(_0x2389f6[_0x1de8a8(0xf9)]===0x0)return;const _0x3baf98=_0x2389f6[_0x1de8a8(0x119)](_0x45ae43=>'page\x20'+_0x45ae43[_0x1de8a8(0x171)]+_0x1de8a8(0x15a)+_0x45ae43['id'])[_0x1de8a8(0x13a)](',\x20');throw menuError(_0x1de8a8(0x109),_0x1de8a8(0x12f)+_0x3baf98+'.',_0x1de8a8(0x130));}function assertCascadeMatchesPlan(_0x5d1b79,_0x35a317){const _0x318fdb=a108_0x3fd744,_0x9e81c2=cascadeForTargets(_0x35a317);if(JSON[_0x318fdb(0x107)](_0x5d1b79[_0x318fdb(0x141)])!==JSON[_0x318fdb(0x107)](_0x9e81c2))throw menuError(_0x318fdb(0xfe),_0x318fdb(0x164));}function cascadeForTargets(_0x32b287){const _0x22c8c0=a108_0x3fd744,_0xd6e3b5=_0x32b287[_0x22c8c0(0x119)](_0x3c1614=>_0x3c1614['pageId'])['filter'](_0x1d77c4=>_0x1d77c4!=null)['filter']((_0x259760,_0x41a264,_0x69c79c)=>_0x69c79c[_0x22c8c0(0x157)](_0x259760)===_0x41a264);return{'pages':_0xd6e3b5,'pageSchemaAffected':_0xd6e3b5[_0x22c8c0(0xf9)]>0x0};}function asMenuError(_0x7f73e9){const _0x4b77a7=a108_0x3fd744;return _0x7f73e9 instanceof CliError?_0x7f73e9:menuError(_0x4b77a7(0xfe),_0x7f73e9 instanceof Error?_0x7f73e9[_0x4b77a7(0x159)]:String(_0x7f73e9));}
|
|
1
|
+
const a108_0x4b1a15=a108_0x205a;(function(_0x297b5f,_0xecf17c){const _0x24f870=a108_0x205a,_0x47d6bc=_0x297b5f();while(!![]){try{const _0x1d14f4=-parseInt(_0x24f870(0x20c))/0x1+parseInt(_0x24f870(0x26a))/0x2+-parseInt(_0x24f870(0x204))/0x3*(-parseInt(_0x24f870(0x248))/0x4)+-parseInt(_0x24f870(0x25c))/0x5*(parseInt(_0x24f870(0x23c))/0x6)+parseInt(_0x24f870(0x25b))/0x7+-parseInt(_0x24f870(0x225))/0x8+-parseInt(_0x24f870(0x242))/0x9*(-parseInt(_0x24f870(0x205))/0xa);if(_0x1d14f4===_0xecf17c)break;else _0x47d6bc['push'](_0x47d6bc['shift']());}catch(_0x28664d){_0x47d6bc['push'](_0x47d6bc['shift']());}}}(a108_0x4d1a,0xbb7d6));function a108_0x4d1a(){const _0x35bd3f=['\x20->\x20menu\x20','Required\x20with\x20--dry-run;\x20write\x20the\x20reviewed\x20plan\x20to\x20a\x20new\x20local\x20JSON\x20file','childrenIds','--plan\x20cannot\x20be\x20combined\x20with\x20--dry-run;\x20use\x20--plan-out.','Include\x20every\x20descendant\x20of\x20the\x20exact\x20folder\x20id,\x20deleting\x20leaves\x20first','string','menu_folder_has_resources','\x20still\x20references\x20','type','str','join','1848511yLzKUK','30010TNSSOu','trim','The\x20batch\x20response\x20count\x20did\x20not\x20match\x20the\x20reviewed\x20target\x20count;\x20do\x20not\x20retry\x20the\x20same\x20plan.','pageId','filter','The\x20backend\x20acknowledged\x20the\x20batch\x20request,\x20but\x20final\x20menu\x20facts\x20did\x20not\x20confirm\x20every\x20deletion.','Menu\x20','failed','pages','--plan-out\x20is\x20required\x20for\x20menu\x20delete\x20dry-run\x20so\x20execution\x20can\x20consume\x20the\x20reviewed\x20plan.','):\x20',';\x20execution\x20must\x20consume\x20','message','stringify','2334902TVcCov','menu_delete_page_bound','size','\x20has\x20an\x20unreadable\x20extend.resources\x20value\x20and\x20cannot\x20be\x20proven\x20empty.','causeCode','menu_page_shared','flagMissing','batch-delete','appCode','Menu\x20delete\x20plan\x20does\x20not\x20contain\x20the\x20complete\x20current\x20subtree\x20in\x20leaf-first\x20order.','\x20deleted\x20menus;\x20expected\x20','resources','recursive','Menu\x20delete\x20execution\x20consumes\x20only\x20--plan;\x20remove\x20','Backend\x20reported\x20','read\x20menu\x20state\x20after\x20batch\x20delete\x20failure','plan','target','get','menu','childrenCount','Post-failure\x20menu\x20readback\x20failed\x20(','unconfirmed','\x20menu(s)\x20under\x20exact\x20id\x20','33DPVmSl','7260YFWPHY','batch\x20delete','remainingIds','Generate\x20a\x20new\x20plan\x20with\x20--dry-run\x20--plan-out\x20and\x20do\x20not\x20remove\x20or\x20reorder\x20targets.','Would\x20batch\x20delete\x20','rabetbase\x20menu\x20list\x20--format\x20json','selector','1121220bjXick','menu_folder_resources_invalid','Page\x20bindings\x20are\x20referenced\x20by\x20menus\x20outside\x20the\x20delete\x20plan:\x20','read\x20menu\x20state\x20after\x20batch\x20delete\x20count\x20mismatch','expected-children-count','add','\x20has\x20','The\x20batch\x20delete\x20may\x20have\x20partially\x20applied;\x20inspect\x20the\x20latest\x20menu\x20facts\x20before\x20creating\x20a\x20new\x20plan.','\x22;\x20--recursive\x20requires\x20a\x20folder\x20root.','cookie','\x20references\x20missing\x20child\x20','createdAt','Keep\x20every\x20shared\x20page\x20reference\x20outside\x20this\x20operation,\x20or\x20choose\x20a\x20folder\x20whose\x20complete\x20subtree\x20contains\x20all\x20references.','Menu\x20tree\x20contains\x20a\x20cycle\x20at\x20menu\x20','snapshot','menu_non_empty','menu_verification_failed','/smartapi/menu/batchDelete','expect-parent-id','Required\x20for\x20execution;\x20consume\x20an\x20unexpired\x20plan\x20created\x20by\x20--plan-out','forEach','Folder\x20','dry-run','menu\x20list','length','4779848Zqgpvh','toLowerCase','absentIds','verification','has','POST','Deleted\x20','\x20direct\x20child\x20menu(s)\x20and\x20cannot\x20be\x20deleted.','Inspect\x20the\x20folder\x20in\x20the\x20platform\x20before\x20deleting\x20it.','deleteOrder','Inspect\x20and\x20repair\x20the\x20folder\x20resource\x20binding\x20in\x20the\x20platform\x20before\x20deleting\x20it.','Post-mismatch\x20menu\x20readback\x20failed\x20(','hash','push','unknown','high-risk-write','Batch\x20delete\x20request\x20for\x20menu\x20','--plan\x20is\x20required\x20for\x20menu\x20delete\x20execution.','path','resourcesValid','cascade','plan-out','map','1524pmyNzm','Deleting\x20page-bound\x20menus\x20invokes\x20the\x20platform\x27s\x20existing\x20page\x20and\x20PageSchema\x20cascade;\x20listed\x20page\x20ids\x20are\x20direct\x20menu\x20bindings.','plan\x20delete','Menu\x20delete\x20plan\x20cascade\x20does\x20not\x20match\x20the\x20reviewed\x20target\x20page\x20facts.','\x20is\x20not\x20a\x20folder.','boolean','24453lGHuMZ','delete','validation','menu_plan_invalid','byId','menus','220764Akncto','plan-validation','causeMessage','Inspect\x20the\x20latest\x20menu\x20facts\x20and\x20generate\x20a\x20new\x20delete\x20plan;\x20do\x20not\x20retry\x20this\x20plan.','menu_tree_invalid','menu_recursive_requires_folder','folder','Recursive\x20menu\x20delete\x20plan\x20root\x20'];a108_0x4d1a=function(){return _0x35bd3f;};return a108_0x4d1a();}function a108_0x205a(_0x36228a,_0x45dd8a){_0x36228a=_0x36228a-0x1f0;const _0x4d1a8f=a108_0x4d1a();let _0x205a4b=_0x4d1a8f[_0x36228a];return _0x205a4b;}import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{assertMenuDeletePlanCurrent,assertMenuDeletePlanExecutable,createMenuDeletePlanFile,mutationPlanFromDeleteFile,readMenuDeletePlan,writeMenuDeletePlan}from'../../commands/menu/shared/delete-plan.js';import{fetchMenuSnapshot}from'../../commands/menu/shared/facts.js';import{MENU_EXPECT_FLAGS,MENU_ID_FLAG,asVerificationError,assertExpectedState,describeMenuErrorCause,fetchMutationSnapshot,hasFlag,mapMenuApiError,menuDryRunResult,menuError,menuFailure,mutationResult,requireExplicitYes,requireMenu,validateExactId}from'../../commands/menu/shared/mutations.js';import{batchDeleteMenuEntities}from'../../commands/menu/shared/service.js';import{CliError,CliErrors}from'../../errors.js';const BACKEND=[{'method':a108_0x4b1a15(0x22a),'path':a108_0x4b1a15(0x21d)}],MENU_DELETE_ID_FLAG={...MENU_ID_FLAG,'required':![],'description':'Exact\x20menu\x20id\x20(required\x20with\x20--dry-run)'},MENU_DELETE_RECURSIVE_FLAG={'name':a108_0x4b1a15(0x1f8),'type':a108_0x4b1a15(0x241),'description':a108_0x4b1a15(0x254)},MENU_DELETE_PLAN_OUT_FLAG={'name':a108_0x4b1a15(0x23a),'type':a108_0x4b1a15(0x255),'description':a108_0x4b1a15(0x251)},MENU_DELETE_PLAN_FLAG={'name':'plan','type':a108_0x4b1a15(0x255),'description':a108_0x4b1a15(0x21f)};export const menuDelete={'service':a108_0x4b1a15(0x1ff),'command':a108_0x4b1a15(0x243),'description':'Delete\x20an\x20exact\x20menu\x20or\x20a\x20folder\x20subtree\x20from\x20a\x20reviewed\x20plan','risk':a108_0x4b1a15(0x234),'structuredErrors':!![],'flags':[MENU_DELETE_ID_FLAG,MENU_DELETE_RECURSIVE_FLAG,MENU_DELETE_PLAN_OUT_FLAG,MENU_DELETE_PLAN_FLAG,...MENU_EXPECT_FLAGS,APPCODE_FLAG_OPTIONAL],async 'validate'(_0x49454d){const _0x318285=a108_0x4b1a15;_0x49454d['bool'](_0x318285(0x222))?validateDeleteDryRunInput(_0x49454d):validateDeleteExecuteInput(_0x49454d),requireExplicitYes(_0x49454d);},async 'dryRun'(_0x553140){const _0x498142=a108_0x4b1a15;validateDeleteDryRunInput(_0x553140);const _0x1c637b=await buildDeletePlan(_0x553140),_0x2c6b3a=createMenuDeletePlanFile(_0x553140[_0x498142(0x1f4)],_0x1c637b),_0x400715=await writeMenuDeletePlan(_0x553140[_0x498142(0x259)](_0x498142(0x23a)),_0x2c6b3a),_0x1dbb43=mutationResult({..._0x1c637b,'planFile':{'path':_0x400715,'createdAt':_0x2c6b3a[_0x498142(0x217)],'expiresAt':_0x2c6b3a['expiresAt']}});return menuDryRunResult(_0x1dbb43,{'method':'POST','url':_0x498142(0x21d),'body':{'idList':_0x1dbb43[_0x498142(0x22e)]},'description':_0x498142(0x209)+(_0x1dbb43['deleteOrder']?.[_0x498142(0x224)]??0x1)+'\x20menu(s)\x20under\x20exact\x20id\x20'+_0x1dbb43[_0x498142(0x20b)]['id']+_0x498142(0x267)+_0x400715+'.'});},async 'execute'(_0x2980c1){const _0xd2a855=a108_0x4b1a15;requireExplicitYes(_0x2980c1),validateDeleteExecuteInput(_0x2980c1);const _0x2e7fa9=await readMenuDeletePlan(_0x2980c1['str'](_0xd2a855(0x1fc))),_0x3af3c2=mutationPlanFromDeleteFile(_0x2e7fa9[_0xd2a855(0x1fc)],_0x2e7fa9[_0xd2a855(0x237)]),_0x2807a6=_0x2e7fa9[_0xd2a855(0x1fc)][_0xd2a855(0x1fd)]['id'];try{assertMenuDeletePlanExecutable(_0x2e7fa9[_0xd2a855(0x1fc)],_0x2980c1[_0xd2a855(0x1f4)]);}catch(_0x230418){throw menuFailure(asMenuError(_0x230418),_0x3af3c2,{'stage':_0xd2a855(0x249),'failed':{'id':_0x2807a6}});}let _0x45eb0b,_0x10e854;try{_0x45eb0b=await fetchMutationSnapshot(_0x2980c1,'execute\x20reviewed\x20delete\x20plan',_0x2807a6),_0x10e854=assertMenuDeletePlanCurrent(_0x2e7fa9['plan'],_0x2980c1[_0xd2a855(0x1f4)],_0x45eb0b),assertDeleteTargetsComplete(_0x2e7fa9[_0xd2a855(0x1fc)],_0x45eb0b),_0x10e854[_0xd2a855(0x220)](_0x454e61=>assertDeleteSafety(_0x454e61,_0x2e7fa9[_0xd2a855(0x1fc)][_0xd2a855(0x1f8)])),assertNoSharedPages(_0x45eb0b,_0x10e854),assertCascadeMatchesPlan(_0x3af3c2,_0x10e854);}catch(_0x50c19c){throw menuFailure(asMenuError(_0x50c19c),_0x3af3c2,{'stage':'pre-write-plan-validation','failed':{'id':_0x2807a6}});}const _0x2cddfb=_0x2e7fa9[_0xd2a855(0x1fc)]['deleteOrder'];let _0x38225d;try{_0x38225d=await batchDeleteMenuEntities(_0x2980c1[_0xd2a855(0x215)],_0x2cddfb);}catch(_0x1ea5c2){const _0x4d44f7=mapMenuApiError(_0x1ea5c2,_0xd2a855(0x206)),_0x48bfb6=[_0xd2a855(0x213)];let _0x463945;try{_0x463945=await readDeleteOutcome(_0x2980c1,_0x2cddfb);}catch(_0x204e6a){const _0x28e985=describeMenuErrorCause(_0x204e6a,_0xd2a855(0x1fb),_0x2807a6);_0x48bfb6['push'](_0xd2a855(0x201)+_0x28e985[_0xd2a855(0x1f0)]+_0xd2a855(0x266)+_0x28e985[_0xd2a855(0x24a)]);throw menuFailure(_0x4d44f7,_0x3af3c2,{'stage':_0xd2a855(0x1f3),'failed':{'targetIds':_0x2cddfb,'targetIdsAbsent':_0xd2a855(0x202),..._0x28e985},'warnings':_0x48bfb6,'verification':{'status':_0xd2a855(0x263),'lookupCommand':_0xd2a855(0x20a),'targetIds':_0x2cddfb}});}throw menuFailure(_0x4d44f7,_0x3af3c2,{'stage':_0xd2a855(0x1f3),'succeeded':_0x463945[_0xd2a855(0x227)][_0xd2a855(0x23b)](_0x258e9c=>({'id':_0x258e9c,'deleted':!![]})),'failed':{'targetIds':_0x2cddfb,'absentIds':_0x463945[_0xd2a855(0x227)],'remainingIds':_0x463945[_0xd2a855(0x207)]},'warnings':_0x48bfb6,'verification':verificationFromOutcome(_0x463945)});}if(_0x38225d!==_0x2cddfb['length']){const _0x40ee6b=menuError('menu_batch_delete_count_mismatch',_0xd2a855(0x1fa)+_0x38225d+_0xd2a855(0x1f6)+_0x2cddfb[_0xd2a855(0x224)]+'.',_0xd2a855(0x24b)),_0x619466=[_0xd2a855(0x25e)];let _0x224491;try{_0x224491=await readDeleteOutcome(_0x2980c1,_0x2cddfb);}catch(_0x426ebc){const _0x252b57=describeMenuErrorCause(_0x426ebc,_0xd2a855(0x20f),_0x2807a6);_0x619466[_0xd2a855(0x232)](_0xd2a855(0x230)+_0x252b57[_0xd2a855(0x1f0)]+'):\x20'+_0x252b57[_0xd2a855(0x24a)]);throw menuFailure(_0x40ee6b,_0x3af3c2,{'stage':'batch-delete','failed':{'targetIds':_0x2cddfb,'expectedCount':_0x2cddfb['length'],'reportedDeletedCount':_0x38225d,'targetIdsAbsent':_0xd2a855(0x202),..._0x252b57},'warnings':_0x619466,'verification':{'status':_0xd2a855(0x263),'lookupCommand':'rabetbase\x20menu\x20list\x20--format\x20json','targetIds':_0x2cddfb}});}throw menuFailure(_0x40ee6b,_0x3af3c2,{'stage':_0xd2a855(0x1f3),'succeeded':_0x224491['absentIds'][_0xd2a855(0x23b)](_0x402d13=>({'id':_0x402d13,'deleted':!![]})),'failed':{'targetIds':_0x2cddfb,'expectedCount':_0x2cddfb['length'],'reportedDeletedCount':_0x38225d,'absentIds':_0x224491[_0xd2a855(0x227)],'remainingIds':_0x224491[_0xd2a855(0x207)]},'warnings':_0x619466,'verification':verificationFromOutcome(_0x224491)});}let _0x305dca;try{_0x305dca=await readDeleteOutcome(_0x2980c1,_0x2cddfb);}catch(_0x4e37a3){const _0x1b5d81=describeMenuErrorCause(_0x4e37a3,'verify\x20batch\x20delete',_0x2807a6),_0x4d2bf4=asVerificationError(_0x4e37a3,_0xd2a855(0x235)+_0x2807a6+'\x20completed\x20but\x20readback\x20could\x20not\x20confirm\x20absence');throw menuFailure(_0x4d2bf4,_0x3af3c2,{'stage':_0xd2a855(0x228),'succeeded':_0x2cddfb[_0xd2a855(0x23b)](_0x4f0a41=>({'id':_0x4f0a41,'deleteRequested':!![]})),'failed':{'id':_0x2807a6,'targetIds':_0x2cddfb,'targetIdsAbsent':_0xd2a855(0x202),..._0x1b5d81},'warnings':['The\x20batch\x20delete\x20request\x20was\x20accepted,\x20but\x20its\x20final\x20online\x20state\x20is\x20unconfirmed.'],'verification':{'status':'failed','lookupCommand':_0xd2a855(0x20a),'targetIds':_0x2cddfb}});}if(_0x305dca[_0xd2a855(0x207)][_0xd2a855(0x224)]>0x0){const _0x2ea8a5=menuError(_0xd2a855(0x21c),'One\x20or\x20more\x20planned\x20menus\x20are\x20still\x20present\x20after\x20the\x20batch\x20delete\x20request:\x20'+_0x305dca[_0xd2a855(0x207)][_0xd2a855(0x25a)](',\x20')+'.',_0xd2a855(0x24b));throw menuFailure(_0x2ea8a5,_0x3af3c2,{'stage':_0xd2a855(0x228),'succeeded':_0x2cddfb[_0xd2a855(0x23b)](_0x2de68b=>({'id':_0x2de68b,'deleteRequested':!![]})),'failed':{'id':_0x2807a6,'targetIds':_0x2cddfb,'absentIds':_0x305dca['absentIds'],'remainingIds':_0x305dca[_0xd2a855(0x207)]},'warnings':[_0xd2a855(0x261)],'verification':verificationFromOutcome(_0x305dca)});}const _0x249384=_0x2cddfb['map'](_0x1e710c=>({'id':_0x1e710c,'deleted':!![]})),_0x539aeb=mutationResult({..._0x3af3c2,'dryRun':![],'succeeded':_0x249384,'verification':{'checkedBy':'menu\x20list','plannedSnapshotHash':_0x3af3c2['snapshotHash'],'finalSnapshotHash':_0x305dca['snapshot'][_0xd2a855(0x231)],'reportedDeletedCount':_0x38225d,'targetAbsent':!_0x305dca[_0xd2a855(0x21a)][_0xd2a855(0x246)][_0xd2a855(0x229)](_0x2807a6),'allTargetsAbsent':!![],'targetIds':_0x2cddfb}});return{'ok':!![],'data':_0x539aeb,'message':_0xd2a855(0x22b)+_0x249384['length']+_0xd2a855(0x203)+_0x2807a6+'.'};}};async function readDeleteOutcome(_0x506873,_0x58f307){const _0x31281f=a108_0x4b1a15,_0x389f9f=await fetchMenuSnapshot(_0x506873[_0x31281f(0x1f4)],_0x506873[_0x31281f(0x215)]);return{'snapshot':_0x389f9f,'absentIds':_0x58f307[_0x31281f(0x260)](_0x31e5f8=>!_0x389f9f[_0x31281f(0x246)][_0x31281f(0x229)](_0x31e5f8)),'remainingIds':_0x58f307[_0x31281f(0x260)](_0x44840b=>_0x389f9f[_0x31281f(0x246)][_0x31281f(0x229)](_0x44840b))};}function verificationFromOutcome(_0x1558bf){const _0x3a09b3=a108_0x4b1a15;return{'checkedBy':_0x3a09b3(0x223),'absentIds':_0x1558bf['absentIds'],'remainingIds':_0x1558bf['remainingIds']};}function validateDeleteDryRunInput(_0x22df65){const _0x41becc=a108_0x4b1a15;validateExactId(_0x22df65);if(!hasFlag(_0x22df65,_0x41becc(0x23a))||!_0x22df65[_0x41becc(0x259)](_0x41becc(0x23a))[_0x41becc(0x25d)]())throw CliErrors[_0x41becc(0x1f2)](_0x41becc(0x23a),_0x41becc(0x265));if(hasFlag(_0x22df65,'plan'))throw CliErrors[_0x41becc(0x244)](_0x41becc(0x253));}function validateDeleteExecuteInput(_0x387f78){const _0x453748=a108_0x4b1a15;if(!hasFlag(_0x387f78,'plan')||!_0x387f78[_0x453748(0x259)](_0x453748(0x1fc))[_0x453748(0x25d)]())throw CliErrors[_0x453748(0x1f2)](_0x453748(0x1fc),_0x453748(0x236));const _0x36e9f1=['id',_0x453748(0x1f8),_0x453748(0x23a),_0x453748(0x21e),'expect-path',_0x453748(0x210)]['filter'](_0x5e0cdd=>hasFlag(_0x387f78,_0x5e0cdd));if(_0x36e9f1[_0x453748(0x224)]>0x0)throw CliErrors[_0x453748(0x244)](_0x453748(0x1f9)+_0x36e9f1[_0x453748(0x23b)](_0x2a36a1=>'--'+_0x2a36a1)['join'](',\x20')+'.');}async function buildDeletePlan(_0x19dc74){const _0x4be727=a108_0x4b1a15,_0x51c561=validateExactId(_0x19dc74),_0x450e31=await fetchMutationSnapshot(_0x19dc74,_0x4be727(0x23e),_0x51c561),_0x3263c0=requireMenu(_0x450e31,_0x51c561);assertExpectedState(_0x19dc74,_0x3263c0);const _0x25d3ea=_0x19dc74['bool'](_0x4be727(0x1f8));let _0x23b1c0;if(_0x25d3ea){if(_0x3263c0['type']['trim']()[_0x4be727(0x226)]()!=='folder')throw menuError(_0x4be727(0x24d),_0x4be727(0x262)+_0x3263c0['id']+'\x20is\x20type\x20\x22'+(_0x3263c0[_0x4be727(0x258)]||_0x4be727(0x233))+_0x4be727(0x214));_0x23b1c0=collectDeleteTargets(_0x450e31,_0x3263c0),_0x23b1c0[_0x4be727(0x220)](_0x28865d=>assertDeleteSafety(_0x28865d,!![]));}else assertDeleteSafety(_0x3263c0),_0x23b1c0=[_0x3263c0];assertNoSharedPages(_0x450e31,_0x23b1c0);const _0x602cf7=_0x23b1c0[_0x4be727(0x23b)](_0x1cdb56=>_0x1cdb56['id']),_0x54ba9c=cascadeForTargets(_0x23b1c0),_0x125e3c=_0x54ba9c[_0x4be727(0x264)]['length']>0x0?[_0x4be727(0x23d)]:[];return mutationResult({'operation':_0x4be727(0x243),'selector':{'id':_0x51c561,'recursive':_0x25d3ea},'before':_0x3263c0,'after':null,'dryRun':!![],'backend':[...BACKEND],'plannedActions':[{'stage':'batch-delete-menu','method':_0x4be727(0x22a),'path':_0x4be727(0x21d),'body':{'idList':_0x602cf7}}],'targets':_0x23b1c0,'deleteOrder':_0x602cf7,'snapshotHash':_0x450e31[_0x4be727(0x231)],'cascade':_0x54ba9c,'warnings':_0x125e3c});}function assertDeleteSafety(_0x38afaf,_0x149753=![]){const _0x4fbff6=a108_0x4b1a15,_0x34c192=_0x38afaf[_0x4fbff6(0x258)][_0x4fbff6(0x25d)]()[_0x4fbff6(0x226)]()===_0x4fbff6(0x24e);if(_0x38afaf[_0x4fbff6(0x200)]>0x0&&(!_0x149753||!_0x34c192))throw menuError(_0x4fbff6(0x21b),_0x4fbff6(0x262)+_0x38afaf['id']+_0x4fbff6(0x212)+_0x38afaf[_0x4fbff6(0x200)]+_0x4fbff6(0x22c),'Handle\x20child\x20ids\x20in\x20the\x20platform\x20first:\x20'+_0x38afaf[_0x4fbff6(0x252)]['join'](',\x20'));if(_0x34c192&&_0x38afaf[_0x4fbff6(0x25f)]!=null)throw menuError(_0x4fbff6(0x26b),_0x4fbff6(0x221)+_0x38afaf['id']+'\x20is\x20unexpectedly\x20bound\x20to\x20page\x20'+_0x38afaf[_0x4fbff6(0x25f)]+'\x20and\x20cannot\x20be\x20deleted\x20safely.',_0x4fbff6(0x22d));if(!_0x34c192)return;if(!_0x38afaf[_0x4fbff6(0x238)])throw menuError(_0x4fbff6(0x20d),_0x4fbff6(0x221)+_0x38afaf['id']+_0x4fbff6(0x26d),_0x4fbff6(0x22f));if(_0x38afaf[_0x4fbff6(0x1f7)][_0x4fbff6(0x224)]>0x0)throw menuError(_0x4fbff6(0x256),_0x4fbff6(0x221)+_0x38afaf['id']+_0x4fbff6(0x257)+_0x38afaf[_0x4fbff6(0x1f7)]['length']+'\x20resource\x20URL(s).','Remove\x20or\x20verify\x20the\x20resource\x20bindings\x20in\x20the\x20platform\x20before\x20deleting\x20the\x20folder.');}function collectDeleteTargets(_0x41bed3,_0x35ad29){const _0x3b2eb8=[],_0x58591f=new Set(),_0x2b575b=new Set(),_0x174128=_0x426da2=>{const _0x345205=a108_0x205a;if(_0x58591f[_0x345205(0x229)](_0x426da2['id']))throw menuError(_0x345205(0x24c),_0x345205(0x219)+_0x426da2['id']+'.');if(_0x2b575b['has'](_0x426da2['id']))return;_0x58591f[_0x345205(0x211)](_0x426da2['id']);for(const _0x1c08d5 of _0x426da2['childrenIds']){const _0xd62a8c=_0x41bed3['byId'][_0x345205(0x1fe)](_0x1c08d5);if(!_0xd62a8c)throw menuError('menu_tree_invalid','Menu\x20'+_0x426da2['id']+_0x345205(0x216)+_0x1c08d5+'.');_0x174128(_0xd62a8c);}_0x58591f[_0x345205(0x243)](_0x426da2['id']),_0x2b575b[_0x345205(0x211)](_0x426da2['id']),_0x3b2eb8[_0x345205(0x232)](_0x426da2);};return _0x174128(_0x35ad29),_0x3b2eb8;}function assertDeleteTargetsComplete(_0x362b8c,_0x23704c){const _0x446990=a108_0x4b1a15,_0x1a9594=requireMenu(_0x23704c,_0x362b8c['target']['id']);if(_0x362b8c[_0x446990(0x1f8)]&&_0x1a9594[_0x446990(0x258)]['trim']()[_0x446990(0x226)]()!==_0x446990(0x24e))throw menuError('menu_plan_invalid',_0x446990(0x24f)+_0x1a9594['id']+_0x446990(0x240));const _0x1634fb=_0x362b8c[_0x446990(0x1f8)]?collectDeleteTargets(_0x23704c,_0x1a9594)[_0x446990(0x23b)](_0x10ccb3=>_0x10ccb3['id']):[_0x1a9594['id']];if(JSON[_0x446990(0x269)](_0x362b8c[_0x446990(0x22e)])!==JSON[_0x446990(0x269)](_0x1634fb))throw menuError('menu_plan_invalid',_0x446990(0x1f5),_0x446990(0x208));}function assertNoSharedPages(_0xd31f71,_0x401024){const _0x5c7f0e=a108_0x4b1a15,_0x5e0832=new Set(_0x401024[_0x5c7f0e(0x23b)](_0x433a42=>_0x433a42['id'])),_0x53e2a5=new Set(_0x401024[_0x5c7f0e(0x23b)](_0x4dd507=>_0x4dd507[_0x5c7f0e(0x25f)])[_0x5c7f0e(0x260)](_0x225506=>_0x225506!=null));if(_0x53e2a5[_0x5c7f0e(0x26c)]===0x0)return;const _0x584f77=_0xd31f71[_0x5c7f0e(0x247)][_0x5c7f0e(0x260)](_0x20c223=>!_0x5e0832[_0x5c7f0e(0x229)](_0x20c223['id'])&&_0x20c223[_0x5c7f0e(0x25f)]!=null&&_0x53e2a5[_0x5c7f0e(0x229)](_0x20c223[_0x5c7f0e(0x25f)]));if(_0x584f77[_0x5c7f0e(0x224)]===0x0)return;const _0x323494=_0x584f77[_0x5c7f0e(0x23b)](_0x1ea5cd=>'page\x20'+_0x1ea5cd[_0x5c7f0e(0x25f)]+_0x5c7f0e(0x250)+_0x1ea5cd['id'])[_0x5c7f0e(0x25a)](',\x20');throw menuError(_0x5c7f0e(0x1f1),_0x5c7f0e(0x20e)+_0x323494+'.',_0x5c7f0e(0x218));}function assertCascadeMatchesPlan(_0x580145,_0x52266d){const _0x8e74bc=a108_0x4b1a15,_0x205d3f=cascadeForTargets(_0x52266d);if(JSON[_0x8e74bc(0x269)](_0x580145[_0x8e74bc(0x239)])!==JSON[_0x8e74bc(0x269)](_0x205d3f))throw menuError('menu_plan_invalid',_0x8e74bc(0x23f));}function cascadeForTargets(_0x3859e9){const _0xd7919c=a108_0x4b1a15,_0x3d42c3=_0x3859e9['map'](_0x418e6f=>_0x418e6f['pageId'])['filter'](_0x5e26b8=>_0x5e26b8!=null)['filter']((_0x155e14,_0x281d97,_0x19f225)=>_0x19f225['indexOf'](_0x155e14)===_0x281d97);return{'pages':_0x3d42c3,'pageSchemaAffected':_0x3d42c3[_0xd7919c(0x224)]>0x0};}function asMenuError(_0x1a7ede){const _0x383c43=a108_0x4b1a15;return _0x1a7ede instanceof CliError?_0x1a7ede:menuError(_0x383c43(0x245),_0x1a7ede instanceof Error?_0x1a7ede[_0x383c43(0x268)]:String(_0x1a7ede));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a109_0x429820=a109_0x75f7;(function(_0x47954f,_0x1cda9a){const _0x32a118=a109_0x75f7,_0x27f949=_0x47954f();while(!![]){try{const _0x36c363=-parseInt(_0x32a118(0x201))/0x1+-parseInt(_0x32a118(0x21e))/0x2+parseInt(_0x32a118(0x239))/0x3*(-parseInt(_0x32a118(0x1de))/0x4)+-parseInt(_0x32a118(0x1f2))/0x5*(-parseInt(_0x32a118(0x1d6))/0x6)+parseInt(_0x32a118(0x1d9))/0x7*(parseInt(_0x32a118(0x255))/0x8)+parseInt(_0x32a118(0x203))/0x9+-parseInt(_0x32a118(0x221))/0xa*(-parseInt(_0x32a118(0x227))/0xb);if(_0x36c363===_0x1cda9a)break;else _0x27f949['push'](_0x27f949['shift']());}catch(_0x2ec7e5){_0x27f949['push'](_0x27f949['shift']());}}}(a109_0x1869,0x500e0));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';function a109_0x1869(){const _0x15ae07=['The\x20create\x20request\x20may\x20have\x20succeeded;\x20inspect\x20current\x20menu\x20facts\x20before\x20any\x20retry.','parent-id','Would\x20create\x20external\x20website\x20link\x20menu\x20','\x20was\x20created\x20but\x20final\x20facts\x20could\x20not\x20be\x20read.','new-window','length','create-recovery','\x20was\x20observed\x20after\x20response\x20loss;\x20inspect\x20it\x20before\x20any\x20retry.','username','<platform-generated>','url','object','\x20after\x20response\x20loss.','Permission\x20denied\x20while\x20creating\x20the\x20external\x20menu.','Menu\x20','afterPlan','Created\x20menu\x20','lookupCommand','5huftTe','<redacted>','replace','Created\x20menu\x20facts\x20could\x20not\x20be\x20verified\x20safely.','Menu\x20create\x20response\x20could\x20not\x20be\x20verified\x20safely.','\x20opening\x20mode\x20and\x20a\x20platform-generated\x20path.','menu_sort_invalid','code','hash','Inspect\x20current\x20menu\x20facts\x20before\x20retrying\x20the\x20operation.','Choose\x20embedded\x20to\x20keep\x20the\x20application\x20shell,\x20or\x20new-window\x20to\x20open\x20the\x20website\x20separately.','data','Recovered\x20menu\x20','External\x20menu\x20creation\x20failed.','isSafeInteger','651172DgvxYN','byId','3397878yfBmFq','type','body','Inspect\x20current\x20menu\x20facts\x20before\x20retrying.','menu_create_response_invalid','path','How\x20to\x20open\x20the\x20external\x20website','sort','\x20remains\x20available\x20for\x20manual\x20inspection;\x20do\x20not\x20retry\x20blindly.','\x20has\x20an\x20unexpected\x20generated\x20path.','createdId','Menu\x20label','rabetbase\x20menu\x20list\x20--appcode\x20','str','menu_url_credentials_forbidden','menu_parent_not_folder','prototype','\x27\x5c\x27\x27','visibility','\x20failed\x20final\x20verification.','pre-write-recheck','snapshot','\x20and\x20inspect\x20the\x20created\x20id\x20before\x20retrying.','Menu\x20create\x20response\x20did\x20not\x20contain\x20a\x20valid\x20id\x20and\x20non-empty\x20generated\x20path.','plannedActions','External\x20menu\x20URL\x20must\x20not\x20contain\x20embedded\x20credentials.','Run\x20the\x20command\x20with\x20--dry-run\x20again\x20and\x20review\x20the\x20latest\x20snapshot.','860564CqBgHL','label','menu_mutation_failed','10WaqPbh','add','trim','menu','isArray','Use\x20the\x20structured\x20verification\x20lookup\x20command\x20before\x20retrying.','2964302MIvkVP','toLowerCase','https:','external-link-create','parent','POST','Whether\x20the\x20menu\x20is\x20visible','External\x20HTTPS\x20URL','has','fact','menu_state_drift','Provide\x20an\x20absolute\x20HTTPS\x20URL\x20without\x20embedded\x20credentials.','expectedPath','Recovered\x20created\x20external\x20menu\x20','visible','parentId','verification','cookie','87mqcihj','string','\x20is\x20missing\x20from\x20final\x20menu\x20facts.','\x20--format\x20compress','rawerror','before','Run\x20','stringify','failed','The\x20create\x20request\x20may\x20have\x20succeeded.\x20Automatic\x20retry\x20is\x20disabled\x20to\x20prevent\x20duplicates.','plan','menu_not_found','Created\x20external\x20menu\x20','The\x20create\x20response\x20was\x20lost\x20and\x20the\x20created\x20menu\x20cannot\x20be\x20identified\x20safely.','link','includes','menu_permission_denied','bool','causemessage','readbackerror','Confirm\x20that\x20the\x20current\x20account\x20can\x20manage\x20menus\x20for\x20this\x20app.','Remove\x20credentials\x20from\x20the\x20URL\x20and\x20use\x20platform-managed\x20authentication.','after','succeeded','/smartapi/menu/create','currentSnapshotHash','rawFlags','open-mode','167208wYvPJW','menu_create_recovery_required','create\x20external\x20menu','Use\x20the\x20structured\x20verification\x20lookup\x20command\x20and\x20do\x20not\x20retry\x20blindly.','Inspect\x20the\x20created\x20menu\x20before\x20retrying\x20the\x20operation.','map','expectedSnapshotHash','filter','menu\x20list','2261274NGAQNb','\x20with\x20','menu_verification_failed','189RUJVee','menus','get','menu_url_invalid','iframe','24672RanSxl','appCode'];a109_0x1869=function(){return _0x15ae07;};return a109_0x1869();}import{fetchMenuSnapshot}from'../../commands/menu/shared/facts.js';import{MENU_PARENT_ID_FLAG,MENU_SORT_FLAG,fetchMutationSnapshot,menuDryRunResult,menuError,menuFailure,mapMenuApiError,isMenuResponseLoss,mutationResult,nextSiblingSort,parseParentId,recheckMutationSnapshot,requireFolder,toApiParentId,validateSort}from'../../commands/menu/shared/mutations.js';import{createMenuEntity}from'../../commands/menu/shared/service.js';import{CliError,CliErrors}from'../../errors.js';const EXTERNAL_MENU_TYPES_BY_OPEN_MODE={'embedded':a109_0x429820(0x1dd),'new-window':a109_0x429820(0x247)};export function validateExternalMenuUrl(_0x16538c){const _0x35391c=a109_0x429820,_0x5865d2=_0x16538c['trim']();let _0x1cfcdb;try{_0x1cfcdb=new URL(_0x5865d2);}catch{throw menuError(_0x35391c(0x1dc),'External\x20menu\x20URL\x20must\x20be\x20a\x20valid\x20absolute\x20URL.',_0x35391c(0x232));}if(_0x1cfcdb['protocol']!==_0x35391c(0x229))throw menuError('menu_url_https_required','External\x20menu\x20URL\x20must\x20use\x20HTTPS.','Provide\x20an\x20HTTPS\x20URL.');if(_0x1cfcdb[_0x35391c(0x1e8)]||_0x1cfcdb['password'])throw menuError(_0x35391c(0x211),_0x35391c(0x21c),_0x35391c(0x24e));return _0x5865d2;}function a109_0x75f7(_0x2a966d,_0x1f884b){_0x2a966d=_0x2a966d-0x1d2;const _0x186910=a109_0x1869();let _0x75f738=_0x186910[_0x2a966d];return _0x75f738;}export const menuExternalLinkCreate={'service':a109_0x429820(0x224),'command':a109_0x429820(0x22a),'description':'Create\x20an\x20external\x20website\x20link\x20menu','risk':'write','structuredErrors':!![],'flags':[{'name':a109_0x429820(0x21f),'type':a109_0x429820(0x23a),'required':!![],'description':a109_0x429820(0x20e)},{'name':a109_0x429820(0x254),'type':'string','required':!![],'enum':['embedded',a109_0x429820(0x1e4)],'description':a109_0x429820(0x209)},{'name':'url','type':a109_0x429820(0x23a),'required':!![],'description':a109_0x429820(0x22e)},MENU_PARENT_ID_FLAG,MENU_SORT_FLAG,{'name':a109_0x429820(0x235),'type':'boolean','default':!![],'description':a109_0x429820(0x22d)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x42b1d1){validateAddInput(_0x42b1d1);},async 'dryRun'(_0x1fbfc0){const _0x1ec4cf=a109_0x429820;validateAddInput(_0x1fbfc0);const {plan:_0x1d9867}=await buildSafeAddPlan(_0x1fbfc0,!![]),_0x4ff3a1=_0x1d9867[_0x1ec4cf(0x24f)],_0x26321=createBody(_0x4ff3a1);return menuDryRunResult(_0x1d9867,{'method':_0x1ec4cf(0x22c),'url':_0x1ec4cf(0x251),'body':_0x26321,'description':_0x1ec4cf(0x1e2)+JSON[_0x1ec4cf(0x240)](_0x4ff3a1[_0x1ec4cf(0x21f)])+_0x1ec4cf(0x1d7)+_0x1fbfc0[_0x1ec4cf(0x210)](_0x1ec4cf(0x254))+_0x1ec4cf(0x1f7)});},async 'execute'(_0xcdcd06){const _0x4078f1=a109_0x429820;validateAddInput(_0xcdcd06);const _0x95ef32=await buildSafeAddPlan(_0xcdcd06,![]),{plan:_0x46f08f,snapshot:_0x2832d4}=_0x95ef32,_0x575092=_0x46f08f[_0x4078f1(0x24f)],_0x3f996d=buildMenuLookupCommand(_0xcdcd06[_0x4078f1(0x1df)]);await recheckAddSnapshot(_0xcdcd06,_0x46f08f);let _0x2233d3;try{_0x2233d3=await createMenuEntity(_0xcdcd06['appCode'],_0xcdcd06['cookie'],createBody(_0x575092));}catch(_0xd28fc3){const _0x153b0f=mapMenuApiError(_0xd28fc3,_0x4078f1(0x257));if(!isMenuResponseLoss(_0xd28fc3)||_0x153b0f[_0x4078f1(0x1f9)]===_0x4078f1(0x249))throw externalLinkCreateFailure(_0x153b0f,_0x46f08f,{'stage':'create','failed':{},'verification':{'status':_0x4078f1(0x241),'lookupCommand':_0x3f996d}});return recoverAfterResponseLoss(_0xcdcd06,_0x95ef32,_0x3f996d);}const _0x69be02=Number(_0x2233d3?.['id']),_0x5e031d=typeof _0x2233d3?.[_0x4078f1(0x208)]==='string'?_0x2233d3[_0x4078f1(0x208)]:'';if(!Number[_0x4078f1(0x200)](_0x69be02)||_0x69be02<=0x0||!_0x5e031d['trim']()){const _0x3c39d2=menuError(_0x4078f1(0x207),_0x4078f1(0x21a),'Run\x20'+_0x3f996d+'\x20before\x20retrying;\x20the\x20menu\x20may\x20already\x20exist.');throw externalLinkCreateFailure(_0x3c39d2,_0x46f08f,{'stage':'create-response-validation','succeeded':Number[_0x4078f1(0x200)](_0x69be02)&&_0x69be02>0x0?[{'id':_0x69be02,'created':!![]}]:[],'failed':{'createdId':Number[_0x4078f1(0x200)](_0x69be02)?_0x69be02:null,'generatedPathConfirmed':Boolean(_0x5e031d[_0x4078f1(0x223)]())},'warnings':[_0x4078f1(0x1e0)],'after':Number[_0x4078f1(0x200)](_0x69be02)&&_0x69be02>0x0?{..._0x575092,'id':_0x69be02,'path':_0x5e031d}:_0x575092,'verification':{'status':_0x4078f1(0x241),'lookupCommand':_0x3f996d,...Number['isSafeInteger'](_0x69be02)&&_0x69be02>0x0?{'targetId':_0x69be02}:{}}});}const _0x133e77=await readAndVerifyCreatedMenu({'appCode':_0xcdcd06[_0x4078f1(0x1df)],'cookie':_0xcdcd06[_0x4078f1(0x238)],'plan':_0x46f08f,'afterPlan':_0x575092,'createdId':_0x69be02,'expectedPath':_0x5e031d,'lookupCommand':_0x3f996d,'recovered':![]});return creationSuccess(_0x46f08f,_0x133e77[_0x4078f1(0x218)],_0x133e77[_0x4078f1(0x230)],![]);}};function validateAddInput(_0x525568){const _0x113b48=a109_0x429820;if(!_0x525568[_0x113b48(0x210)](_0x113b48(0x21f))[_0x113b48(0x223)]())throw CliErrors['flagMissing'](_0x113b48(0x21f));resolveExternalMenuType(_0x525568),validateExternalMenuUrl(_0x525568[_0x113b48(0x210)]('url')),parseParentId(_0x525568,_0x113b48(0x1e1)),validateSort(_0x525568);}function resolveExternalMenuType(_0x51fc8b){const _0x2b36bd=a109_0x429820,_0x2e0651=_0x51fc8b[_0x2b36bd(0x210)]('open-mode')[_0x2b36bd(0x223)]();if(!_0x2e0651)throw CliErrors['flagMissing'](_0x2b36bd(0x254));const _0x3cf0ff=EXTERNAL_MENU_TYPES_BY_OPEN_MODE[_0x2e0651];if(!_0x3cf0ff)throw menuError('menu_open_mode_invalid','--open-mode\x20must\x20be\x20embedded\x20or\x20new-window.',_0x2b36bd(0x1fc));return _0x3cf0ff;}async function buildAddPlan(_0x4f4f79,_0x35cab2){const _0x26fa3b=a109_0x429820,_0x234d45=await fetchMutationSnapshot(_0x4f4f79,_0x26fa3b(0x257)),_0x36ad91=parseParentId(_0x4f4f79,_0x26fa3b(0x1e1))??null;if(_0x36ad91!=null)requireFolder(_0x234d45,_0x36ad91);const _0x2dad00=validateSort(_0x4f4f79),_0x365a82=_0x2dad00??nextSiblingSort(_0x234d45,_0x36ad91,_0x26fa3b(0x224)),_0xc118c5=_0x4f4f79['str'](_0x26fa3b(0x21f))[_0x26fa3b(0x223)](),_0x3fb9a8=resolveExternalMenuType(_0x4f4f79),_0x1286e2=validateExternalMenuUrl(_0x4f4f79['str'](_0x26fa3b(0x1ea))),_0x482996=Object[_0x26fa3b(0x213)]['hasOwnProperty']['call'](_0x4f4f79[_0x26fa3b(0x253)],_0x26fa3b(0x235))?_0x4f4f79[_0x26fa3b(0x24a)](_0x26fa3b(0x235)):!![],_0x4a2f8c={'id':null,'parentId':_0x36ad91,'label':_0xc118c5,'path':_0x26fa3b(0x1e9),'url':_0x1286e2,'type':_0x3fb9a8,'visible':_0x482996,'sort':_0x365a82},_0x38de8e=buildMenuLookupCommand(_0x4f4f79[_0x26fa3b(0x1df)]),_0xcbca49=mutationResult({'operation':_0x26fa3b(0x222),'selector':{'parentId':_0x36ad91,'type':_0x3fb9a8,'label':_0xc118c5,'url':_0x1286e2},'before':null,'after':_0x4a2f8c,'dryRun':_0x35cab2,'backend':[{'method':_0x26fa3b(0x22c),'path':'/smartapi/menu/create'}],'plannedActions':[{'stage':'create-menu','method':_0x26fa3b(0x22c),'path':_0x26fa3b(0x251),'body':createBody(_0x4a2f8c)}],'snapshotHash':_0x234d45[_0x26fa3b(0x1fa)],'warnings':['The\x20platform\x20assigns\x20the\x20menu\x20a\x20non-empty\x20path\x20used\x20by\x20menu\x20routing\x20and\x20keys.'],'verification':{'lookupCommand':_0x38de8e}});return{'plan':_0xcbca49,'snapshot':_0x234d45};}async function buildSafeAddPlan(_0x29e4fa,_0x3c0d79){try{return await buildAddPlan(_0x29e4fa,_0x3c0d79);}catch(_0x3bc9cf){throw safeMenuAddError(_0x3bc9cf);}}async function recheckAddSnapshot(_0x4c5a2a,_0x341d8c){const _0x1ff30a=a109_0x429820;try{await recheckMutationSnapshot(_0x4c5a2a,_0x341d8c,_0x1ff30a(0x257));}catch(_0x54579b){const _0xbd3555=getFailureRecord(_0x54579b);throw externalLinkCreateFailure(_0x54579b,_0x341d8c,{'stage':_0x1ff30a(0x217),'failed':{..._0xbd3555?.[_0x1ff30a(0x1d3)]?{'expectedSnapshotHash':_0xbd3555[_0x1ff30a(0x1d3)]}:{},..._0xbd3555?.[_0x1ff30a(0x252)]?{'currentSnapshotHash':_0xbd3555[_0x1ff30a(0x252)]}:{}}});}}function createBody(_0x1ae5f9){const _0x37e61c=a109_0x429820;return{'parentId':toApiParentId(_0x1ae5f9[_0x37e61c(0x236)]),'label':String(_0x1ae5f9[_0x37e61c(0x21f)]),'type':String(_0x1ae5f9[_0x37e61c(0x204)]),'url':String(_0x1ae5f9[_0x37e61c(0x1ea)]),'visible':Boolean(_0x1ae5f9[_0x37e61c(0x235)]),'sort':Number(_0x1ae5f9[_0x37e61c(0x20a)]),'extend':{}};}function buildMenuLookupCommand(_0x4559e6){const _0x349ef1=a109_0x429820,_0x13c4d8='\x27'+_0x4559e6['replace'](/'/g,_0x349ef1(0x214))+'\x27';return _0x349ef1(0x20f)+_0x13c4d8+_0x349ef1(0x23c);}async function recoverAfterResponseLoss(_0x20f880,_0x1bc9af,_0x2718fb){const _0x1eb2ed=a109_0x429820,{plan:_0x11bfe3,snapshot:_0x3d1f5b}=_0x1bc9af,_0x4dfc09=_0x11bfe3[_0x1eb2ed(0x24f)];let _0x95caff;try{_0x95caff=await fetchMenuSnapshot(_0x20f880['appCode'],_0x20f880[_0x1eb2ed(0x238)]);}catch(_0x3095b9){throw recoveryRequiredFailure(_0x11bfe3,_0x2718fb,{'matchCount':null,'newMatchCount':null,'preexistingMatchCount':null,'readbackFailed':!![]});}const _0x4305d3=_0x95caff[_0x1eb2ed(0x1da)]['filter'](_0x42831d=>_0x42831d['parentId']===_0x4dfc09[_0x1eb2ed(0x236)]&&_0x42831d[_0x1eb2ed(0x204)]===_0x4dfc09['type']&&_0x42831d[_0x1eb2ed(0x21f)]===_0x4dfc09['label']&&_0x42831d[_0x1eb2ed(0x1ea)]===_0x4dfc09[_0x1eb2ed(0x1ea)]),_0x845eae=_0x4305d3[_0x1eb2ed(0x1d4)](_0xc78c02=>!_0x3d1f5b[_0x1eb2ed(0x202)][_0x1eb2ed(0x22f)](_0xc78c02['id'])),_0x30610e=_0x4305d3[_0x1eb2ed(0x1d4)](_0x129d36=>_0x3d1f5b[_0x1eb2ed(0x202)][_0x1eb2ed(0x22f)](_0x129d36['id']));if(_0x4305d3[_0x1eb2ed(0x1e5)]!==0x1||_0x845eae[_0x1eb2ed(0x1e5)]!==0x1)throw recoveryRequiredFailure(_0x11bfe3,_0x2718fb,{'matchCount':_0x4305d3[_0x1eb2ed(0x1e5)],'newMatchCount':_0x845eae[_0x1eb2ed(0x1e5)],'preexistingMatchCount':_0x30610e[_0x1eb2ed(0x1e5)]});const _0x5b9ed2=_0x845eae[0x0];try{verifyCreatedFact(_0x5b9ed2,_0x5b9ed2['id'],_0x4dfc09,null);}catch(_0x222970){const _0x35f2ea=_0x222970 instanceof Error&&_0x1eb2ed(0x1f9)in _0x222970?_0x222970:menuError(_0x1eb2ed(0x1d8),_0x1eb2ed(0x1fe)+_0x5b9ed2['id']+'\x20could\x20not\x20be\x20verified.',_0x1eb2ed(0x23f)+_0x2718fb+'\x20and\x20inspect\x20the\x20recovered\x20id\x20before\x20retrying.');throw externalLinkCreateFailure(_0x35f2ea,_0x11bfe3,{'stage':_0x1eb2ed(0x237),'succeeded':[{'id':_0x5b9ed2['id'],'created':!![],'recovered':!![]}],'failed':{'id':_0x5b9ed2['id'],'finalFactsConfirmed':![]},'after':_0x5b9ed2,'warnings':[_0x1eb2ed(0x1ee)+_0x5b9ed2['id']+_0x1eb2ed(0x1e7)],'verification':{'status':_0x1eb2ed(0x241),'targetId':_0x5b9ed2['id'],'recovered':!![],'lookupCommand':_0x2718fb}});}return creationSuccess(_0x11bfe3,_0x95caff,_0x5b9ed2,!![]);}function recoveryRequiredFailure(_0x444b7f,_0xa81b0,_0x174333){const _0x581b8a=a109_0x429820,_0x4723c4=menuError(_0x581b8a(0x256),_0x581b8a(0x246),_0x581b8a(0x23f)+_0xa81b0+'\x20and\x20inspect\x20current\x20menu\x20facts;\x20do\x20not\x20retry\x20creation\x20while\x20the\x20outcome\x20is\x20uncertain.');return externalLinkCreateFailure(_0x4723c4,_0x444b7f,{'stage':_0x581b8a(0x1e6),'failed':_0x174333,'warnings':[_0x581b8a(0x242)],'verification':{'status':_0x581b8a(0x241),..._0x174333,'lookupCommand':_0xa81b0}});}async function readAndVerifyCreatedMenu(_0x11e04e){const _0x37e134=a109_0x429820;let _0x39e14e;try{_0x39e14e=await fetchMenuSnapshot(_0x11e04e['appCode'],_0x11e04e[_0x37e134(0x238)]);}catch(_0x9cbbcd){const _0x2d0342=menuError(_0x37e134(0x1d8),_0x37e134(0x1ee)+_0x11e04e[_0x37e134(0x20d)]+_0x37e134(0x1e3),_0x37e134(0x23f)+_0x11e04e[_0x37e134(0x1f1)]+'\x20and\x20inspect\x20the\x20created\x20id\x20before\x20retrying.');throw externalLinkCreateFailure(_0x2d0342,_0x11e04e['plan'],{'stage':_0x37e134(0x237),'succeeded':[{'id':_0x11e04e[_0x37e134(0x20d)],'created':!![]}],'failed':{'id':_0x11e04e[_0x37e134(0x20d)],'finalFactsConfirmed':![],'readbackFailed':!![]},'after':{..._0x11e04e[_0x37e134(0x1ef)],'id':_0x11e04e[_0x37e134(0x20d)],'path':_0x11e04e[_0x37e134(0x233)]},'warnings':['Menu\x20'+_0x11e04e[_0x37e134(0x20d)]+'\x20may\x20exist\x20online;\x20inspect\x20it\x20before\x20any\x20retry.'],'verification':{'status':'failed','targetId':_0x11e04e['createdId'],'lookupCommand':_0x11e04e[_0x37e134(0x1f1)]}});}const _0x15fea1=_0x39e14e[_0x37e134(0x202)][_0x37e134(0x1db)](_0x11e04e[_0x37e134(0x20d)]);try{if(!_0x15fea1)throw menuError(_0x37e134(0x1d8),_0x37e134(0x1f0)+_0x11e04e[_0x37e134(0x20d)]+_0x37e134(0x23b),_0x37e134(0x23f)+_0x11e04e['lookupCommand']+'\x20and\x20inspect\x20the\x20created\x20id\x20before\x20retrying.');verifyCreatedFact(_0x15fea1,_0x11e04e[_0x37e134(0x20d)],_0x11e04e[_0x37e134(0x1ef)],_0x11e04e[_0x37e134(0x233)]);}catch(_0x299cdc){const _0x37a83f=_0x299cdc instanceof Error&&'code'in _0x299cdc?_0x299cdc:menuError(_0x37e134(0x1d8),_0x37e134(0x1f0)+_0x11e04e[_0x37e134(0x20d)]+_0x37e134(0x216),_0x37e134(0x23f)+_0x11e04e[_0x37e134(0x1f1)]+_0x37e134(0x219));throw externalLinkCreateFailure(_0x37a83f,_0x11e04e[_0x37e134(0x243)],{'stage':'verification','succeeded':[{'id':_0x11e04e['createdId'],'created':!![]}],'failed':{'id':_0x11e04e[_0x37e134(0x20d)],'finalFactsConfirmed':![]},'after':_0x15fea1??{..._0x11e04e['afterPlan'],'id':_0x11e04e['createdId'],'path':_0x11e04e[_0x37e134(0x233)]},'warnings':[_0x37e134(0x1ee)+_0x11e04e[_0x37e134(0x20d)]+_0x37e134(0x20b)],'verification':{'status':'failed','targetId':_0x11e04e[_0x37e134(0x20d)],'recovered':_0x11e04e['recovered'],'lookupCommand':_0x11e04e['lookupCommand']}});}return{'snapshot':_0x39e14e,'fact':_0x15fea1};}function verifyCreatedFact(_0x4915dc,_0x1604a5,_0x3d7fcf,_0x34e115){const _0x2d2840=a109_0x429820;if(!Number['isSafeInteger'](_0x4915dc['id'])||_0x4915dc['id']<=0x0||_0x4915dc['id']!==_0x1604a5)throw menuError(_0x2d2840(0x1d8),'Created\x20menu\x20has\x20an\x20invalid\x20or\x20unexpected\x20id.',_0x2d2840(0x1fb));const _0x1b624d=[[_0x2d2840(0x22b),_0x4915dc[_0x2d2840(0x236)],_0x3d7fcf[_0x2d2840(0x236)]],['type',_0x4915dc[_0x2d2840(0x204)],_0x3d7fcf[_0x2d2840(0x204)]],[_0x2d2840(0x21f),_0x4915dc[_0x2d2840(0x21f)],_0x3d7fcf[_0x2d2840(0x21f)]],['URL',_0x4915dc[_0x2d2840(0x1ea)],_0x3d7fcf['url']],[_0x2d2840(0x215),_0x4915dc[_0x2d2840(0x235)],_0x3d7fcf[_0x2d2840(0x235)]],[_0x2d2840(0x20a),_0x4915dc[_0x2d2840(0x20a)],_0x3d7fcf[_0x2d2840(0x20a)]]];for(const [_0x28211d,_0x1a687a,_0x3bedaf]of _0x1b624d){if(_0x1a687a!==_0x3bedaf)throw menuError(_0x2d2840(0x1d8),'Created\x20menu\x20'+_0x4915dc['id']+'\x20has\x20an\x20unexpected\x20'+_0x28211d+'.',_0x2d2840(0x259));}if(!_0x4915dc[_0x2d2840(0x208)][_0x2d2840(0x223)]()||_0x34e115!==null&&_0x4915dc[_0x2d2840(0x208)]!==_0x34e115)throw menuError('menu_verification_failed','Created\x20menu\x20'+_0x4915dc['id']+_0x2d2840(0x20c),_0x2d2840(0x259));}function creationSuccess(_0x2496ac,_0x4eb08d,_0x5d9f55,_0x516fd1){const _0x1faeab=a109_0x429820,_0xa8f8ac=mutationResult({..._0x2496ac,'after':_0x5d9f55,'dryRun':![],'succeeded':[{'id':_0x5d9f55['id'],'created':!![],'recovered':_0x516fd1}],'verification':{'checkedBy':_0x1faeab(0x1d5),'snapshotHash':_0x4eb08d[_0x1faeab(0x1fa)],'targetId':_0x5d9f55['id'],'recovered':_0x516fd1,'path':_0x5d9f55[_0x1faeab(0x208)]}});return{'ok':!![],'message':_0x516fd1?_0x1faeab(0x234)+_0x5d9f55['id']+_0x1faeab(0x1ec):_0x1faeab(0x245)+_0x5d9f55['id']+'.','data':{..._0xa8f8ac,'recovered':_0x516fd1}};}function externalLinkCreateFailure(_0x3834da,_0x4b7614,_0x31e545){const _0x46b193=a109_0x429820;return menuFailure(safeMenuAddError(_0x3834da),redactFailurePlan(_0x4b7614),{..._0x31e545,'succeeded':_0x31e545[_0x46b193(0x250)]?.[_0x46b193(0x1d2)](redactFailureRecord),'failed':_0x31e545[_0x46b193(0x241)]?redactFailureRecord(_0x31e545[_0x46b193(0x241)]):undefined,'verification':_0x31e545[_0x46b193(0x237)]?redactFailureRecord(_0x31e545['verification']):undefined,'after':_0x31e545[_0x46b193(0x24f)]===undefined?undefined:redactFailureValue(_0x31e545[_0x46b193(0x24f)])});}function redactFailurePlan(_0xe42d66){const _0x3e75c2=a109_0x429820;return{..._0xe42d66,'selector':redactFailureRecord(_0xe42d66['selector']),'before':redactFailureValue(_0xe42d66[_0x3e75c2(0x23e)]),'after':redactFailureValue(_0xe42d66[_0x3e75c2(0x24f)]),'plannedActions':_0xe42d66[_0x3e75c2(0x21b)]?.[_0x3e75c2(0x1d2)](_0x22b54b=>({..._0x22b54b,'body':redactFailureRecord(_0x22b54b[_0x3e75c2(0x205)])})),'succeeded':_0xe42d66[_0x3e75c2(0x250)][_0x3e75c2(0x1d2)](redactFailureRecord),'failed':_0xe42d66[_0x3e75c2(0x241)]['map'](redactFailureRecord),'verification':_0xe42d66[_0x3e75c2(0x237)]?redactFailureRecord(_0xe42d66[_0x3e75c2(0x237)]):undefined};}function redactFailureRecord(_0x2a27fa){return redactFailureValue(_0x2a27fa);}function redactFailureValue(_0x3f623e,_0x1841bd=''){const _0x2e2088=a109_0x429820,_0x4726da=_0x1841bd[_0x2e2088(0x228)]()[_0x2e2088(0x1f4)](/[^a-z0-9]/g,'');if(['cause',_0x2e2088(0x24b),_0x2e2088(0x24c),_0x2e2088(0x23d)][_0x2e2088(0x248)](_0x4726da))return _0x2e2088(0x1f3);if(Array[_0x2e2088(0x225)](_0x3f623e))return _0x3f623e[_0x2e2088(0x1d2)](_0x5a51b5=>redactFailureValue(_0x5a51b5));if(_0x3f623e&&typeof _0x3f623e==='object')return Object['fromEntries'](Object['entries'](_0x3f623e)[_0x2e2088(0x1d2)](([_0x1ac93d,_0x4068b8])=>[_0x1ac93d,redactFailureValue(_0x4068b8,_0x1ac93d)]));return _0x3f623e;}function safeMenuAddError(_0x11f805){const _0x4f2650=a109_0x429820,_0x226175=_0x11f805 instanceof CliError?_0x11f805[_0x4f2650(0x1f9)]:'menu_mutation_failed';switch(_0x226175){case _0x4f2650(0x231):return menuError(_0x226175,'Online\x20menu\x20state\x20changed\x20before\x20external\x20menu\x20creation.',_0x4f2650(0x21d));case _0x4f2650(0x249):return menuError(_0x226175,_0x4f2650(0x1ed),_0x4f2650(0x24d));case _0x4f2650(0x207):return menuError(_0x226175,_0x4f2650(0x1f6),_0x4f2650(0x226));case _0x4f2650(0x1d8):return menuError(_0x226175,_0x4f2650(0x1f5),_0x4f2650(0x226));case _0x4f2650(0x256):return menuError(_0x226175,'The\x20external\x20menu\x20create\x20outcome\x20could\x20not\x20be\x20recovered\x20safely.',_0x4f2650(0x258));case'menu_mutation_failed':case _0x4f2650(0x244):case _0x4f2650(0x212):case _0x4f2650(0x1f8):case'menu_sort_overflow':return menuError(_0x226175,'External\x20menu\x20creation\x20failed.',_0x4f2650(0x206));default:return menuError(_0x4f2650(0x220),_0x4f2650(0x1ff),_0x4f2650(0x206));}}function getFailureRecord(_0x4dc44f){const _0x40bc7c=a109_0x429820;if(!(_0x4dc44f instanceof Error)||!(_0x40bc7c(0x1fd)in _0x4dc44f))return undefined;const _0x4f8104=_0x4dc44f[_0x40bc7c(0x1fd)];if(!_0x4f8104||typeof _0x4f8104!==_0x40bc7c(0x1eb))return undefined;const _0x5adeb2=_0x4f8104[_0x40bc7c(0x241)];if(!Array[_0x40bc7c(0x225)](_0x5adeb2)||!_0x5adeb2[0x0]||typeof _0x5adeb2[0x0]!==_0x40bc7c(0x1eb))return undefined;return _0x5adeb2[0x0];}
|
|
1
|
+
const a109_0x2b3a4d=a109_0x5a61;function a109_0x5a61(_0x19e65f,_0x6768a5){_0x19e65f=_0x19e65f-0x14f;const _0x31bd30=a109_0x31bd();let _0x5a61bb=_0x31bd30[_0x19e65f];return _0x5a61bb;}(function(_0x1dd4ae,_0x15da2b){const _0x676efc=a109_0x5a61,_0x369e52=_0x1dd4ae();while(!![]){try{const _0x15d51b=parseInt(_0x676efc(0x195))/0x1*(parseInt(_0x676efc(0x16d))/0x2)+-parseInt(_0x676efc(0x166))/0x3+parseInt(_0x676efc(0x1cd))/0x4*(-parseInt(_0x676efc(0x16a))/0x5)+-parseInt(_0x676efc(0x1c1))/0x6*(parseInt(_0x676efc(0x187))/0x7)+-parseInt(_0x676efc(0x15c))/0x8+-parseInt(_0x676efc(0x163))/0x9*(parseInt(_0x676efc(0x1cf))/0xa)+parseInt(_0x676efc(0x17c))/0xb;if(_0x15d51b===_0x15da2b)break;else _0x369e52['push'](_0x369e52['shift']());}catch(_0x4f709f){_0x369e52['push'](_0x369e52['shift']());}}}(a109_0x31bd,0xbdb9d));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{fetchMenuSnapshot}from'../../commands/menu/shared/facts.js';import{MENU_PARENT_ID_FLAG,MENU_SORT_FLAG,fetchMutationSnapshot,menuDryRunResult,menuError,menuFailure,mapMenuApiError,isMenuResponseLoss,mutationResult,nextSiblingSort,parseParentId,recheckMutationSnapshot,requireFolder,toApiParentId,validateSort}from'../../commands/menu/shared/mutations.js';import{createMenuEntity}from'../../commands/menu/shared/service.js';import{CliError,CliErrors}from'../../errors.js';const EXTERNAL_MENU_TYPES_BY_OPEN_MODE={'embedded':a109_0x2b3a4d(0x184),'new-window':a109_0x2b3a4d(0x164)};export function validateExternalMenuUrl(_0x39e886){const _0x4a9bdd=a109_0x2b3a4d,_0x2a9553=_0x39e886['trim']();let _0x1f6757;try{_0x1f6757=new URL(_0x2a9553);}catch{throw menuError('menu_url_invalid',_0x4a9bdd(0x1b9),'Provide\x20an\x20absolute\x20HTTPS\x20URL\x20without\x20embedded\x20credentials.');}if(_0x1f6757[_0x4a9bdd(0x15a)]!==_0x4a9bdd(0x18c))throw menuError(_0x4a9bdd(0x1a9),_0x4a9bdd(0x19e),_0x4a9bdd(0x1c7));if(_0x1f6757[_0x4a9bdd(0x1b5)]||_0x1f6757[_0x4a9bdd(0x153)])throw menuError(_0x4a9bdd(0x1cb),_0x4a9bdd(0x151),'Remove\x20credentials\x20from\x20the\x20URL\x20and\x20use\x20platform-managed\x20authentication.');return _0x2a9553;}export const menuExternalLinkCreate={'service':a109_0x2b3a4d(0x1c0),'command':a109_0x2b3a4d(0x172),'description':'Create\x20an\x20external\x20website\x20link\x20menu','risk':a109_0x2b3a4d(0x15b),'structuredErrors':!![],'flags':[{'name':'label','type':a109_0x2b3a4d(0x181),'required':!![],'description':'Menu\x20label'},{'name':a109_0x2b3a4d(0x196),'type':'string','required':!![],'enum':[a109_0x2b3a4d(0x1bb),a109_0x2b3a4d(0x1c3)],'description':'How\x20to\x20open\x20the\x20external\x20website'},{'name':a109_0x2b3a4d(0x178),'type':'string','required':!![],'description':a109_0x2b3a4d(0x1b4)},MENU_PARENT_ID_FLAG,MENU_SORT_FLAG,{'name':a109_0x2b3a4d(0x1bf),'type':a109_0x2b3a4d(0x19c),'default':!![],'description':a109_0x2b3a4d(0x190)},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x34b630){validateAddInput(_0x34b630);},async 'dryRun'(_0x339896){const _0x110084=a109_0x2b3a4d;validateAddInput(_0x339896);const {plan:_0x327dea}=await buildSafeAddPlan(_0x339896,!![]),_0x3019ed=_0x327dea[_0x110084(0x155)],_0x1537f1=createBody(_0x3019ed);return menuDryRunResult(_0x327dea,{'method':_0x110084(0x1bc),'url':_0x110084(0x152),'body':_0x1537f1,'description':_0x110084(0x1d7)+JSON[_0x110084(0x1d5)](_0x3019ed[_0x110084(0x19a)])+'\x20with\x20'+_0x339896[_0x110084(0x1a4)](_0x110084(0x196))+_0x110084(0x170)});},async 'execute'(_0x155c56){const _0x319749=a109_0x2b3a4d;validateAddInput(_0x155c56);const _0x598139=await buildSafeAddPlan(_0x155c56,![]),{plan:_0x5bdcdf,snapshot:_0x3c8928}=_0x598139,_0x5b3a25=_0x5bdcdf[_0x319749(0x155)],_0x320da9=buildMenuLookupCommand(_0x155c56[_0x319749(0x1aa)]);await recheckAddSnapshot(_0x155c56,_0x5bdcdf);let _0x3e0a3f;try{_0x3e0a3f=await createMenuEntity(_0x155c56[_0x319749(0x1aa)],_0x155c56[_0x319749(0x1ad)],createBody(_0x5b3a25));}catch(_0x1f38fe){const _0x50b264=mapMenuApiError(_0x1f38fe,_0x319749(0x158));if(!isMenuResponseLoss(_0x1f38fe)||_0x50b264[_0x319749(0x16c)]===_0x319749(0x1ab))throw externalLinkCreateFailure(_0x50b264,_0x5bdcdf,{'stage':_0x319749(0x1ae),'failed':{},'verification':{'status':_0x319749(0x156),'lookupCommand':_0x320da9}});return recoverAfterResponseLoss(_0x155c56,_0x598139,_0x320da9);}const _0x24db19=Number(_0x3e0a3f?.['id']),_0x54c61f=typeof _0x3e0a3f?.[_0x319749(0x1a0)]===_0x319749(0x181)?_0x3e0a3f['path']:'';if(!Number[_0x319749(0x199)](_0x24db19)||_0x24db19<=0x0||!_0x54c61f[_0x319749(0x1a6)]()){const _0x1a8760=menuError(_0x319749(0x1d0),_0x319749(0x1d8),_0x319749(0x17d)+_0x320da9+_0x319749(0x179));throw externalLinkCreateFailure(_0x1a8760,_0x5bdcdf,{'stage':_0x319749(0x192),'succeeded':Number[_0x319749(0x199)](_0x24db19)&&_0x24db19>0x0?[{'id':_0x24db19,'created':!![]}]:[],'failed':{'createdId':Number[_0x319749(0x199)](_0x24db19)?_0x24db19:null,'generatedPathConfirmed':Boolean(_0x54c61f['trim']())},'warnings':[_0x319749(0x193)],'after':Number[_0x319749(0x199)](_0x24db19)&&_0x24db19>0x0?{..._0x5b3a25,'id':_0x24db19,'path':_0x54c61f}:_0x5b3a25,'verification':{'status':_0x319749(0x156),'lookupCommand':_0x320da9,...Number['isSafeInteger'](_0x24db19)&&_0x24db19>0x0?{'targetId':_0x24db19}:{}}});}const _0x4dc60b=await readAndVerifyCreatedMenu({'appCode':_0x155c56[_0x319749(0x1aa)],'cookie':_0x155c56['cookie'],'plan':_0x5bdcdf,'afterPlan':_0x5b3a25,'createdId':_0x24db19,'expectedPath':_0x54c61f,'lookupCommand':_0x320da9,'recovered':![]});return creationSuccess(_0x5bdcdf,_0x4dc60b['snapshot'],_0x4dc60b['fact'],![]);}};function validateAddInput(_0x1062ff){const _0x4f3803=a109_0x2b3a4d;if(!_0x1062ff['str'](_0x4f3803(0x19a))[_0x4f3803(0x1a6)]())throw CliErrors[_0x4f3803(0x189)](_0x4f3803(0x19a));resolveExternalMenuType(_0x1062ff),validateExternalMenuUrl(_0x1062ff[_0x4f3803(0x1a4)]('url')),parseParentId(_0x1062ff,_0x4f3803(0x1d6)),validateSort(_0x1062ff);}function a109_0x31bd(){const _0x4c3652=['Inspect\x20current\x20menu\x20facts\x20before\x20retrying\x20the\x20operation.','External\x20menu\x20URL\x20must\x20be\x20a\x20valid\x20absolute\x20URL.','body','embedded','POST','Choose\x20embedded\x20to\x20keep\x20the\x20application\x20shell,\x20or\x20new-window\x20to\x20open\x20the\x20website\x20separately.','menus','visible','menu','703536JpNITP','Use\x20the\x20structured\x20verification\x20lookup\x20command\x20before\x20retrying.','new-window','\x20is\x20missing\x20from\x20final\x20menu\x20facts.','\x20after\x20response\x20loss.','Run\x20the\x20command\x20with\x20--dry-run\x20again\x20and\x20review\x20the\x20latest\x20snapshot.','Provide\x20an\x20HTTPS\x20URL.','readbackerror','The\x20create\x20request\x20may\x20have\x20succeeded.\x20Automatic\x20retry\x20is\x20disabled\x20to\x20prevent\x20duplicates.','Online\x20menu\x20state\x20changed\x20before\x20external\x20menu\x20creation.','menu_url_credentials_forbidden','rawerror','4HZtppW','fromEntries','4612970zizuFG','menu_create_response_invalid','Created\x20menu\x20','--open-mode\x20must\x20be\x20embedded\x20or\x20new-window.','Menu\x20create\x20response\x20could\x20not\x20be\x20verified\x20safely.','Permission\x20denied\x20while\x20creating\x20the\x20external\x20menu.','stringify','parent-id','Would\x20create\x20external\x20website\x20link\x20menu\x20','Menu\x20create\x20response\x20did\x20not\x20contain\x20a\x20valid\x20id\x20and\x20non-empty\x20generated\x20path.','\x20remains\x20available\x20for\x20manual\x20inspection;\x20do\x20not\x20retry\x20blindly.','Confirm\x20that\x20the\x20current\x20account\x20can\x20manage\x20menus\x20for\x20this\x20app.','External\x20menu\x20URL\x20must\x20not\x20contain\x20embedded\x20credentials.','/smartapi/menu/create','password','\x27\x5c\x27\x27','after','failed','<redacted>','create\x20external\x20menu','length','protocol','write','4924960oipzMD','object','recovered','verification','lookupCommand','causemessage','entries','27DmGUPt','link','map','3717660lgmQlu','expectedPath','afterPlan','menu_state_drift','3336750RULaPj','menu_create_recovery_required','code','16lwoKaG','The\x20external\x20menu\x20create\x20outcome\x20could\x20not\x20be\x20recovered\x20safely.','menu_mutation_failed','\x20opening\x20mode\x20and\x20a\x20platform-generated\x20path.','Menu\x20','external-link-create','create-recovery','plannedActions','hash','\x20may\x20exist\x20online;\x20inspect\x20it\x20before\x20any\x20retry.','URL','url','\x20before\x20retrying;\x20the\x20menu\x20may\x20already\x20exist.','rawFlags','toLowerCase','49220314nAuhJo','Run\x20','before','Inspect\x20the\x20created\x20menu\x20before\x20retrying\x20the\x20operation.','data','string','replace','Recovered\x20menu\x20','iframe','\x20was\x20observed\x20after\x20response\x20loss;\x20inspect\x20it\x20before\x20any\x20retry.','menu_not_found','21zyhcPb','call','flagMissing','isArray','plan','https:','\x20has\x20an\x20unexpected\x20','menu\x20list','pre-write-recheck','Whether\x20the\x20menu\x20is\x20visible','succeeded','create-response-validation','The\x20create\x20request\x20may\x20have\x20succeeded;\x20inspect\x20current\x20menu\x20facts\x20before\x20any\x20retry.','cause','70049ZZSTay','open-mode','sort','<platform-generated>','isSafeInteger','label','External\x20menu\x20creation\x20failed.','boolean','menu_open_mode_invalid','External\x20menu\x20URL\x20must\x20use\x20HTTPS.','parent','path','Use\x20the\x20structured\x20verification\x20lookup\x20command\x20and\x20do\x20not\x20retry\x20blindly.','bool','menu_verification_failed','str','The\x20platform\x20assigns\x20the\x20menu\x20a\x20non-empty\x20path\x20used\x20by\x20menu\x20routing\x20and\x20keys.','trim','\x20could\x20not\x20be\x20verified.','filter','menu_url_https_required','appCode','menu_permission_denied','\x20and\x20inspect\x20the\x20created\x20id\x20before\x20retrying.','cookie','create','byId','type','has','parentId','Created\x20menu\x20facts\x20could\x20not\x20be\x20verified\x20safely.','External\x20HTTPS\x20URL','username','createdId','selector'];a109_0x31bd=function(){return _0x4c3652;};return a109_0x31bd();}function resolveExternalMenuType(_0x264acc){const _0x20f4e1=a109_0x2b3a4d,_0x486336=_0x264acc[_0x20f4e1(0x1a4)](_0x20f4e1(0x196))['trim']();if(!_0x486336)throw CliErrors[_0x20f4e1(0x189)]('open-mode');const _0x303d78=EXTERNAL_MENU_TYPES_BY_OPEN_MODE[_0x486336];if(!_0x303d78)throw menuError(_0x20f4e1(0x19d),_0x20f4e1(0x1d2),_0x20f4e1(0x1bd));return _0x303d78;}async function buildAddPlan(_0x20b291,_0x50d7a9){const _0x3fc073=a109_0x2b3a4d,_0x58f53f=await fetchMutationSnapshot(_0x20b291,_0x3fc073(0x158)),_0x520472=parseParentId(_0x20b291,_0x3fc073(0x1d6))??null;if(_0x520472!=null)requireFolder(_0x58f53f,_0x520472);const _0x4ef2b4=validateSort(_0x20b291),_0x18f553=_0x4ef2b4??nextSiblingSort(_0x58f53f,_0x520472,_0x3fc073(0x1c0)),_0x3e6952=_0x20b291[_0x3fc073(0x1a4)](_0x3fc073(0x19a))[_0x3fc073(0x1a6)](),_0x5e57ad=resolveExternalMenuType(_0x20b291),_0x3b22d8=validateExternalMenuUrl(_0x20b291[_0x3fc073(0x1a4)](_0x3fc073(0x178))),_0x2b378e=Object['prototype']['hasOwnProperty'][_0x3fc073(0x188)](_0x20b291[_0x3fc073(0x17a)],'visible')?_0x20b291[_0x3fc073(0x1a2)]('visible'):!![],_0x4f4065={'id':null,'parentId':_0x520472,'label':_0x3e6952,'path':_0x3fc073(0x198),'url':_0x3b22d8,'type':_0x5e57ad,'visible':_0x2b378e,'sort':_0x18f553},_0x1373d8=buildMenuLookupCommand(_0x20b291[_0x3fc073(0x1aa)]),_0x1fa776=mutationResult({'operation':'add','selector':{'parentId':_0x520472,'type':_0x5e57ad,'label':_0x3e6952,'url':_0x3b22d8},'before':null,'after':_0x4f4065,'dryRun':_0x50d7a9,'backend':[{'method':'POST','path':_0x3fc073(0x152)}],'plannedActions':[{'stage':'create-menu','method':_0x3fc073(0x1bc),'path':_0x3fc073(0x152),'body':createBody(_0x4f4065)}],'snapshotHash':_0x58f53f[_0x3fc073(0x175)],'warnings':[_0x3fc073(0x1a5)],'verification':{'lookupCommand':_0x1373d8}});return{'plan':_0x1fa776,'snapshot':_0x58f53f};}async function buildSafeAddPlan(_0x7b0825,_0x44c055){try{return await buildAddPlan(_0x7b0825,_0x44c055);}catch(_0x3e84d8){throw safeMenuAddError(_0x3e84d8);}}async function recheckAddSnapshot(_0x2cecb3,_0x45b412){const _0x16b3af=a109_0x2b3a4d;try{await recheckMutationSnapshot(_0x2cecb3,_0x45b412,_0x16b3af(0x158));}catch(_0x501c26){const _0x4382af=getFailureRecord(_0x501c26);throw externalLinkCreateFailure(_0x501c26,_0x45b412,{'stage':_0x16b3af(0x18f),'failed':{..._0x4382af?.['expectedSnapshotHash']?{'expectedSnapshotHash':_0x4382af['expectedSnapshotHash']}:{},..._0x4382af?.['currentSnapshotHash']?{'currentSnapshotHash':_0x4382af['currentSnapshotHash']}:{}}});}}function createBody(_0x166ddb){const _0x5a0e55=a109_0x2b3a4d;return{'parentId':toApiParentId(_0x166ddb[_0x5a0e55(0x1b2)]),'label':String(_0x166ddb[_0x5a0e55(0x19a)]),'type':String(_0x166ddb[_0x5a0e55(0x1b0)]),'url':String(_0x166ddb[_0x5a0e55(0x178)]),'visible':Boolean(_0x166ddb[_0x5a0e55(0x1bf)]),'sort':Number(_0x166ddb[_0x5a0e55(0x197)]),'extend':{}};}function buildMenuLookupCommand(_0x492545){const _0x18e879=a109_0x2b3a4d,_0x121b52='\x27'+_0x492545['replace'](/'/g,_0x18e879(0x154))+'\x27';return'rabetbase\x20menu\x20list\x20--appcode\x20'+_0x121b52+'\x20--format\x20compress';}async function recoverAfterResponseLoss(_0x5bb242,_0x13d6a0,_0x249897){const _0x4e4e9a=a109_0x2b3a4d,{plan:_0x42e047,snapshot:_0x59cc9e}=_0x13d6a0,_0x34163f=_0x42e047[_0x4e4e9a(0x155)];let _0x343846;try{_0x343846=await fetchMenuSnapshot(_0x5bb242['appCode'],_0x5bb242[_0x4e4e9a(0x1ad)]);}catch(_0x1fe374){throw recoveryRequiredFailure(_0x42e047,_0x249897,{'matchCount':null,'newMatchCount':null,'preexistingMatchCount':null,'readbackFailed':!![]});}const _0x327e77=_0x343846[_0x4e4e9a(0x1be)][_0x4e4e9a(0x1a8)](_0x562b0b=>_0x562b0b[_0x4e4e9a(0x1b2)]===_0x34163f[_0x4e4e9a(0x1b2)]&&_0x562b0b['type']===_0x34163f[_0x4e4e9a(0x1b0)]&&_0x562b0b[_0x4e4e9a(0x19a)]===_0x34163f[_0x4e4e9a(0x19a)]&&_0x562b0b['url']===_0x34163f[_0x4e4e9a(0x178)]),_0x34ec79=_0x327e77[_0x4e4e9a(0x1a8)](_0x41d8ee=>!_0x59cc9e[_0x4e4e9a(0x1af)][_0x4e4e9a(0x1b1)](_0x41d8ee['id'])),_0x228400=_0x327e77[_0x4e4e9a(0x1a8)](_0x3097b2=>_0x59cc9e[_0x4e4e9a(0x1af)][_0x4e4e9a(0x1b1)](_0x3097b2['id']));if(_0x327e77[_0x4e4e9a(0x159)]!==0x1||_0x34ec79[_0x4e4e9a(0x159)]!==0x1)throw recoveryRequiredFailure(_0x42e047,_0x249897,{'matchCount':_0x327e77[_0x4e4e9a(0x159)],'newMatchCount':_0x34ec79[_0x4e4e9a(0x159)],'preexistingMatchCount':_0x228400[_0x4e4e9a(0x159)]});const _0x517951=_0x34ec79[0x0];try{verifyCreatedFact(_0x517951,_0x517951['id'],_0x34163f,null);}catch(_0x3b4d2f){const _0x1771cf=_0x3b4d2f instanceof Error&&_0x4e4e9a(0x16c)in _0x3b4d2f?_0x3b4d2f:menuError('menu_verification_failed',_0x4e4e9a(0x183)+_0x517951['id']+_0x4e4e9a(0x1a7),_0x4e4e9a(0x17d)+_0x249897+'\x20and\x20inspect\x20the\x20recovered\x20id\x20before\x20retrying.');throw externalLinkCreateFailure(_0x1771cf,_0x42e047,{'stage':_0x4e4e9a(0x15f),'succeeded':[{'id':_0x517951['id'],'created':!![],'recovered':!![]}],'failed':{'id':_0x517951['id'],'finalFactsConfirmed':![]},'after':_0x517951,'warnings':[_0x4e4e9a(0x171)+_0x517951['id']+_0x4e4e9a(0x185)],'verification':{'status':_0x4e4e9a(0x156),'targetId':_0x517951['id'],'recovered':!![],'lookupCommand':_0x249897}});}return creationSuccess(_0x42e047,_0x343846,_0x517951,!![]);}function recoveryRequiredFailure(_0x1d100f,_0x2e63ac,_0x4107da){const _0x29c06f=a109_0x2b3a4d,_0x44ecb0=menuError(_0x29c06f(0x16b),'The\x20create\x20response\x20was\x20lost\x20and\x20the\x20created\x20menu\x20cannot\x20be\x20identified\x20safely.','Run\x20'+_0x2e63ac+'\x20and\x20inspect\x20current\x20menu\x20facts;\x20do\x20not\x20retry\x20creation\x20while\x20the\x20outcome\x20is\x20uncertain.');return externalLinkCreateFailure(_0x44ecb0,_0x1d100f,{'stage':_0x29c06f(0x173),'failed':_0x4107da,'warnings':[_0x29c06f(0x1c9)],'verification':{'status':_0x29c06f(0x156),..._0x4107da,'lookupCommand':_0x2e63ac}});}async function readAndVerifyCreatedMenu(_0x2640be){const _0x3845b7=a109_0x2b3a4d;let _0x47a985;try{_0x47a985=await fetchMenuSnapshot(_0x2640be[_0x3845b7(0x1aa)],_0x2640be[_0x3845b7(0x1ad)]);}catch(_0xbe6112){const _0x3c7ec8=menuError(_0x3845b7(0x1a3),_0x3845b7(0x171)+_0x2640be[_0x3845b7(0x1b6)]+'\x20was\x20created\x20but\x20final\x20facts\x20could\x20not\x20be\x20read.',_0x3845b7(0x17d)+_0x2640be[_0x3845b7(0x160)]+_0x3845b7(0x1ac));throw externalLinkCreateFailure(_0x3c7ec8,_0x2640be[_0x3845b7(0x18b)],{'stage':_0x3845b7(0x15f),'succeeded':[{'id':_0x2640be[_0x3845b7(0x1b6)],'created':!![]}],'failed':{'id':_0x2640be['createdId'],'finalFactsConfirmed':![],'readbackFailed':!![]},'after':{..._0x2640be['afterPlan'],'id':_0x2640be[_0x3845b7(0x1b6)],'path':_0x2640be[_0x3845b7(0x167)]},'warnings':[_0x3845b7(0x171)+_0x2640be[_0x3845b7(0x1b6)]+_0x3845b7(0x176)],'verification':{'status':_0x3845b7(0x156),'targetId':_0x2640be[_0x3845b7(0x1b6)],'lookupCommand':_0x2640be[_0x3845b7(0x160)]}});}const _0x1e9628=_0x47a985[_0x3845b7(0x1af)]['get'](_0x2640be[_0x3845b7(0x1b6)]);try{if(!_0x1e9628)throw menuError('menu_verification_failed','Created\x20menu\x20'+_0x2640be[_0x3845b7(0x1b6)]+_0x3845b7(0x1c4),_0x3845b7(0x17d)+_0x2640be[_0x3845b7(0x160)]+_0x3845b7(0x1ac));verifyCreatedFact(_0x1e9628,_0x2640be['createdId'],_0x2640be[_0x3845b7(0x168)],_0x2640be[_0x3845b7(0x167)]);}catch(_0x341e87){const _0x118745=_0x341e87 instanceof Error&&_0x3845b7(0x16c)in _0x341e87?_0x341e87:menuError(_0x3845b7(0x1a3),'Created\x20menu\x20'+_0x2640be[_0x3845b7(0x1b6)]+'\x20failed\x20final\x20verification.',_0x3845b7(0x17d)+_0x2640be[_0x3845b7(0x160)]+_0x3845b7(0x1ac));throw externalLinkCreateFailure(_0x118745,_0x2640be[_0x3845b7(0x18b)],{'stage':_0x3845b7(0x15f),'succeeded':[{'id':_0x2640be['createdId'],'created':!![]}],'failed':{'id':_0x2640be['createdId'],'finalFactsConfirmed':![]},'after':_0x1e9628??{..._0x2640be[_0x3845b7(0x168)],'id':_0x2640be['createdId'],'path':_0x2640be[_0x3845b7(0x167)]},'warnings':[_0x3845b7(0x171)+_0x2640be[_0x3845b7(0x1b6)]+_0x3845b7(0x14f)],'verification':{'status':'failed','targetId':_0x2640be[_0x3845b7(0x1b6)],'recovered':_0x2640be[_0x3845b7(0x15e)],'lookupCommand':_0x2640be[_0x3845b7(0x160)]}});}return{'snapshot':_0x47a985,'fact':_0x1e9628};}function verifyCreatedFact(_0x154e04,_0x11f08f,_0x306ac1,_0x43ffac){const _0x4d25cd=a109_0x2b3a4d;if(!Number[_0x4d25cd(0x199)](_0x154e04['id'])||_0x154e04['id']<=0x0||_0x154e04['id']!==_0x11f08f)throw menuError(_0x4d25cd(0x1a3),'Created\x20menu\x20has\x20an\x20invalid\x20or\x20unexpected\x20id.',_0x4d25cd(0x1b8));const _0x35a3d5=[[_0x4d25cd(0x19f),_0x154e04['parentId'],_0x306ac1['parentId']],[_0x4d25cd(0x1b0),_0x154e04[_0x4d25cd(0x1b0)],_0x306ac1['type']],['label',_0x154e04[_0x4d25cd(0x19a)],_0x306ac1[_0x4d25cd(0x19a)]],[_0x4d25cd(0x177),_0x154e04[_0x4d25cd(0x178)],_0x306ac1[_0x4d25cd(0x178)]],['visibility',_0x154e04[_0x4d25cd(0x1bf)],_0x306ac1['visible']],['sort',_0x154e04[_0x4d25cd(0x197)],_0x306ac1[_0x4d25cd(0x197)]]];for(const [_0x38c265,_0x772360,_0xf6ef18]of _0x35a3d5){if(_0x772360!==_0xf6ef18)throw menuError('menu_verification_failed',_0x4d25cd(0x1d1)+_0x154e04['id']+_0x4d25cd(0x18d)+_0x38c265+'.','Inspect\x20the\x20created\x20menu\x20before\x20retrying\x20the\x20operation.');}if(!_0x154e04['path'][_0x4d25cd(0x1a6)]()||_0x43ffac!==null&&_0x154e04[_0x4d25cd(0x1a0)]!==_0x43ffac)throw menuError(_0x4d25cd(0x1a3),_0x4d25cd(0x1d1)+_0x154e04['id']+'\x20has\x20an\x20unexpected\x20generated\x20path.',_0x4d25cd(0x17f));}function creationSuccess(_0x229c4a,_0x1f97b5,_0x4d0546,_0x5d20aa){const _0x239d69=a109_0x2b3a4d,_0x57c965=mutationResult({..._0x229c4a,'after':_0x4d0546,'dryRun':![],'succeeded':[{'id':_0x4d0546['id'],'created':!![],'recovered':_0x5d20aa}],'verification':{'checkedBy':_0x239d69(0x18e),'snapshotHash':_0x1f97b5['hash'],'targetId':_0x4d0546['id'],'recovered':_0x5d20aa,'path':_0x4d0546['path']}});return{'ok':!![],'message':_0x5d20aa?'Recovered\x20created\x20external\x20menu\x20'+_0x4d0546['id']+_0x239d69(0x1c5):'Created\x20external\x20menu\x20'+_0x4d0546['id']+'.','data':{..._0x57c965,'recovered':_0x5d20aa}};}function externalLinkCreateFailure(_0x4ab8dd,_0x4851bd,_0x2ba561){const _0x3c0dbf=a109_0x2b3a4d;return menuFailure(safeMenuAddError(_0x4ab8dd),redactFailurePlan(_0x4851bd),{..._0x2ba561,'succeeded':_0x2ba561[_0x3c0dbf(0x191)]?.['map'](redactFailureRecord),'failed':_0x2ba561[_0x3c0dbf(0x156)]?redactFailureRecord(_0x2ba561[_0x3c0dbf(0x156)]):undefined,'verification':_0x2ba561['verification']?redactFailureRecord(_0x2ba561[_0x3c0dbf(0x15f)]):undefined,'after':_0x2ba561[_0x3c0dbf(0x155)]===undefined?undefined:redactFailureValue(_0x2ba561[_0x3c0dbf(0x155)])});}function redactFailurePlan(_0x579908){const _0x5ef3e8=a109_0x2b3a4d;return{..._0x579908,'selector':redactFailureRecord(_0x579908[_0x5ef3e8(0x1b7)]),'before':redactFailureValue(_0x579908[_0x5ef3e8(0x17e)]),'after':redactFailureValue(_0x579908['after']),'plannedActions':_0x579908[_0x5ef3e8(0x174)]?.[_0x5ef3e8(0x165)](_0x5c85de=>({..._0x5c85de,'body':redactFailureRecord(_0x5c85de[_0x5ef3e8(0x1ba)])})),'succeeded':_0x579908[_0x5ef3e8(0x191)]['map'](redactFailureRecord),'failed':_0x579908[_0x5ef3e8(0x156)][_0x5ef3e8(0x165)](redactFailureRecord),'verification':_0x579908[_0x5ef3e8(0x15f)]?redactFailureRecord(_0x579908['verification']):undefined};}function redactFailureRecord(_0x19b65d){return redactFailureValue(_0x19b65d);}function redactFailureValue(_0x52c1b6,_0x457d31=''){const _0x4ffe28=a109_0x2b3a4d,_0x4b9eb5=_0x457d31[_0x4ffe28(0x17b)]()[_0x4ffe28(0x182)](/[^a-z0-9]/g,'');if([_0x4ffe28(0x194),_0x4ffe28(0x161),_0x4ffe28(0x1c8),_0x4ffe28(0x1cc)]['includes'](_0x4b9eb5))return _0x4ffe28(0x157);if(Array[_0x4ffe28(0x18a)](_0x52c1b6))return _0x52c1b6['map'](_0x19e0f9=>redactFailureValue(_0x19e0f9));if(_0x52c1b6&&typeof _0x52c1b6===_0x4ffe28(0x15d))return Object[_0x4ffe28(0x1ce)](Object[_0x4ffe28(0x162)](_0x52c1b6)[_0x4ffe28(0x165)](([_0x77dc34,_0x1fef13])=>[_0x77dc34,redactFailureValue(_0x1fef13,_0x77dc34)]));return _0x52c1b6;}function safeMenuAddError(_0x12c9da){const _0x3f9ee7=a109_0x2b3a4d,_0x506558=_0x12c9da instanceof CliError?_0x12c9da[_0x3f9ee7(0x16c)]:_0x3f9ee7(0x16f);switch(_0x506558){case _0x3f9ee7(0x169):return menuError(_0x506558,_0x3f9ee7(0x1ca),_0x3f9ee7(0x1c6));case _0x3f9ee7(0x1ab):return menuError(_0x506558,_0x3f9ee7(0x1d4),_0x3f9ee7(0x150));case'menu_create_response_invalid':return menuError(_0x506558,_0x3f9ee7(0x1d3),_0x3f9ee7(0x1c2));case _0x3f9ee7(0x1a3):return menuError(_0x506558,_0x3f9ee7(0x1b3),_0x3f9ee7(0x1c2));case _0x3f9ee7(0x16b):return menuError(_0x506558,_0x3f9ee7(0x16e),_0x3f9ee7(0x1a1));case'menu_mutation_failed':case _0x3f9ee7(0x186):case'menu_parent_not_folder':case'menu_sort_invalid':case'menu_sort_overflow':return menuError(_0x506558,_0x3f9ee7(0x19b),'Inspect\x20current\x20menu\x20facts\x20before\x20retrying.');default:return menuError('menu_mutation_failed',_0x3f9ee7(0x19b),'Inspect\x20current\x20menu\x20facts\x20before\x20retrying.');}}function getFailureRecord(_0x3a8a2b){const _0x54998e=a109_0x2b3a4d;if(!(_0x3a8a2b instanceof Error)||!(_0x54998e(0x180)in _0x3a8a2b))return undefined;const _0x184b72=_0x3a8a2b['data'];if(!_0x184b72||typeof _0x184b72!=='object')return undefined;const _0x5a53eb=_0x184b72[_0x54998e(0x156)];if(!Array['isArray'](_0x5a53eb)||!_0x5a53eb[0x0]||typeof _0x5a53eb[0x0]!=='object')return undefined;return _0x5a53eb[0x0];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a110_0x3e1cec=a110_0x2a10;(function(_0x368946,_0x533480){const _0x47705c=a110_0x2a10,_0x5771ca=_0x368946();while(!![]){try{const _0x16d9a6=-parseInt(_0x47705c(0x191))/0x1+parseInt(_0x47705c(0x189))/0x2*(-parseInt(_0x47705c(0x1af))/0x3)+parseInt(_0x47705c(0x170))/0x4*(parseInt(_0x47705c(0x17a))/0x5)+-parseInt(_0x47705c(0x1ab))/0x6+parseInt(_0x47705c(0x17c))/0x7+-parseInt(_0x47705c(0x1bc))/0x8*(-parseInt(_0x47705c(0x1b3))/0x9)+parseInt(_0x47705c(0x17b))/0xa*(parseInt(_0x47705c(0x1a6))/0xb);if(_0x16d9a6===_0x533480)break;else _0x5771ca['push'](_0x5771ca['shift']());}catch(_0x5d00f2){_0x5771ca['push'](_0x5771ca['shift']());}}}(a110_0x3f9e,0xe4e24));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{validateExternalMenuUrl}from'../../commands/menu/external-link-create.js';import{fetchMenuSnapshot}from'../../commands/menu/shared/facts.js';import{MENU_EXPECT_PARENT_ID_FLAG,MENU_ID_FLAG,asVerificationError,assertVerified,describeMenuErrorCause,fetchMutationSnapshot,formatParent,hasFlag,isMenuResponseLoss,mapMenuApiError,menuDryRunResult,menuError,menuFailure,mutationResult,parseParentId,recheckMutationSnapshot,requireExplicitYes,requireMenu,validateExactId}from'../../commands/menu/shared/mutations.js';function a110_0x3f9e(){const _0x104e69=['Recovered\x20confirmed\x20external\x20URL\x20update\x20for\x20menu\x20','\x20URL\x20update\x20did\x20not\x20take\x20effect.','verification','path','Updated\x20external\x20URL\x20for\x20menu\x20','iframe','195046dEobVV','unknown','body','menu_state_drift','label','verify\x20external\x20menu\x20URL\x20update','Choose\x20the\x20exact\x20id\x20of\x20an\x20existing\x20iframe\x20or\x20link\x20menu.','external-link-update','1869064IkuwVd','update-recovery','update\x20external\x20menu\x20URL','Update\x20request\x20for\x20menu\x20','\x20has\x20','Run\x20the\x20command\x20with\x20--dry-run\x20again\x20and\x20update\x20--expect-parent-id.','update','The\x20update\x20response\x20was\x20lost\x20and\x20the\x20requested\x20URL\x20cannot\x20be\x20confirmed\x20safely.','Run\x20the\x20command\x20with\x20--dry-run\x20again\x20and\x20update\x20--expect-url.','str','visible','External\x20link\x20URL\x20updates\x20are\x20limited\x20to\x20leaf\x20menus.','\x20and\x20inspect\x20the\x20exact\x20menu\x20id\x20before\x20retrying.','string','expect-url','high-risk-write','expect-parent-id','flagMissing','appCode','New\x20external\x20HTTPS\x20URL','menu_permission_denied','11ogkkmL','\x20has\x20an\x20empty\x20platform\x20path.','\x27\x5c\x27\x27','update-external-link-url','\x20completed\x20but\x20readback\x20could\x20not\x20confirm\x20the\x20requested\x20state','5947764SivDnk','\x20changed\x20during\x20the\x20URL-only\x20update.','/smartapi/menu/update','\x20--format\x20compress','12mDrTbI','sort','POST','\x20parent\x20changed:\x20expected\x20','9TsLRFy','parentId','url','\x20already\x20matches\x20the\x20requested\x20URL.','The\x20update\x20request\x20was\x20not\x20retried;\x20inspect\x20current\x20menu\x20facts\x20before\x20retrying.','menu_external_link_path_missing','\x20is\x20type\x20\x22','readbackFailed','get','2821672rYOmEE','menu_update_recovery_required','\x22,\x20not\x20iframe\x20or\x20link.','The\x20requested\x20URL\x20was\x20observed\x20after\x20response\x20loss,\x20but\x20other\x20menu\x20facts\x20changed.','\x20direct\x20child\x20menu(s).','Menu\x20','requestedUrlObserved','byId','4PDAhjy','Response\x20was\x20lost\x20and\x20menu\x20','cookie','\x20could\x20not\x20be\x20verified\x20safely','menu_external_link_type_required','code','trim','link','childrenCount','Repair\x20the\x20menu\x20record\x20before\x20attempting\x20a\x20URL-only\x20update.','8803905gAARPT','15799870WYNEWN','3461367eabFfW','Run\x20','menu\x20list','plan','failed','hash','type'];a110_0x3f9e=function(){return _0x104e69;};return a110_0x3f9e();}import{updateMenuEntity}from'../../commands/menu/shared/service.js';import{CliErrors}from'../../errors.js';const BACKEND=[{'method':a110_0x3e1cec(0x1b1),'path':a110_0x3e1cec(0x1ad)}];export const menuExternalLinkUpdate={'service':'menu','command':a110_0x3e1cec(0x190),'description':'Update\x20only\x20the\x20URL\x20of\x20one\x20existing\x20iframe\x20or\x20link\x20menu','risk':a110_0x3e1cec(0x1a0),'structuredErrors':!![],'flags':[MENU_ID_FLAG,{'name':a110_0x3e1cec(0x1b5),'type':'string','required':!![],'description':a110_0x3e1cec(0x1a4)},{'name':a110_0x3e1cec(0x19f),'type':a110_0x3e1cec(0x19e),'required':!![],'description':'Abort\x20unless\x20the\x20current\x20URL\x20matches\x20before\x20a\x20write\x20is\x20needed'},{...MENU_EXPECT_PARENT_ID_FLAG,'required':!![]},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x5636ff){validateInput(_0x5636ff),requireExplicitYes(_0x5636ff);},async 'dryRun'(_0x3ba1fd){const _0x491f79=a110_0x3e1cec;validateInput(_0x3ba1fd);const _0x276913=await buildPlan(_0x3ba1fd,!![]);return menuDryRunResult(_0x276913[_0x491f79(0x17f)],{'method':'POST','url':'/smartapi/menu/update','body':_0x276913[_0x491f79(0x18b)],'description':'Would\x20update\x20only\x20the\x20external\x20URL\x20of\x20menu\x20'+_0x276913[_0x491f79(0x18b)]['id']+'.'});},async 'execute'(_0x1e0784){const _0x178607=a110_0x3e1cec;validateInput(_0x1e0784),requireExplicitYes(_0x1e0784);const _0x34ad47=await buildPlan(_0x1e0784,![]),{plan:_0x99e758,body:_0x5d653f,before:_0xef5670,noChanges:_0x8e095f}=_0x34ad47,_0xd17375=_0x5d653f['id'];if(_0x8e095f)return updateSuccess(_0x99e758,_0x34ad47['snapshot'],_0xef5670,!![],![]);await recheckMutationSnapshot(_0x1e0784,_0x99e758,_0x178607(0x193),_0xd17375);try{await updateMenuEntity(_0x1e0784[_0x178607(0x1a3)],_0x1e0784[_0x178607(0x172)],{'id':_0x5d653f['id'],'url':_0x5d653f[_0x178607(0x1b5)]});}catch(_0x1701ed){const _0x41251c=mapMenuApiError(_0x1701ed,_0x178607(0x193),_0xd17375);if(isMenuResponseLoss(_0x1701ed)&&_0x41251c[_0x178607(0x175)]!==_0x178607(0x1a5))return recoverAfterResponseLoss(_0x1e0784,_0x34ad47);throw menuFailure(_0x41251c,_0x99e758,{'stage':_0x178607(0x197),'failed':{'id':_0xd17375},'warnings':[_0x178607(0x1b7)],'verification':{'status':_0x178607(0x180),'targetId':_0xd17375,'lookupCommand':buildLookupCommand(_0x1e0784['appCode'])}});}let _0x491738,_0x109621;try{_0x491738=await fetchMenuSnapshot(_0x1e0784['appCode'],_0x1e0784['cookie']),_0x109621=requireMenu(_0x491738,_0xd17375),verifyUpdatedFact(_0xef5670,_0x109621,_0x5d653f[_0x178607(0x1b5)]);}catch(_0x3ec485){const _0x4228cb=describeMenuErrorCause(_0x3ec485,_0x178607(0x18e),_0xd17375),_0x5b7778=asVerificationError(_0x3ec485,_0x178607(0x194)+_0xd17375+_0x178607(0x1aa));throw menuFailure(_0x5b7778,_0x99e758,{'stage':_0x178607(0x185),'succeeded':[{'id':_0xd17375,'updateRequested':!![]}],'failed':{'id':_0xd17375,'requestedStateConfirmed':![],..._0x4228cb},'warnings':['The\x20URL\x20update\x20may\x20have\x20taken\x20effect;\x20inspect\x20the\x20latest\x20menu\x20facts\x20before\x20retrying.'],'verification':{'status':_0x178607(0x180),'targetId':_0xd17375,'lookupCommand':buildLookupCommand(_0x1e0784[_0x178607(0x1a3)])}});}return updateSuccess(_0x99e758,_0x491738,_0x109621,![],![]);}};function validateInput(_0x5d803e){const _0x2d6904=a110_0x3e1cec;validateExactId(_0x5d803e),requiredUrl(_0x5d803e,'url'),requiredExpectedUrl(_0x5d803e),parseParentId(_0x5d803e,_0x2d6904(0x1a1),{'required':!![]});}function a110_0x2a10(_0x1c3af2,_0x301f1c){_0x1c3af2=_0x1c3af2-0x16e;const _0x3f9ebf=a110_0x3f9e();let _0x2a104f=_0x3f9ebf[_0x1c3af2];return _0x2a104f;}function requiredUrl(_0x2a56d0,_0x58d54b){const _0x24158e=a110_0x3e1cec;if(!hasFlag(_0x2a56d0,_0x58d54b)||!_0x2a56d0[_0x24158e(0x19a)](_0x58d54b)[_0x24158e(0x176)]())throw CliErrors[_0x24158e(0x1a2)](_0x58d54b);return validateExternalMenuUrl(_0x2a56d0['str'](_0x58d54b));}function requiredExpectedUrl(_0x8341a9){const _0xbef2aa=a110_0x3e1cec;if(!hasFlag(_0x8341a9,_0xbef2aa(0x19f))||!_0x8341a9[_0xbef2aa(0x19a)](_0xbef2aa(0x19f))[_0xbef2aa(0x176)]())throw CliErrors[_0xbef2aa(0x1a2)]('expect-url');return _0x8341a9[_0xbef2aa(0x19a)](_0xbef2aa(0x19f))[_0xbef2aa(0x176)]();}async function buildPlan(_0x5ed44b,_0x25be0a){const _0x2132a3=a110_0x3e1cec,_0x24c8f1=validateExactId(_0x5ed44b),_0x435736=requiredUrl(_0x5ed44b,_0x2132a3(0x1b5)),_0x529ffa=requiredExpectedUrl(_0x5ed44b),_0x4ae1e2=parseParentId(_0x5ed44b,_0x2132a3(0x1a1),{'required':!![]}),_0x4a8b9a=await fetchMutationSnapshot(_0x5ed44b,'update\x20external\x20menu\x20URL',_0x24c8f1),_0x5c97e7=requireMenu(_0x4a8b9a,_0x24c8f1);assertExternalLinkLeaf(_0x5c97e7);if(_0x5c97e7[_0x2132a3(0x1b4)]!==_0x4ae1e2)throw menuError(_0x2132a3(0x18c),_0x2132a3(0x1c1)+_0x24c8f1+_0x2132a3(0x1b2)+formatParent(_0x4ae1e2)+',\x20current\x20'+formatParent(_0x5c97e7[_0x2132a3(0x1b4)])+'.',_0x2132a3(0x196));const _0x38beb4=_0x5c97e7[_0x2132a3(0x1b5)]===_0x435736;if(!_0x38beb4&&_0x5c97e7[_0x2132a3(0x1b5)]!==_0x529ffa)throw menuError(_0x2132a3(0x18c),'Menu\x20'+_0x24c8f1+'\x20URL\x20no\x20longer\x20matches\x20--expect-url.',_0x2132a3(0x199));const _0x22e552={'id':_0x24c8f1,'appCode':_0x5ed44b['appCode'],'url':_0x435736},_0x3e2428={..._0x5c97e7,'url':_0x435736};return{'body':_0x22e552,'before':_0x5c97e7,'noChanges':_0x38beb4,'snapshot':_0x4a8b9a,'plan':mutationResult({'operation':'external-link-update','selector':{'id':_0x24c8f1},'before':_0x5c97e7,'after':_0x3e2428,'dryRun':_0x25be0a,'backend':[...BACKEND],'plannedActions':_0x38beb4?[]:[{'stage':_0x2132a3(0x1a9),'method':'POST','path':_0x2132a3(0x1ad),'body':_0x22e552}],'snapshotHash':_0x4a8b9a[_0x2132a3(0x181)],'warnings':_0x38beb4?['The\x20menu\x20already\x20has\x20the\x20requested\x20URL;\x20no\x20write\x20is\x20needed.']:[]})};}function assertExternalLinkLeaf(_0x256012){const _0x2fe061=a110_0x3e1cec;if(_0x256012['type']!==_0x2fe061(0x188)&&_0x256012[_0x2fe061(0x182)]!==_0x2fe061(0x177))throw menuError(_0x2fe061(0x174),'Menu\x20'+_0x256012['id']+_0x2fe061(0x1b9)+(_0x256012[_0x2fe061(0x182)]||_0x2fe061(0x18a))+_0x2fe061(0x1be),_0x2fe061(0x18f));if(_0x256012[_0x2fe061(0x178)]!==0x0)throw menuError('menu_external_link_not_leaf',_0x2fe061(0x1c1)+_0x256012['id']+_0x2fe061(0x195)+_0x256012[_0x2fe061(0x178)]+_0x2fe061(0x1c0),_0x2fe061(0x19c));if(!_0x256012[_0x2fe061(0x186)][_0x2fe061(0x176)]())throw menuError(_0x2fe061(0x1b8),'Menu\x20'+_0x256012['id']+_0x2fe061(0x1a7),_0x2fe061(0x179));}function verifyUpdatedFact(_0x20fb56,_0x32eb9c,_0x4cf012){const _0x23b391=a110_0x3e1cec;assertExternalLinkLeaf(_0x32eb9c);const _0x1c1091=[['id',_0x32eb9c['id'],_0x20fb56['id']],[_0x23b391(0x18d),_0x32eb9c[_0x23b391(0x18d)],_0x20fb56[_0x23b391(0x18d)]],[_0x23b391(0x182),_0x32eb9c[_0x23b391(0x182)],_0x20fb56[_0x23b391(0x182)]],['path',_0x32eb9c[_0x23b391(0x186)],_0x20fb56['path']],[_0x23b391(0x1b4),_0x32eb9c[_0x23b391(0x1b4)],_0x20fb56[_0x23b391(0x1b4)]],[_0x23b391(0x1b0),_0x32eb9c[_0x23b391(0x1b0)],_0x20fb56[_0x23b391(0x1b0)]],[_0x23b391(0x19b),_0x32eb9c['visible'],_0x20fb56['visible']]];for(const [_0x1902f3,_0x5dc305,_0x4654b0]of _0x1c1091){assertVerified(_0x5dc305===_0x4654b0,_0x23b391(0x1c1)+_0x20fb56['id']+'\x20'+_0x1902f3+_0x23b391(0x1ac));}assertVerified(_0x32eb9c[_0x23b391(0x1b5)]===_0x4cf012,'Menu\x20'+_0x20fb56['id']+_0x23b391(0x184));}function updateSuccess(_0x2756f4,_0x99abfc,_0x538302,_0x1ae6e1,_0x520af7){const _0x49383f=a110_0x3e1cec,_0x3b360f=_0x538302['id'],_0xeacec8=mutationResult({..._0x2756f4,'after':_0x538302,'dryRun':![],'succeeded':[{'id':_0x3b360f,'updated':!_0x1ae6e1,'skipped':_0x1ae6e1,'recovered':_0x520af7}],'verification':{'checkedBy':_0x49383f(0x17e),'snapshotHash':_0x99abfc[_0x49383f(0x181)],'targetId':_0x3b360f,'matchesRequestedState':!![],'recovered':_0x520af7}});return{'ok':!![],'message':_0x520af7?_0x49383f(0x183)+_0x3b360f+'.':_0x1ae6e1?_0x49383f(0x1c1)+_0x3b360f+_0x49383f(0x1b6):_0x49383f(0x187)+_0x3b360f+'.','data':{..._0xeacec8,'recovered':_0x520af7}};}async function recoverAfterResponseLoss(_0x33c844,_0x2219f9){const _0x4dfa92=a110_0x3e1cec,{plan:_0x3e2953,before:_0x1ecf4d,body:_0x5a2ec3}=_0x2219f9;let _0x59de93;try{_0x59de93=await fetchMenuSnapshot(_0x33c844['appCode'],_0x33c844[_0x4dfa92(0x172)]);}catch{throw recoveryRequired(_0x3e2953,_0x33c844[_0x4dfa92(0x1a3)],{'id':_0x5a2ec3['id'],'readbackFailed':!![]});}const _0x4d96b1=_0x59de93[_0x4dfa92(0x16f)][_0x4dfa92(0x1bb)](_0x5a2ec3['id']);if(!_0x4d96b1||_0x4d96b1[_0x4dfa92(0x1b5)]!==_0x5a2ec3[_0x4dfa92(0x1b5)])throw recoveryRequired(_0x3e2953,_0x33c844['appCode'],{'id':_0x5a2ec3['id'],'requestedUrlObserved':![],'after':_0x4d96b1??null});try{verifyUpdatedFact(_0x1ecf4d,_0x4d96b1,_0x5a2ec3[_0x4dfa92(0x1b5)]);}catch(_0x45cfb3){const _0x339eb5=asVerificationError(_0x45cfb3,_0x4dfa92(0x171)+_0x5a2ec3['id']+_0x4dfa92(0x173));throw menuFailure(_0x339eb5,_0x3e2953,{'stage':_0x4dfa92(0x192),'succeeded':[{'id':_0x5a2ec3['id'],'updateRequested':!![],'recovered':!![]}],'failed':{'id':_0x5a2ec3['id'],'requestedUrlObserved':!![],'invariantsConfirmed':![]},'after':_0x4d96b1,'warnings':[_0x4dfa92(0x1bf)],'verification':{'status':_0x4dfa92(0x180),'targetId':_0x5a2ec3['id'],'requestedUrlObserved':!![],'invariantsConfirmed':![],'lookupCommand':buildLookupCommand(_0x33c844[_0x4dfa92(0x1a3)])}});}return updateSuccess(_0x3e2953,_0x59de93,_0x4d96b1,![],!![]);}function recoveryRequired(_0x51f444,_0x16c6a2,_0x513cb4){const _0xdf8752=a110_0x3e1cec,_0x12ef2e=menuError(_0xdf8752(0x1bd),_0xdf8752(0x198),_0xdf8752(0x17d)+buildLookupCommand(_0x16c6a2)+_0xdf8752(0x19d));return menuFailure(_0x12ef2e,_0x51f444,{'stage':_0xdf8752(0x192),'failed':{'id':_0x513cb4['id'],..._0x513cb4[_0xdf8752(0x16e)]===undefined?{}:{'requestedUrlObserved':_0x513cb4['requestedUrlObserved']},..._0x513cb4[_0xdf8752(0x1ba)]?{'readbackFailed':!![]}:{}},'after':_0x513cb4['after'],'warnings':['The\x20update\x20may\x20have\x20taken\x20effect.\x20Automatic\x20retry\x20is\x20disabled.'],'verification':{'status':_0xdf8752(0x180),'targetId':_0x513cb4['id'],..._0x513cb4[_0xdf8752(0x16e)]===undefined?{}:{'requestedUrlObserved':_0x513cb4[_0xdf8752(0x16e)]},..._0x513cb4[_0xdf8752(0x1ba)]?{'readbackFailed':!![]}:{},'lookupCommand':buildLookupCommand(_0x16c6a2)}});}function buildLookupCommand(_0x31c48b){const _0x15b63f=a110_0x3e1cec,_0x59c13c='\x27'+_0x31c48b['replace'](/'/g,_0x15b63f(0x1a8))+'\x27';return'rabetbase\x20menu\x20list\x20--appcode\x20'+_0x59c13c+_0x15b63f(0x1ae);}
|
|
1
|
+
const a110_0x357d3d=a110_0x52c8;(function(_0x1db33f,_0x35cbdb){const _0x2da83c=a110_0x52c8,_0x378d8c=_0x1db33f();while(!![]){try{const _0x1f18b0=-parseInt(_0x2da83c(0xc5))/0x1*(parseInt(_0x2da83c(0xe0))/0x2)+parseInt(_0x2da83c(0xd5))/0x3+parseInt(_0x2da83c(0xb2))/0x4+-parseInt(_0x2da83c(0xbc))/0x5*(parseInt(_0x2da83c(0xe9))/0x6)+parseInt(_0x2da83c(0xaa))/0x7+-parseInt(_0x2da83c(0xb8))/0x8*(-parseInt(_0x2da83c(0xaf))/0x9)+parseInt(_0x2da83c(0xe8))/0xa*(-parseInt(_0x2da83c(0xbd))/0xb);if(_0x1f18b0===_0x35cbdb)break;else _0x378d8c['push'](_0x378d8c['shift']());}catch(_0x26bcc6){_0x378d8c['push'](_0x378d8c['shift']());}}}(a110_0x3106,0x74222));import{APPCODE_FLAG_OPTIONAL}from'../../commands/common/flags.js';import{validateExternalMenuUrl}from'../../commands/menu/external-link-create.js';import{fetchMenuSnapshot}from'../../commands/menu/shared/facts.js';import{MENU_EXPECT_PARENT_ID_FLAG,MENU_ID_FLAG,asVerificationError,assertVerified,describeMenuErrorCause,fetchMutationSnapshot,formatParent,hasFlag,isMenuResponseLoss,mapMenuApiError,menuDryRunResult,menuError,menuFailure,mutationResult,parseParentId,recheckMutationSnapshot,requireExplicitYes,requireMenu,validateExactId}from'../../commands/menu/shared/mutations.js';function a110_0x3106(){const _0x30accf=['str','url','1074654dqYVSk','Response\x20was\x20lost\x20and\x20menu\x20','high-risk-write','/smartapi/menu/update','string','27FjTCzb','requestedUrlObserved','Choose\x20the\x20exact\x20id\x20of\x20an\x20existing\x20iframe\x20or\x20link\x20menu.','1383624QxRgrB','trim','code','menu_update_recovery_required','update\x20external\x20menu\x20URL','menu_external_link_not_leaf','1614952vAvBFn','\x27\x5c\x27\x27','POST','visible','40lEhyBg','7634mIEeLI','Run\x20the\x20command\x20with\x20--dry-run\x20again\x20and\x20update\x20--expect-parent-id.','type','verify\x20external\x20menu\x20URL\x20update','label','rabetbase\x20menu\x20list\x20--appcode\x20','hash','update','39579wdpMNg','menu_state_drift','New\x20external\x20HTTPS\x20URL','flagMissing','Update\x20only\x20the\x20URL\x20of\x20one\x20existing\x20iframe\x20or\x20link\x20menu','after','Run\x20','childrenCount','unknown','\x20--format\x20compress','parentId','The\x20update\x20request\x20was\x20not\x20retried;\x20inspect\x20current\x20menu\x20facts\x20before\x20retrying.','\x20direct\x20child\x20menu(s).','get','Menu\x20','Update\x20request\x20for\x20menu\x20','1722009RJXQOs','The\x20URL\x20update\x20may\x20have\x20taken\x20effect;\x20inspect\x20the\x20latest\x20menu\x20facts\x20before\x20retrying.','Would\x20update\x20only\x20the\x20external\x20URL\x20of\x20menu\x20','iframe','replace','expect-url','expect-parent-id','The\x20update\x20may\x20have\x20taken\x20effect.\x20Automatic\x20retry\x20is\x20disabled.','menu','The\x20menu\x20already\x20has\x20the\x20requested\x20URL;\x20no\x20write\x20is\x20needed.','menu_external_link_type_required','20VjXSvI','\x20could\x20not\x20be\x20verified\x20safely','failed','Updated\x20external\x20URL\x20for\x20menu\x20',',\x20current\x20','The\x20requested\x20URL\x20was\x20observed\x20after\x20response\x20loss,\x20but\x20other\x20menu\x20facts\x20changed.','cookie','sort','7330obEjlF','224148nVQpzP','external-link-update','link','\x20URL\x20update\x20did\x20not\x20take\x20effect.','Abort\x20unless\x20the\x20current\x20URL\x20matches\x20before\x20a\x20write\x20is\x20needed','\x20changed\x20during\x20the\x20URL-only\x20update.','readbackFailed','\x20already\x20matches\x20the\x20requested\x20URL.','path','appCode','\x20parent\x20changed:\x20expected\x20','Recovered\x20confirmed\x20external\x20URL\x20update\x20for\x20menu\x20','Run\x20the\x20command\x20with\x20--dry-run\x20again\x20and\x20update\x20--expect-url.','snapshot','update-recovery'];a110_0x3106=function(){return _0x30accf;};return a110_0x3106();}import{updateMenuEntity}from'../../commands/menu/shared/service.js';import{CliErrors}from'../../errors.js';const BACKEND=[{'method':a110_0x357d3d(0xba),'path':'/smartapi/menu/update'}];export const menuExternalLinkUpdate={'service':a110_0x357d3d(0xdd),'command':'external-link-update','description':a110_0x357d3d(0xc9),'risk':a110_0x357d3d(0xac),'structuredErrors':!![],'flags':[MENU_ID_FLAG,{'name':a110_0x357d3d(0xa9),'type':'string','required':!![],'description':a110_0x357d3d(0xc7)},{'name':'expect-url','type':a110_0x357d3d(0xae),'required':!![],'description':a110_0x357d3d(0xed)},{...MENU_EXPECT_PARENT_ID_FLAG,'required':!![]},APPCODE_FLAG_OPTIONAL],async 'validate'(_0x1839c0){validateInput(_0x1839c0),requireExplicitYes(_0x1839c0);},async 'dryRun'(_0x544a98){const _0x1e4bc3=a110_0x357d3d;validateInput(_0x544a98);const _0x39f454=await buildPlan(_0x544a98,!![]);return menuDryRunResult(_0x39f454['plan'],{'method':_0x1e4bc3(0xba),'url':_0x1e4bc3(0xad),'body':_0x39f454['body'],'description':_0x1e4bc3(0xd7)+_0x39f454['body']['id']+'.'});},async 'execute'(_0x5ba5bb){const _0x380041=a110_0x357d3d;validateInput(_0x5ba5bb),requireExplicitYes(_0x5ba5bb);const _0x2c4923=await buildPlan(_0x5ba5bb,![]),{plan:_0x4aa939,body:_0x2f4bad,before:_0x3be778,noChanges:_0x5bfa43}=_0x2c4923,_0x20d0a7=_0x2f4bad['id'];if(_0x5bfa43)return updateSuccess(_0x4aa939,_0x2c4923[_0x380041(0xa6)],_0x3be778,!![],![]);await recheckMutationSnapshot(_0x5ba5bb,_0x4aa939,_0x380041(0xb6),_0x20d0a7);try{await updateMenuEntity(_0x5ba5bb['appCode'],_0x5ba5bb[_0x380041(0xe6)],{'id':_0x2f4bad['id'],'url':_0x2f4bad[_0x380041(0xa9)]});}catch(_0x540d7b){const _0x1d4527=mapMenuApiError(_0x540d7b,_0x380041(0xb6),_0x20d0a7);if(isMenuResponseLoss(_0x540d7b)&&_0x1d4527[_0x380041(0xb4)]!=='menu_permission_denied')return recoverAfterResponseLoss(_0x5ba5bb,_0x2c4923);throw menuFailure(_0x1d4527,_0x4aa939,{'stage':_0x380041(0xc4),'failed':{'id':_0x20d0a7},'warnings':[_0x380041(0xd0)],'verification':{'status':'failed','targetId':_0x20d0a7,'lookupCommand':buildLookupCommand(_0x5ba5bb['appCode'])}});}let _0x1e5a87,_0x19209b;try{_0x1e5a87=await fetchMenuSnapshot(_0x5ba5bb[_0x380041(0xa2)],_0x5ba5bb['cookie']),_0x19209b=requireMenu(_0x1e5a87,_0x20d0a7),verifyUpdatedFact(_0x3be778,_0x19209b,_0x2f4bad['url']);}catch(_0x19f641){const _0x4b58c0=describeMenuErrorCause(_0x19f641,_0x380041(0xc0),_0x20d0a7),_0x5da282=asVerificationError(_0x19f641,_0x380041(0xd4)+_0x20d0a7+'\x20completed\x20but\x20readback\x20could\x20not\x20confirm\x20the\x20requested\x20state');throw menuFailure(_0x5da282,_0x4aa939,{'stage':'verification','succeeded':[{'id':_0x20d0a7,'updateRequested':!![]}],'failed':{'id':_0x20d0a7,'requestedStateConfirmed':![],..._0x4b58c0},'warnings':[_0x380041(0xd6)],'verification':{'status':_0x380041(0xe2),'targetId':_0x20d0a7,'lookupCommand':buildLookupCommand(_0x5ba5bb[_0x380041(0xa2)])}});}return updateSuccess(_0x4aa939,_0x1e5a87,_0x19209b,![],![]);}};function validateInput(_0x75545d){const _0x36009b=a110_0x357d3d;validateExactId(_0x75545d),requiredUrl(_0x75545d,_0x36009b(0xa9)),requiredExpectedUrl(_0x75545d),parseParentId(_0x75545d,_0x36009b(0xdb),{'required':!![]});}function requiredUrl(_0x2c5a50,_0x35e434){const _0x2fd370=a110_0x357d3d;if(!hasFlag(_0x2c5a50,_0x35e434)||!_0x2c5a50[_0x2fd370(0xa8)](_0x35e434)[_0x2fd370(0xb3)]())throw CliErrors[_0x2fd370(0xc8)](_0x35e434);return validateExternalMenuUrl(_0x2c5a50[_0x2fd370(0xa8)](_0x35e434));}function requiredExpectedUrl(_0x3dd366){const _0x1cf84d=a110_0x357d3d;if(!hasFlag(_0x3dd366,'expect-url')||!_0x3dd366[_0x1cf84d(0xa8)](_0x1cf84d(0xda))[_0x1cf84d(0xb3)]())throw CliErrors['flagMissing'](_0x1cf84d(0xda));return _0x3dd366[_0x1cf84d(0xa8)](_0x1cf84d(0xda))['trim']();}async function buildPlan(_0x4821b7,_0x23c545){const _0x1d73ba=a110_0x357d3d,_0x534c87=validateExactId(_0x4821b7),_0x5a3267=requiredUrl(_0x4821b7,_0x1d73ba(0xa9)),_0x383742=requiredExpectedUrl(_0x4821b7),_0x480c7d=parseParentId(_0x4821b7,_0x1d73ba(0xdb),{'required':!![]}),_0x2c7ec1=await fetchMutationSnapshot(_0x4821b7,_0x1d73ba(0xb6),_0x534c87),_0x3fa580=requireMenu(_0x2c7ec1,_0x534c87);assertExternalLinkLeaf(_0x3fa580);if(_0x3fa580['parentId']!==_0x480c7d)throw menuError(_0x1d73ba(0xc6),'Menu\x20'+_0x534c87+_0x1d73ba(0xa3)+formatParent(_0x480c7d)+_0x1d73ba(0xe4)+formatParent(_0x3fa580['parentId'])+'.',_0x1d73ba(0xbe));const _0x506c2f=_0x3fa580['url']===_0x5a3267;if(!_0x506c2f&&_0x3fa580['url']!==_0x383742)throw menuError(_0x1d73ba(0xc6),_0x1d73ba(0xd3)+_0x534c87+'\x20URL\x20no\x20longer\x20matches\x20--expect-url.',_0x1d73ba(0xa5));const _0xe66105={'id':_0x534c87,'appCode':_0x4821b7[_0x1d73ba(0xa2)],'url':_0x5a3267},_0x190dab={..._0x3fa580,'url':_0x5a3267};return{'body':_0xe66105,'before':_0x3fa580,'noChanges':_0x506c2f,'snapshot':_0x2c7ec1,'plan':mutationResult({'operation':_0x1d73ba(0xea),'selector':{'id':_0x534c87},'before':_0x3fa580,'after':_0x190dab,'dryRun':_0x23c545,'backend':[...BACKEND],'plannedActions':_0x506c2f?[]:[{'stage':'update-external-link-url','method':'POST','path':_0x1d73ba(0xad),'body':_0xe66105}],'snapshotHash':_0x2c7ec1[_0x1d73ba(0xc3)],'warnings':_0x506c2f?[_0x1d73ba(0xde)]:[]})};}function assertExternalLinkLeaf(_0x1caf0e){const _0x34258c=a110_0x357d3d;if(_0x1caf0e[_0x34258c(0xbf)]!==_0x34258c(0xd8)&&_0x1caf0e[_0x34258c(0xbf)]!==_0x34258c(0xeb))throw menuError(_0x34258c(0xdf),_0x34258c(0xd3)+_0x1caf0e['id']+'\x20is\x20type\x20\x22'+(_0x1caf0e[_0x34258c(0xbf)]||_0x34258c(0xcd))+'\x22,\x20not\x20iframe\x20or\x20link.',_0x34258c(0xb1));if(_0x1caf0e[_0x34258c(0xcc)]!==0x0)throw menuError(_0x34258c(0xb7),'Menu\x20'+_0x1caf0e['id']+'\x20has\x20'+_0x1caf0e['childrenCount']+_0x34258c(0xd1),'External\x20link\x20URL\x20updates\x20are\x20limited\x20to\x20leaf\x20menus.');if(!_0x1caf0e[_0x34258c(0xa1)][_0x34258c(0xb3)]())throw menuError('menu_external_link_path_missing','Menu\x20'+_0x1caf0e['id']+'\x20has\x20an\x20empty\x20platform\x20path.','Repair\x20the\x20menu\x20record\x20before\x20attempting\x20a\x20URL-only\x20update.');}function verifyUpdatedFact(_0x2e5f70,_0x386b5b,_0xcf1b96){const _0x48f311=a110_0x357d3d;assertExternalLinkLeaf(_0x386b5b);const _0xdb0d40=[['id',_0x386b5b['id'],_0x2e5f70['id']],[_0x48f311(0xc1),_0x386b5b[_0x48f311(0xc1)],_0x2e5f70[_0x48f311(0xc1)]],[_0x48f311(0xbf),_0x386b5b['type'],_0x2e5f70[_0x48f311(0xbf)]],['path',_0x386b5b[_0x48f311(0xa1)],_0x2e5f70['path']],[_0x48f311(0xcf),_0x386b5b['parentId'],_0x2e5f70[_0x48f311(0xcf)]],['sort',_0x386b5b[_0x48f311(0xe7)],_0x2e5f70[_0x48f311(0xe7)]],[_0x48f311(0xbb),_0x386b5b[_0x48f311(0xbb)],_0x2e5f70[_0x48f311(0xbb)]]];for(const [_0x3dee64,_0xd3152,_0x26f8c1]of _0xdb0d40){assertVerified(_0xd3152===_0x26f8c1,_0x48f311(0xd3)+_0x2e5f70['id']+'\x20'+_0x3dee64+_0x48f311(0xee));}assertVerified(_0x386b5b[_0x48f311(0xa9)]===_0xcf1b96,_0x48f311(0xd3)+_0x2e5f70['id']+_0x48f311(0xec));}function updateSuccess(_0x364a6a,_0xd41734,_0x54b428,_0x161ade,_0x1379da){const _0x4133e2=a110_0x357d3d,_0x43a2e3=_0x54b428['id'],_0x1fa6ac=mutationResult({..._0x364a6a,'after':_0x54b428,'dryRun':![],'succeeded':[{'id':_0x43a2e3,'updated':!_0x161ade,'skipped':_0x161ade,'recovered':_0x1379da}],'verification':{'checkedBy':'menu\x20list','snapshotHash':_0xd41734[_0x4133e2(0xc3)],'targetId':_0x43a2e3,'matchesRequestedState':!![],'recovered':_0x1379da}});return{'ok':!![],'message':_0x1379da?_0x4133e2(0xa4)+_0x43a2e3+'.':_0x161ade?_0x4133e2(0xd3)+_0x43a2e3+_0x4133e2(0xa0):_0x4133e2(0xe3)+_0x43a2e3+'.','data':{..._0x1fa6ac,'recovered':_0x1379da}};}async function recoverAfterResponseLoss(_0x271cc3,_0x1b9220){const _0x244c48=a110_0x357d3d,{plan:_0x39b9c5,before:_0x1870c2,body:_0x5dad24}=_0x1b9220;let _0x21e387;try{_0x21e387=await fetchMenuSnapshot(_0x271cc3['appCode'],_0x271cc3[_0x244c48(0xe6)]);}catch{throw recoveryRequired(_0x39b9c5,_0x271cc3[_0x244c48(0xa2)],{'id':_0x5dad24['id'],'readbackFailed':!![]});}const _0x1e5b4a=_0x21e387['byId'][_0x244c48(0xd2)](_0x5dad24['id']);if(!_0x1e5b4a||_0x1e5b4a['url']!==_0x5dad24[_0x244c48(0xa9)])throw recoveryRequired(_0x39b9c5,_0x271cc3['appCode'],{'id':_0x5dad24['id'],'requestedUrlObserved':![],'after':_0x1e5b4a??null});try{verifyUpdatedFact(_0x1870c2,_0x1e5b4a,_0x5dad24['url']);}catch(_0x8fdf7a){const _0x547a91=asVerificationError(_0x8fdf7a,_0x244c48(0xab)+_0x5dad24['id']+_0x244c48(0xe1));throw menuFailure(_0x547a91,_0x39b9c5,{'stage':'update-recovery','succeeded':[{'id':_0x5dad24['id'],'updateRequested':!![],'recovered':!![]}],'failed':{'id':_0x5dad24['id'],'requestedUrlObserved':!![],'invariantsConfirmed':![]},'after':_0x1e5b4a,'warnings':[_0x244c48(0xe5)],'verification':{'status':'failed','targetId':_0x5dad24['id'],'requestedUrlObserved':!![],'invariantsConfirmed':![],'lookupCommand':buildLookupCommand(_0x271cc3[_0x244c48(0xa2)])}});}return updateSuccess(_0x39b9c5,_0x21e387,_0x1e5b4a,![],!![]);}function recoveryRequired(_0xf871b7,_0x2645e1,_0x13813e){const _0xddaf8f=a110_0x357d3d,_0x4bf921=menuError(_0xddaf8f(0xb5),'The\x20update\x20response\x20was\x20lost\x20and\x20the\x20requested\x20URL\x20cannot\x20be\x20confirmed\x20safely.',_0xddaf8f(0xcb)+buildLookupCommand(_0x2645e1)+'\x20and\x20inspect\x20the\x20exact\x20menu\x20id\x20before\x20retrying.');return menuFailure(_0x4bf921,_0xf871b7,{'stage':_0xddaf8f(0xa7),'failed':{'id':_0x13813e['id'],..._0x13813e[_0xddaf8f(0xb0)]===undefined?{}:{'requestedUrlObserved':_0x13813e[_0xddaf8f(0xb0)]},..._0x13813e[_0xddaf8f(0xef)]?{'readbackFailed':!![]}:{}},'after':_0x13813e[_0xddaf8f(0xca)],'warnings':[_0xddaf8f(0xdc)],'verification':{'status':_0xddaf8f(0xe2),'targetId':_0x13813e['id'],..._0x13813e[_0xddaf8f(0xb0)]===undefined?{}:{'requestedUrlObserved':_0x13813e[_0xddaf8f(0xb0)]},..._0x13813e[_0xddaf8f(0xef)]?{'readbackFailed':!![]}:{},'lookupCommand':buildLookupCommand(_0x2645e1)}});}function a110_0x52c8(_0x4e26ab,_0x308594){_0x4e26ab=_0x4e26ab-0xa0;const _0x310600=a110_0x3106();let _0x52c814=_0x310600[_0x4e26ab];return _0x52c814;}function buildLookupCommand(_0x58b72f){const _0x31f7d0=a110_0x357d3d,_0x178681='\x27'+_0x58b72f[_0x31f7d0(0xd9)](/'/g,_0x31f7d0(0xb9))+'\x27';return _0x31f7d0(0xc2)+_0x178681+_0x31f7d0(0xce);}
|