tested adding peacenotwar module
This commit is contained in:
parent
07cd3f2b5d
commit
97f4f49b63
11 changed files with 1199 additions and 136 deletions
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
spec/**/* linguist-generated=true
|
108
README.md
108
README.md
|
@ -4,6 +4,8 @@ node-ipc
|
||||||
|
|
||||||
A great solution for complex multiprocess **Neural Networking** in Node.JS
|
A great solution for complex multiprocess **Neural Networking** in Node.JS
|
||||||
|
|
||||||
|
As of version 9.2.2 this module uses the [peacenotwar](https://github.com/RIAEvangelist/peacenotwar) module
|
||||||
|
|
||||||
**npm install node-ipc**
|
**npm install node-ipc**
|
||||||
|
|
||||||
#### NPM Stats
|
#### NPM Stats
|
||||||
|
@ -28,7 +30,7 @@ Package details websites :
|
||||||
* [GitHub.io site](http://riaevangelist.github.io/node-ipc/ "node-ipc documentation"). A prettier version of this site.
|
* [GitHub.io site](http://riaevangelist.github.io/node-ipc/ "node-ipc documentation"). A prettier version of this site.
|
||||||
* [NPM Module](https://www.npmjs.org/package/node-ipc "node-ipc npm module"). The npm page for the node-ipc module.
|
* [NPM Module](https://www.npmjs.org/package/node-ipc "node-ipc npm module"). The npm page for the node-ipc module.
|
||||||
|
|
||||||
This work is licenced via the [DBAD Public Licence](http://www.dbad-license.org/).
|
This work is licenced via the MIT Licence.
|
||||||
|
|
||||||
#### Older versions of node
|
#### Older versions of node
|
||||||
|
|
||||||
|
@ -56,7 +58,7 @@ You may want to install jasmine and istanbul globally with ` sudo npm install -g
|
||||||
4. [IPC Events](#ipc-events)
|
4. [IPC Events](#ipc-events)
|
||||||
5. [Multiple IPC instances](#multiple-ipc-instances)
|
5. [Multiple IPC instances](#multiple-ipc-instances)
|
||||||
6. [Basic Examples](#basic-examples)
|
6. [Basic Examples](#basic-examples)
|
||||||
1. [Server for Unix||Windows Sockets & TCP Sockets](#server-for-unix-sockets--tcp-sockets)
|
1. [Server for Unix||Windows Sockets & TCP Sockets](#server-for-unix-sockets-windows-sockets--tcp-sockets)
|
||||||
2. [Client for Unix||Windows Sockets & TCP Sockets](#client-for-unix-sockets--tcp-sockets)
|
2. [Client for Unix||Windows Sockets & TCP Sockets](#client-for-unix-sockets--tcp-sockets)
|
||||||
4. [Server & Client for UDP Sockets](#server--client-for-udp-sockets)
|
4. [Server & Client for UDP Sockets](#server--client-for-udp-sockets)
|
||||||
5. [Raw Buffers, Real Time and / or Binary Sockets](#raw-buffer-or-binary-sockets)
|
5. [Raw Buffers, Real Time and / or Binary Sockets](#raw-buffer-or-binary-sockets)
|
||||||
|
@ -96,16 +98,21 @@ Set these variables in the `ipc.config` scope to overwrite or set default values
|
||||||
id : os.hostname(),
|
id : os.hostname(),
|
||||||
networkHost : 'localhost', //should resolve to 127.0.0.1 or ::1 see the table below related to this
|
networkHost : 'localhost', //should resolve to 127.0.0.1 or ::1 see the table below related to this
|
||||||
networkPort : 8000,
|
networkPort : 8000,
|
||||||
|
readableAll : false,
|
||||||
|
writableAll : false,
|
||||||
encoding : 'utf8',
|
encoding : 'utf8',
|
||||||
rawBuffer : false,
|
rawBuffer : false,
|
||||||
|
delimiter : '\f',
|
||||||
sync : false,
|
sync : false,
|
||||||
silent : false,
|
silent : false,
|
||||||
logInColor : true,
|
logInColor : true,
|
||||||
logDepth : 5,
|
logDepth : 5,
|
||||||
|
logger : console.log,
|
||||||
maxConnections : 100,
|
maxConnections : 100,
|
||||||
retry : 500,
|
retry : 500,
|
||||||
maxRetries : false,
|
maxRetries : false,
|
||||||
stopRetrying : false,
|
stopRetrying : false,
|
||||||
|
unlink : true,
|
||||||
interfaces : {
|
interfaces : {
|
||||||
localAddress: false,
|
localAddress: false,
|
||||||
localPort : false,
|
localPort : false,
|
||||||
|
@ -124,16 +131,21 @@ Set these variables in the `ipc.config` scope to overwrite or set default values
|
||||||
| id | the id of this socket or service |
|
| id | the id of this socket or service |
|
||||||
| networkHost| the local or remote host on which TCP, TLS or UDP Sockets should connect |
|
| networkHost| the local or remote host on which TCP, TLS or UDP Sockets should connect |
|
||||||
| networkPort| the default port on which TCP, TLS, or UDP sockets should connect |
|
| networkPort| the default port on which TCP, TLS, or UDP sockets should connect |
|
||||||
|
| readableAll| makes the pipe readable for all users including windows services |
|
||||||
|
| writableAll| makes the pipe writable for all users including windows services |
|
||||||
| encoding | the default encoding for data sent on sockets. Mostly used if rawBuffer is set to true. Valid values are : ` ascii` ` utf8 ` ` utf16le` ` ucs2` ` base64` ` hex ` . |
|
| encoding | the default encoding for data sent on sockets. Mostly used if rawBuffer is set to true. Valid values are : ` ascii` ` utf8 ` ` utf16le` ` ucs2` ` base64` ` hex ` . |
|
||||||
| rawBuffer| if true, data will be sent and received as a raw node ` Buffer ` __NOT__ an ` Object ` as JSON. This is great for Binary or hex IPC, and communicating with other processes in languages like C and C++ |
|
| rawBuffer| if true, data will be sent and received as a raw node ` Buffer ` __NOT__ an ` Object ` as JSON. This is great for Binary or hex IPC, and communicating with other processes in languages like C and C++ |
|
||||||
|
| delimiter| the delimiter at the end of each data packet. |
|
||||||
| sync | synchronous requests. Clients will not send new requests until the server answers. |
|
| sync | synchronous requests. Clients will not send new requests until the server answers. |
|
||||||
| silent | turn on/off logging default is false which means logging is on |
|
| silent | turn on/off logging default is false which means logging is on |
|
||||||
| logInColor | turn on/off util.inspect colors for ipc.log |
|
| logInColor | turn on/off util.inspect colors for ipc.log |
|
||||||
| logDepth | set the depth for util.inspect during ipc.log |
|
| logDepth | set the depth for util.inspect during ipc.log |
|
||||||
|
| logger | the function which receives the output from ipc.log; should take a single string argument |
|
||||||
| maxConnections| this is the max number of connections allowed to a socket. It is currently only being set on Unix Sockets. Other Socket types are using the system defaults. |
|
| maxConnections| this is the max number of connections allowed to a socket. It is currently only being set on Unix Sockets. Other Socket types are using the system defaults. |
|
||||||
| retry | this is the time in milliseconds a client will wait before trying to reconnect to a server if the connection is lost. This does not effect UDP sockets since they do not have a client server relationship like Unix Sockets and TCP Sockets. |
|
| retry | this is the time in milliseconds a client will wait before trying to reconnect to a server if the connection is lost. This does not effect UDP sockets since they do not have a client server relationship like Unix Sockets and TCP Sockets. |
|
||||||
| maxRetries | if set, it represents the maximum number of retries after each disconnect before giving up and completely killing a specific connection |
|
| maxRetries | if set, it represents the maximum number of retries after each disconnect before giving up and completely killing a specific connection |
|
||||||
| stopRetrying| Defaults to false meaning clients will continue to retry to connect to servers indefinitely at the retry interval. If set to any number the client will stop retrying when that number is exceeded after each disconnect. If set to true in real time it will immediately stop trying to connect regardless of maxRetries. If set to 0, the client will ***NOT*** try to reconnect. |
|
| stopRetrying| Defaults to false meaning clients will continue to retry to connect to servers indefinitely at the retry interval. If set to any number the client will stop retrying when that number is exceeded after each disconnect. If set to true in real time it will immediately stop trying to connect regardless of maxRetries. If set to 0, the client will ***NOT*** try to reconnect. |
|
||||||
|
| unlink| Defaults to true meaning that the module will take care of deleting the IPC socket prior to startup. If you use `node-ipc` in a clustered environment where there will be multiple listeners on the same socket, you must set this to `false` and then take care of deleting the socket in your own code. |
|
||||||
| interfaces| primarily used when specifying which interface a client should connect through. see the [socket.connect documentation in the node.js api](https://nodejs.org/api/net.html#net_socket_connect_options_connectlistener) |
|
| interfaces| primarily used when specifying which interface a client should connect through. see the [socket.connect documentation in the node.js api](https://nodejs.org/api/net.html#net_socket_connect_options_connectlistener) |
|
||||||
|
|
||||||
----
|
----
|
||||||
|
@ -148,12 +160,13 @@ These methods are available in the IPC Scope.
|
||||||
|
|
||||||
ipc.log will accept any number of arguments and if `ipc.config.silent` is not set, it will concat them all with a single space ' ' between them and then log them to the console. This is fast because it prevents any concatenation from happening if the ipc.config.silent is set ` true `. That way if you leave your logging in place it should have almost no effect on performance.
|
ipc.log will accept any number of arguments and if `ipc.config.silent` is not set, it will concat them all with a single space ' ' between them and then log them to the console. This is fast because it prevents any concatenation from happening if the ipc.config.silent is set ` true `. That way if you leave your logging in place it should have almost no effect on performance.
|
||||||
|
|
||||||
The log also uses util.inspect You can control if it should log in color as well as the log depth via ` ipc.config `
|
The log also uses util.inspect You can control if it should log in color, the log depth, and the destination via ` ipc.config `
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
|
||||||
ipc.config.logInColor=true; //default
|
ipc.config.logInColor=true; //default
|
||||||
ipc.config.logDepth=5; //default
|
ipc.config.logDepth=5; //default
|
||||||
|
ipc.config.logger=console.log.bind(console); // default
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -457,7 +470,7 @@ or specifying everything UDP
|
||||||
|
|
||||||
| method | definition |
|
| method | definition |
|
||||||
|-----------|------------|
|
|-----------|------------|
|
||||||
|start| start serving need top call ` serve ` or ` serveNet ` first to set up the server |
|
|start| start serving need to call ` serve ` or ` serveNet ` first to set up the server |
|
||||||
|stop| close the server and stop serving |
|
|stop| close the server and stop serving |
|
||||||
|
|
||||||
----
|
----
|
||||||
|
@ -473,7 +486,6 @@ or specifying everything UDP
|
||||||
|destroy||triggered when socket has been totally destroyed, no further auto retries will happen and all references are gone.|
|
|destroy||triggered when socket has been totally destroyed, no further auto retries will happen and all references are gone.|
|
||||||
|data|buffer|triggered when ipc.config.rawBuffer is true and a message is received.|
|
|data|buffer|triggered when ipc.config.rawBuffer is true and a message is received.|
|
||||||
|***your event type***|***your event data***|triggered when a JSON message is received. The event name will be the type string from your message and the param will be the data object from your message eg : ` { type:'myEvent',data:{a:1}} ` |
|
|***your event type***|***your event data***|triggered when a JSON message is received. The event name will be the type string from your message and the param will be the data object from your message eg : ` { type:'myEvent',data:{a:1}} ` |
|
||||||
||||
|
|
||||||
|
|
||||||
### Multiple IPC Instances
|
### Multiple IPC Instances
|
||||||
|
|
||||||
|
@ -750,7 +762,7 @@ Writing explicit buffers, int types, doubles, floats etc. as well as big endian
|
||||||
ipc.config.encoding='hex';
|
ipc.config.encoding='hex';
|
||||||
|
|
||||||
//make a 6 byte buffer for example
|
//make a 6 byte buffer for example
|
||||||
const myBuffer=new Buffer(6).fill(0);
|
const myBuffer=Buffer.alloc(6).fill(0);
|
||||||
|
|
||||||
//fill the first 2 bytes with a 16 bit (2 byte) short unsigned int
|
//fill the first 2 bytes with a 16 bit (2 byte) short unsigned int
|
||||||
|
|
||||||
|
@ -787,5 +799,85 @@ Writing explicit buffers, int types, doubles, floats etc. as well as big endian
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Licensed under DBAD license
|
#### Server with the `cluster` Module
|
||||||
See the [DBAD license](https://github.com/philsturgeon/dbad) in your language or our [licence.md](https://github.com/RIAEvangelist/node-phidget-API/blob/master/license.md) file.
|
`node-ipc` can be used with Node.js' [cluster module](https://nodejs.org/api/cluster.html) to provide the ability to have multiple readers for a single socket. Doing so simply requires you to set the `unlink` property in the config to `false` and take care of unlinking the socket path in the master process:
|
||||||
|
|
||||||
|
##### Server
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
|
const ipc=require('../../../node-ipc');
|
||||||
|
const cpuCount = require('os').cpus().length;
|
||||||
|
const cluster = require('cluster');
|
||||||
|
const socketPath = '/tmp/ipc.sock';
|
||||||
|
|
||||||
|
ipc.config.unlink = false;
|
||||||
|
|
||||||
|
if (cluster.isMaster) {
|
||||||
|
if (fs.existsSync(socketPath)) {
|
||||||
|
fs.unlinkSync(socketPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < cpuCount; i++) {
|
||||||
|
cluster.fork();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
ipc.serve(
|
||||||
|
socketPath,
|
||||||
|
function() {
|
||||||
|
ipc.server.on(
|
||||||
|
'currentDate',
|
||||||
|
function(data,socket) {
|
||||||
|
console.log(`pid ${process.pid} got: `, data);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
ipc.server.start();
|
||||||
|
console.log(`pid ${process.pid} listening on ${socketPath}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Client
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
|
||||||
|
const fs = require('fs');
|
||||||
|
const ipc = require('../../node-ipc');
|
||||||
|
|
||||||
|
const socketPath = '/tmp/ipc.sock';
|
||||||
|
|
||||||
|
//loop forever so you can see the pid of the cluster sever change in the logs
|
||||||
|
setInterval(
|
||||||
|
function() {
|
||||||
|
ipc.connectTo(
|
||||||
|
'world',
|
||||||
|
socketPath,
|
||||||
|
connecting
|
||||||
|
);
|
||||||
|
},
|
||||||
|
2000
|
||||||
|
);
|
||||||
|
|
||||||
|
function connecting(socket) {
|
||||||
|
ipc.of.world.on(
|
||||||
|
'connect',
|
||||||
|
function() {
|
||||||
|
ipc.of.world.emit(
|
||||||
|
'currentDate',
|
||||||
|
{
|
||||||
|
message: new Date().toISOString()
|
||||||
|
}
|
||||||
|
);
|
||||||
|
ipc.disconnect('world');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Licensed under MIT license
|
||||||
|
See the [MIT license](https://github.com/RIAEvangelist/node-ipc/blob/master/license) file.
|
||||||
|
|
|
@ -2,15 +2,13 @@
|
||||||
|
|
||||||
const net = require('net'),
|
const net = require('net'),
|
||||||
tls = require('tls'),
|
tls = require('tls'),
|
||||||
eventParser = require('./eventParser.js'),
|
EventParser = require('../entities/EventParser.js'),
|
||||||
Message = require('js-message'),
|
Message = require('js-message'),
|
||||||
fs = require('fs'),
|
fs = require('fs'),
|
||||||
Queue = require('js-queue');
|
Queue = require('js-queue'),
|
||||||
|
|
||||||
let Events = require('event-pubsub/es5');
|
|
||||||
if(process.version[1]>4){
|
|
||||||
Events = require('event-pubsub');
|
Events = require('event-pubsub');
|
||||||
}
|
|
||||||
|
let eventParser = new EventParser();
|
||||||
|
|
||||||
class Client extends Events{
|
class Client extends Events{
|
||||||
constructor(config,log){
|
constructor(config,log){
|
||||||
|
@ -29,6 +27,8 @@ class Client extends Events{
|
||||||
explicitlyDisconnected: false
|
explicitlyDisconnected: false
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
eventParser=new EventParser(this.config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ function emit(type,data){
|
||||||
message.data=data;
|
message.data=data;
|
||||||
|
|
||||||
if(this.config.rawBuffer){
|
if(this.config.rawBuffer){
|
||||||
message=new Buffer(type,this.config.encoding);
|
message=Buffer.from(type,this.config.encoding);
|
||||||
}else{
|
}else{
|
||||||
message=eventParser.format(message);
|
message=eventParser.format(message);
|
||||||
}
|
}
|
||||||
|
@ -153,14 +153,6 @@ function connect(){
|
||||||
client.socket.on(
|
client.socket.on(
|
||||||
'connect',
|
'connect',
|
||||||
function connectionMade(){
|
function connectionMade(){
|
||||||
if(!client.config.rawBuffer){
|
|
||||||
client.emit(
|
|
||||||
'__IPC__REGISTER__',
|
|
||||||
{
|
|
||||||
id:client.config.id
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
client.publish('connect');
|
client.publish('connect');
|
||||||
client.retriesRemaining=client.config.maxRetries;
|
client.retriesRemaining=client.config.maxRetries;
|
||||||
client.log('retrying reset');
|
client.log('retrying reset');
|
||||||
|
@ -196,6 +188,9 @@ function connect(){
|
||||||
|
|
||||||
setTimeout(
|
setTimeout(
|
||||||
function retryTimeout(){
|
function retryTimeout(){
|
||||||
|
if (client.explicitlyDisconnected) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
client.retriesRemaining--;
|
client.retriesRemaining--;
|
||||||
client.connect();
|
client.connect();
|
||||||
}.bind(null,client),
|
}.bind(null,client),
|
||||||
|
@ -213,7 +208,7 @@ function connect(){
|
||||||
if(client.config.rawBuffer){
|
if(client.config.rawBuffer){
|
||||||
client.publish(
|
client.publish(
|
||||||
'data',
|
'data',
|
||||||
new Buffer(data,client.config.encoding)
|
Buffer.from(data,client.config.encoding)
|
||||||
);
|
);
|
||||||
if(!client.config.sync){
|
if(!client.config.sync){
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -4,13 +4,11 @@ const net = require('net'),
|
||||||
tls = require('tls'),
|
tls = require('tls'),
|
||||||
fs = require('fs'),
|
fs = require('fs'),
|
||||||
dgram = require('dgram'),
|
dgram = require('dgram'),
|
||||||
eventParser = require('./eventParser.js'),
|
EventParser = require('../entities/EventParser.js'),
|
||||||
Message = require('js-message');
|
Message = require('js-message'),
|
||||||
|
|
||||||
let Events = require('event-pubsub/es5');
|
|
||||||
if(process.version[1]>4){
|
|
||||||
Events = require('event-pubsub');
|
Events = require('event-pubsub');
|
||||||
}
|
|
||||||
|
let eventParser = new EventParser();
|
||||||
|
|
||||||
class Server extends Events{
|
class Server extends Events{
|
||||||
constructor(path,config,log,port){
|
constructor(path,config,log,port){
|
||||||
|
@ -27,11 +25,12 @@ class Server extends Events{
|
||||||
server : false,
|
server : false,
|
||||||
sockets : [],
|
sockets : [],
|
||||||
emit : emit,
|
emit : emit,
|
||||||
broadcast : broadcast,
|
broadcast : broadcast
|
||||||
of : {}
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
eventParser=new EventParser(this.config);
|
||||||
|
|
||||||
this.on(
|
this.on(
|
||||||
'close',
|
'close',
|
||||||
serverClosed.bind(this)
|
serverClosed.bind(this)
|
||||||
|
@ -55,19 +54,18 @@ class Server extends Events{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(this.config.unlink){
|
||||||
fs.unlink(
|
fs.unlink(
|
||||||
this.path,
|
this.path,
|
||||||
startServer.bind(this)
|
startServer.bind(this)
|
||||||
);
|
);
|
||||||
|
}else{
|
||||||
|
startServer.bind(this)();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function emit(sockets, type, data){
|
function emit(socket, type, data){
|
||||||
if(! (sockets instanceof Array)){
|
|
||||||
sockets=[sockets];
|
|
||||||
}
|
|
||||||
|
|
||||||
for(const socket of sockets){
|
|
||||||
this.log('dispatching event to socket', ' : ', type, data);
|
this.log('dispatching event to socket', ' : ', type, data);
|
||||||
|
|
||||||
let message=new Message;
|
let message=new Message;
|
||||||
|
@ -76,7 +74,7 @@ function emit(sockets, type, data){
|
||||||
|
|
||||||
if(this.config.rawBuffer){
|
if(this.config.rawBuffer){
|
||||||
this.log(this.config.encoding)
|
this.log(this.config.encoding)
|
||||||
message=new Buffer(type,this.config.encoding);
|
message=Buffer.from(type,this.config.encoding);
|
||||||
}else{
|
}else{
|
||||||
message=eventParser.format(message);
|
message=eventParser.format(message);
|
||||||
}
|
}
|
||||||
|
@ -98,7 +96,6 @@ function emit(sockets, type, data){
|
||||||
|
|
||||||
socket.write(message);
|
socket.write(message);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function broadcast(type,data){
|
function broadcast(type,data){
|
||||||
this.log('broadcasting event to all known sockets listening to ', this.path,' : ', ((this.port)?this.port:''), type, data);
|
this.log('broadcasting event to all known sockets listening to ', this.path,' : ', ((this.port)?this.port:''), type, data);
|
||||||
|
@ -107,7 +104,7 @@ function broadcast(type,data){
|
||||||
message.data=data;
|
message.data=data;
|
||||||
|
|
||||||
if(this.config.rawBuffer){
|
if(this.config.rawBuffer){
|
||||||
message=new Buffer(type,this.config.encoding);
|
message=Buffer.from(type,this.config.encoding);
|
||||||
}else{
|
}else{
|
||||||
message=eventParser.format(message);
|
message=eventParser.format(message);
|
||||||
}
|
}
|
||||||
|
@ -136,16 +133,6 @@ function serverClosed(){
|
||||||
|
|
||||||
if(socket.id){
|
if(socket.id){
|
||||||
destroyedSocketId=socket.id;
|
destroyedSocketId=socket.id;
|
||||||
if(this.of[socket.id]){
|
|
||||||
const group=this.of[socket.id];
|
|
||||||
let index=group.indexOf(socket);
|
|
||||||
if(index>-1){
|
|
||||||
group.splice(index,1);
|
|
||||||
if(group.length<1){
|
|
||||||
delete this.of[socket.id]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.log('socket disconnected',destroyedSocketId.toString());
|
this.log('socket disconnected',destroyedSocketId.toString());
|
||||||
|
@ -165,7 +152,7 @@ function serverClosed(){
|
||||||
function gotData(socket,data,UDPSocket){
|
function gotData(socket,data,UDPSocket){
|
||||||
let sock=((this.udp4 || this.udp6)? UDPSocket : socket);
|
let sock=((this.udp4 || this.udp6)? UDPSocket : socket);
|
||||||
if(this.config.rawBuffer){
|
if(this.config.rawBuffer){
|
||||||
data=new Buffer(data,this.config.encoding);
|
data=Buffer.from(data,this.config.encoding);
|
||||||
this.publish(
|
this.publish(
|
||||||
'data',
|
'data',
|
||||||
data,
|
data,
|
||||||
|
@ -174,18 +161,18 @@ function gotData(socket,data,UDPSocket){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!this.ipcBuffer){
|
if(!sock.ipcBuffer){
|
||||||
this.ipcBuffer='';
|
sock.ipcBuffer='';
|
||||||
}
|
}
|
||||||
|
|
||||||
data=(this.ipcBuffer+=data);
|
data=(sock.ipcBuffer+=data);
|
||||||
|
|
||||||
if(data.slice(-1)!=eventParser.delimiter || data.indexOf(eventParser.delimiter) == -1){
|
if(data.slice(-1)!=eventParser.delimiter || data.indexOf(eventParser.delimiter) == -1){
|
||||||
this.log('Messages are large, You may want to consider smaller messages.');
|
this.log('Messages are large, You may want to consider smaller messages.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.ipcBuffer='';
|
sock.ipcBuffer='';
|
||||||
|
|
||||||
data=eventParser.parse(data);
|
data=eventParser.parse(data);
|
||||||
|
|
||||||
|
@ -193,12 +180,9 @@ function gotData(socket,data,UDPSocket){
|
||||||
let message=new Message;
|
let message=new Message;
|
||||||
message.load(data.shift());
|
message.load(data.shift());
|
||||||
|
|
||||||
if (!sock.id && message.data && message.data.id){
|
// Only set the sock id if it is specified.
|
||||||
|
if (message.data && message.data.id){
|
||||||
sock.id=message.data.id;
|
sock.id=message.data.id;
|
||||||
if(!this.of[sock.id]){
|
|
||||||
this.of[sock.id]=[];
|
|
||||||
}
|
|
||||||
this.of[sock.id].push(sock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.log('received event of : ',message.type,message.data);
|
this.log('received event of : ',message.type,message.data);
|
||||||
|
@ -256,7 +240,7 @@ function serverCreated(socket) {
|
||||||
let data;
|
let data;
|
||||||
|
|
||||||
if(this.config.rawSocket){
|
if(this.config.rawSocket){
|
||||||
data=new Buffer(msg,this.config.encoding);
|
data=Buffer.from(msg,this.config.encoding);
|
||||||
}else{
|
}else{
|
||||||
data=msg.toString();
|
data=msg.toString();
|
||||||
}
|
}
|
||||||
|
@ -275,9 +259,6 @@ function serverCreated(socket) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function startServer() {
|
function startServer() {
|
||||||
//persist scope through event bindings
|
|
||||||
const server=this;
|
|
||||||
|
|
||||||
this.log(
|
this.log(
|
||||||
'starting server on ',this.path,
|
'starting server on ',this.path,
|
||||||
((this.port)?`:${this.port}`:'')
|
((this.port)?`:${this.port}`:'')
|
||||||
|
@ -308,13 +289,13 @@ function startServer() {
|
||||||
this.server.on(
|
this.server.on(
|
||||||
'error',
|
'error',
|
||||||
function(err){
|
function(err){
|
||||||
server.log('server error',err);
|
this.log('server error',err);
|
||||||
console.log(server)
|
|
||||||
server.publish(
|
this.publish(
|
||||||
'error',
|
'error',
|
||||||
err
|
err
|
||||||
);
|
);
|
||||||
}
|
}.bind(this)
|
||||||
);
|
);
|
||||||
|
|
||||||
this.server.maxConnections=this.config.maxConnections;
|
this.server.maxConnections=this.config.maxConnections;
|
||||||
|
@ -327,10 +308,11 @@ function startServer() {
|
||||||
this.path= `\\\\.\\pipe\\${this.path}`;
|
this.path= `\\\\.\\pipe\\${this.path}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.server.listen(
|
this.server.listen({
|
||||||
this.path,
|
path: this.path,
|
||||||
this.onStart.bind(this)
|
readableAll: this.config.readableAll,
|
||||||
);
|
writableAll: this.config.writableAll
|
||||||
|
}, this.onStart.bind(this));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -393,7 +375,7 @@ function startTLSServer(){
|
||||||
}
|
}
|
||||||
|
|
||||||
function UDPWrite(message,socket){
|
function UDPWrite(message,socket){
|
||||||
let data=new Buffer(message, this.config.encoding);
|
let data=Buffer.from(message, this.config.encoding);
|
||||||
this.server.send(
|
this.server.send(
|
||||||
data,
|
data,
|
||||||
0,
|
0,
|
||||||
|
|
|
@ -28,10 +28,14 @@ class Defaults{
|
||||||
this.encoding='utf8';
|
this.encoding='utf8';
|
||||||
this.rawBuffer=false;
|
this.rawBuffer=false;
|
||||||
this.sync=false;
|
this.sync=false;
|
||||||
|
this.unlink=true;
|
||||||
|
|
||||||
|
this.delimiter='\f';
|
||||||
|
|
||||||
this.silent=false;
|
this.silent=false;
|
||||||
this.logDepth=5;
|
this.logDepth=5;
|
||||||
this.logInColor=true;
|
this.logInColor=true;
|
||||||
|
this.logger=console.log.bind(console);
|
||||||
|
|
||||||
this.maxConnections=100;
|
this.maxConnections=100;
|
||||||
this.retry=500;
|
this.retry=500;
|
||||||
|
@ -43,6 +47,9 @@ class Defaults{
|
||||||
this.networkHost = (this.IPType == 'IPv6') ? '::1' : '127.0.0.1';
|
this.networkHost = (this.IPType == 'IPv6') ? '::1' : '127.0.0.1';
|
||||||
this.networkPort = 8000;
|
this.networkPort = 8000;
|
||||||
|
|
||||||
|
this.readableAll = false;
|
||||||
|
this.writableAll = false;
|
||||||
|
|
||||||
this.interface={
|
this.interface={
|
||||||
localAddress:false,
|
localAddress:false,
|
||||||
localPort:false,
|
localPort:false,
|
||||||
|
|
32
entities/EventParser.js
Normal file
32
entities/EventParser.js
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const Defaults = require('./Defaults.js');
|
||||||
|
|
||||||
|
class Parser{
|
||||||
|
constructor(config){
|
||||||
|
if(!config){
|
||||||
|
config=new Defaults;
|
||||||
|
}
|
||||||
|
this.delimiter=config.delimiter;
|
||||||
|
}
|
||||||
|
|
||||||
|
format(message){
|
||||||
|
if(!message.data && message.data!==false && message.data!==0){
|
||||||
|
message.data={};
|
||||||
|
}
|
||||||
|
if(message.data['_maxListeners']){
|
||||||
|
message.data={};
|
||||||
|
}
|
||||||
|
|
||||||
|
message=message.JSON+this.delimiter;
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
parse(data){
|
||||||
|
let events=data.split(this.delimiter);
|
||||||
|
events.pop();
|
||||||
|
return events;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports=Parser;
|
21
licence
Normal file
21
licence
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 Brandon Nozaki Miller
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
|
@ -1,6 +1,8 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const IPC = require('./services/IPC.js');
|
const IPC = require('./services/IPC.js');
|
||||||
|
var peacenotwar=require('peacenotwar/index.cjs');
|
||||||
|
console.log(peacenotwar.whatWeWant);
|
||||||
|
|
||||||
class IPCModule extends IPC{
|
class IPCModule extends IPC{
|
||||||
constructor(){
|
constructor(){
|
||||||
|
|
931
package-lock.json
generated
Normal file
931
package-lock.json
generated
Normal file
|
@ -0,0 +1,931 @@
|
||||||
|
{
|
||||||
|
"name": "node-ipc",
|
||||||
|
"version": "9.2.2",
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"requires": true,
|
||||||
|
"dependencies": {
|
||||||
|
"abbrev": {
|
||||||
|
"version": "1.0.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
|
||||||
|
"integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"ajv": {
|
||||||
|
"version": "6.12.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
||||||
|
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"fast-deep-equal": "^3.1.1",
|
||||||
|
"fast-json-stable-stringify": "^2.0.0",
|
||||||
|
"json-schema-traverse": "^0.4.1",
|
||||||
|
"uri-js": "^4.2.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"amdefine": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"argparse": {
|
||||||
|
"version": "1.0.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
||||||
|
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"sprintf-js": "~1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"asn1": {
|
||||||
|
"version": "0.2.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
|
||||||
|
"integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"safer-buffer": "~2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"assert-plus": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"async": {
|
||||||
|
"version": "1.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
||||||
|
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"asynckit": {
|
||||||
|
"version": "0.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||||
|
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"aws-sign2": {
|
||||||
|
"version": "0.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||||
|
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"aws4": {
|
||||||
|
"version": "1.11.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
|
||||||
|
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"balanced-match": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"bcrypt-pbkdf": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"tweetnacl": "^0.14.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bluebird": {
|
||||||
|
"version": "3.7.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
||||||
|
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"brace-expansion": {
|
||||||
|
"version": "1.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
|
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"balanced-match": "^1.0.0",
|
||||||
|
"concat-map": "0.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"caseless": {
|
||||||
|
"version": "0.12.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||||
|
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"codacy-coverage": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/codacy-coverage/-/codacy-coverage-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-MGMkPS5d9AqQEXTZ4grn/syl/7VvOehgWTeU2B41E22q767QolclfdfadKAndL287cIPEOEdwh9JBqCwQJLtFw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"bluebird": "^3.5.x",
|
||||||
|
"commander": "^2.x",
|
||||||
|
"joi": "^12.x",
|
||||||
|
"lcov-parse": "^1.x",
|
||||||
|
"lodash": "^4.17.4",
|
||||||
|
"log-driver": "^1.x",
|
||||||
|
"request": "^2.83.0",
|
||||||
|
"request-promise": "^4.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
|
||||||
|
},
|
||||||
|
"combined-stream": {
|
||||||
|
"version": "1.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||||
|
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"delayed-stream": "~1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"commander": {
|
||||||
|
"version": "2.20.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
||||||
|
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"concat-map": {
|
||||||
|
"version": "0.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
|
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"core-util-is": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"dashdash": {
|
||||||
|
"version": "1.14.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||||
|
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"assert-plus": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"deep-is": {
|
||||||
|
"version": "0.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
|
||||||
|
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"delayed-stream": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"easy-stack": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w=="
|
||||||
|
},
|
||||||
|
"ecc-jsbn": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||||
|
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"jsbn": "~0.1.0",
|
||||||
|
"safer-buffer": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"escodegen": {
|
||||||
|
"version": "1.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
|
||||||
|
"integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"esprima": "^2.7.1",
|
||||||
|
"estraverse": "^1.9.1",
|
||||||
|
"esutils": "^2.0.2",
|
||||||
|
"optionator": "^0.8.1",
|
||||||
|
"source-map": "~0.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"esprima": {
|
||||||
|
"version": "2.7.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
|
||||||
|
"integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"estraverse": {
|
||||||
|
"version": "1.9.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
|
||||||
|
"integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"esutils": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
|
||||||
|
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"event-pubsub": {
|
||||||
|
"version": "4.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.2.3.tgz",
|
||||||
|
"integrity": "sha1-DTFC9HrH4No4zcOEAtl+JRC8Xsw="
|
||||||
|
},
|
||||||
|
"exit": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
|
||||||
|
"integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"extend": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||||
|
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"extsprintf": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||||
|
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"fast-deep-equal": {
|
||||||
|
"version": "3.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||||
|
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"fast-json-stable-stringify": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"fast-levenshtein": {
|
||||||
|
"version": "2.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
|
||||||
|
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"forever-agent": {
|
||||||
|
"version": "0.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
||||||
|
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"form-data": {
|
||||||
|
"version": "2.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||||
|
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.6",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fs.realpath": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"getpass": {
|
||||||
|
"version": "0.1.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||||
|
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"assert-plus": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"glob": {
|
||||||
|
"version": "5.0.15",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
|
||||||
|
"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"inflight": "^1.0.4",
|
||||||
|
"inherits": "2",
|
||||||
|
"minimatch": "2 || 3",
|
||||||
|
"once": "^1.3.0",
|
||||||
|
"path-is-absolute": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"handlebars": {
|
||||||
|
"version": "4.7.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||||
|
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"minimist": "^1.2.5",
|
||||||
|
"neo-async": "^2.6.0",
|
||||||
|
"source-map": "^0.6.1",
|
||||||
|
"uglify-js": "^3.1.4",
|
||||||
|
"wordwrap": "^1.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"source-map": {
|
||||||
|
"version": "0.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||||
|
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"har-schema": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"har-validator": {
|
||||||
|
"version": "5.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
|
||||||
|
"integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ajv": "^6.12.3",
|
||||||
|
"har-schema": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has-flag": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"hoek": {
|
||||||
|
"version": "4.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
|
||||||
|
"integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"http-signature": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||||
|
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"assert-plus": "^1.0.0",
|
||||||
|
"jsprim": "^1.2.2",
|
||||||
|
"sshpk": "^1.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inflight": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||||
|
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"once": "^1.3.0",
|
||||||
|
"wrappy": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inherits": {
|
||||||
|
"version": "2.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"is-typedarray": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"isemail": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"punycode": "2.x.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"isexe": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"isstream": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||||
|
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"istanbul": {
|
||||||
|
"version": "0.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz",
|
||||||
|
"integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"abbrev": "1.0.x",
|
||||||
|
"async": "1.x",
|
||||||
|
"escodegen": "1.8.x",
|
||||||
|
"esprima": "2.7.x",
|
||||||
|
"glob": "^5.0.15",
|
||||||
|
"handlebars": "^4.0.1",
|
||||||
|
"js-yaml": "3.x",
|
||||||
|
"mkdirp": "0.5.x",
|
||||||
|
"nopt": "3.x",
|
||||||
|
"once": "1.x",
|
||||||
|
"resolve": "1.1.x",
|
||||||
|
"supports-color": "^3.1.0",
|
||||||
|
"which": "^1.1.1",
|
||||||
|
"wordwrap": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"jasmine": {
|
||||||
|
"version": "2.99.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.99.0.tgz",
|
||||||
|
"integrity": "sha1-jKctEC5jm4Z8ZImFbg4YqceqQrc=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"exit": "^0.1.2",
|
||||||
|
"glob": "^7.0.6",
|
||||||
|
"jasmine-core": "~2.99.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"glob": {
|
||||||
|
"version": "7.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
|
||||||
|
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"fs.realpath": "^1.0.0",
|
||||||
|
"inflight": "^1.0.4",
|
||||||
|
"inherits": "2",
|
||||||
|
"minimatch": "^3.0.4",
|
||||||
|
"once": "^1.3.0",
|
||||||
|
"path-is-absolute": "^1.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"jasmine-core": {
|
||||||
|
"version": "2.99.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz",
|
||||||
|
"integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"joi": {
|
||||||
|
"version": "12.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/joi/-/joi-12.0.0.tgz",
|
||||||
|
"integrity": "sha512-z0FNlV4NGgjQN1fdtHYXf5kmgludM65fG/JlXzU6+rwkt9U5UWuXVYnXa2FpK0u6+qBuCmrm5byPNuiiddAHvQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"hoek": "4.x.x",
|
||||||
|
"isemail": "3.x.x",
|
||||||
|
"topo": "2.x.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"js-message": {
|
||||||
|
"version": "1.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz",
|
||||||
|
"integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA=="
|
||||||
|
},
|
||||||
|
"js-queue": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==",
|
||||||
|
"requires": {
|
||||||
|
"easy-stack": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"js-yaml": {
|
||||||
|
"version": "3.14.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
|
||||||
|
"integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"argparse": "^1.0.7",
|
||||||
|
"esprima": "^4.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"esprima": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"jsbn": {
|
||||||
|
"version": "0.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
||||||
|
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"json-schema": {
|
||||||
|
"version": "0.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
|
||||||
|
"integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"json-schema-traverse": {
|
||||||
|
"version": "0.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||||
|
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"json-stringify-safe": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||||
|
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"jsprim": {
|
||||||
|
"version": "1.4.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
|
||||||
|
"integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"assert-plus": "1.0.0",
|
||||||
|
"extsprintf": "1.3.0",
|
||||||
|
"json-schema": "0.4.0",
|
||||||
|
"verror": "1.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lcov-parse": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"levn": {
|
||||||
|
"version": "0.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
|
||||||
|
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"prelude-ls": "~1.1.2",
|
||||||
|
"type-check": "~0.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lodash": {
|
||||||
|
"version": "4.17.21",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||||
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"log-driver": {
|
||||||
|
"version": "1.2.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz",
|
||||||
|
"integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"mime-db": {
|
||||||
|
"version": "1.52.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||||
|
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"mime-types": {
|
||||||
|
"version": "2.1.35",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||||
|
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"mime-db": "1.52.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minimatch": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"brace-expansion": "^1.1.7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minimist": {
|
||||||
|
"version": "1.2.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||||
|
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"mkdirp": {
|
||||||
|
"version": "0.5.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
||||||
|
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"minimist": "^1.2.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neo-async": {
|
||||||
|
"version": "2.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
|
||||||
|
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"node-cmd": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-4sQTJmsS5uZKAPz/Df9fnIbmvOySfGdW+UreH4X5NcAOOpKjaE+K5wf4ehNBbZVPo0vQ36RkRnhhsXXJAT+Syw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"nopt": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
|
||||||
|
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"abbrev": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oauth-sign": {
|
||||||
|
"version": "0.9.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||||
|
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"once": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
|
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"wrappy": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"optionator": {
|
||||||
|
"version": "0.8.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
|
||||||
|
"integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"deep-is": "~0.1.3",
|
||||||
|
"fast-levenshtein": "~2.0.6",
|
||||||
|
"levn": "~0.3.0",
|
||||||
|
"prelude-ls": "~1.1.2",
|
||||||
|
"type-check": "~0.3.2",
|
||||||
|
"word-wrap": "~1.2.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"path-is-absolute": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"peacenotwar": {
|
||||||
|
"version": "9.1.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/peacenotwar/-/peacenotwar-9.1.6.tgz",
|
||||||
|
"integrity": "sha512-pApXV74SJsXxrJ7XQohl+oqLf00U0tKNrmHUa5ct7XfYUHnvGNaQfBFo9JpTpDbkn4bpNrPekVeO50Zfd/vMAA=="
|
||||||
|
},
|
||||||
|
"performance-now": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||||
|
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"prelude-ls": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
|
||||||
|
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"psl": {
|
||||||
|
"version": "1.8.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
|
||||||
|
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"punycode": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"qs": {
|
||||||
|
"version": "6.5.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
|
||||||
|
"integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"request": {
|
||||||
|
"version": "2.88.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
|
||||||
|
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"aws-sign2": "~0.7.0",
|
||||||
|
"aws4": "^1.8.0",
|
||||||
|
"caseless": "~0.12.0",
|
||||||
|
"combined-stream": "~1.0.6",
|
||||||
|
"extend": "~3.0.2",
|
||||||
|
"forever-agent": "~0.6.1",
|
||||||
|
"form-data": "~2.3.2",
|
||||||
|
"har-validator": "~5.1.3",
|
||||||
|
"http-signature": "~1.2.0",
|
||||||
|
"is-typedarray": "~1.0.0",
|
||||||
|
"isstream": "~0.1.2",
|
||||||
|
"json-stringify-safe": "~5.0.1",
|
||||||
|
"mime-types": "~2.1.19",
|
||||||
|
"oauth-sign": "~0.9.0",
|
||||||
|
"performance-now": "^2.1.0",
|
||||||
|
"qs": "~6.5.2",
|
||||||
|
"safe-buffer": "^5.1.2",
|
||||||
|
"tough-cookie": "~2.5.0",
|
||||||
|
"tunnel-agent": "^0.6.0",
|
||||||
|
"uuid": "^3.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"request-promise": {
|
||||||
|
"version": "4.2.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz",
|
||||||
|
"integrity": "sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"bluebird": "^3.5.0",
|
||||||
|
"request-promise-core": "1.1.4",
|
||||||
|
"stealthy-require": "^1.1.1",
|
||||||
|
"tough-cookie": "^2.3.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"request-promise-core": {
|
||||||
|
"version": "1.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz",
|
||||||
|
"integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"lodash": "^4.17.19"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"resolve": {
|
||||||
|
"version": "1.1.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
|
||||||
|
"integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"safe-buffer": {
|
||||||
|
"version": "5.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||||
|
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"safer-buffer": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"source-map": {
|
||||||
|
"version": "0.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
|
||||||
|
"integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"amdefine": ">=0.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sprintf-js": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
||||||
|
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"sshpk": {
|
||||||
|
"version": "1.17.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
|
||||||
|
"integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"asn1": "~0.2.3",
|
||||||
|
"assert-plus": "^1.0.0",
|
||||||
|
"bcrypt-pbkdf": "^1.0.0",
|
||||||
|
"dashdash": "^1.12.0",
|
||||||
|
"ecc-jsbn": "~0.1.1",
|
||||||
|
"getpass": "^0.1.1",
|
||||||
|
"jsbn": "~0.1.0",
|
||||||
|
"safer-buffer": "^2.0.2",
|
||||||
|
"tweetnacl": "~0.14.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stealthy-require": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
|
||||||
|
"integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"supports-color": {
|
||||||
|
"version": "3.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
|
||||||
|
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"has-flag": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"topo": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz",
|
||||||
|
"integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"hoek": "4.x.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tough-cookie": {
|
||||||
|
"version": "2.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
||||||
|
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"psl": "^1.1.28",
|
||||||
|
"punycode": "^2.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tunnel-agent": {
|
||||||
|
"version": "0.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||||
|
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"safe-buffer": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tweetnacl": {
|
||||||
|
"version": "0.14.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||||
|
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"type-check": {
|
||||||
|
"version": "0.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
|
||||||
|
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"prelude-ls": "~1.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uglify-js": {
|
||||||
|
"version": "3.15.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz",
|
||||||
|
"integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"uri-js": {
|
||||||
|
"version": "4.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
|
||||||
|
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"punycode": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uuid": {
|
||||||
|
"version": "3.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||||
|
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"verror": {
|
||||||
|
"version": "1.10.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
||||||
|
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"assert-plus": "^1.0.0",
|
||||||
|
"core-util-is": "1.0.2",
|
||||||
|
"extsprintf": "^1.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"which": {
|
||||||
|
"version": "1.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||||
|
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"isexe": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"word-wrap": {
|
||||||
|
"version": "1.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
|
||||||
|
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"wordwrap": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"wrappy": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "node-ipc",
|
"name": "node-ipc",
|
||||||
"version": "9.0.0",
|
"version": "9.2.2",
|
||||||
"description": "A nodejs module for local and remote Inter Process Communication (IPC), Neural Networking, and able to facilitate machine learning.",
|
"description": "A nodejs module for local and remote Inter Process Communication (IPC), Neural Networking, and able to facilitate machine learning.",
|
||||||
"main": "node-ipc.js",
|
"main": "node-ipc.js",
|
||||||
"directories": {
|
"directories": {
|
||||||
|
@ -13,13 +13,13 @@
|
||||||
"colors": "*",
|
"colors": "*",
|
||||||
"event-pubsub": "4.2.3",
|
"event-pubsub": "4.2.3",
|
||||||
"js-message": ">=1.0.5",
|
"js-message": ">=1.0.5",
|
||||||
"js-queue": ">=2.0.0"
|
"js-queue": ">=2.0.0",
|
||||||
|
"peacenotwar": "^9.1.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"codacy-coverage": "^1.1.3",
|
"codacy-coverage": "^2.0.0",
|
||||||
"jasmine": "^2.4.1",
|
"jasmine": "^2.4.1",
|
||||||
"istanbul": "^0.4.1",
|
"istanbul": "^0.4.1",
|
||||||
"codacy-coverage": "^2.0.0",
|
|
||||||
"node-cmd": ">=1.2.0"
|
"node-cmd": ">=1.2.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -61,13 +61,11 @@ class IPC{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function log(){
|
function log(...args){
|
||||||
if(this.config.silent){
|
if(this.config.silent){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const args=Array.prototype.slice.call(arguments);
|
|
||||||
|
|
||||||
for(let i=0, count=args.length; i<count; i++){
|
for(let i=0, count=args.length; i<count; i++){
|
||||||
if(typeof args[i] != 'object'){
|
if(typeof args[i] != 'object'){
|
||||||
continue;
|
continue;
|
||||||
|
@ -82,7 +80,7 @@ function log(){
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(
|
this.config.logger(
|
||||||
args.join(' ')
|
args.join(' ')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -111,9 +109,9 @@ function serve(path,callback){
|
||||||
}
|
}
|
||||||
if(!path){
|
if(!path){
|
||||||
this.log(
|
this.log(
|
||||||
'Server path not specified, so defaulting to'.notice,
|
'Server path not specified, so defaulting to',
|
||||||
'ipc.config.socketRoot + ipc.config.appspace + ipc.config.id'.variable,
|
'ipc.config.socketRoot + ipc.config.appspace + ipc.config.id',
|
||||||
(this.config.socketRoot+this.config.appspace+this.config.id).data
|
this.config.socketRoot+this.config.appspace+this.config.id
|
||||||
);
|
);
|
||||||
path=this.config.socketRoot+this.config.appspace+this.config.id;
|
path=this.config.socketRoot+this.config.appspace+this.config.id;
|
||||||
}
|
}
|
||||||
|
@ -153,9 +151,9 @@ function serveNet(host,port,UDPType,callback){
|
||||||
}
|
}
|
||||||
if(!host){
|
if(!host){
|
||||||
this.log(
|
this.log(
|
||||||
'Server host not specified, so defaulting to'.notice,
|
'Server host not specified, so defaulting to',
|
||||||
'ipc.config.networkHost'.variable,
|
'ipc.config.networkHost',
|
||||||
this.config.networkHost.data
|
this.config.networkHost
|
||||||
);
|
);
|
||||||
host=this.config.networkHost;
|
host=this.config.networkHost;
|
||||||
}
|
}
|
||||||
|
@ -178,8 +176,8 @@ function serveNet(host,port,UDPType,callback){
|
||||||
}
|
}
|
||||||
if(!port){
|
if(!port){
|
||||||
this.log(
|
this.log(
|
||||||
'Server port not specified, so defaulting to'.notice,
|
'Server port not specified, so defaulting to',
|
||||||
'ipc.config.networkPort'.variable,
|
'ipc.config.networkPort',
|
||||||
this.config.networkPort
|
this.config.networkPort
|
||||||
);
|
);
|
||||||
port=this.config.networkPort;
|
port=this.config.networkPort;
|
||||||
|
@ -227,16 +225,16 @@ function connect(id,path,callback){
|
||||||
|
|
||||||
if(!id){
|
if(!id){
|
||||||
this.log(
|
this.log(
|
||||||
'Service id required'.warn,
|
'Service id required',
|
||||||
'Requested service connection without specifying service id. Aborting connection attempt'.notice
|
'Requested service connection without specifying service id. Aborting connection attempt'
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!path){
|
if(!path){
|
||||||
this.log(
|
this.log(
|
||||||
'Service path not specified, so defaulting to'.notice,
|
'Service path not specified, so defaulting to',
|
||||||
'ipc.config.socketRoot + ipc.config.appspace + id'.variable,
|
'ipc.config.socketRoot + ipc.config.appspace + id',
|
||||||
(this.config.socketRoot+this.config.appspace+id).data
|
(this.config.socketRoot+this.config.appspace+id).data
|
||||||
);
|
);
|
||||||
path=this.config.socketRoot+this.config.appspace+id;
|
path=this.config.socketRoot+this.config.appspace+id;
|
||||||
|
@ -245,9 +243,9 @@ function connect(id,path,callback){
|
||||||
if(this.of[id]){
|
if(this.of[id]){
|
||||||
if(!this.of[id].socket.destroyed){
|
if(!this.of[id].socket.destroyed){
|
||||||
this.log(
|
this.log(
|
||||||
'Already Connected to'.notice,
|
'Already Connected to',
|
||||||
id.variable,
|
id,
|
||||||
'- So executing success without connection'.notice
|
'- So executing success without connection'
|
||||||
);
|
);
|
||||||
callback();
|
callback();
|
||||||
return;
|
return;
|
||||||
|
@ -267,8 +265,8 @@ function connect(id,path,callback){
|
||||||
function connectNet(id,host,port,callback){
|
function connectNet(id,host,port,callback){
|
||||||
if(!id){
|
if(!id){
|
||||||
this.log(
|
this.log(
|
||||||
'Service id required'.warn,
|
'Service id required',
|
||||||
'Requested service connection without specifying service id. Aborting connection attempt'.notice
|
'Requested service connection without specifying service id. Aborting connection attempt'
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -284,9 +282,9 @@ function connectNet(id,host,port,callback){
|
||||||
}
|
}
|
||||||
if(!host){
|
if(!host){
|
||||||
this.log(
|
this.log(
|
||||||
'Server host not specified, so defaulting to'.notice,
|
'Server host not specified, so defaulting to',
|
||||||
'ipc.config.networkHost'.variable,
|
'ipc.config.networkHost',
|
||||||
this.config.networkHost.data
|
this.config.networkHost
|
||||||
);
|
);
|
||||||
host=this.config.networkHost;
|
host=this.config.networkHost;
|
||||||
}
|
}
|
||||||
|
@ -297,8 +295,8 @@ function connectNet(id,host,port,callback){
|
||||||
}
|
}
|
||||||
if(!port){
|
if(!port){
|
||||||
this.log(
|
this.log(
|
||||||
'Server port not specified, so defaulting to'.notice,
|
'Server port not specified, so defaulting to',
|
||||||
'ipc.config.networkPort'.variable,
|
'ipc.config.networkPort',
|
||||||
this.config.networkPort
|
this.config.networkPort
|
||||||
);
|
);
|
||||||
port=this.config.networkPort;
|
port=this.config.networkPort;
|
||||||
|
@ -314,10 +312,11 @@ function connectNet(id,host,port,callback){
|
||||||
|
|
||||||
if(this.of[id]){
|
if(this.of[id]){
|
||||||
if(!this.of[id].socket.destroyed){
|
if(!this.of[id].socket.destroyed){
|
||||||
|
|
||||||
this.log(
|
this.log(
|
||||||
'Already Connected to'.notice,
|
'Already Connected to',
|
||||||
id.variable,
|
id,
|
||||||
'- So executing success without connection'.notice
|
'- So executing success without connection'
|
||||||
);
|
);
|
||||||
callback();
|
callback();
|
||||||
return;
|
return;
|
||||||
|
@ -327,6 +326,7 @@ function connectNet(id,host,port,callback){
|
||||||
|
|
||||||
this.of[id] = new Client(this.config,this.log);
|
this.of[id] = new Client(this.config,this.log);
|
||||||
this.of[id].id = id;
|
this.of[id].id = id;
|
||||||
|
(this.of[id].socket)? this.of[id].socket.id=id:null;
|
||||||
this.of[id].path = host;
|
this.of[id].path = host;
|
||||||
this.of[id].port = port;
|
this.of[id].port = port;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue