#!/usr/bin/env node import { CollectionDiscovery } from '../src/lib/build/collection-discovery'; import { loadConfig } from '../src/lib/config/site'; import path from 'path'; async function main() { console.log('šŸš€ Starting collection discovery...'); try { const config = loadConfig(); const discovery = new CollectionDiscovery(); if (!config.atproto.handle || config.atproto.handle === 'your-handle-here') { console.error('āŒ No ATProto handle configured. Please set ATPROTO_HANDLE in your environment.'); process.exit(1); } console.log(`šŸ” Discovering collections for: ${config.atproto.handle}`); // Discover collections const results = await discovery.discoverCollections(config.atproto.handle); // Save results const outputPath = path.join(process.cwd(), 'src/lib/generated/discovered-types.ts'); await discovery.saveDiscoveryResults(results, outputPath); console.log('āœ… Collection discovery complete!'); console.log(`šŸ“Š Summary:`); console.log(` - Collections: ${results.totalCollections}`); console.log(` - Records: ${results.totalRecords}`); console.log(` - Repository: ${results.repository.handle}`); console.log(` - Output: ${outputPath}`); // Log discovered collections console.log('\nšŸ“¦ Discovered Collections:'); for (const collection of results.collections) { console.log(` - ${collection.name} (${collection.service})`); console.log(` Types: ${collection.$types.join(', ')}`); } } catch (error) { console.error('āŒ Collection discovery failed:', error); process.exit(1); } } // Run if called directly // Run the main function main();