- [Misc] Edit ESLint config

- [Misc] Update config
- [HQ] Minor Client modifications
- [Dependencies] Add canvas, discord.js, jsonwebtoken
- [Misc] Update package version
- [Misc] Add fonts
- [HQ] Delete hq-checklives
- [CrowdSource] Add crowd client
- [Utils] Add image generation
- [Utils] Add google
- [Utils] Add get tokens
This commit is contained in:
vilP1L
2019-05-15 18:52:55 -04:00
parent 70f55fe8ed
commit cf919231e4
12 changed files with 478 additions and 12 deletions

View File

@@ -4,6 +4,7 @@
"no-console": 0, "no-console": 0,
"no-restricted-syntax": 0, "no-restricted-syntax": 0,
"no-await-in-loop": 0, "no-await-in-loop": 0,
"no-param-reassign": 0 "no-param-reassign": 0,
"no-shadow": 0
} }
} }

View File

@@ -1,3 +1,78 @@
{ {
"catchall": "spotimail.com" "discord": {
"token": "NTc3OTM5NjA1NjA1ODQyOTQ2.XNsW6Q.px9rRxM4wY7838PSDQWa6ni1m3Q",
"prefix": ".",
"activity": "v{VERSION}",
"defaultTokenSet": "bots.json",
"admins": ["471344177045569546", "448294491032518666"],
"channels": {
"hq-trivia": "568926468290248734",
"hq-words": "568926468290248734",
"confetti": "568927056172285981"
}
},
"crowdsource": {
"userToken": "NTQxNjYyNjgyODM1ODQ1MTIw.D0Y3TA.xnJuTkmYwI7ckwCkhGbkcMHsgR8",
"keywords": [
{ "keyword": "{num}", "weight": 5 },
{ "keyword": "{num}{num}", "weight": 5 },
{ "keyword": "def {num}", "weight": 6 },
{ "keyword": "its {num}", "weight": 6 },
{ "keyword": "{num} apg", "weight": 6 },
{ "keyword": "{num} apb", "weight": 6 },
{ "keyword": "{num} apddg", "weight": 6 },
{ "keyword": "conf {num}", "weight": 6 },
{ "keyword": "{num}?", "weight": 3 },
{ "keyword": "{num}/", "weight": 3 },
{ "keyword": "w{num}", "weight": 1 },
{ "keyword": "?{num}", "weight": 3 },
{ "keyword": "not {num}", "weight": -6 },
{ "keyword": "n{num}", "weight": -6 },
{ "keyword": "ban {num}", "weight": -6 },
{ "keyword": "not {num}?", "weight": -3 },
{ "keyword": "n{num}?", "weight": -3 }
],
"channels": {
"hq": [
{ "id": "568926468290248734", "weight": 4, "name": "HUB" },
{ "id": "459842150323060736", "weight": 2, "name": "Trivia Dimension" },
{ "id": "525131707410677761", "weight": 3, "name": "Trivia Tribe" },
{ "id": "513818250652680213", "weight": 2, "name": "Trivia World" },
{ "id": "523359669280833536", "weight": 2, "name": "Trivia Games Live" },
{ "id": "535628205139296256", "weight": 2, "name": "Trivia Nation" },
{ "id": "568617830258442255", "weight": 2, "name": "Trivia Revolution" },
{ "id": "566622019232202758", "weight": 2, "name": "Galaxy United Nation" }
],
"confetti": [
{ "id": "568927056172285981", "weight": 4, "name": "HUB" },
{ "id": "523359734406053889", "weight": 2, "name": "Trivia Games Live" },
{ "id": "529487355804123176", "weight": 3, "name": "Trivia Tribe" },
{ "id": "514915010955313153", "weight": 2, "name": "Trivia World" },
{ "id": "535628245371060234", "weight": 1, "name": "Trivia Nation" }
],
"loco": [
{ "id": "570155872861290519", "weight": 2, "name": "Study IQ" },
{ "id": "566621341478944778", "weight": 3, "name": "Galaxy United Nation" },
{ "id": "571684755016515584", "weight": 3, "name": "Galaxy United Nation Private" }
]
}
},
"google": {
"id": "006883007914406821508:5viuurulssa",
"key": "AIzaSyDOb7WFUKrJdPKvWHurpOuU2hqaCAclzfs",
"negations": [
"neither",
"not",
"fewest",
"hasnt",
"isnt",
"least",
"never",
"wont",
"shortest",
"won't",
"isn't",
"hasn't"
]
}
} }

