MCPcopy Index your code
hub / github.com/QLHazyCoder/FlowPilot / deleteIcloudAlias

Function deleteIcloudAlias

background.js:3013–3067  ·  view source on GitHub ↗
(payload)

Source from the content-addressed store, hash-verified

3011}
3012
3013async function deleteIcloudAlias(payload) {
3014 return withIcloudLoginHelp('删除 iCloud 隐私邮箱', async () => {
3015 const alias = typeof payload === 'string'
3016 ? { email: String(payload).trim().toLowerCase(), anonymousId: '' }
3017 : {
3018 email: String(payload?.email || '').trim().toLowerCase(),
3019 anonymousId: String(payload?.anonymousId || '').trim(),
3020 };
3021
3022 if (!alias.email) {
3023 throw new Error('未提供需要删除的 iCloud 隐私邮箱。');
3024 }
3025 if (!alias.anonymousId) {
3026 throw new Error(`缺少 ${alias.email} 的 anonymousId,请先刷新 iCloud 别名列表。`);
3027 }
3028
3029 const { serviceUrl } = await resolveIcloudPremiumMailService();
3030
3031 try {
3032 const directDelete = await icloudRequest('POST', `${serviceUrl}/v1/hme/delete`, {
3033 data: { anonymousId: alias.anonymousId },
3034 });
3035 if (directDelete?.success === false) {
3036 throw new Error(directDelete?.error?.errorMessage || 'delete failed');
3037 }
3038 } catch (err) {
3039 await addLog(`iCloud:直接删除 ${alias.email} 失败,尝试先停用再删除...`, 'warn');
3040
3041 const deactivated = await icloudRequest('POST', `${serviceUrl}/v1/hme/deactivate`, {
3042 data: { anonymousId: alias.anonymousId },
3043 });
3044 if (deactivated?.success === false) {
3045 throw new Error(deactivated?.error?.errorMessage || `停用 ${alias.email} 失败`);
3046 }
3047
3048 const deleted = await icloudRequest('POST', `${serviceUrl}/v1/hme/delete`, {
3049 data: { anonymousId: alias.anonymousId },
3050 });
3051 if (deleted?.success === false) {
3052 throw new Error(deleted?.error?.errorMessage || `删除 ${alias.email} 失败`);
3053 }
3054 }
3055
3056 const state = await getState();
3057 const manualAliasUsage = getManualAliasUsageMap(state);
3058 const preservedAliases = getPreservedAliasMap(state);
3059 delete manualAliasUsage[alias.email];
3060 delete preservedAliases[alias.email];
3061 await setState({ manualAliasUsage, preservedAliases });
3062
3063 await addLog(`iCloud:已删除 ${alias.email}`, 'ok');
3064 broadcastIcloudAliasesChanged({ reason: 'deleted', email: alias.email });
3065 return { email: alias.email };
3066 });
3067}
3068
3069async function deleteUsedIcloudAliases() {
3070 const aliases = await listIcloudAliases();

Callers 3

deleteUsedIcloudAliasesFunction · 0.85
handleMessageFunction · 0.85

Calls 9

withIcloudLoginHelpFunction · 0.85
icloudRequestFunction · 0.85
getStateFunction · 0.85
getManualAliasUsageMapFunction · 0.85
getPreservedAliasMapFunction · 0.85
setStateFunction · 0.85
addLogFunction · 0.70

Tested by

no test coverage detected