this repo has no description
1#!/usr/bin/env node 2 3/** 4 * PDS Setup Script 5 * 6 * Registers a did:plc, initializes the PDS, and notifies the relay. 7 * Zero dependencies - uses Node.js built-ins only. 8 * 9 * Usage: node scripts/setup.js --handle alice --pds https://your-pds.workers.dev 10 */ 11 12import { webcrypto } from 'crypto' 13 14// === ARGUMENT PARSING === 15 16function parseArgs() { 17 const args = process.argv.slice(2) 18 const opts = { 19 handle: null, 20 pds: null, 21 plcUrl: 'https://plc.directory', 22 relayUrl: 'https://bsky.network' 23 } 24 25 for (let i = 0; i < args.length; i++) { 26 if (args[i] === '--handle' && args[i + 1]) { 27 opts.handle = args[++i] 28 } else if (args[i] === '--pds' && args[i + 1]) { 29 opts.pds = args[++i] 30 } else if (args[i] === '--plc-url' && args[i + 1]) { 31 opts.plcUrl = args[++i] 32 } else if (args[i] === '--relay-url' && args[i + 1]) { 33 opts.relayUrl = args[++i] 34 } 35 } 36 37 if (!opts.handle || !opts.pds) { 38 console.error('Usage: node scripts/setup.js --handle <handle> --pds <pds-url>') 39 console.error('') 40 console.error('Options:') 41 console.error(' --handle Handle name (e.g., "alice")') 42 console.error(' --pds PDS URL (e.g., "https://atproto-pds.chad-53c.workers.dev")') 43 console.error(' --plc-url PLC directory URL (default: https://plc.directory)') 44 console.error(' --relay-url Relay URL (default: https://bsky.network)') 45 process.exit(1) 46 } 47 48 return opts 49} 50 51// === MAIN === 52 53async function main() { 54 const opts = parseArgs() 55 56 console.log('PDS Federation Setup') 57 console.log('====================') 58 console.log(`Handle: ${opts.handle}`) 59 console.log(`PDS: ${opts.pds}`) 60 console.log(`PLC: ${opts.plcUrl}`) 61 console.log(`Relay: ${opts.relayUrl}`) 62 console.log('') 63 64 // TODO: Implement in subsequent tasks 65 console.log('TODO: Generate keypair') 66 console.log('TODO: Register DID:PLC') 67 console.log('TODO: Initialize PDS') 68 console.log('TODO: Notify relay') 69} 70 71main().catch(err => { 72 console.error('Error:', err.message) 73 process.exit(1) 74})