use config.global.keypair

This commit is contained in:
Andre Staltz 2023-12-29 12:14:59 +02:00
parent 23076a58ca
commit cc1f83c064
No known key found for this signature in database
GPG Key ID: 9EDE23EA7E8A4890
19 changed files with 97 additions and 167 deletions

View File

@ -63,7 +63,7 @@ function decrypt(rec, peer, config) {
// Decrypt
const ciphertextBuf = ciphertextStrToBuffer(data)
const opts = { keys: keypairToSSBKeys(config.keypair) }
const opts = { keys: keypairToSSBKeys(config.global.keypair) }
const plaintextBuf = encryptionFormat.decrypt(ciphertextBuf, opts)
if (!plaintextBuf) return rec

View File

@ -28,12 +28,8 @@ const { decrypt } = require('./encryption')
* @typedef {import('./msg-v4/tangle')} Tangle
* @typedef {import('./encryption').EncryptionFormat} EncryptionFormat
* @typedef {Buffer | Uint8Array} B4A
* @typedef {{
* db: {
* path: string
* }
* }} ExpectedConfig
* @typedef {{db?: Partial<ExpectedConfig['db']>, keypair: Keypair;}} Config
* @typedef {{global: {keypair: Keypair; path: string}}} ExpectedConfig
* @typedef {{global: {keypair: Keypair; path?: string}}} Config
*/
/**
@ -80,8 +76,8 @@ const { decrypt } = require('./encryption')
* @returns {asserts config is ExpectedConfig}
*/
function assertValidConfig(config) {
if (typeof config.db?.path !== 'string') {
throw new Error('db requires config.db.path')
if (typeof config.global?.path !== 'string') {
throw new Error('db requires config.global.path')
}
}
@ -211,7 +207,7 @@ function initDB(peer, config) {
},
}
const log = Log(Path.join(config.db.path, 'log'), {
const log = Log(Path.join(config.global.path, 'db', 'log'), {
blockSize: 64 * 1024,
codec,
/**
@ -227,7 +223,7 @@ function initDB(peer, config) {
},
})
const ghosts = new Ghosts(Path.join(config.db.path, 'ghosts'))
const ghosts = new Ghosts(Path.join(config.global.path, 'db', 'ghosts'))
peer.close.hook(function (/** @type {any} */ fn, /** @type {any} */ args) {
log.close(() => {
@ -536,7 +532,7 @@ function initDB(peer, config) {
* @param {CB<MsgID>} cb
*/
function initializeFeed(opts, cb) {
const keypair = opts.keypair ?? config.keypair
const keypair = opts.keypair ?? config.global.keypair
const { account, domain } = opts
const mootID = findMoot(account, domain)?.id
@ -571,8 +567,8 @@ function initDB(peer, config) {
/**
* Find the account that contains this `keypair` (or the implicit
* config.keypair) under the given `subdomain` (will be converted to an actual
* msg domain).
* config.global.keypair) under the given `subdomain` (will be converted to
* an actual msg domain).
*
* @public
* @param {{
@ -584,7 +580,7 @@ function initDB(peer, config) {
function findAccount(opts, cb) {
// prettier-ignore
if (!opts.subdomain) return cb(new Error('account.find() requires a `subdomain`'))
const keypair = opts?.keypair ?? config.keypair
const keypair = opts?.keypair ?? config.global.keypair
const domain = ACCOUNT_DOMAIN_PREFIX + opts.subdomain
for (let i = 0; i < recs.length; i++) {
@ -612,7 +608,8 @@ function initDB(peer, config) {
}
/**
* Does this `account` have this `keypair` (or the implicit config.keypair)?
* Does this `account` have this `keypair` (or the implicit
* config.global.keypair)?
*
* @public
* @param {{
@ -622,7 +619,7 @@ function initDB(peer, config) {
* @returns {boolean}
*/
function accountHas(opts) {
const keypair = opts?.keypair ?? config.keypair
const keypair = opts?.keypair ?? config.global.keypair
const accountTangle = new DBTangle(opts.account, records(), get)
for (const msgID of accountTangle.topoSort()) {
@ -641,8 +638,8 @@ function initDB(peer, config) {
/**
* Create an account (root msg) for the given `keypair` (or the implicit
* config.keypair) under the given `subdomain` (will be converted to an actual
* msg domain).
* config.global.keypair) under the given `subdomain` (will be converted to an
* actual msg domain).
*
* @public
* @param {{
@ -655,7 +652,7 @@ function initDB(peer, config) {
function createAccount(opts, cb) {
// prettier-ignore
if (!opts.subdomain) return cb(new Error('account.create() requires a `subdomain`'))
const keypair = opts?.keypair ?? config.keypair
const keypair = opts?.keypair ?? config.global.keypair
const domain = ACCOUNT_DOMAIN_PREFIX + opts.subdomain
let msg
@ -676,8 +673,8 @@ function initDB(peer, config) {
/**
* Find or create an account (root msg) for the given `keypair` (or the
* implicit config.keypair) under the given `domain` (will be converted to an
* actual msg domain).
* implicit config.global.keypair) under the given `domain` (will be converted
* to an actual msg domain).
*
* @public
* @param {{
@ -725,7 +722,7 @@ function initDB(peer, config) {
/**
* Create a consent signature for the given `keypair` (or the implicit
* config.keypair) to be added to the given `account`.
* config.global.keypair) to be added to the given `account`.
*
* @public
* @param {{
@ -737,7 +734,7 @@ function initDB(peer, config) {
function consentToAccount(opts) {
// prettier-ignore
if (!opts.account) throw new Error('account.consent() requires an `account`')
const keypair = opts?.keypair ?? config.keypair
const keypair = opts?.keypair ?? config.global.keypair
const signableBuf = b4a.from(
SIGNATURE_TAG_ACCOUNT_ADD + base58.decode(opts.account),
@ -747,10 +744,10 @@ function initDB(peer, config) {
}
/**
* Add the given `keypair` (or the implicit config.keypair) to the given
* `account`, authorized by the given `consent` (or implicitly created on the
* fly if the `keypair` contains the private key) with the following `powers`
* (defaulting to no powers).
* Add the given `keypair` (or the implicit config.global.keypair) to the
* given `account`, authorized by the given `consent` (or implicitly created
* on the fly if the `keypair` contains the private key) with the following
* `powers` (defaulting to no powers).
*
* @param {{
* account: string;
@ -783,7 +780,7 @@ function initDB(peer, config) {
}
const obeying = !opts._disobey
const addedKeypair = opts.keypair
const signingKeypair = config.keypair
const signingKeypair = config.global.keypair
// Verify consent:
const signableBuf = b4a.from(
@ -911,7 +908,7 @@ function initDB(peer, config) {
}
}
const keypair = opts.keypair ?? config.keypair
const keypair = opts.keypair ?? config.global.keypair
initializeFeed(opts, (err, mootID) => {
// prettier-ignore
if (err) return cb(new Error('feed.publish() failed to initialize feed', { cause: err }));

View File

@ -55,7 +55,8 @@
"prettier": "^2.6.2",
"pretty-quick": "^3.1.3",
"rimraf": "^4.4.0",
"secret-stack": "^6.4.2",
"secret-stack": "8.0.0",
"secret-handshake-ext": "0.0.10",
"ssb-box": "^1.0.1",
"typescript": "^5.1.3"
},

View File

@ -4,9 +4,8 @@ const path = require('node:path')
const p = require('node:util').promisify
const os = require('node:os')
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-account-add')
rimraf.sync(DIR)
@ -16,10 +15,7 @@ test('account.add()', async (t) => {
const keypair1 = Keypair.generate('ed25519', 'alice')
const keypair2 = Keypair.generate('ed25519', 'bob')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair: keypair1, db: { path: DIR } })
const peer = createPeer({ keypair: keypair1, path: DIR })
await peer.db.loaded()
const account = await p(peer.db.account.create)({
@ -75,10 +71,7 @@ test('account.add()', async (t) => {
const keypair2 = Keypair.generate('ed25519', 'bob')
const keypair3 = Keypair.generate('ed25519', 'carol')
const peer1 = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair: keypair1, db: { path: DIR } })
const peer1 = createPeer({ keypair: keypair1, path: DIR })
await peer1.db.loaded()
const id = await p(peer1.db.account.create)({
@ -99,10 +92,7 @@ test('account.add()', async (t) => {
await p(peer1.close)()
rimraf.sync(DIR)
const peer2 = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair: keypair2, db: { path: DIR } })
const peer2 = createPeer({ keypair: keypair2, path: DIR })
await peer2.db.loaded()
await p(peer2.db.add)(msg1, id)
@ -131,10 +121,7 @@ test('account.add()', async (t) => {
await p(peer2.close)()
rimraf.sync(DIR)
const peer1again = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair: keypair1, db: { path: DIR } })
const peer1again = createPeer({ keypair: keypair1, path: DIR })
await peer1again.db.loaded()
await p(peer1again.db.add)(msg1, id) // re-add because lost during rimraf
@ -155,10 +142,7 @@ test('account.add()', async (t) => {
const keypair1 = Keypair.generate('ed25519', 'alice')
const keypair2 = Keypair.generate('ed25519', 'bob')
let peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair: keypair1, db: { path: DIR } })
let peer = createPeer({ keypair: keypair1, path: DIR })
await peer.db.loaded()
@ -210,10 +194,7 @@ test('account.add()', async (t) => {
rimraf.sync(DIR)
const keypair3 = Keypair.generate('ed25519', 'carol')
const carol = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair: keypair3, db: { path: DIR } })
const carol = createPeer({ keypair: keypair3, path: DIR })
await carol.db.loaded()

View File

@ -4,9 +4,8 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-account-create')
rimraf.sync(DIR)
@ -14,10 +13,7 @@ rimraf.sync(DIR)
test('account.create() ', async (t) => {
await t.test('create with just "domain"', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()
const account = await p(peer.db.account.create)({
@ -56,10 +52,7 @@ test('account.create() ', async (t) => {
rimraf.sync(DIR)
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()
const account = await p(peer.db.account.create)({
@ -86,10 +79,7 @@ test('account.create() ', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const subdomain = 'person'
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()
const account = await p(peer.db.account.create)({ keypair, subdomain })
@ -106,10 +96,7 @@ test('account.create() ', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const subdomain = 'person'
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()
const account = await p(peer.db.account.create)({ keypair, subdomain })
@ -126,10 +113,7 @@ test('account.create() ', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const subdomain = 'person'
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()

View File

@ -4,20 +4,16 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const MsgV4 = require('../lib/msg-v4')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-add')
rimraf.sync(DIR)
test('add()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()

View File

@ -4,19 +4,18 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const Log = require('../lib/log')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-del')
rimraf.sync(DIR)
test('del()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({
keypair: Keypair.generate('ed25519', 'alice'),
path: DIR,
})
await peer.db.loaded()
@ -71,7 +70,7 @@ test('del()', async (t) => {
await p(peer.close)(true)
const log = Log(path.join(DIR, 'log'), {
const log = Log(path.join(DIR, 'db', 'log'), {
cacheSize: 1,
blockSize: 64 * 1024,
codec: {

View File

@ -4,19 +4,18 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const Log = require('../lib/log')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const Log = require('../lib/log')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-erase')
rimraf.sync(DIR)
test('erase()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({
keypair: Keypair.generate('ed25519', 'alice'),
path: DIR,
})
await peer.db.loaded()
@ -82,7 +81,7 @@ test('erase()', async (t) => {
await p(peer.close)(true)
const log = Log(path.join(DIR, 'log'), {
const log = Log(path.join(DIR, 'db', 'log'), {
cacheSize: 1,
blockSize: 64 * 1024,
codec: {

View File

@ -4,20 +4,16 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const MsgV4 = require('../lib/msg-v4')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-feed-find-moot')
rimraf.sync(DIR)
test('feed.findMoot()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()

View File

@ -4,20 +4,16 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const MsgV4 = require('../lib/msg-v4')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-feed-get-id')
rimraf.sync(DIR)
test('feed.getID()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()

View File

@ -4,10 +4,9 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const MsgV4 = require('../lib/msg-v4')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-feed-publish')
rimraf.sync(DIR)
@ -22,10 +21,7 @@ test('feed.publish()', async (t) => {
// Setup
{
peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()

View File

@ -4,20 +4,18 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const MsgV4 = require('../lib/msg-v4')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-get')
rimraf.sync(DIR)
test('get()', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({
keypair: Keypair.generate('ed25519', 'alice'),
path: DIR,
})
await peer.db.loaded()

View File

@ -4,9 +4,8 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-tangle')
rimraf.sync(DIR)
@ -28,10 +27,7 @@ test('getTangle()', async (t) => {
const keypairB = Keypair.generate('ed25519', 'bob')
const keypairC = Keypair.generate('ed25519', 'carol')
peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair: keypairA, db: { path: DIR } })
peer = createPeer({ path: DIR, keypair: keypairA })
await peer.db.loaded()

View File

@ -4,19 +4,15 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-ghosts')
rimraf.sync(DIR)
const keypair = Keypair.generate('ed25519', 'alice')
test('ghosts.add, ghosts.get, ghosts.getMinDepth', async (t) => {
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()
@ -59,10 +55,7 @@ test('ghosts.add, ghosts.get, ghosts.getMinDepth', async (t) => {
})
test('ghosts.add queues very-concurrent calls', async (t) => {
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()

View File

@ -4,18 +4,15 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-msgs-iter')
rimraf.sync(DIR)
test('msgs() iterator', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()

View File

@ -4,18 +4,17 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-on-msg-added')
rimraf.sync(DIR)
test('onRecordAdded', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({
keypair: Keypair.generate('ed25519', 'alice'),
path: DIR,
})
await peer.db.loaded()

View File

@ -4,19 +4,15 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-re-open')
rimraf.sync(DIR)
test('publish some msgs, close, re-open', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()
const account = await p(peer.db.account.create)({ subdomain: 'person' })
@ -39,10 +35,7 @@ test('publish some msgs, close, re-open', async (t) => {
await p(peer.close)(true)
// t.pass('closed')
const peer2 = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { keypair, db: { path: DIR } })
const peer2 = createPeer({ keypair, path: DIR })
// t.pass('re-opened')
await peer2.db.loaded()

View File

@ -4,18 +4,15 @@ const path = require('node:path')
const os = require('node:os')
const p = require('node:util').promisify
const rimraf = require('rimraf')
const SecretStack = require('secret-stack')
const caps = require('ppppp-caps')
const Keypair = require('ppppp-keypair')
const { createPeer } = require('./util')
const DIR = path.join(os.tmpdir(), 'ppppp-db-records-iter')
rimraf.sync(DIR)
test('records() iterator', async (t) => {
const keypair = Keypair.generate('ed25519', 'alice')
const peer = SecretStack({ appKey: caps.shse })
.use(require('../lib'))
.call(null, { keypair, db: { path: DIR } })
const peer = createPeer({ keypair, path: DIR })
await peer.db.loaded()
const account = await p(peer.db.account.create)({ subdomain: 'person' })

12
test/util.js Normal file
View File

@ -0,0 +1,12 @@
function createPeer(globalConfig) {
return require('secret-stack/bare')()
.use(require('secret-stack/plugins/net'))
.use(require('secret-handshake-ext/secret-stack'))
.use(require('../lib'))
.use(require('ssb-box'))
.call(null, { shse: { caps: require('ppppp-caps') }, global: globalConfig })
}
module.exports = {
createPeer,
}