#!/usr/bin/env bare
/**
* List all bearer tokens
*/
import Corestore from 'corestore'
import Hyperbee from 'hyperbee'
import process from 'bare-process'
async function main() {
console.log('🔑 Listing all bearer tokens...\n')
// Initialize storage
const store = new Corestore('./pear-git-storage')
await store.ready()
const core = store.get({ name: 'pear-git-db' })
const db = new Hyperbee(core, { keyEncoding: 'utf-8', valueEncoding: 'json' })
await db.ready()
try {
let count = 0
for await (const entry of db.createReadStream({ gt: 'token:', lt: 'token:\xFF' })) {
count++
const tokenData = entry.value
console.log(`Token ${count}:`)
console.log(` Hash: ${tokenData.tokenHash}`)
console.log(` Username: ${tokenData.username}`)
console.log(` Description: ${tokenData.description}`)
console.log(` Permissions: ${tokenData.permissions.join(', ')}`)
console.log(` Created: ${new Date(tokenData.createdAt).toISOString()}`)
console.log(` Last used: ${tokenData.lastUsedAt ? new Date(tokenData.lastUsedAt).toISOString() : 'Never'}`)
console.log(` Usage count: ${tokenData.usageCount}`)
console.log('')
}
if (count === 0) {
console.log('No tokens found.')
} else {
console.log(`Total: ${count} token(s)`)
}
} catch (err) {
console.error('❌ Error listing tokens:', err.message)
process.exit(1)
} finally {
await db.close()
await store.close()
}
}
main().catch(err => {
console.error('Fatal error:', err)
process.exit(1)
})