Simp-O-Matic

Dumb Discord bot in TS.
git clone git://git.knutsen.co/Simp-O-Matic
Log | Files | Refs | README | LICENSE

commit e4bf3bec567aa2fd7c3ef37e0b4b8a763ae7e7c9
parent 87b0223f32dafcbf0b943f6dd54274a8c8fcffa5
Author: Demonstrandum <moi@knutsen.co>
Date:   Thu, 19 Mar 2020 15:37:52 +0000

Added boomer.ts.

Diffstat:
MHELP.md | 12++++++------
Mlib/commands/b.ts | 13+++++--------
Alib/commands/boomer.ts | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mlib/commands/cowsay.ts | 2+-
Mlib/commands/cowthink.ts | 2+-
Mlib/commands/figlet.ts | 2+-
Mlib/commands/fork.ts | 3+--
Mlib/commands/github.ts | 3+--
Mlib/commands/id.ts | 14++++++--------
Mlib/commands/ily.ts | 3+--
Mlib/commands/invite.ts | 3+--
Mlib/commands/issue.ts | 3+--
Mlib/commands/milkies.ts | 6+++---
Mlib/commands/mock.ts | 15++++++---------
Mlib/commands/ping.ts | 3+--
Mlib/commands/prefix.ts | 9++++++---
Mlib/commands/roll.ts | 3+--
Mlib/commands/say.ts | 3+--
Mlib/commands/urban.ts | 3+--
Mlib/commands/youtube.ts | 2+-
Mpackage.json | 6+++++-
Myarn.lock | 162+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
22 files changed, 288 insertions(+), 63 deletions(-)