View File

@@ -1,15 +1,18 @@
{ {
"name": "emu", "name": "emu",
"version": "1.0.0", "version": "0.0.3",
"main": "src/index.js", "main": "src/index.js",
"repository": "https://github.com/vilP1l/emu", "repository": "https://github.com/vilP1l/emu",
"author": "vilP1L <vilP1l@github.com>", "author": "vilP1L <vilP1l@github.com>",
"license": "MIT", "license": "MIT",
"private": true, "private": true,
"dependencies": { "dependencies": {
"canvas": "^2.5.0",
"colors": "^1.3.3", "colors": "^1.3.3",
"discord.js": "https://github.com/discordjs/discord.js",
"enquirer": "^2.3.0", "enquirer": "^2.3.0",
"faker": "^4.1.0", "faker": "^4.1.0",
"jsonwebtoken": "^8.5.1",
"request": "^2.88.0", "request": "^2.88.0",
"ws": "^7.0.0" "ws": "^7.0.0"
}, },

View File

@@ -7,13 +7,14 @@ import faker from 'faker';
request.promise = promisify(request); request.promise = promisify(request);
export default class Client { export default class Client {
constructor(loginToken, index) { constructor({ accessToken, loginToken }, index) {
if (!loginToken) throw new Error('No login token was provided.'); if (!accessToken || !loginToken) throw new Error('Insufficient account credentials provided.');
this.index = index || 0; this.index = index || 0;
if (index === 0 || !index) this.master = true; if (index === 0 || !index) this.master = true;
this.accessToken = accessToken;
this.loginToken = loginToken; this.loginToken = loginToken;
this.headers = { this.headers = {
'x-hq-client': 'Android/1.28.2', 'x-hq-client': 'Android/1.33.0',
'user-agent': 'okhttp/3.8.0', 'user-agent': 'okhttp/3.8.0',
'x-hq-lang': 'en', 'x-hq-lang': 'en',
'x-hq-country': 'US', 'x-hq-country': 'US',
@@ -76,7 +77,7 @@ export default class Client {
const i = setInterval(() => { const i = setInterval(() => {
if (this.ws.readyState !== this.ws.OPEN) return clearInterval(i); if (this.ws.readyState !== this.ws.OPEN) return clearInterval(i);
this.ws.ping(); this.ws.ping();
if (this.debug) console.log(`${` Client ${this.index} `.bgBlue.black}${' PING '.bgGreen.black}`); if (this.debug) console.log(`${` Client ${this.index} [DEBUG] `.bgBlue.black}${' PING '.bgGreen.black}`);
return true; return true;
}, 5000); }, 5000);
this.subscribe(); this.subscribe();
@@ -88,6 +89,10 @@ export default class Client {
return true; return true;
} }
disconnect() {
this.ws.close();
}
subscribe() { subscribe() {
if (!this.ws || this.ws.readyState !== this.ws.OPEN) throw new Error('No WebSocket connection is active.'); if (!this.ws || this.ws.readyState !== this.ws.OPEN) throw new Error('No WebSocket connection is active.');
this.ws.send(JSON.stringify({ this.ws.send(JSON.stringify({
@@ -129,7 +134,10 @@ export default class Client {
submitAnswer(index) { submitAnswer(index) {
if (!this.inTheGame) return; if (!this.inTheGame) return;
if (!this.ws || this.ws.readyState !== this.ws.OPEN) throw new Error('No WebSocket connection is active.'); if (!this.ws || this.ws.readyState !== this.ws.OPEN) throw new Error('No WebSocket connection is active.');
if (index > 2 || index < 0) return; if (index > 2 || index < 0) {
if (this.debug) console.log(`${` Client ${this.index} [DEBUG] `.bgBlue.black}${' Invalid index given to submitAnswer. '.bgRed.black}`);
return;
}
const { answerId } = this.answers[index]; const { answerId } = this.answers[index];
if (!answerId) return; if (!answerId) return;
this.ws.send(JSON.stringify({ this.ws.send(JSON.stringify({
@@ -183,4 +191,9 @@ export default class Client {
if (this.logging) console.log(`${` Client ${this.index} `.bgBlue.black}${` Successfully cashed out to ${this.email}! `.bgGreen.black}`); if (this.logging) console.log(`${` Client ${this.index} `.bgBlue.black}${` Successfully cashed out to ${this.email}! `.bgGreen.black}`);
return true; return true;
} }
async getUserData() {
const { body } = await request.promise('https://api-quiz.hype.space/users/me', { headers: this.headers });
return JSON.parse(body);
}
} }

View File

@@ -0,0 +1,30 @@
import { Client } from 'discord.js';
import { crowdsource } from '../../config';
export default class CrowdClient extends Client {
constructor(options, client) {
super(options);
this.client = client;
this.login(options.token);
this.on('message', (msg) => {
const games = Object.keys(crowdsource.channels);
games.forEach((g) => {
const channels = crowdsource.channels[g].map(c => c.id);
const weights = crowdsource.channels[g].map(c => c.weight);
if (channels.includes(msg.channel.id)) {
if (msg.content.match(/[1-3]/g)) {
const weight = weights[channels.indexOf(msg.channel.id)];
let m;
m = msg.content.toLowerCase();
m = m.split(' ').join('');
crowdsource.keywords.forEach((k) => {
k.keywordNum = k.keyword.replace(/{num}/g, m.match(/[1-3]/g)[0]);
k.keywordNum = k.keywordNum.split(' ').join('');
if (m === k.keywordNum) client.weights[g][m.match(/[1-3]/g)[0] - 1] += k.weight * weight;
});
}
}
});
});
}
}

Binary file not shown.

Binary file not shown.

133
src/modules/img.js Normal file
View File

@@ -0,0 +1,133 @@
import { createCanvas, registerFont } from 'canvas';
export const genResults = async (game, winners, winnings, accuracy) => {
const roundRect = (ctx, x, y, width, height, radius, fill, stroke) => {
if (typeof stroke === 'undefined') {
stroke = true;
}
if (typeof radius === 'undefined') {
radius = 5;
}
ctx.beginPath();
ctx.moveTo(x + radius, y);
ctx.lineTo(x + width - radius, y);
ctx.quadraticCurveTo(x + width, y, x + width, y + radius);
ctx.lineTo(x + width, y + height - radius);
ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);
ctx.lineTo(x + radius, y + height);
ctx.quadraticCurveTo(x, y + height, x, y + height - radius);
ctx.lineTo(x, y + radius);
ctx.quadraticCurveTo(x, y, x + radius, y);
ctx.closePath();
if (stroke) {
ctx.stroke();
}
if (fill) {
ctx.fill();
}
};
const canvas = createCanvas(450, 230);
const ctx = canvas.getContext('2d');
registerFont('src/utils/CircularStd-Black.ttf', { family: 'Circular' });
registerFont('src/utils/CircularStd-Medium.ttf', { family: 'CircularMed', weight: 100 });
switch (game) {
case 'HQ Trivia':
ctx.fillStyle = 'rgba(52, 58, 153, 1)';
ctx.strokeStyle = 'rgba(54, 60, 152, 1)';
break;
case 'Loco Trivia':
ctx.fillStyle = 'rgba(39, 32, 69, 1)';
ctx.strokeStyle = 'rgba(39, 32, 69, 1)';
break;
case 'Confetti Trivia':
ctx.fillStyle = 'rgba(66, 102, 171, 1)';
ctx.strokeStyle = 'rgba(66, 102, 171, 1)';
break;
default:
ctx.fillStyle = 'rgba(52, 58, 153, 1)';
ctx.strokeStyle = 'rgba(54, 60, 152, 1)';
break;
}
roundRect(ctx, 0, 0, canvas.width, canvas.height, 40, true, true);
ctx.fillStyle = 'white';
ctx.font = '45px Circular';
ctx.fillText(game, (canvas.width / 2) - (ctx.measureText(game).width / 2), 70);
ctx.strokeStyle = 'white';
ctx.lineWidth = 5;
roundRect(ctx, 2, 2, canvas.width - 4, canvas.height - 4, 40, false, true);
ctx.beginPath();
ctx.moveTo((canvas.width / 2) - (ctx.measureText(game).width / 2), 80);
ctx.lineTo((canvas.width / 2) + (ctx.measureText(game).width / 2), 80);
ctx.stroke();
ctx.font = '25px CircularMed';
ctx.fillText(`${winners.toLocaleString('en')} players won ${winnings}`, (canvas.width / 2) - (ctx.measureText(`${winners.toLocaleString('en')} Players won ${winnings}`).width / 2), 125);
ctx.fillText(`Accuracy: ${accuracy}`, (canvas.width / 2) - (ctx.measureText(`Accuracy: ${accuracy}`).width / 2), 165);
ctx.font = '15px Circular';
ctx.fillText('Trivia Orchard | invite.gg/orchard', (canvas.width / 2) - (ctx.measureText('Trivia Orchard | invite.gg/orchard').width / 2), canvas.height - 20);
return canvas.toBuffer();
};
export const getWordsImage = (puzzleState) => {
const puzzleStateLengths = puzzleState.map(i => i.length);
const biggestLength = Math.max(...puzzleStateLengths);
const canvas = createCanvas(biggestLength * 90 + 100, puzzleState.length * 130 + 75);
const ctx = canvas.getContext('2d');
registerFont('src/utils/CircularStd-Black.ttf', { family: 'Circular' });
registerFont('src/utils/CircularStd-Medium.ttf', { family: 'CircularMed', weight: 100 });
const roundRect = (ctx, x, y, width, height, radius, fill, stroke) => {
if (typeof stroke === 'undefined') {
stroke = true;
}
if (typeof radius === 'undefined') {
radius = 5;
}
ctx.beginPath();
ctx.moveTo(x + radius, y);
ctx.lineTo(x + width - radius, y);
ctx.quadraticCurveTo(x + width, y, x + width, y + radius);
ctx.lineTo(x + width, y + height - radius);
ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);
ctx.lineTo(x + radius, y + height);
ctx.quadraticCurveTo(x, y + height, x, y + height - radius);
ctx.lineTo(x, y + radius);
ctx.quadraticCurveTo(x, y, x + radius, y);
ctx.closePath();
if (stroke) {
ctx.stroke();
}
if (fill) {
ctx.fill();
}
};
const wordsLetter = (ctx, letter, x, y, scale) => {
ctx.fillStyle = 'white';
ctx.strokeStyle = 'white';
ctx.shadowBlur = 10;
ctx.shadowColor = 'black';
roundRect(ctx, x, y, scale * 40, scale * 50, 10, true, true);
ctx.fillStyle = 'black';
const fontSize = 25 * scale;
ctx.font = `${fontSize}px Circular`;
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.shadowBlur = 0;
ctx.fillText(letter, x + 20 * scale, y + 25 * scale);
};
let x = 50;
let y = 50;
// eslint-disable-next-line no-restricted-syntax
for (const state of puzzleState) {
// eslint-disable-next-line no-restricted-syntax
for (const letter of state) {
wordsLetter(ctx, letter, x, y, 2);
x += 90;
}
x = 50;
y += 130;
}
return canvas.toBuffer();
};

7
src/utils/getTokens.js Normal file
View File

@@ -0,0 +1,7 @@
import fs from 'fs';
export default (file) => {
if (!file) throw new Error('No file was provided.');
const contents = fs.readFileSync(`./tokens/${file}`, 'UTF8');
return JSON.parse(contents);
};

29
src/utils/google.js Normal file
View File

@@ -0,0 +1,29 @@
import request from 'request';
import { promisify } from 'util';
import { google } from '../../config';
request.promise = promisify(request);
export default async (query, answers) => {
const { body } = await request.promise(`https://www.googleapis.com/customsearch/v1?cx=${google.id}&key=${google.key}&q=${query}`);
const { searchInformation, items } = JSON.parse(body);
if (searchInformation.totalResults === '0') return [0, 0, 0];
let weights = [0, 0, 0];
for (let i = 0; i < 3; i += 1) {
for (const item of items) {
const regex = new RegExp(answers[i].text, 'gi');
const snippet = item.snippet.match(regex) || [];
const title = item.title.match(regex) || [];
weights[i] += snippet.length * 2;
weights[i] += title.length;
}
}
const includesNegation = (negation) => {
const Regex = new RegExp(negation, 'gi');
return query.match(Regex);
};
if (google.negations.some(includesNegation)) {
weights = weights.map(w => weights.reduce((a, b) => a + b) - w);
}
return weights;
};

183
yarn.lock
View File

@@ -879,7 +879,7 @@ async-each@^1.0.1:
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
async-limiter@^1.0.0: async-limiter@^1.0.0, async-limiter@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
@@ -990,6 +990,11 @@ browserslist@^4.5.2, browserslist@^4.5.4:
electron-to-chromium "^1.3.127" electron-to-chromium "^1.3.127"
node-releases "^1.1.17" node-releases "^1.1.17"
buffer-equal-constant-time@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
buffer-from@^1.0.0: buffer-from@^1.0.0:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@@ -1020,6 +1025,15 @@ caniuse-lite@^1.0.30000963:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz#a5039577806fccee80a04aaafb2c0890b1ee2f73" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz#a5039577806fccee80a04aaafb2c0890b1ee2f73"
integrity sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ== integrity sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ==
canvas@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.5.0.tgz#cf0ef59d4790575689c0d50e59c7b8023a11f38a"
integrity sha512-wwRz2cLMgb9d+rnotOJCoc04Bzj3aJMpWc6JxAD6lP7bYz0ldcn0sKddoZ0vhD5T8HBxrK+XmRDJb68/2VqARw==
dependencies:
nan "^2.13.2"
node-pre-gyp "^0.11.0"
simple-get "^3.0.3"
caseless@~0.12.0: caseless@~0.12.0:
version "0.12.0" version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -1231,6 +1245,13 @@ decode-uri-component@^0.2.0:
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
decompress-response@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
dependencies:
mimic-response "^1.0.0"
deep-extend@^0.6.0: deep-extend@^0.6.0:
version "0.6.0" version "0.6.0"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
@@ -1285,6 +1306,18 @@ detect-libc@^1.0.2:
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
"discord.js@https://github.com/discordjs/discord.js":
version "12.0.0-dev"
resolved "https://github.com/discordjs/discord.js#72dd872fce70754b0f7616f3d31b5616a48c7188"
dependencies:
form-data "^2.3.3"
node-fetch "^2.3.0"
pako "^1.0.8"
prism-media "^1.0.0"
setimmediate "^1.0.5"
tweetnacl "^1.0.1"
ws "^6.1.3"
doctrine@1.5.0: doctrine@1.5.0:
version "1.5.0" version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
@@ -1308,6 +1341,13 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0" jsbn "~0.1.0"
safer-buffer "^2.1.0" safer-buffer "^2.1.0"
ecdsa-sig-formatter@1.0.11:
version "1.0.11"
resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
dependencies:
safe-buffer "^5.0.1"
electron-to-chromium@^1.3.127: electron-to-chromium@^1.3.127:
version "1.3.133" version "1.3.133"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.133.tgz#c47639c19b91feee3e22fad69f5556142007008c" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.133.tgz#c47639c19b91feee3e22fad69f5556142007008c"
@@ -1660,7 +1700,7 @@ forever-agent@~0.6.1:
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
form-data@~2.3.2: form-data@^2.3.3, form-data@~2.3.2:
version "2.3.3" version "2.3.3"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
@@ -2181,6 +2221,22 @@ json5@^2.1.0:
dependencies: dependencies:
minimist "^1.2.0" minimist "^1.2.0"
jsonwebtoken@^8.5.1:
version "8.5.1"
resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
dependencies:
jws "^3.2.2"
lodash.includes "^4.3.0"
lodash.isboolean "^3.0.3"
lodash.isinteger "^4.0.4"
lodash.isnumber "^3.0.3"
lodash.isplainobject "^4.0.6"
lodash.isstring "^4.0.1"
lodash.once "^4.0.0"
ms "^2.1.1"
semver "^5.6.0"
jsprim@^1.2.2: jsprim@^1.2.2:
version "1.4.1" version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
@@ -2191,6 +2247,23 @@ jsprim@^1.2.2:
json-schema "0.2.3" json-schema "0.2.3"
verror "1.10.0" verror "1.10.0"
jwa@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
dependencies:
buffer-equal-constant-time "1.0.1"
ecdsa-sig-formatter "1.0.11"
safe-buffer "^5.0.1"
jws@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
dependencies:
jwa "^1.4.1"
safe-buffer "^5.0.1"
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2" version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@@ -2249,6 +2322,41 @@ locate-path@^3.0.0:
p-locate "^3.0.0" p-locate "^3.0.0"
path-exists "^3.0.0" path-exists "^3.0.0"
lodash.includes@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
lodash.isboolean@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
lodash.isinteger@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
lodash.isnumber@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
lodash.isplainobject@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
lodash.isstring@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
lodash.once@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
lodash@^4.17.10, lodash@^4.17.11: lodash@^4.17.10, lodash@^4.17.11:
version "4.17.11" version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
@@ -2317,6 +2425,11 @@ mimic-fn@^1.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
mimic-response@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
minimatch@^3.0.4: minimatch@^3.0.4:
version "3.0.4" version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -2379,7 +2492,7 @@ mute-stream@0.0.7:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
nan@^2.12.1: nan@^2.12.1, nan@^2.13.2:
version "2.13.2" version "2.13.2"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7"
integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==
@@ -2420,11 +2533,32 @@ nice-try@^1.0.4:
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
node-fetch@^2.3.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.5.0.tgz#8028c49fc1191bba56a07adc6e2a954644a48501"
integrity sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw==
node-modules-regexp@^1.0.0: node-modules-regexp@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
node-pre-gyp@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054"
integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==
dependencies:
detect-libc "^1.0.2"
mkdirp "^0.5.1"
needle "^2.2.1"
nopt "^4.0.1"
npm-packlist "^1.1.6"
npmlog "^4.0.2"
rc "^1.2.7"
rimraf "^2.6.1"
semver "^5.3.0"
tar "^4"
node-pre-gyp@^0.12.0: node-pre-gyp@^0.12.0:
version "0.12.0" version "0.12.0"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
@@ -2564,7 +2698,7 @@ object.pick@^1.3.0:
dependencies: dependencies:
isobject "^3.0.1" isobject "^3.0.1"
once@^1.3.0: once@^1.3.0, once@^1.3.1:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
@@ -2655,6 +2789,11 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
pako@^1.0.8:
version "1.0.10"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732"
integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==
parent-module@^1.0.0: parent-module@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -2762,6 +2901,11 @@ prelude-ls@~1.1.2:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
prism-media@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/prism-media/-/prism-media-1.0.2.tgz#1e0f097f67d799211177a50d5276fdd2ef1c7fd7"
integrity sha512-KCu3SlT1EtS0lvF74NGLSTzr5jrkRajE9n+S2jnUvvdiN5SpjsGj0/HgR1QK9+985Yv8cxjwZnpFRaj+SimDGA==
private@^0.1.6: private@^0.1.6:
version "0.1.8" version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
@@ -3061,6 +3205,11 @@ set-value@^2.0.0:
is-plain-object "^2.0.3" is-plain-object "^2.0.3"
split-string "^3.0.1" split-string "^3.0.1"
setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
shebang-command@^1.2.0: shebang-command@^1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
@@ -3078,6 +3227,20 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
simple-concat@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
simple-get@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.0.3.tgz#924528ac3f9d7718ce5e9ec1b1a69c0be4d62efa"
integrity sha512-Wvre/Jq5vgoz31Z9stYWPLn0PqRqmBDpFSdypAnHu5AvRVCYPRYGnvryNLiXu8GOBNDH82J2FRHUGMjjHUpXFw==
dependencies:
decompress-response "^3.3.0"
once "^1.3.1"
simple-concat "^1.0.0"
slash@^2.0.0: slash@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
@@ -3388,6 +3551,11 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
tweetnacl@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.1.tgz#2594d42da73cd036bd0d2a54683dd35a6b55ca17"
integrity sha512-kcoMoKTPYnoeS50tzoqjPY3Uv9axeuuFAZY9M/9zFnhoVvRfxz9K29IMPD7jGmt2c8SW7i3gT9WqDl2+nV7p4A==
type-check@~0.3.2: type-check@~0.3.2:
version "0.3.2" version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
@@ -3523,6 +3691,13 @@ write@1.0.3:
dependencies: dependencies:
mkdirp "^0.5.1" mkdirp "^0.5.1"
ws@^6.1.3:
version "6.2.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
dependencies:
async-limiter "~1.0.0"
ws@^7.0.0: ws@^7.0.0:
version "7.0.0" version "7.0.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.0.0.tgz#79351cbc3f784b3c20d0821baf4b4ff809ffbf51" resolved "https://registry.yarnpkg.com/ws/-/ws-7.0.0.tgz#79351cbc3f784b3c20d0821baf4b4ff809ffbf51"