#!/usr/bin/env node
import { FastMailClient } from './src/fastmail-client.js';
import dotenv from 'dotenv';
dotenv.config({ path: '../.env' });
async function deleteRemainingEmptyFolders() {
console.log('🧹 DELETING REMAINING EMPTY PARENT FOLDERS\n');
const client = new FastMailClient(
process.env.FASTMAIL_API_TOKEN,
'clark@clarkeverson.com',
'clark@clarkeverson.com',
'clarkeverson.com',
'https://api.fastmail.com/jmap/session'
);
try {
await client.authenticate();
const mailboxes = await client.getMailboxes();
// Find empty parent folders that couldn't be deleted because they had children
const emptyParentFolders = ['Banking', 'NeedsAction', 'Transactions'];
console.log('🗑️ DELETING EMPTY PARENT FOLDERS:');
console.log('='.repeat(60));
let deleted = 0;
for (const folderName of emptyParentFolders) {
const folder = mailboxes.find(mb => mb.name === folderName && mb.totalEmails === 0);
if (folder) {
try {
console.log(`🗑️ Deleting empty folder: ${folderName}`);
await client.deleteMailbox(folder.id);
deleted++;
console.log(` ✅ Deleted successfully`);
} catch (error) {
console.log(` ❌ Error deleting ${folderName}: ${error.message}`);
}
} else {
console.log(` ⚠️ Folder ${folderName} not found or not empty`);
}
}
console.log(`\n✅ Cleanup complete: ${deleted} empty folders deleted`);
} catch (error) {
console.log('❌ Error:', error.message);
}
}
deleteRemainingEmptyFolders().catch(console.error);