diff --git a/HELP.md b/HELP.md @@ -79,17 +79,17 @@ - `!weather <location>` — gives you the weather in a certain location, if location is left blank, it will either give you the weather in the default location, or in the area you `set` previously. - `!say [phrase]` — Repeats what you told it to say. - `!milkies` — In case you're feeling thirsty... -- `!cowsay <options> [phrase]` **〈not impl.〉** — Make a cow say something, using Unix-like command line arguments. -- `!figlet <options> [phrase]` **〈not impl.〉** — Print text in ASCII format, using Unix-like command line arguments. -- `!roll <upper-bound>` **〈not impl.〉** — Roll a dice, default upper bound is 6. +- `!{cowsay,cowthink} <options> [phrase]` — Make a cow say something, using Unix-like command-line arguments. +- `!figlet <options> [phrase]` — Print text in ASCII format, using Unix-like command-line arguments. +- `!roll <upper-bound>` — Roll a dice, default upper bound is 6. - `!8ball` — Ask a question, receive a response. - `!summon [@user-name]` **〈not impl.〉** — Summon someone to the server by making the bot poke them in their DMs about it. -- `!mock [phrase]` **〈not impl.〉** — Say something, _bUt iN a MocKiNg WaY_... -- `!boomer [phrase]` **〈not impl.〉** — Say something, but in the way your demented boomer uncle would write it on Facebook. +- `!mock [phrase]` — Say something, _bUt iN a MocKiNg WaY_... +- `!boomer [phrase]` — Say something, but in the way your demented boomer uncle would write it on Facebook. - `!ship [@user-name] [@user-name]` — Shows the love grade between two people. - `!kiss [@user-name]` — Blow a kiss to someone you like! - `!emojify [phrase]` — Turn your text into discord-style emoji. - +- `!B [phrase]` — Replace some elements of your text with a certain U+1F171. ▬▬▬ **Source Code & Bugs:** diff --git a/lib/commands/b.ts b/lib/commands/b.ts @@ -4,19 +4,16 @@ export default home_scope => { const { message, args } : { message: Message, args: string[] } = home_scope; - let input: string; - - if (args.length === 0) - input = "b"; - else - input = args.join(' ').toLowerCase(); + const input = (args.length === 0) + ? "b" + : args.join(' ').toLowerCase(); const alphabet = 'pb'; - let letters = [...input].map((chr: any) => + const letters = [...input].map((chr: any) => isNaN(chr) && alphabet.includes(chr) ? `b`.emojify() - : chr) + : chr); message.channel.send(letters.join(' ')); }; diff --git a/lib/commands/boomer.ts b/lib/commands/boomer.ts @@ -0,0 +1,79 @@ +declare global { + interface Array<T> { + demented_join(sep: string, sep_alt: string, prob: number): string; + } + interface String { + demented_upcase(prob: number): string; + demented_spelling(): string; + } +} + +Array.prototype.demented_join = function (sep = ', ', sep_alt = ' ', prob = 0.2) { + let s = ""; + let sep_temp = ""; + for (const e of this) { + if (!e) continue; + + const l_space = Math.random() < prob ? sep_alt : ''; + const r_space = Math.random() < prob ? sep_alt : ''; + const elem = `${l_space}${e}${r_space}`; + s += `${sep_temp}${elem}`; + sep_temp = sep; + } + return s; +}; + +String.prototype.demented_upcase = function (prob = 0.2) { + if (Math.random() < prob) + return this.toUpperCase() + ((Math.random() < 0.1) ? '!' : ''); + else return this.toString(); +}; + +String.prototype.demented_spelling = function () { + const given = String(this); + switch (given) { + case 'than': + return 'then'; + case 'then': + return 'than'; + case 'your': + return 'yore'; + case 'their': + return 'there'; + case 'they\'re': + return 'their'; + case 'there': + return 'their'; + default: + break; + } + return given; +}; + +const boomerfy = (original: string): string => { + if (original.trim().length < 1) + return boomerfy("Ok, boomer."); + + let string = original + .toLowerCase() + .split(' ') + .map(e => e.demented_spelling()).join(' ') + .replace(/(.*)n't(.*)/g, "$1'nt$2") + .replace(/(.*)'re(.*)/, '$1r$2') + .replace(/([^\.])\./g, '$1 .'); + + string = string.split(/[ ]/) + .map(s => s.demented_upcase(0.1)) + .demented_join(' ', ',', 0.01); + string = string.split(/[ ]/).demented_join(' ', ' ... ', 0.01); + string = string.split(/[ ]/).demented_join(' ', ' ', 0.02); + + string = string + .replace(/,/g, ' ,'); + return string; +}; + +export default home_scope => { + const { message, args } = home_scope; + message.reply(boomerfy(args.join(' '))); +}; diff --git a/lib/commands/cowsay.ts b/lib/commands/cowsay.ts @@ -1,4 +1,4 @@ -import { execFileSync as exec_file_sync } from 'child_process' +import { execFileSync as exec_file_sync } from 'child_process'; export default home_scope => { const { message, args } = home_scope; // This is safe because no shell is spawned: diff --git a/lib/commands/cowthink.ts b/lib/commands/cowthink.ts @@ -1,4 +1,4 @@ -import { execFileSync as exec_file_sync } from 'child_process' +import { execFileSync as exec_file_sync } from 'child_process'; export default home_scope => { const { message, args } = home_scope; // This is safe because no shell is spawned: diff --git a/lib/commands/figlet.ts b/lib/commands/figlet.ts @@ -1,4 +1,4 @@ -import { execFileSync as exec_file_sync } from 'child_process' +import { execFileSync as exec_file_sync } from 'child_process'; export default home_scope => { const { message, args } = home_scope; // This is safe because no shell is spawned: diff --git a/lib/commands/fork.ts b/lib/commands/fork.ts @@ -1,4 +1,4 @@ export default home_scope => { const { message, GIT_URL } = home_scope; message.answer(`${GIT_URL}/fork`); -}- \ No newline at end of file +}; diff --git a/lib/commands/github.ts b/lib/commands/github.ts @@ -1,4 +1,4 @@ export default home_scope => { const { message, GIT_URL } = home_scope; message.answer(`${GIT_URL}/`); -}- \ No newline at end of file +}; diff --git a/lib/commands/id.ts b/lib/commands/id.ts @@ -1,13 +1,12 @@ export default home_scope => { - const { message } = home_scope + const { message } = home_scope; const rep = []; - ['channel', 'user', 'role'].forEach(n => - message[n + 's'].each(o => rep.push(n + ' id: `' + o.id + '`')) - ) - //joining an empty array yields an empty string which is false + ['channel', 'user', 'role'].each(n => + message[n + 's'].each(o => rep.push(n + ' id: `' + o.id + '`'))); + // Joining an empty array yields an empty string which is false const reply = rep.join(', ') || `User ID: \`${message.author.id}\` Author: ${message.author} - Message ID: \`${message.id}\``; + Message ID: \`${message.id}\``.squeeze(); console.log(`Replied: ${reply}`); message.answer(reply); -}- \ No newline at end of file +}; diff --git a/lib/commands/ily.ts b/lib/commands/ily.ts @@ -1,4 +1,4 @@ export default home_scope => { const { message } = home_scope; message.answer('Y-you too...'); -}- \ No newline at end of file +}; diff --git a/lib/commands/invite.ts b/lib/commands/invite.ts @@ -1,4 +1,4 @@ export default home_scope => { const { message } = home_scope; message.answer('invite link: https://discordapp.com/api/oauth2/authorize?client_id=684895962212204748&permissions=8&scope=bot'); -}- \ No newline at end of file +}; diff --git a/lib/commands/issue.ts b/lib/commands/issue.ts @@ -1,4 +1,4 @@ export default home_scope => { const { message, GIT_URL } = home_scope; message.answer(`${GIT_URL}/issues`); -}- \ No newline at end of file +}; diff --git a/lib/commands/milkies.ts b/lib/commands/milkies.ts @@ -1,4 +1,5 @@ export default home_scope => { const { message } = home_scope; - message.answer(`${(4 + Math.random() * 15).round_to(3)} gallons of milkies have been deposited in your mouth.`); -}- \ No newline at end of file + message.answer(`${(4 + Math.random() * 15).round_to(3)}` + + ` gallons of milkies have been deposited in your mouth.`); +}; diff --git a/lib/commands/mock.ts b/lib/commands/mock.ts @@ -1,11 +1,9 @@ export default home_scope => { - //todo: if no args, mock the previous message, but this could be implemented via .alias and !!^ + // TODO: if no args, mock the previous message, + // but this could be implemented via .alias and !!^. const { message, args } = home_scope; let b = false; - message.answer([...args.join(' ').toLowerCase()].map(l => { - if(l == l.toUpperCase()) - return l - else - return (b = !b)?l.toUpperCase():l - }).join('') || 'sAy SoMeThInG wIlL yA?') -}- \ No newline at end of file + message.reply([...args.join(' ').toLowerCase()].map(l => + (l === l.toUpperCase()) ? l : ((b = !b) ? l.toUpperCase() : l) + ).join('') || 'sAy SoMeThInG wIlL yA?'); +}; diff --git a/lib/commands/ping.ts b/lib/commands/ping.ts @@ -1,4 +1,4 @@ export default home_scope => { const { message } = home_scope; message.answer('PONGGERS!'); -}- \ No newline at end of file +}; diff --git a/lib/commands/prefix.ts b/lib/commands/prefix.ts @@ -1,4 +1,8 @@ export default home_scope => { const { message, args, CONFIG } = home_scope; - message.answer(args.length == 1?args[0].length == 1?`Command prefix changed to: \`${CONFIG.commands.prefix = args[0]}\`.`:'You may only use a prefix that is exactly one character/symbol/grapheme/rune long.':`Current command prefix is: \`${CONFIG.commands.prefix}\`.`) -}- \ No newline at end of file + message.answer(args.length === 1 + ? args[0].length === 1 + ? `Command prefix changed to: \`${CONFIG.commands.prefix = args[0]}\`.` + : 'You may only use a prefix that is exactly one character/symbol/grapheme/rune long.' + : `Current command prefix is: \`${CONFIG.commands.prefix}\`.`); +}; diff --git a/lib/commands/roll.ts b/lib/commands/roll.ts @@ -1,4 +1,4 @@ export default home_scope => { const { message, args } = home_scope; message.answer(Math.floor(Math.random() * ((+args[0] || 6) + 1))); -}- \ No newline at end of file +}; diff --git a/lib/commands/say.ts b/lib/commands/say.ts @@ -1,4 +1,4 @@ export default home_scope => { const { message, args } = home_scope; message.answer(`Me-sa says: “${args.join(' ')}”`); -}- \ No newline at end of file +}; diff --git a/lib/commands/urban.ts b/lib/commands/urban.ts @@ -23,4 +23,4 @@ export default home_scope => { } message.channel.send(`Link: ${entry.permalink}`); }).catch(e => message.answer(`Error fetching definition:\n${e}`)); -}- \ No newline at end of file +}; diff --git a/lib/commands/youtube.ts b/lib/commands/youtube.ts @@ -5,4 +5,4 @@ export default home_scope => { yt_search({ query }) .then(message.reply.bind(message)) .catch(message.answer.bind(message)); -} +}; diff --git a/package.json b/package.json @@ -21,7 +21,8 @@ "start": "node .", "quick": ". ./build.sh && yarn run start", "deploy-scale": "heroku scale web=0 worker=1 -a simp-o-matic", - "deploy-restart": "heroku restart -a simp-o-matic" + "deploy-restart": "heroku restart -a simp-o-matic", + "lint": "tslint --project ." }, "homepage": "https://github.com/Demonstrandum/simpomatic", "repository": { @@ -49,5 +50,8 @@ "tslib": "^1.11.1", "typescript": "^3.8.3", "unirest": "^0.6.0" + }, + "devDependencies": { + "tslint": "^6.1.0" } } diff --git a/yarn.lock b/yarn.lock @@ -2,6 +2,22 @@ # yarn lockfile v1 +"@babel/code-frame@^7.0.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + "@typeit/discord@^1.0.3": version "1.0.12" resolved "https://registry.yarnpkg.com/@typeit/discord/-/discord-1.0.12.tgz#cf60ec626df6979fab75e9a96979c85808557681" @@ -81,6 +97,20 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" @@ -182,11 +212,25 @@ buffer-equal-constant-time@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= +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +chalk@^2.0.0, chalk@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + cheerio@>=0.18.0: version "0.22.0" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" @@ -209,6 +253,18 @@ cheerio@>=0.18.0: lodash.reject "^4.4.0" lodash.some "^4.4.0" +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -223,6 +279,11 @@ combined-stream@~0.0.4: dependencies: delayed-stream "0.0.5" +commander@^2.12.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -315,6 +376,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + discord.js@11.6.1: version "11.6.1" resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-11.6.1.tgz#be5a0e0fc8f91fa46d9cd265261268948bcf8dc5" @@ -407,6 +473,11 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + escodegen@^1.11.0: version "1.14.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" @@ -419,7 +490,7 @@ escodegen@^1.11.0: optionalDependencies: source-map "~0.6.1" -esprima@^4.0.1: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -555,7 +626,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob@^7.1.4: +glob@^7.1.1, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -632,6 +703,11 @@ har-validator@~5.1.3: ajv "^6.5.5" har-schema "^2.0.0" +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" @@ -713,6 +789,19 @@ jquery@latest: resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -924,11 +1013,23 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= +mkdirp@^0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.3.tgz#5a514b7179259287952881e94410ec5465659f8c" + integrity sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg== + dependencies: + minimist "^1.2.5" + ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -998,6 +1099,11 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -1089,6 +1195,13 @@ request@>=2.51.0, request@^2.88.0: tunnel-agent "^0.6.0" uuid "^3.3.2" +resolve@^1.3.2: + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + dependencies: + path-parse "^1.0.6" + safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" @@ -1119,6 +1232,11 @@ scrape-youtube@^0.0.5: jquery latest jsdom "^12.0.0" +semver@^5.3.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + snekfetch@^3.6.4: version "3.6.4" resolved "https://registry.yarnpkg.com/snekfetch/-/snekfetch-3.6.4.tgz#d13e80a616d892f3d38daae4289f4d258a645120" @@ -1129,6 +1247,11 @@ source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" @@ -1176,6 +1299,13 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + symbol-tree@^3.2.2: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -1196,11 +1326,37 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -tslib@^1.11.1: +tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== +tslint@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.0.tgz#c6c611b8ba0eed1549bf5a59ba05a7732133d851" + integrity sha512-fXjYd/61vU6da04E505OZQGb2VCN2Mq3doeWcOIryuG+eqdmFUXTYVwdhnbEu2k46LNLgUYt9bI5icQze/j0bQ== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^4.0.1" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.1" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.10.0" + tsutils "^2.29.0" + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"