+2
-1
package.json
+2
-1
package.json
+74
scripts/setup.js
+74
scripts/setup.js
···
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
+
12
+
import { webcrypto } from 'crypto'
13
+
14
+
// === ARGUMENT PARSING ===
15
+
16
+
function 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
+
53
+
async 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
+
71
+
main().catch(err => {
72
+
console.error('Error:', err.message)
73
+
process.exit(1)
74
+
})