Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
t.comment('result of sbot getAddress: ' + addr)
var ws_remotes = ma.decode(addr).filter(function(a) {
return a.find(function(component) {
return component.name == 'ws'
})
})
t.equal(ws_remotes.length, 1, 'has one ws remote')
var remote = ma.encode([ws_remotes[0]])
// this breaks if multiserver address encoding changes
t.ok(remote.indexOf('9002') > 0, 'ws address contains expected port')
// this is a bit annoying. we can't signal ssb-client to load the secret from .path
// it either has to be the first argument, already loaded
var key = require('ssb-keys').loadOrCreateSync(join(path, 'secret'))
require('ssb-client')(key, {
path: path,
caps: { shs: caps }, // has to be set when setting any config
remote: remote
}, function(err, ssb) {
t.error(err, 'ssb-client returns no error')
t.ok(ssb.manifest, 'got manifest from api')
t.ok(ssb.version, 'got version from api')
ssb.whoami(function(err, feed) {
t.error(err, 'ssb.whoami succeeds')
t.equal(feed.id[0], '@', 'feed.id has @ sigil')
end()
})
})
})
})
const serve = require('ecstatic')
const fs = require('fs')
const path = require('path')
const ssbKeys = require('ssb-keys')
const minimist = require('minimist')
const notifier = require('node-notifier')
const SysTray = require('systray').default
let argv = process.argv.slice(2)
let i = argv.indexOf('--')
let conf = argv.slice(i + 1)
argv = ~i ? argv.slice(0, i) : argv
const config = require('ssb-config/inject')(process.env.ssb_appname, minimist(conf))
const keys = ssbKeys.loadOrCreateSync(path.join(config.path, 'secret'))
if (keys.curve === 'k256') {
throw new Error('k256 curves are no longer supported,' +
'please delete' + path.join(config.path, 'secret'))
}
const manifestFile = path.join(config.path, 'manifest.json')
// special server command:
// import sbot and start the server
const createSbot = require('scuttlebot')
// .use(require('scuttlebot/plugins/plugins'))
.use(require('scuttlebot/plugins/master'))
.use(require('scuttlebot/plugins/gossip'))
.use(require('scuttlebot/plugins/replicate'))
.use(require('ssb-friends'))
function start(customConfig, donecb) {
donecb = donecb || noop
// TODO: try { allthethings } catch(e) { donecb(e) }
customConfig = customConfig || {}
let appname = customConfig.appname || false
let customPluginPaths = customConfig.plugins || false
let argv = process.argv.slice(2)
let i = argv.indexOf('--')
let conf = argv.slice(i + 1)
argv = ~i ? argv.slice(0, i) : argv
let ssbAppName = appname || process.env.ssb_appname
const config = require('ssb-config/inject')(ssbAppName, minimist(conf))
const keys = ssbKeys.loadOrCreateSync(path.join(config.path, 'secret'))
if (keys.curve === 'k256') {
// i think this is _really_ old and could be removed
throw new Error('k256 curves are no longer supported,' +
'please delete' + path.join(config.path, 'secret'))
}
config.keys = keys
ssbConfig = config
const manifestFile = path.join(config.path, 'manifest.json')
const createSbot = require('ssb-server')
.use(require('ssb-local'))
.use(require('ssb-logging'))
.use(require('ssb-master'))
.use(require('ssb-no-auth'))
.use(require('ssb-unix-socket'))
const startSsbServer = (plugins, opts, ssbPath) => new Promise(async (resolve, reject) => {
const appName = 'ssb'
let config = Config(appName, opts)
config.path = ssbPath
config.keys = ssbKeys.loadOrCreateSync(Path.join(config.path, 'secret'))
console.log('Starting SSB SERVER')
let createSsbServer = require('ssb-server')
.use(require('ssb-onion'))
.use(require('ssb-unix-socket'))
.use(require('ssb-no-auth'))
.use(require('ssb-plugins'))
.use(require('ssb-master'))
.use(require('ssb-gossip'))
.use(require('ssb-replicate'))
.use(require('ssb-friends'))
.use(require('ssb-blobs'))
.use(require('ssb-invite'))
.use(require('ssb-local'))
.use(require('ssb-logging'))
.use(require('ssb-query'))
.use(require('ssb-links'))
const fs = require('fs')
const os = require('os')
const path = require('path')
const Client = require('ssb-client')
const ssbKeys = require('ssb-keys')
const mkdirp = require('mkdirp')
const manifest = require('./manifest')
const ssbPath = path.resolve(os.homedir(), '.ssb')
if (!fs.existsSync(ssbPath)) {
mkdirp.sync(ssbPath)
}
const keys = ssbKeys.loadOrCreateSync(path.join(ssbPath, '/secret'))
const config = require('ssb-config/inject')()
config.path = ssbPath
config.keys = keys
config.manifest = manifest
const startSsbServer = () => new Promise((resolve, reject) => {
console.log('Starting SSB SERVER')
resolve(
require('scuttlebot/index')
.use(require('scuttlebot/plugins/master'))
.use(require('community-apps-ssb-plugin'))
.use(require('scuttlebot/plugins/gossip'))
.use(require('scuttlebot/plugins/plugins'))
.use(require('scuttlebot/plugins/master'))
.use(require('scuttlebot/plugins/replicate'))
module.exports = function startSSB() {
const config = ssbConfigInject()
config.keys = ssbKeys.loadOrCreateSync(path.join(config.path, 'secret'))
config.logging.level = ''
return require('scuttlebot/index')
.use(require('scuttlebot/plugins/plugins'))
.use(require('scuttlebot/plugins/master'))
.use(require('scuttlebot/plugins/gossip'))
.use(require('scuttlebot/plugins/replicate'))
.use(require('ssb-friends'))
.use(require('ssb-blobs'))
.use(require('ssb-serve-blobs'))
.use(require('ssb-backlinks'))
.use(require('ssb-private'))
.use(require('ssb-about'))
.use(require('ssb-contacts'))
.use(require('ssb-query'))
.use(require('scuttlebot/plugins/invite'))
.use(require('scuttlebot/plugins/local'))
var pull = require('pull-stream')
var ssbKeys = require('ssb-keys')
var ref = require('ssb-ref')
var Reconnect = require('pull-reconnect')
var path = require('path')
var config = require('ssb-config/inject')(process.env.ssb_appname)
config.keys = ssbKeys.loadOrCreateSync(path.join(config.path, 'secret'))
function Hash (onHash) {
var buffers = []
return pull.through(function (data) {
buffers.push('string' === typeof data
? new Buffer(data, 'utf8')
: data
)
}, function (err) {
if(err && !onHash) throw err
var b = buffers.length > 1 ? Buffer.concat(buffers) : buffers[0]
var h = '&'+ssbKeys.hash(b)
onHash && onHash(err, h)
})
}
function setupContext (appName, opts, cb) {
ssbConfig = require('ssb-config/inject')(appName, extend({
port: 8008,
blobsPort: 7777
}, opts))
ssbConfig.keys = ssbKeys.loadOrCreateSync(Path.join(ssbConfig.path, 'secret'))
if (opts.server === false) {
cb && cb()
} else {
electron.ipcMain.once('server-started', function (ev, config) {
ssbConfig = config
cb && cb()
})
windows.background = openWindow(ssbConfig, Path.join(__dirname, 'server-process.js'), {
connect: false,
center: true,
fullscreen: false,
fullscreenable: false,
height: 150,
maximizable: false,
minimizable: false,
}
type Counter {
count: Int!
countStr: String
}
type Subscription {
counter: Counter!
}
`;
const ssbPath = path.resolve(os.homedir(), '.ssb');
if (!fs.existsSync(ssbPath)) {
mkdirp.sync(ssbPath);
}
const keys = ssbKeys.loadOrCreateSync(path.join(ssbPath, '/secret'));
const config = require('ssb-config/inject')();
config.path = ssbPath;
config.keys = keys;
config.manifest = manifest;
require('scuttlebot/index')
.use(require('scuttlebot/plugins/plugins'))
.use(require('scuttlebot/plugins/master'))
.use(require('scuttlebot/plugins/gossip'))
.use(require('scuttlebot/plugins/replicate'))
.use(require('ssb-friends'))
.use(require('ssb-blobs'))
.use(require('ssb-serve-blobs'))
.use(require('ssb-backlinks'))
.use(require('ssb-private'))
.use(require('ssb-about'))
.use(require('ssb-contacts'))
var pull = require('pull-stream')
var ssbKeys = require('ssb-keys')
var ref = require('ssb-ref')
var Reconnect = require('pull-reconnect')
var path = require('path')
var config = require('ssb-config/inject')(process.env.ssb_appname)
config.keys = ssbKeys.loadOrCreateSync(path.join(config.path, 'secret'))
function Hash (onHash) {
var buffers = []
return pull.through(function (data) {
buffers.push('string' === typeof data
? new Buffer(data, 'utf8')
: data
)
}, function (err) {
if(err && !onHash) throw err
var b = buffers.length > 1 ? Buffer.concat(buffers) : buffers[0]
var h = '&'+ssbKeys.hash(b)
onHash && onHash(err, h)
})
}
//uncomment this to use from browser...