Socket
Socket
Sign inDemoInstall

ssb-conn-hub

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ssb-conn-hub - npm Package Compare versions

Comparing version 0.1.0-rc1 to 0.1.0-rc2

9

lib/index.d.ts

@@ -20,10 +20,3 @@ import { ConnectionData as Data, Address } from './types';

reset(): void;
entries(): IterableIterator<[string, Readonly<{
[name: string]: any;
state: "connecting" | "connected" | "disconnecting";
hubBirth: number;
hubUpdated: number;
disconnect?: ((cb: (err?: any) => void) => void) | undefined;
key?: string | undefined;
}>]>;
entries(): IterableIterator<[string, Data]>;
liveEntries(): any;

@@ -30,0 +23,0 @@ getState(address: Address): Data['state'] | undefined;

23

lib/index.js

@@ -78,2 +78,4 @@ "use strict";

var Notify = require('pull-notify');
var ip = require('ip');
var msNetPlugin = require('multiserver/plugins/net')({});
var msAddress = require('multiserver-address');

@@ -101,2 +103,16 @@ var ref = require('ssb-ref');

}
function inferPeerType(address) {
if (address.startsWith('bt:'))
return 'bt';
if (address.startsWith('dht:'))
return 'dht';
if (address.startsWith('tunnel:'))
return 'tunnel';
if (address.startsWith('net:')) {
var parsed = msNetPlugin.parse(address);
if (parsed && parsed.host && ip.isPrivate(parsed.host))
return 'lan';
}
return;
}
var ConnHub = (function () {

@@ -128,7 +144,10 @@ function ConnHub(server) {

}
var _a = __read(!peer ? [rpc.stream.address, { key: rpc.id }] : peer, 2), address = _a[0], data = _a[1];
var _a = __read(!peer
? [rpc.stream.address, { key: rpc.id }]
: peer, 2), address = _a[0], data = _a[1];
data.inferredType = inferPeerType(address);
var key = data.key;
var state = 'connected';
var disconnect = function (cb) { return rpc.close(true, cb); };
_this._setPeer(address, { state: state, key: key, disconnect: disconnect });
_this._setPeer(address, __assign({}, data, { state: state, disconnect: disconnect }));
debug('connected to %s', address);

@@ -135,0 +154,0 @@ _this._notifyEvent({

export declare type Address = string;
export declare type ConnectionData = Readonly<{
export declare type ConnectionData = {
key?: string;
state: 'connecting' | 'connected' | 'disconnecting';
inferredType?: 'bt' | 'lan' | 'dht' | 'tunnel';
hubBirth: number;
hubUpdated: number;
disconnect?: (cb: (err?: any) => void) => void;
key?: string;
[name: string]: any;
}>;
export declare type ListenEvent = Readonly<{
};
export declare type ListenEvent = {
type: ConnectionData['state'] | 'connecting-failed' | 'disconnecting-failed' | 'disconnected';

@@ -15,2 +16,2 @@ address: Address;

details?: any;
}>;
};
{
"name": "ssb-conn-hub",
"description": "Module that manages active connections to SSB peers",
"version": "0.1.0-rc1",
"version": "0.1.0-rc2",
"homepage": "https://github.com/staltz/ssb-conn-hub",

@@ -13,2 +13,4 @@ "main": "lib/index.js",

"dependencies": {
"ip": "^1.1.5",
"multiserver": "^3.4.0",
"multiserver-address": "~1.0.1",

@@ -15,0 +17,0 @@ "promisify-tuple": "^1.0.0",

@@ -7,2 +7,4 @@ import {ConnectionData as Data, ListenEvent, Address} from './types';

const Notify = require('pull-notify');
const ip = require('ip');
const msNetPlugin = require('multiserver/plugins/net')({});
const msAddress = require('multiserver-address');

@@ -32,2 +34,15 @@ const ref = require('ssb-ref');

// TODO perhaps the `type` should be provided by each multiserver plugin?
// like when multiserver plugins provide the `stream.address` to secret-stack
function inferPeerType(address: Address): Data['inferredType'] {
if (address.startsWith('bt:')) return 'bt';
if (address.startsWith('dht:')) return 'dht';
if (address.startsWith('tunnel:')) return 'tunnel';
if (address.startsWith('net:')) {
const parsed = msNetPlugin.parse(address);
if (parsed && parsed.host && ip.isPrivate(parsed.host)) return 'lan';
}
return;
}
class ConnHub {

@@ -139,3 +154,6 @@ private readonly _server: any;

const [address, data] = !peer ? [rpc.stream.address, {key: rpc.id}] : peer;
const [address, data] = !peer
? [rpc.stream.address, {key: rpc.id} as Data]
: peer;
data.inferredType = inferPeerType(address);
const key = data.key;

@@ -145,3 +163,3 @@

const disconnect: Data['disconnect'] = cb => rpc.close(true, cb);
this._setPeer(address, {state, key, disconnect});
this._setPeer(address, {...data, state, disconnect});
debug('connected to %s', address);

@@ -148,0 +166,0 @@ this._notifyEvent({

export type Address = string;
export type ConnectionData = Readonly<{
export type ConnectionData = {
key?: string;
state: 'connecting' | 'connected' | 'disconnecting';
inferredType?: 'bt' | 'lan' | 'dht' | 'tunnel';
hubBirth: number;
hubUpdated: number;
disconnect?: (cb: (err?: any) => void) => void;
key?: string;
[name: string]: any;
}>;
};
export type ListenEvent = Readonly<{
export type ListenEvent = {
type:

@@ -21,2 +22,2 @@ | ConnectionData['state']

details?: any;
}>;
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc