()
| 1154 | } |
| 1155 | |
| 1156 | async function resetState() { |
| 1157 | console.log(LOG_PREFIX, 'Resetting all state'); |
| 1158 | // Preserve settings and persistent data across resets |
| 1159 | const [prev, persistedSettings, persistedAliasState] = await Promise.all([ |
| 1160 | chrome.storage.session.get([ |
| 1161 | 'seenCodes', |
| 1162 | 'seenInbucketMailIds', |
| 1163 | 'accounts', |
| 1164 | 'tabRegistry', |
| 1165 | 'sourceLastUrls', |
| 1166 | 'luckmailApiKey', |
| 1167 | 'luckmailBaseUrl', |
| 1168 | 'luckmailEmailType', |
| 1169 | 'luckmailDomain', |
| 1170 | 'luckmailUsedPurchases', |
| 1171 | 'luckmailPreserveTagId', |
| 1172 | 'luckmailPreserveTagName', |
| 1173 | 'preferredIcloudHost', |
| 1174 | ]), |
| 1175 | getPersistedSettings(), |
| 1176 | getPersistedAliasState(), |
| 1177 | ]); |
| 1178 | await chrome.storage.session.clear(); |
| 1179 | await chrome.storage.session.set({ |
| 1180 | ...DEFAULT_STATE, |
| 1181 | ...persistedSettings, |
| 1182 | ...persistedAliasState, |
| 1183 | seenCodes: prev.seenCodes || [], |
| 1184 | seenInbucketMailIds: prev.seenInbucketMailIds || [], |
| 1185 | accounts: prev.accounts || [], |
| 1186 | tabRegistry: prev.tabRegistry || {}, |
| 1187 | sourceLastUrls: prev.sourceLastUrls || {}, |
| 1188 | luckmailApiKey: String(prev.luckmailApiKey || ''), |
| 1189 | luckmailBaseUrl: normalizeLuckmailBaseUrl(prev.luckmailBaseUrl), |
| 1190 | luckmailEmailType: normalizeLuckmailEmailType(prev.luckmailEmailType), |
| 1191 | luckmailDomain: String(prev.luckmailDomain || '').trim(), |
| 1192 | luckmailUsedPurchases: normalizeLuckmailUsedPurchases(prev.luckmailUsedPurchases), |
| 1193 | luckmailPreserveTagId: Number(prev.luckmailPreserveTagId) || 0, |
| 1194 | luckmailPreserveTagName: String(prev.luckmailPreserveTagName || '').trim() || DEFAULT_LUCKMAIL_PRESERVE_TAG_NAME, |
| 1195 | currentLuckmailPurchase: null, |
| 1196 | currentLuckmailMailCursor: null, |
| 1197 | preferredIcloudHost: prev.preferredIcloudHost || '', |
| 1198 | }); |
| 1199 | } |
| 1200 | |
| 1201 | /** |
| 1202 | * Generate a random password: 14 chars, mix of uppercase, lowercase, digits, symbols. |
no test coverage detected