@pioneer-platform/pioneer-events
Advanced tools
Comparing version 7.0.7 to 7.1.0
require("dotenv").config({path:'./../../.env'}) | ||
require("dotenv").config({path:'../../../.env'}) | ||
require("dotenv").config({path:'../../../../.env'}) | ||
let client = require("../lib") | ||
let Events = require("../lib") | ||
@@ -29,4 +29,3 @@ let WALLET_PASSWORD = process.env['WALLET_PASSWORD'] | ||
let config = { | ||
username, | ||
queryKey:TEST_QUERY_KEY_2, | ||
queryKey:"adsfgdfgds3sdfsd", | ||
pioneerWs:process.env['URL_PIONEER_SOCKET'] | ||
@@ -36,6 +35,7 @@ } | ||
//sub ALL events | ||
let events = await client.init(config) | ||
let clientEvents = new Events.Events(config.pioneerWs,config) | ||
clientEvents.init() | ||
//info | ||
events.on('message',function(request){ | ||
clientEvents.events.on('message',function(request){ | ||
console.log("message: ",request) | ||
@@ -42,0 +42,0 @@ }) |
@@ -1,11 +0,16 @@ | ||
declare const TAG = " | ws-client | "; | ||
declare const log: any; | ||
declare const EventEmitter: any; | ||
declare const emitter: any; | ||
declare const io: any; | ||
declare let wait: any; | ||
declare let sleep: any; | ||
declare let URL_PIONEER_WS: string | undefined; | ||
declare let SOCKET: any; | ||
declare let disconnect: () => Promise<void>; | ||
declare let init_client: (config: any) => Promise<any>; | ||
export declare class Events { | ||
private wss; | ||
private username; | ||
private queryKey; | ||
private socket; | ||
private events; | ||
private isConnected; | ||
private isTestnet; | ||
private isPaired; | ||
private init; | ||
private emitter; | ||
private setUsername; | ||
private pair; | ||
private disconnect; | ||
constructor(wss: string, config: any, isTestnet?: boolean); | ||
} |
248
lib/index.js
@@ -38,135 +38,133 @@ "use strict"; | ||
}; | ||
/* | ||
Pioneer Events | ||
Sub to username | ||
sub to rooms | ||
Go online | ||
Sub to Wallet | ||
*/ | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Events = void 0; | ||
var TAG = " | ws-client | "; | ||
var log = require("@pioneer-platform/loggerdog")(); | ||
var EventEmitter = require('events'); | ||
var emitter = new EventEmitter(); | ||
var io = require('socket.io-client'); | ||
var wait = require('wait-promise'); | ||
var sleep = wait.sleep; | ||
//globals | ||
var URL_PIONEER_WS = process.env['URL_PIONEER_WS']; | ||
var SOCKET; | ||
module.exports = { | ||
init: function (config) { | ||
return init_client(config); | ||
}, | ||
disconnect: function () { | ||
return disconnect(); | ||
}, | ||
}; | ||
var disconnect = function () { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var tag; | ||
return __generator(this, function (_a) { | ||
tag = TAG + " | init_wallet | "; | ||
try { | ||
SOCKET.disconnect(); | ||
} | ||
catch (e) { | ||
if (e.response && e.response.data) { | ||
log.error(tag, "Error: ", e.response.data); | ||
} | ||
else { | ||
log.error(tag, "Error: ", e); | ||
} | ||
throw e; | ||
} | ||
return [2 /*return*/]; | ||
}); | ||
}); | ||
}; | ||
var init_client = function (config) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var tag, successConnect_1, e_1; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
tag = TAG + " | init_wallet | "; | ||
_a.label = 1; | ||
case 1: | ||
_a.trys.push([1, 5, , 6]); | ||
if (config.pioneerWs) { | ||
URL_PIONEER_WS = config.pioneerWs; | ||
var Events = /** @class */ (function () { | ||
function Events(wss, config, isTestnet) { | ||
this.wss = config.wss || 'wss://pioneers.dev'; | ||
this.isConnected = false; | ||
this.isTestnet = false; | ||
this.username = config.username; | ||
this.queryKey = config.queryKey; | ||
this.isPaired = false; | ||
this.events = new EventEmitter(); | ||
this.init = function () { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var tag, e_1; | ||
var _this = this; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
tag = TAG + " | init_events | "; | ||
_a.label = 1; | ||
case 1: | ||
_a.trys.push([1, 5, , 6]); | ||
this.socket = io.connect(this.wss, { | ||
reconnect: true, | ||
rejectUnauthorized: false | ||
}); | ||
//sub | ||
this.socket.on('connect', function () { | ||
log.info(tag, 'Connected to ' + _this.wss); | ||
_this.isConnected = true; | ||
}); | ||
this.socket.on('message', function (message) { | ||
//TODO only emit expected messages? | ||
//if(message.type === "payment_request"){} | ||
_this.emitter.emit('message', message); | ||
}); | ||
//sub to errors | ||
this.socket.on('errorMessage', function (message) { | ||
log.error(tag, "error: ", message); | ||
if (message.code && message.code === 6) | ||
throw Error(" Failed to connect!"); | ||
}); | ||
this.socket.on('invocation', function (message) { | ||
log.info('invocation: ', message); | ||
_this.emitter.emit('message', message); | ||
}); | ||
_a.label = 2; | ||
case 2: | ||
if (!!this.isConnected) return [3 /*break*/, 4]; | ||
return [4 /*yield*/, sleep(300)]; | ||
case 3: | ||
_a.sent(); | ||
return [3 /*break*/, 2]; | ||
case 4: return [2 /*return*/, true]; | ||
case 5: | ||
e_1 = _a.sent(); | ||
log.error(tag, e_1); | ||
throw e_1; | ||
case 6: return [2 /*return*/]; | ||
} | ||
if (!URL_PIONEER_WS) | ||
throw Error(" Failed to find ws server! "); | ||
if (!config.username) | ||
throw Error(" invalid config! missing username "); | ||
if (!config.queryKey) | ||
throw Error(" invalid config! missing queryKey "); | ||
successConnect_1 = false; | ||
//sub to websocket as user | ||
SOCKET = io.connect(URL_PIONEER_WS, { reconnect: true, rejectUnauthorized: false }); | ||
//connect | ||
SOCKET.on('connect', function () { | ||
log.debug(tag, 'Connected!'); | ||
SOCKET.emit('join', { username: config.username, queryKey: config.queryKey }); | ||
}); | ||
//sub to messages | ||
SOCKET.on('message', function (message) { | ||
log.info('message: ', message); | ||
emitter.emit('message', message); | ||
//if payment request | ||
if (message.type === "payment_request") { | ||
//if receiver is known | ||
//if receiver is unknown | ||
//if global accept on | ||
//if autonomous | ||
//perform | ||
emitter.emit('message', message); | ||
//else add to approve queue | ||
} | ||
else { | ||
//emit everything | ||
} | ||
//TODO blocks | ||
//TODO payments | ||
//balances | ||
}); | ||
SOCKET.on('connect', function (message) { | ||
log.info(tag, "connect:", message); | ||
successConnect_1 = true; | ||
}); | ||
SOCKET.on('errorMessage', function (message) { | ||
log.error(tag, "error: ", message); | ||
if (message.code && message.code === 6) | ||
throw Error(" Failed to connect!"); | ||
}); | ||
SOCKET.on('invocation', function (message) { | ||
log.info('invocation: ', message); | ||
emitter.emit('message', message); | ||
}); | ||
_a.label = 2; | ||
case 2: | ||
if (!!successConnect_1) return [3 /*break*/, 4]; | ||
return [4 /*yield*/, sleep(300)]; | ||
case 3: | ||
_a.sent(); | ||
return [3 /*break*/, 2]; | ||
case 4: return [2 /*return*/, emitter]; | ||
case 5: | ||
e_1 = _a.sent(); | ||
if (e_1.response && e_1.response.data) { | ||
log.error(tag, "Error: ", e_1.response.data); | ||
}); | ||
}); | ||
}; | ||
this.setUsername = function (username) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var tag; | ||
return __generator(this, function (_a) { | ||
tag = TAG + " | startSocket | "; | ||
try { | ||
this.username = username; | ||
} | ||
else { | ||
log.error(tag, "Error: ", e_1); | ||
catch (e) { | ||
log.error(tag, "e: ", e); | ||
} | ||
throw e_1; | ||
case 6: return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
}; | ||
return [2 /*return*/]; | ||
}); | ||
}); | ||
}; | ||
this.pair = function (username) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var tag; | ||
return __generator(this, function (_a) { | ||
tag = TAG + " | startSocket | "; | ||
try { | ||
if (username) | ||
this.username = username; | ||
if (!this.username) | ||
throw Error("103: can not pair without username!"); | ||
//attempt join | ||
this.socket.emit('join', { | ||
username: this.username, | ||
queryKey: config.queryKey | ||
}); | ||
//paired message? | ||
//release on successful pair | ||
// while(!this.isPaired){ | ||
// await sleep(300) | ||
// } | ||
return [2 /*return*/, true]; | ||
} | ||
catch (e) { | ||
log.error(tag, "e: ", e); | ||
throw e; | ||
} | ||
return [2 /*return*/]; | ||
}); | ||
}); | ||
}; | ||
this.disconnect = function () { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var tag; | ||
return __generator(this, function (_a) { | ||
tag = TAG + " | disconnect | "; | ||
try { | ||
} | ||
catch (e) { | ||
log.error(tag, "e: ", e); | ||
} | ||
return [2 /*return*/]; | ||
}); | ||
}); | ||
}; | ||
} | ||
return Events; | ||
}()); | ||
exports.Events = Events; |
{ | ||
"name": "@pioneer-platform/pioneer-events", | ||
"version": "7.0.7", | ||
"version": "7.1.0", | ||
"main": "./lib/index.js", | ||
@@ -5,0 +5,0 @@ "types": "./lib/main.d.ts", |
206
src/index.ts
@@ -1,132 +0,114 @@ | ||
/* | ||
Pioneer Events | ||
Sub to username | ||
sub to rooms | ||
Go online | ||
Sub to Wallet | ||
*/ | ||
const TAG = " | ws-client | "; | ||
const log = require("@pioneer-platform/loggerdog")() | ||
const EventEmitter = require('events'); | ||
const emitter = new EventEmitter(); | ||
const io = require('socket.io-client'); | ||
const wait = require('wait-promise'); | ||
const sleep = wait.sleep; | ||
let wait = require('wait-promise'); | ||
let sleep = wait.sleep; | ||
export class Events { | ||
private wss: string; | ||
private username: string | ||
private queryKey: string | ||
private socket: any | ||
private events: any | ||
private isConnected: boolean | ||
private isTestnet: boolean | ||
private isPaired: boolean | ||
private init: () => Promise<boolean>; | ||
private emitter: any; | ||
private setUsername: (username:string) => Promise<void>; | ||
private pair: (username?: string) => Promise<boolean>; | ||
private disconnect: () => Promise<void>; | ||
constructor(wss:string,config:any,isTestnet?:boolean) { | ||
this.wss = config.wss || 'wss://pioneers.dev' | ||
this.isConnected = false | ||
this.isTestnet = false | ||
this.username = config.username | ||
this.queryKey = config.queryKey | ||
this.isPaired = false | ||
this.events = new EventEmitter(); | ||
this.init = async function () { | ||
let tag = TAG + " | init_events | " | ||
try { | ||
this.socket = io.connect(this.wss, { | ||
reconnect: true, | ||
rejectUnauthorized: false | ||
}); | ||
//globals | ||
let URL_PIONEER_WS = process.env['URL_PIONEER_WS'] | ||
let SOCKET:any | ||
module.exports = { | ||
init: function (config: any) { | ||
return init_client(config); | ||
}, | ||
disconnect: function () { | ||
return disconnect(); | ||
}, | ||
} | ||
//sub | ||
this.socket.on('connect', () => { | ||
log.info(tag,'Connected to '+this.wss); | ||
this.isConnected = true | ||
}); | ||
let disconnect = async function () { | ||
let tag = TAG+" | init_wallet | "; | ||
try { | ||
SOCKET.disconnect() | ||
} catch (e) { | ||
if(e.response && e.response.data){ | ||
log.error(tag, "Error: ", e.response.data); | ||
}else{ | ||
log.error(tag, "Error: ", e); | ||
} | ||
throw e; | ||
} | ||
}; | ||
this.socket.on('message', (message: any) => { | ||
//TODO only emit expected messages? | ||
//if(message.type === "payment_request"){} | ||
this.emitter.emit('message',message) | ||
}) | ||
let init_client = async function (config:any) { | ||
let tag = TAG+" | init_wallet | "; | ||
try { | ||
if(config.pioneerWs){ | ||
URL_PIONEER_WS = config.pioneerWs | ||
} | ||
if(!URL_PIONEER_WS) throw Error(" Failed to find ws server! ") | ||
if(!config.username) throw Error(" invalid config! missing username ") | ||
if(!config.queryKey) throw Error(" invalid config! missing queryKey ") | ||
//sub to errors | ||
this.socket.on('errorMessage', function (message:any) { | ||
log.error(tag,"error: ",message) | ||
if(message.code && message.code === 6) throw Error(" Failed to connect!") | ||
}); | ||
//let successConnect | ||
let successConnect = false | ||
this.socket.on('invocation', (message: any) => { | ||
log.info('invocation: ',message); | ||
this.emitter.emit('message',message) | ||
}); | ||
//sub to websocket as user | ||
SOCKET = io.connect(URL_PIONEER_WS, {reconnect: true, rejectUnauthorized: false}); | ||
//dont release to connect | ||
while(!this.isConnected){ | ||
await sleep(300) | ||
} | ||
//connect | ||
SOCKET.on('connect', function () { | ||
log.debug(tag,'Connected!'); | ||
SOCKET.emit('join',{username:config.username,queryKey:config.queryKey}) | ||
}); | ||
return true | ||
} catch (e) { | ||
log.error(tag, e) | ||
throw e | ||
} | ||
} | ||
this.setUsername = async function (username) { | ||
let tag = TAG + " | startSocket | " | ||
try { | ||
this.username = username | ||
} catch (e) { | ||
log.error(tag, "e: ", e) | ||
} | ||
} | ||
this.pair = async function (username?:string) { | ||
let tag = TAG + " | startSocket | " | ||
try { | ||
if(username) this.username = username | ||
if(!this.username) throw Error("103: can not pair without username!") | ||
//sub to messages | ||
SOCKET.on('message', function (message:any) { | ||
log.info('message: ',message); | ||
emitter.emit('message',message) | ||
//if payment request | ||
if(message.type === "payment_request"){ | ||
//if receiver is known | ||
//attempt join | ||
this.socket.emit('join',{ | ||
username:this.username, | ||
queryKey:config.queryKey | ||
}) | ||
//if receiver is unknown | ||
//if global accept on | ||
//paired message? | ||
//if autonomous | ||
//perform | ||
emitter.emit('message',message) | ||
//release on successful pair | ||
// while(!this.isPaired){ | ||
// await sleep(300) | ||
// } | ||
//else add to approve queue | ||
} else { | ||
//emit everything | ||
return true | ||
} catch (e) { | ||
log.error(tag, "e: ", e) | ||
throw e | ||
} | ||
//TODO blocks | ||
//TODO payments | ||
//balances | ||
}); | ||
SOCKET.on('connect', function (message:any) { | ||
log.info(tag,"connect:",message) | ||
successConnect = true | ||
}); | ||
SOCKET.on('errorMessage', function (message:any) { | ||
log.error(tag,"error: ",message) | ||
if(message.code && message.code === 6) throw Error(" Failed to connect!") | ||
}); | ||
SOCKET.on('invocation', function (message:any) { | ||
log.info('invocation: ',message); | ||
emitter.emit('message',message) | ||
}); | ||
//wait 30 seconds for a valid connection | ||
//let timeout = setTimeout(process.exit(2),30 * 1000) | ||
while(!successConnect){ | ||
await sleep(300) | ||
} | ||
this.disconnect = async function () { | ||
let tag = TAG + " | disconnect | " | ||
try { | ||
return emitter | ||
} catch (e) { | ||
if(e.response && e.response.data){ | ||
log.error(tag, "Error: ", e.response.data); | ||
}else{ | ||
log.error(tag, "Error: ", e); | ||
} catch (e) { | ||
log.error(tag, "e: ", e) | ||
} | ||
} | ||
throw e; | ||
} | ||
}; | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
14697
339
10
1