diff --git a/.gitignore b/.gitignore index 4d0ac46f..f0bcf0be 100644 --- a/.gitignore +++ b/.gitignore @@ -115,4 +115,7 @@ dist .pnp.* #guild status -.server_storage/guild_list.json \ No newline at end of file +.server_storage/guild_list.json + +#build +build/* \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index f015ad71..00000000 --- a/README.md +++ /dev/null @@ -1,156 +0,0 @@ -![Node.js CI](https://github.com/keybraker/portal-discord-bot/workflows/Node.js%20CI/badge.svg) - -**Disclaimer[1]:** -> Discord update their server rate limit to twice per 10 minutes -> [The new rate limit for channel name and topic updates is 2 updates per 10 minutes, per channel.](https://github.com/discordjs/discord.js/issues/4327) - -*** - -# [Portal™](https://github.com/keybraker/portal-discord-bot) alt text -A feature-rich channel manager for discord. - -Features: -* Automatically generates voice channels. -* Automatically updates the title of the channel in accordance to your regex guidlines. -* Assignes and strips roles from users with a single reaction press. -* Get the latest on the corona virus -* Spotify / Announcement / URL channels that allow any server to create and maintain clean announcement channels without being verified. -

-*** - -## Commands -**Portal™ prefix: ./** - -| name | description | arguments | eligible for use | cooldown (mins) | -| :--------- | :--------- | :--------- | :--------- | :--------- | -| `about` | _returns an about Portal message_ | _none_ | everyone | - | -| `announce` | _@title \| @body_ | everyone | 1 user | -| `announcement` | _creates a new or sets the current channel as announcement_ | _@channel\_name \| @category\_name_ | admin, | admin-role/s | - | -| `auth_role_add` | _add role to admin roles_ | _!role_ | admin, admin-role/s | - | -| `auth_role_rem` | _removes role from admin roles_ | _!role_ | admin, admin-role/s | - | -| `corona` | _replies with the daily state of corona virus cases_ | _@country code (gr, de, us, etc)_ | everyone | - | -| `focus` | _creates focus channel for you and your requested user_ | _!username @time (default 5minutes)_ | everyone | - | -| `force` | _clones current channel in order to force-update name_ | _none_ | admin, admin-role/s | 2 user | -| `help` | _returns a help-list if specified returns specific description_ | _@command/@vrbl/@func/@pipe/@attr_ | everyone | - | -| `join` | _joins current voice channel and announces events_ | _none_ | everyone | 1 user | -| `leave` | _removes Portal from voice channel_ | _none_ | everyone | - | -| `level` | _returns your level_ | _none_ | everyone | - | -| `music` | _creates a new or sets the current channel as music channel_ | _@channel\_name \| @category\_name_ | admin, admin-role/s | | - | -| `ping` | _returns round trip latency_ | _none_ | everyone | - | -| `portal` | _creates a portal voice channel_ | _!channel\_name \| @category\_name_ | admin, admin-role/s | - | -| `ranks` | _returns ranks of ranking system_ | _none_ | everyone | - | -| `role` | _replies with a message that gives roles when an emote is added_ | _role json_ | admin, admin-role/s | - | -| `run` | _runs the given command string and returns its output_ | _!exec\_command_ | everyone | - | -| `save` | _saves current state of server_ | _none_ | admin, admin-role/s | 5 server | -| `set` | _sets the value of an attribute_ | _!attribute !value_ | voice owner/ portal owner, admin, admin-role/s | - | -| `set_ranks` | _sets roles that will be given when said level reached_ | _rank json_ | voice owner/ portal owner, admin, admin-role/| s | 10 server | -| `setup` | _creates an announcement, spotify, url-only and music channel_ | _none_ | admin, admin-role/s | 10 server | -| `spotify` | _creates a new or sets the current channel as spotify channel_ | _@channel\_name \| @category\_name_ | admin, | admin-role/s | - | -| `url` | _creates a new or sets the current channel as url-only_ | _@channel\_name \| @category\_name_ | admin, admin-role/s | - | - -* _(Pipes are applied to variables or strings in order to change their outcome)_ - -* symbol: ! _indicates beginning of mandatory argument **(should not be included)**_ -* symbol: @ _indicates beginning of mandatory argument **(should not be included)**_ - -*** - -## Regex Interpreter -There are four types of data in **Portal™** bot: -1. variables -2. attributes -3. pipes -3. structures - -## Variables -* _prefix:_ __$__ -* _(Variables are defacto data sources that can be accessed though calling them they are read-only)_ - -| variable | description | -| :--------- | :--------- | -`#` | _number of channel in list_ -`##` | _number of channel in list with \#_ -`date` | _full date: dd/mm/yyyy_ -`number_day` | _gets the day number_ -`name_day` | _gets the day name_ -`month` | _gets the month_ -`year` | _gets the year_ -`time` | _full time: hh/mm/ss_ -`hour` | _gets the hour_ -`minute` | _gets the minute_ -`second` | _gets the second_ -`status_list` | _list of current member statuses_ -`status_count` | _count of current member statuses_ -`status_history` | _history of all the statuses_ -`member_list` | _returns the currently played games_ -`member_count` | _number of members in channel_ -`member_active_count` | _number of members playing_ -`member_with_status` | _number of member with given status_ -`member_history` | _returns the currently played games_ -`creator_portal` | _creator of current voice\'s portal_ -`creator_voice` | _creator of current voice_ - -### Pipes -* _prefix:_ __|__ -* _(Pipes are applied to variables or strings in order to change their outcome)_ - -| pipe | type | description | -| :--------- | :--------- | :--------- | -`upperCase` | string | _returns an upperCase of the input_ -`lowerCase` | string | _returns an lowerCase of the input_ -`capitalize` | string | _returns an capitalize of the input_ -`decapitalize` | string | _returns an decapitalize of the input_ -`souvlakiCase` | string | _returns an souvlakiCase of the input_ -`snakeCase` | string | _returns an snakeCase of the input_ -`titleCase` | string | _returns an titleCase of the input_ -`camelCase` | string | _returns an camelCase of the input_ -`acronym` | string | _returns an acronym of the input_ -`word#` | string | _returns \# words of the input_ -`populous_count` | number | _returns the count of most common element in list_ -`populous` | list | _returns the name of the most common element in list_ -`summary_count` | number | _returns the count of members having a status_ - -### Attributes -* _prefix:_ __@__ -* _(Attributes are values that a channel has from its inception and are subject to change)_ - -| attributes | type | default | description | -| :--------- | :--------- | :--------- | :--------- | -`regex_portal` | string | _default regex_ | _regex-guidelines for how to display portal's title_ -`regex_voice` | string | _default regex_ | _regex-guidelines for how to display new voice (current portal)_ -`regex` | string | _default regex_ | _sets regex-guidelines for current voice_ -`locale_guild` | string (gr/en/de) | gr | _locale used for **Portal™**'s interactions_ -`locale_portal` | string (gr/en/de) | gr | _locale used for **Portal™**'s interactions_ -`locale` | string (gr/en/de) | gr | _locale used for **Portal™**'s interactions_ -`user_limit_portal` | number | 0 | _guidelines for max number of members for new voice channel from current portal_ -`user_limit` | number | 0 | _guidelines for max number of members for current voice_ -`bitrate_portal` | number | 64000 | _bitrate of current portal channel_ -`bitrate_voice` | number | 64000 | _bitrate of current voice channel_ -`position` | number | beneath portal | _position of channel_ -`last_update` | timestamp | timestamp | _returns the last update timestamp_ - -* default regex: _G$\#-P$member_count \| $status_list_ - -### Structures -* _prefix:_ __{{__ -* _suffix:_ __}}__ -* _(Structures are grammatical attributes to control the structure of the output)_ - -| attributes | description | usage | -| :--------- | :--------- | :--------- | -`if` | conditional statement | `{{ "if": "John", "is": "===", "with": "John", "yes": "same name", "no": "not the same name"}}` -*** - -# About - -* v0.0.0: 5/5/20 Alpha ^ -* v1.0.0: 18/5/20 -* v1.5.0: 16/6/20 Beta ^ - -Acknowledgments - **Discord.js** with the exeptional library [**Discord.js**](http://owl.phy.queensu.ca/~phil/exiftool/) -
-Author - **Ioannis Tsiakkas** - *(Keybraker)* - [**Keybraker**](https://github.com/keybraker) -
-Copyright © 2020 [**Portal™**](https://github.com/keybraker/portal-discord-bot) - - diff --git a/assets/jsons/bad_words_by_country.json b/assets/jsons/bad_words_by_country.json deleted file mode 100644 index 9541290e..00000000 --- a/assets/jsons/bad_words_by_country.json +++ /dev/null @@ -1,7376 +0,0 @@ -{ - "be": [ - "аборт", - "анальны", - "анус", - "задніца", - "асёл прыдурак", - "аслы", - "мудак", - "прыдуркі", - "ballbag", - "яйкі", - "вырадак", - "bellend", - "распусныя", - "скотства", - "сука", - "сукі", - "скуголіць", - "крывавы", - "мінэту", - "bollok", - "дурань", - "цыцкі", - "грудзі", - "бусета", - "прыклад", - "дыван muncher", - "траскатня", - "cipa", - "клітар", - "кран", - "кран-прысоска", - "пеўні", - "янот", - "дзярмо", - "сперма", - "cunillingus", - "піздзіць", - "блін", - "хер", - "фалаімітатар", - "фалаімітатары", - "дзінка", - "сабака-засранец", - "дуче", - "дамба", - "эякулят", - "усклікаць", - "эякулюе", - "ejaculating", - "эякуляцыя", - "підарам", - "fagging", - "педзікам", - "жопа", - "фельчинг", - "фелляция", - "фланец", - "ебать", - "трахал", - "ебарь", - "лохі", - "чортаў", - "fuckings", - "трахаецца", - "помадка пакер", - "бог праклятая", - "праклён", - "пекла", - "hore", - "рагавой", - "прыдурак-оф", - "кок", - "палавыя вусны", - "юрлівасць", - "любацерпцаў", - "мазахіст", - "мастурбаваць", - "маці засранец", - "нацыст", - "негр", - "негры", - "orgasim", - "аргазм", - "аргазмы", - "дзюбу", - "пеніс", - "сцаць", - "п'яны", - "pisser", - "пісае", - "ссание", - "pissoff", - "мардаваць", - "порна", - "парнаграфія", - "калоць", - "уколаў", - "pube", - "кисок", - "шапіках", - "згвалтаванне", - "гвалтаўнік", - "прамая кішка", - "запазненне", - "римминг", - "садыст", - "зашрубоўвання", - "мошонка", - "сэкс", - "махорка", - "транссэксуал", - "ситэ", - "годзіць", - "shitted", - "какание", - "сраный", - "skank", - "шлюха", - "неахайны", - "смегма", - "галавешка", - "ўрваць", - "сын, сукін", - "упп", - "труць", - "яечка", - "titt", - "дристун", - "похву", - "віягра", - "вульва", - "вана", - "ананізм", - "х па рэйтынгу", - "ххх" - ], - "bg": [ - "аборт", - "анален", - "анус", - "задник", - "гъза шибаняк", - "магарета", - "гъзове", - "ballbag", - "топки", - "копеле", - "bellend", - "животински", - "бруталност", - "кучка", - "кучки", - "оплакваш", - "кървав", - "свирка", - "bollok", - "гаф", - "бозки", - "гърди", - "buceta", - "скитник", - "приклад", - "килим", - "пролука", - "cipa", - "клитор", - "петел", - "петел издънка", - "петли", - "миеща мечка", - "глупости", - "заедно с", - "празнене", - "cunillingus", - "вагина", - "проклет", - "кур", - "вибратор", - "вибратори", - "динк", - "куче-шибаняк", - "duche", - "дига", - "изхвърлям", - "еякулира", - "еякулират", - "възклицание", - "педераст", - "fagging", - "педали", - "фелчинг", - "фелацио", - "фланец", - "мамка", - "прецака", - "шибаняк", - "шибаняци", - "шибан", - "fuckings", - "чука", - "фъджъри", - "проклетата", - "ад", - "хоур", - "рогов", - "идиот изключване", - "кок", - "срамни устни", - "похот", - "пожелаването", - "мазохист", - "маструбирам", - "майка шибаняк", - "нацистки", - "негър", - "негри", - "orgasim", - "оргазъм", - "оргазми", - "пенис", - "пикая", - "пиян-залян", - "pisser", - "вбесява", - "пикаене", - "pissoff", - "ако", - "порнография", - "порно", - "убождане", - "тръни", - "pube", - "путки", - "котенце", - "изнасилване", - "насилник", - "ректум", - "спъвам", - "език в анус", - "садист", - "завинтване", - "скротум", - "сперма", - "секс", - "дяволица", - "shagging", - "шимейлс", - "лайна", - "shitted", - "серат", - "лайнян", - "skank", - "уличница", - "курви", - "смегма", - "цинизми", - "посягане", - "син на кучи", - "spac", - "кураж", - "тестис", - "цица", - "цици", - "titt", - "лайно", - "виагра", - "вулва", - "уан", - "ванк", - "курва", - "x оценен", - "ххх" - ], - "ca": [ - "avortament", - "anal", - "anus", - "cul", - "ass-fucker", - "asss", - "asshole", - "assholes", - "bolera", - "boles", - "bastardo", - "bellend", - "bestial", - "bestialitat", - "puta", - "femelles", - "picant", - "sagnant", - "mamada", - "bollok", - "boob", - "pits", - "buceta", - "bum", - "culata", - "catifa muncher", - "picar", - "cipa", - "clitoris", - "polla", - "galletejador", - "gallines", - "coon", - "merda", - "cum", - "correguda", - "cunillingus", - "boig", - "maleït", - "consolador", - "consoladors", - "dink", - "canalla", - "duche", - "dique", - "ejaculació", - "ejaculat", - "ejacula", - "ejaculant", - "fag", - "fagging", - "fagot", - "fagots", - "fanny", - "felching", - "fel.lació", - "brida", - "follar", - "follat", - "escuradents", - "follant", - "folles", - "fucks", - "empacadora de llaminadures", - "déu maldit", - "deu meu", - "infern", - "hore", - "córrer", - "retrocés", - "kock", - "llavis", - "lujuria", - "lució", - "masoquista", - "masturbarse", - "puta mare", - "nazi", - "nigger", - "negres", - "orgasim", - "orgasme", - "orgasmes", - "pecker", - "penis", - "piss", - "mossegat", - "pisser", - "pisses", - "pissing", - "treure de polleguera", - "caca", - "porno", - "pornografia", - "picades", - "pube", - "coques", - "gatet", - "violació", - "violador", - "recte", - "retard", - "rimming", - "sàdic", - "cargolar", - "escrot", - "semen", - "sexe", - "shag", - "borratxos", - "transsexual", - "mossegar", - "shitted", - "skank", - "smegma", - "smut", - "arrebat", - "fill de puta", - "spac", - "spunk", - "testicle", - "tit", - "tetas", - "titt", - "turd", - "vagina", - "viagra", - "vulva", - "wang", - "wank", - "x classificat", - "xxx" - ], - "cs": [ - "potrat", - "anální", - "řiť", - "osel", - "ass-fucker", - "osly", - "kretén", - "kreténi", - "ballbag", - "koule", - "bastard", - "bellend", - "bestiální", - "bestiality", - "fena", - "feny", - "bitching", - "krvavý", - "kouření", - "bollok", - "pitomost", - "prsa", - "buceta", - "zadek", - "kobercovník", - "štěrbina", - "cipa", - "klitoris", - "kohout", - "kohoutek", - "kohouty", - "coon", - "blbost", - "cum", - "cumshot", - "cunillingus", - "cunt", - "sakra", - "dick", - "dildo", - "dildy", - "dink", - "pes-fucker", - "duche", - "hráz", - "ejakulovat", - "ejakulováno", - "ejakuláty", - "ejakulace", - "teplouš", - "rozkrojení", - "otýpka", - "fagoty", - "počínání", - "fela", - "příruba", - "souložit", - "v prdeli", - "fucker", - "fuckers", - "zasraný", - "fuckings", - "fucks", - "fudge packer", - "bůh-zatracený", - "zatraceně", - "peklo", - "nahoru", - "nadržený", - "křik", - "kok", - "pysky", - "chtíč", - "masochista", - "masturbovat", - "matka fucker", - "nacistický", - "negr", - "negři", - "orgasim", - "orgasmus", - "orgasmy", - "klovaný pták", - "penis", - "čurat", - "naštvaný", - "pisser", - "pisses", - "pissing", - "pissoff", - "kadit", - "porno", - "pornografie", - "bodnutí", - "pricks", - "pube", - "pussies", - "kočička", - "znásilnění", - "násilník", - "konečník", - "zpomalit", - "rimming", - "sadista", - "šroubování", - "šourek", - "sperma", - "sex", - "shag", - "shinging", - "shemale", - "hovno", - "shite", - "shits", - "shitting", - "na hovno", - "skank", - "coura", - "sluts", - "smegma", - "smut", - "úryvek", - "synovec", - "mezery", - "odvaha", - "varle", - "tit", - "kozy", - "titt", - "vagina", - "viagra", - "vulva", - "wang", - "wank", - "děvka", - "x hodnocen", - "xxx" - ], - "cy": [ - "erthyliad", - "anal", - "anws", - "ass", - "ass-fucker", - "ases", - "asshole", - "assholes", - "bag bêl", - "pêlau", - "bastard", - "bellend", - "orau", - "bys", - "blychau", - "bitching", - "gwaedlyd", - "blowjob", - "bollok", - "boob", - "boobs", - "bronnau", - "bweta", - "bum", - "butt", - "carped muncher", - "chink", - "cipa", - "clitoris", - "ceiliog", - "cogwr-siwgr", - "cocks", - "coon", - "crap", - "cum", - "cumshot", - "cyfrifiadur", - "cunt", - "damn", - "dick", - "dildo", - "dildos", - "dink", - "dog-fucker", - "duche", - "clawdd", - "ejaculate", - "ejaculated", - "ejaculates", - "ejaculating", - "ejaculation", - "ffag", - "ffagio", - "ffagot", - "ffagots", - "fanny", - "yn torri", - "fellatio", - "flange", - "fuck", - "fucked", - "fucker", - "fuckers", - "ffycin", - "fuckings", - "fucks", - "pecyn fudge", - "god-damned", - "goddamn", - "uffern", - "tra", - "horny", - "jerk-off", - "kock", - "labia", - "lust", - "lusting", - "masochist", - "masturbate", - "mam fucker", - "nazi", - "nigger", - "nigwyr", - "orgasim", - "orgasm", - "orgasms", - "pecker", - "pidyn", - "piss", - "pissed", - "pisser", - "pisses", - "pissing", - "pissoff", - "poop", - "porn", - "porno", - "pornograffi", - "prick", - "prics", - "tafarn", - "pussies", - "pussy", - "trais rhywiol", - "rapist", - "rectum", - "adferiad", - "rimming", - "sadist", - "sgriwio", - "sgrotwm", - "semen", - "rhyw", - "ysg", - "ysgwyd", - "shemale", - "cach", - "sedd", - "yn gwisgo", - "wedi'i ffitio", - "yn cwympo", - "shitty", - "skank", - "slut", - "sluts", - "smegma", - "smut", - "snatch", - "mab-y-bitch", - "spac", - "spunk", - "brawf", - "tit", - "tits", - "titt", - "turd", - "fagina", - "viagra", - "vulva", - "wang", - "wank", - "chwistrell", - "x graddio", - "xxx" - ], - "da": [ - "abort", - "anal", - "anus", - "røv", - "røv-fucker", - "æsler", - "røvhul", - "røvhuller", - "ballbag", - "bolde", - "skiderik", - "bellend", - "dyrisk", - "bestialitet", - "tæve", - "tæver", - "brokker", - "blodig", - "blowjob", - "bollok", - "boob", - "boobs", - "bryster", - "buceta", - "vagabond", - "tæppe muncher", - "sprække", - "cipa", - "klitoris", - "hane", - "cock-sucker", - "haner", - "coon", - "lort", - "cum", - "cumshot", - "cunillingus", - "kusse", - "for pokker", - "dick", - "dildo", - "dildoer", - "dink", - "hund-fucker", - "duche", - "dige", - "ejakulere", - "ejakulerede", - "ejakulerer", - "sædafgang", - "ejakulation", - "fag", - "fagging", - "svans", - "flis", - "fanny", - "felching", - "fellatio", - "flange", - "fanden", - "fucked", - "fucker", - "fuckers", - "skide", - "fuckings", - "fucks", - "fudge packer", - "forbandede", - "pokkers", - "helvede", - "hore", - "liderlig", - "jerk-off", - "kock", - "skamlæber", - "begær", - "lusting", - "masochist", - "onanere", - "mor fucker", - "nazi", - "nigger", - "niggere", - "orgasim", - "orgasme", - "orgasmer", - "pecker", - "penis", - "pis", - "pissed", - "pisser", - "pisses", - "pissing", - "pisse af", - "agterstavn", - "porno", - "pornografi", - "pik", - "prikker", - "pube", - "pussies", - "fisse", - "voldtage", - "voldtægtsforbryder", - "endetarm", - "retard", - "rimming", - "sadist", - "skrue", - "pungen", - "sæd", - "køn", - "rulletobak", - "shagging", - "shemale", - "shite", - "shitted", - "skider", - "lorte", - "skank", - "tøs", - "sluts", - "smegma", - "sjofelheder", - "snuppe", - "søn-of-a-bitch", - "spac", - "spunk", - "testikel", - "tit", - "titt", - "vagina", - "viagra", - "vulva", - "wang", - "wank", - "luder", - "x bedømt", - "xxx" - ], - "de": [ - "abtreibung", - "anal", - "anus", - "arsch", - "arschficker", - "esel", - "arschloch", - "arschlöcher", - "balltasche", - "bälle", - "bastard", - "bellend", - "bestial", - "bestialität", - "hündin", - "hündinnen", - "schluchzen", - "blutig", - "blasen", - "bollok", - "boob", - "brüste", - "buceta", - "gammler", - "hintern", - "teppichmuncher", - "spalt", - "cipa", - "klitoris", - "schwanz", - "schwanzlutscher", - "schwänze", - "waschbär", - "mist", - "sperma", - "abspritzen", - "cunillingus", - "fotze", - "verdammt", - "dildo", - "dildos", - "dink", - "hundeficker", - "duche", - "deich", - "ejakulieren", - "ejakuliert", - "ejakulation", - "kippe", - "fagging", - "schwuchtel", - "schwuchteln", - "fanny", - "felching", - "fellatio", - "flansch", - "scheiße", - "gefickt", - "ficker", - "ficken", - "fickt", - "fudge packer", - "gott verdammt", - "gottverdammt", - "hölle", - "hore", - "geil", - "wichsen", - "kock", - "schamlippen", - "lust", - "lüstern", - "masochist", - "masturbieren", - "mutter ficker", - "nazi", - "nigger", - "orgasim", - "orgasmus", - "orgasmen", - "pecker", - "penis", - "piss", - "besoffen", - "pisser", - "pisst", - "pissen", - "pissoff", - "poop", - "porno", - "pornographie", - "stechen", - "stiche", - "pube", - "fotzen", - "muschi", - "vergewaltigen", - "vergewaltiger", - "rektum", - "verzögern", - "rimming", - "sadist", - "schrauben", - "hodensack", - "samen", - "sex", - "shag", - "shagging", - "transen", - "scheisse", - "geschissen", - "scheißen", - "beschissen", - "prostituierte", - "schlampe", - "schlampen", - "smegma", - "schmutz", - "schnappen", - "hurensohn", - "abstand", - "hoden", - "tit", - "titten", - "titt", - "turd", - "vagina", - "viagra", - "vulva", - "wang", - "hure", - "x bewertet", - "xxx" - ], - "el": [ - "άμβλωση", - "πρωκτικός", - "πρωκτός", - "γάιδαρος", - "συνάδελφο", - "γάιδες", - "κώλος", - "μαλάκες", - "σφαιρίδιο", - "αρχίδια", - "μπάσταρδος", - "bellend", - "κτηνώδης", - "κτηνωδία", - "σκύλα", - "κουτάβια", - "κόπωση", - "αιματηρός", - "μουνί", - "bollok", - "boob", - "βυζιά", - "στήθη", - "buceta", - "αλήτης", - "βαρέλι", - "χαλί", - "κινέζος", - "cipa", - "κλειτορίς", - "κόκορας", - "κόκορα-κορόιδο", - "στρόφιγγες", - "coon", - "σκατά", - "cum", - "cumshot", - "cunillingus", - "δεκάρα", - "ψωλή", - "dildo", - "δονητές", - "dink", - "σκύλος-fucker", - "duche", - "ανάχωμα", - "αναφωνώ", - "εκσπερμάτωση", - "εκσπερμάτισης", - "πούστης", - "παγίδευση", - "σπαθιά", - "fanny", - "ευτυχώς", - "πεολειξία", - "φλάντζα", - "γαμώ", - "πατήσαμε", - "fucker", - "μουντζούρες", - "γαμημένος", - "fuckings", - "fucks", - "fudge συσκευαστής", - "ο θεός-καταδικασμένος", - "ναι", - "κόλαση", - "επάνω", - "καυλιάρης", - "τρεξίματος", - "κοκ", - "τα χείλη", - "λαγνεία", - "μαζοχιστής", - "αυνανίζομαι", - "μητέρα fucker", - "ναζί", - "αράπης", - "νύχια", - "orgasim", - "οργασμός", - "οργασμούς", - "πέος", - "ουρώ", - "νευρικός", - "pisser", - "pisses", - "σκυλάκι", - "νευριάζω κάποιον", - "πρύμνη", - "πορνογραφία", - "πούτσος", - "τσιμπήματα", - "pube", - "pussies", - "βιασμός", - "βιαστής", - "επιβραδύνω", - "rimming", - "σαδιστής", - "βιδώνοντας", - "όσχεο ανατομία", - "σπέρμα", - "φύλο", - "τραχύνω", - "κουνώντας", - "shemale", - "shite", - "shits", - "σιωπής", - "shitty", - "skank", - "πόρνη", - "τα κορίτσια", - "smegma", - "καπνιά", - "αρπάζω", - "ο γιος της σκύλας", - "διαστήματα", - "τόλμη", - "όρχις", - "χτύπημα", - "titt", - "σβουνιά", - "κόλπος", - "viagra", - "αιδοίο θήλεος", - "wang", - "wank", - "x ονομαστική", - "xxx" - ], - "en": [ - "abortion", - "anal", - "anus", - "arse", - "ass", - "ass-fucker", - "asses", - "asshole", - "assholes", - "ballbag", - "balls", - "bastard", - "bellend", - "bestial", - "bestiality", - "bitch", - "bitches", - "bitching", - "bloody", - "blowjob", - "bollok", - "boob", - "boobs", - "breasts", - "buceta", - "bum", - "butt", - "carpet muncher", - "chink", - "cipa", - "clitoris", - "cock", - "cock-sucker", - "cocks", - "coon", - "crap", - "cum", - "cumshot", - "cunillingus", - "cunt", - "damn", - "dick", - "dildo", - "dildos", - "dink", - "dog-fucker", - "duche", - "dyke", - "ejaculate", - "ejaculated", - "ejaculates", - "ejaculating", - "ejaculation", - "fag", - "fagging", - "faggot", - "fagot", - "fagots", - "fanny", - "felching", - "fellatio", - "flange", - "fuck", - "fucked", - "fucker", - "fuckers", - "fucking", - "fuckings", - "fucks", - "fudge packer", - "god-damned", - "goddamn", - "hell", - "hore", - "horny", - "jerk-off", - "kock", - "labia", - "lust", - "lusting", - "masochist", - "masturbate", - "mother fucker", - "nazi", - "nigger", - "niggers", - "orgasim", - "orgasm", - "orgasms", - "pecker", - "penis", - "piss", - "pissed", - "pisser", - "pisses", - "pissing", - "pissoff", - "poop", - "porn", - "porno", - "pornography", - "prick", - "pricks", - "pube", - "pussies", - "pussy", - "rape", - "rapist", - "rectum", - "retard", - "rimming", - "sadist", - "screwing", - "scrotum", - "semen", - "sex", - "shag", - "shagging", - "shemale", - "shit", - "shite", - "shits", - "shitted", - "shitting", - "shitty", - "skank", - "slut", - "sluts", - "smegma", - "smut", - "snatch", - "son-of-a-bitch", - "spac", - "spunk", - "testicle", - "tit", - "tits", - "titt", - "turd", - "vagina", - "viagra", - "vulva", - "wang", - "wank", - "whore", - "x rated", - "xxx" - ], - "es": [ - "aborto", - "anal", - "ano", - "culo", - "follador de culo", - "culos", - "estúpido", - "bolsa de pelota", - "bolas", - "bastardo", - "campana", - "bestial", - "bestialidad", - "perra", - "perras", - "quejas", - "sangriento", - "mamada", - "bollok", - "teta", - "tetas", - "los pechos", - "buceta", - "extremo", - "muncher alfombra", - "grieta", - "cipa", - "clítoris", - "polla", - "chupar la polla", - "gallos", - "mapache", - "mierda", - "semen", - "corrida", - "cunillingus", - "coño", - "maldita sea", - "consolador", - "consoladores", - "tonto", - "perro follador", - "duche", - "dique", - "eyacular", - "eyaculado", - "eyacula", - "eyaculación", - "maricón", - "fagging", - "maricones", - "felching", - "felación", - "brida", - "follada", - "cabron", - "folladores", - "maldito", - "carajo", - "folla", - "fudge packer", - "maldito sea", - "infierno", - "hore", - "córneo", - "tirón", - "kock", - "labios vaginales", - "lujuria", - "masoquista", - "masturbarse", - "madre folladora", - "nazi", - "negro", - "niggers", - "orgasimo", - "orgasmo", - "orgasmos", - "pájaro carpintero", - "pene", - "mear", - "molesto", - "pisser", - "orinando", - "enojado", - "pornografía", - "porno", - "pinchazo", - "pinchazos", - "pube", - "coños", - "violación", - "violador", - "recto", - "retardar", - "rimming", - "sádico", - "atornillar", - "escroto", - "sexo", - "pelusa", - "follar", - "transexual", - "cagadas", - "cagado", - "cagando", - "de mierda", - "skank", - "puta", - "putas", - "smegma", - "tizón", - "arrebatar", - "hijo de puta", - "espacio", - "agallas", - "testículo", - "zurullo", - "vagina", - "viagra", - "vulva", - "wang", - "hacerse una paja", - "x clasificado", - "xxx" - ], - "et": [ - "abort", - "anal", - "päraku", - "perse", - "ass-fucker", - "eeslid", - "sitapea", - "sitapead", - "ballett", - "pallid", - "värdjas", - "bellend", - "pärilik", - "loovus", - "lits", - "emased", - "löömine", - "verine", - "suhu", - "bollok", - "boob", - "rind", - "rinnad", - "buketa", - "põrm", - "tagumik", - "vaip muncher", - "chink", - "cipa", - "kliitori", - "kukk", - "kukk-imetaja", - "klapid", - "coon", - "jama", - "cum", - "cumshot", - "cunillingus", - "vitt", - "kuradi", - "munn", - "dildo", - "dildod", - "äkki", - "koerad", - "duche", - "kraav", - "ejakulatsioon", - "ejakulatsioonid", - "fag", - "fagging", - "hirve", - "fagotid", - "fanny", - "sund", - "äärik", - "kurat", - "perses", - "fucks", - "särav pakendaja", - "jumalakartlik", - "põrgu", - "hore", - "horny", - "tõmbama", - "kock", - "labia", - "himu", - "lusting", - "masohhist", - "masturboida", - "ema kurat", - "natsid", - "nigger", - "niggers", - "orgasmi", - "orgasm", - "pecker", - "peenis", - "kusi", - "pissed", - "pisser", - "pisses", - "pissimine", - "pissoff", - "poop", - "porn", - "porno", - "pornograafia", - "torkima", - "pritsid", - "pube", - "pussies", - "tuss", - "vägistamine", - "vägistaja", - "pärasoole", - "hälvik", - "rimming", - "sadist", - "kruvimine", - "munandit", - "sperma", - "sugu", - "shag", - "shagging", - "shemale", - "sitt", - "shite", - "shits", - "varjatud", - "shitting", - "skank", - "sluts", - "smegma", - "lööma", - "kahmama", - "emane poeg", - "spac", - "särtsu", - "munand", - "tihane", - "tissid", - "titt", - "turd", - "tupe", - "viagra", - "vulva", - "wang", - "wank", - "hoor", - "x hinnatud", - "xxx" - ], - "eu": [ - "abortua", - "anal", - "anus", - "ipurdian", - "ipurdian-fucker", - "astoen", - "gilipollas", - "assholes", - "ballbag", - "bolak", - "kabroia", - "bellend", - "bestial", - "bestiality", - "puta", - "urbanístico", - "bitching", - "odoltsua", - "blowjob", - "bollok", - "boob", - "boobs", - "bular", - "buceta", - "bum", - "ipurdia", - "alfonbra muncher", - "chink", - "cipa", - "clitoris", - "oilarra", - "oilarra-salmenta", - "cocks", - "coon", - "crap", - "cum", - "cumshot", - "cunillingus", - "cunt", - "madarikatua", - "dick", - "errea", - "dildos", - "dink", - "txakur-fucker", - "duche", - "dike", - "ejaculate", - "ejaculated", - "ejaculates", - "ejaculating", - "prononcés", - "fag", - "fagging", - "fagot", - "fagots", - "fanny", - "felching", - "fellatio", - "hegaletan", - "arraio", - "fucked", - "fucker", - "fuckers", - "madarikatu", - "fuckings", - "fucks", - "fudge packer", - "jainko-damned", - "goddamn", - "infernua", - "hore", - "jerk-off", - "kock", - "labia", - "lust", - "lusting", - "masochist", - "masturbate", - "ama arruga", - "nazi", - "beltz", - "beltzak", - "orgasim", - "orgasm", - "orgasms", - "pecker", - "zakila", - "piss", - "pissed", - "pisser", - "pisses", - "pissing", - "pissoff", - "pedriza", - "pornoa", - "porno", - "pornografia", - "prick", - "pricks", - "pube", - "pussies", - "pussy", - "bortxaketa", - "rapist", - "rectum", - "retard", - "rimming", - "sadist", - "screwing", - "scrotum", - "semen", - "sexua", - "ubarroi", - "shagging", - "shemale", - "kaka", - "shite", - "shits", - "shitted", - "shitting", - "inoiz", - "skank", - "slut", - "sluts", - "smegma", - "smut", - "snatch", - "seme-of-a-puta", - "spac", - "spunk", - "barrabil", - "tit", - "amilotxak", - "titt", - "turd", - "baginaren", - "viagra", - "vulva", - "wang", - "wank", - "x baloratu", - "xxx" - ], - "fa": [ - "سقط جنین", - "مقعد", - "anus", - "الاغ", - "الاغ لعنتی", - "احمق", - "احمق ها", - "کمان توپ", - "توپ ها", - "حرامزاده", - "پرونده", - "جانوری", - "حیوانات", - "عوضی", - "سگ ها", - "جادوگر", - "خون آشام", - "blowjob", - "بولاک", - "boob", - "مشاعره", - "سینه ها", - "بوتا", - "بدم", - "لب به لب", - "موکن فرش", - "چنبره", - "cipa", - "دلقک", - "خروس", - "خنده دار", - "کوون", - "چرندیات", - "تقدیر", - "cumshot", - "cunillingus", - "کس", - "لعنت", - "دیک", - "کیرمصنوعی", - "dildos", - "دینک", - "سگ لعنتی", - "دوش", - "دایک", - "انزال", - "فاج", - "چرت زدن", - "قورباغه", - "قورباغه ها", - "فانی", - "felching", - "felatio", - "فلنج", - "دمدمی مزاجی", - "دمار از روزگارمان درآورد", - "لعنتی", - "fucks", - "بسته بندی فوج", - "خداحافظ", - "لعنت خدا", - "جهنم", - "خرس", - "شاخدار", - "تکان دادن", - "خب", - "لگن", - "شهوت", - "شهوانی", - "مازوکیست", - "استمناء", - "مرده مادر", - "نازی", - "نجار", - "نجارها", - "ارگاسم", - "پیکر", - "آلت تناسلی", - "شاش", - "ترسناک", - "پوسیر", - "مروارید", - "پوسیدن", - "پیزوف", - "کلوچه", - "پورنو", - "پورنوگرافی", - "ضرب و شتم", - "قیمت ها", - "پرده", - "گربه", - "تجاوز به عنف", - "مهاجم", - "رکتوم", - "عقب مانده", - "ریمینگ", - "سادیست", - "پیچش", - "اسکروتوم", - "اسپرم", - "ارتباط جنسی", - "زدن", - "shagging", - "باشگاه", - "گریه", - "shite", - "shits", - "shitting", - "اسکانک", - "شلخته", - "برنامه نویس", - "اسمگما", - "اسموتی", - "خراب کردن", - "پسر یک خانم", - "فاصله", - "گول زدن", - "بیضه", - "دختره", - "جوانان", - "titt", - "توراد", - "واژن", - "ویاگرا", - "ولو", - "وانگ", - "wank", - "فاحشه", - "x امتیاز", - "xxx" - ], - "fi": [ - "abortti", - "anaali-", - "peräaukko", - "perse", - "ass-kusipää", - "aasit", - "kusipää", - "paskiaiset", - "pallokassi", - "pallot", - "bellend", - "eläimellinen", - "raakuus", - "narttu", - "nartut", - "pienoisen", - "verinen", - "suihin", - "bollok", - "töppäys", - "tissit", - "rinnat", - "buceta", - "pylly", - "pusku", - "maton muncher", - "kilinä", - "cipa", - "klitoris", - "kukko", - "kukko-tikkari", - "kukot", - "neekeri", - "paska", - "cum", - "cumshot", - "cunillingus", - "pahuksen", - "kalu", - "dildo", - "dildot", - "dink", - "koira-kusipää", - "duche", - "lesbo", - "huudahtaa", - "ejaculated", - "siemensyöksyn", - "siemensyöksy", - "väsyttää", - "fagging", - "homo", - "risukimppuina", - "häpy", - "felching", - "fellatio", - "laippa", - "naida", - "fucked", - "fuckers", - "helvetin", - "fuckings", - "nussii", - "fudge-pakkaaja", - "helvetti", - "hore", - "kiimainen", - "jerk-off", - "kock", - "häpyhuulet", - "himo", - "lusting", - "masokisti", - "masturboida", - "äiti kusipää", - "natsi", - "nekru", - "neekerit", - "orgasim", - "orgasmi", - "orgasmeja", - "penis", - "kusta", - "kännissä", - "pisser", - "pisses", - "pissing", - "häivy", - "uloste", - "porno", - "pornografia", - "ääliö", - "tutkainta", - "pube", - "pussies", - "pimppi", - "raiskata", - "raiskaaja", - "peräsuoli", - "kehitysvammainen", - "rimming", - "sadisti", - "ruuvaamalla", - "kivespussi", - "siemenneste", - "sukupuoli", - "shag", - "shagging", - "shemale", - "shite", - "ripuli", - "shitted", - "skank", - "lutka", - "huoria", - "smegma", - "noki", - "siepata", - "son-of-a-bitch", - "spac", - "rohkeus", - "kives", - "tissi", - "titt", - "paskiainen", - "emätin", - "viagra", - "ulkosynnyttimet", - "wang", - "wank", - "huora", - "x mitoitettu", - "xxx" - ], - "fr": [ - "avortement", - "anal", - "anus", - "cul", - "enculer", - "culs", - "connard", - "connards", - "sac de billes", - "des balles", - "bellend", - "bestial", - "bestialité", - "chienne", - "chiennes", - "salope", - "sanglant", - "pipe", - "bollok", - "boob", - "seins", - "les seins", - "buceta", - "clochard", - "bout", - "tapis muncher", - "fente", - "cipa", - "clitoris", - "coq", - "suceuse", - "coqs", - "nègre", - "merde", - "sperme", - "éjaculation", - "cunillingus", - "chatte", - "zut", - "queue", - "godemiché", - "godes", - "tremper", - "baiseur de chien", - "duché", - "digue", - "éjaculer", - "éjaculé", - "éjacule", - "éjaculant", - "pédé", - "fagging", - "fagot", - "fagots", - "penchant", - "fellation", - "bride", - "baisée", - "enfoiré", - "baiseurs", - "putain de", - "fuckings", - "baise", - "emballeur de fudge", - "damné", - "putain", - "enfer", - "hore", - "corné", - "se branler", - "kock", - "les lèvres", - "luxure", - "convoitise", - "masochiste", - "masturber", - "mère enculée", - "nazi", - "nègres", - "orgasim", - "orgasme", - "orgasmes", - "quéquette", - "pénis", - "pisse", - "bourré", - "pisser", - "faire chier", - "caca", - "porno", - "pornographie", - "piquer", - "piqûres", - "pube", - "chattes", - "râpé", - "violeur", - "rectum", - "retard", - "rimming", - "sadique", - "scrotum", - "sexe", - "baiser", - "transexuelle", - "chier", - "chié", - "merdique", - "skank", - "salopes", - "smegma", - "cochonneries", - "arracher", - "fils de pute", - "espacer", - "cran", - "testicule", - "mésange", - "titt", - "vagin", - "viagra", - "vulve", - "wang", - "branler", - "x évalué", - "xxx" - ], - "gd": [ - "gort", - "anal", - "anus", - "asal", - "as-fucker", - "asail", - "asshole", - "ballbag", - "bàlaichean", - "bòidheach", - "bòidhchead", - "saoghail", - "sìorrachd", - "bitch", - "bitches", - "bitching", - "fuilteach", - "blowjob", - "bollok", - "boob", - "boobs", - "bròin", - "buceta", - "bum", - "acht", - "sgaoileadh", - "chink", - "cipa", - "clitoris", - "coileach", - "coileach-siùcair", - "còcaichean", - "coon", - "crap", - "cum", - "cumshot", - "a h-uile càil", - "cunt", - "damn", - "dick", - "dildo", - "dildos", - "dink", - "cù-fucker", - "dhanhe", - "gàrradh", - "ejaculate", - "ejaculates", - "ejaculation", - "fag", - "fagging", - "fagot", - "fagots", - "fanny", - "sgoltadh", - "marlatio", - "flange", - "fuck", - "fucked", - "fucker", - "fuckers", - "fucking", - "fuckings", - "fucks", - "pàipeir donn", - "diadhaidh diadhaidh", - "goddamn", - "ifrinn", - "air adhart", - "adharcach", - "jerk-off", - "kock", - "labia", - "lust", - "s an iar-", - "bochlach", - "màthair fucker", - "nazi", - "nigger", - "niggers", - "orgasm", - "orgasms", - "pecker", - "pìos", - "piss", - "pisser", - "pisses", - "pissing", - "falbh 's tarraing", - "poop", - "porn", - "porno", - "pornagraf", - "tilgeil", - "pricsean", - "taigh-seinnse", - "pussies", - "pussy", - "èigneachadh", - "rapist", - "ceart", - "ath-dhreuchd", - "rimming", - "sadist", - "scrotum", - "spiorad", - "gnè", - "sèidse", - "shemale", - "shit", - "seallaidhean", - "shits", - "s an iar-dheas", - "shitting", - "shitty", - "skank", - "slut", - "sluts", - "smegma", - "smut", - "snatch", - "mac-a-bitch", - "farsaingeachd", - "spunk", - "deuchainn", - "cait", - "tits", - "titt", - "turd", - "banainn", - "trogra", - "vulva", - "wang", - "wank", - "brògan", - "x air a rangachadh", - "xxx" - ], - "gl": [ - "aborto", - "anal", - "ano", - "asno", - "ass-fucker", - "asnos", - "gilipollas", - "asas", - "bolso", - "bolas", - "bastardo", - "bellend", - "bestial", - "bestialidade", - "puta", - "femias", - "bitching", - "sanguento", - "mamada", - "bollok", - "boob", - "boobs", - "peitos", - "buceta", - "bum", - "culata", - "mochilete de alfombras", - "chink", - "cipa", - "clítoris", - "galo", - "galopante", - "galiñas", - "coon", - "merda", - "cum", - "corrida", - "cunillingus", - "coño", - "maldición", - "pau", - "consolador", - "consoladores", - "dink", - "can fuck", - "duche", - "dique", - "ejacular", - "ejaculado", - "ejacula", - "ejaculando", - "ejaculação", - "fag", - "fagging", - "fagot", - "fagots", - "fanny", - "felching", - "filla", - "flange", - "foder", - "follada", - "foderos", - "follas", - "fode", - "empacadora de fudge", - "deus condenado", - "maldito", - "o inferno", - "durmir", - "cachonda", - "tirón", - "kock", - "labios", - "lujuria", - "masoquista", - "masturbarse", - "puta de nai", - "nazi", - "nigger", - "negros", - "orgasim", - "orgasmo", - "orgasmos", - "pecker", - "pene", - "piss", - "enojado", - "pisser", - "mentiras", - "pissing", - "molestar", - "caca", - "porno", - "pornografía", - "picar", - "pinchazos", - "pube", - "violación", - "violador", - "recto", - "retraso", - "rimming", - "sádico", - "atornillar", - "escroto", - "semen", - "sexo", - "shag", - "falando", - "transexual", - "shite", - "confundido", - "cariño", - "skank", - "sluts", - "smegma", - "smut", - "arrebatar", - "fillo de puta", - "spac", - "spunk", - "testículo", - "tit", - "tetas", - "titt", - "turd", - "vaxina", - "viagra", - "vulva", - "wang", - "pálido", - "x avaliado", - "xxx" - ], - "hi": [ - "गर्भपात", - "गुदा", - "नितंब", - "गधा कमीने", - "गधे", - "बेवकूफों", - "गेंद का थैला", - "गेंदों", - "घटिया इंसान", - "बेल अंत", - "वहशी", - "वहशीता", - "कुतिया", - "वो साले", - "bitching", - "रक्तरंजित", - "blowjob", - "bollok", - "उल्लू", - "स्तन", - "स्तनों", - "buceta", - "चूतड़", - "बट", - "कालीन का चूरा", - "चिंक", - "cipa", - "भगशेफ", - "मुर्गा", - "मुर्गा चूसने वाला", - "मुर्गा के", - "कून", - "बकवास", - "सह", - "सह शॉट", - "cunillingus", - "योनी", - "अरे नहीं", - "लिंग", - "डिल्डो", - "dink", - "कुत्ते-कमीने", - "duche", - "बांध", - "बोल पड़ना", - "ejaculated", - "ejaculates", - "ejaculating", - "फटना", - "सिगरेट", - "fagging", - "होमोसेक्सुअल", - "fagots", - "पिछाड़ी", - "felching", - "मुखमैथुन", - "निकला हुआ किनारा", - "लानत है", - "गड़बड़", - "मूर्ख", - "fuckers", - "कमबख्त", - "fuckings", - "fucks", - "ठगना पैकर", - "भगवान-शापित", - "धत् तेरे की", - "नरक", - "होर", - "सींग का बना हुआ", - "झटका बंद", - "कॉक", - "लेबिया", - "हवस", - "lusting", - "masochist", - "हस्तमैथुन", - "माँ कमीने", - "नाजी", - "चाकलेट का रंग", - "जी में आये करो", - "orgasim", - "ओगाज़्म", - "संभोग सुख", - "चोंच", - "पेशाब", - "बहुत मदहोश", - "pisser", - "pisses", - "pissing", - "दूर जाने का अभद्र संकेत देना", - "गोली चलाने की आवाज़", - "पॉर्न", - "अश्लील", - "कामोद्दीपक चित्र", - "चुभन", - "pube", - "pussies", - "बिल्ली", - "बलात्कार", - "लुटेरा", - "मलाशय", - "काम करना", - "rimming", - "पीड़न कामुक", - "पंगा लेना", - "अंडकोश की थैली", - "वीर्य", - "यौन-संबंध", - "shagging", - "किन्नर", - "मल", - "shite", - "शिफ़्ट को", - "shitted", - "shitting", - "shitty", - "skank", - "फूहड़", - "sluts", - "शिश्नमल", - "मैल", - "छीनना", - "दुष्ट", - "spac", - "साहस", - "अंडा", - "चूची", - "titt", - "turd", - "योनि", - "वियाग्रा", - "वैंग", - "wank", - "वेश्या", - "एक्स रेटेड", - "xxx" - ], - "hr": [ - "abortus", - "analan", - "čmar", - "dupe", - "magarac-fucker", - "magaraca", - "šupak", - "šupci", - "ballbag", - "jaja", - "kopile", - "bellend", - "zvjerski", - "sodomija", - "kuja", - "kuje", - "kučka", - "krvav", - "blowjob", - "bollok", - "sisa", - "sise", - "grudi", - "buceta", - "tumaralo", - "kundak", - "tepih muncher", - "pukotina", - "cipa", - "klitoris", - "penis", - "penis-dojilja", - "cocks", - "rakun", - "sranje", - "sperma", - "cumshot", - "cunillingus", - "pićka", - "proklet", - "kurac", - "dildo", - "dink", - "pas-jebač", - "duche", - "nasip", - "ejakulirati", - "ejakulirao", - "ejakulira", - "ejakulacije", - "ejakulacija", - "peder", - "fagging", - "fagot", - "pederi", - "felching", - "felacio", - "obod", - "jebati", - "jebani", - "guzica", - "jeben", - "jebeni", - "fuckings", - "fucks", - "pakirač gluposti", - "prokleto", - "kvragu", - "pakao", - "hore", - "rožnat", - "drkadžija", - "kock", - "usne", - "požuda", - "lusting", - "mazohista", - "masturbirati", - "jebačica", - "nacistički", - "crnčuga", - "crnci", - "orgasim", - "orgazam", - "orgazama", - "pišati", - "ljut", - "pisser", - "ljuti", - "pissing", - "odjebi", - "krma", - "pornografija", - "porno", - "ubod", - "uboda", - "pube", - "pičkice", - "maca", - "silovanje", - "nasilnik", - "rektum", - "usporiti", - "anilingus", - "sadista", - "vijak", - "skrotum", - "sjeme", - "seks", - "čuperak", - "karanje", - "shemale", - "sere", - "shitted", - "usrani", - "skank", - "djevojčura", - "kurvice", - "smegma", - "trzaj", - "sin-of-a-kuja", - "spac", - "hrabrost", - "testis", - "sjenica", - "titt", - "govno", - "vagina", - "viagra", - "stidnica", - "wang", - "wank", - "kurva", - "x ocijenjeno", - "xxx" - ], - "hu": [ - "magzatelhajtás", - "anális", - "végbélnyílás", - "szamár", - "ass-fucker", - "seggfej", - "seggfejek", - "labda táska", - "golyó", - "rohadék", - "bellend", - "bestiális", - "állatiasság", - "kurva", - "szukák", - "fasza", - "véres", - "szopás", - "bollok", - "fajankó", - "mellek", - "buceta", - "ingyenélő", - "csikk", - "szőnyeg muncher", - "rés", - "cipa", - "csikló", - "kakas", - "cock-balek", - "kakasok", - "mosómedve", - "marhaság", - "cum", - "cumshot", - "cunillingus", - "picsa", - "átkozott", - "fasz", - "vibrátor", - "dildos", - "dink", - "dog-fucker", - "duche", - "gát", - "lövell", - "kiáltotta", - "ejakulátum", - "ejakuláció", - "buzi", - "fagging", - "köteg", - "segg", - "felching", - "fellatio", - "karima", - "szar", - "köcsög", - "köcsögök", - "kibaszott", - "fuckings", - "baszik", - "hamis csomagoló", - "isten átkozott", - "pokol", - "hore", - "kemény", - "bunkó-off", - "kock", - "szeméremajkak", - "vágy", - "lusting", - "mazochista", - "maszturbál", - "anya szar", - "náci", - "néger", - "niggerek", - "orgasim", - "orgazmus", - "harkály", - "hímvessző", - "pisi", - "részeg", - "pisser", - "pisses", - "tönkreteszed", - "pissoff", - "tat", - "pornó", - "porno", - "pornográfia", - "pöcs", - "faszok", - "pube", - "idióta", - "punci", - "erőszak", - "erőszaktevő", - "végbél", - "retard", - "seggnyalás", - "szadista", - "csavarozás", - "herezacskó", - "sperma", - "szex", - "bozont", - "shagging", - "shemale", - "shite", - "szarik", - "shitted", - "szarozom", - "szaros", - "skank", - "sluts", - "smegma", - "korom", - "megragad", - "fia-of-a-kurva", - "spac", - "bátorság", - "here", - "cinege", - "mell", - "titt", - "hüvely", - "viagra", - "szeméremajak", - "wang", - "wank", - "x névleges", - "xxx" - ], - "hy": [ - "աբորտ", - "անալ", - "անուս", - "դայակ", - "էշլին բրուք", - "էշի", - "փրչոտ", - "սեքս խաղալիք", - "բլանկը", - "գնդակներ", - "սրիկա", - "բուլդոզեր", - "բրիտանացի", - "անչափահասություն", - "կեղտոտ", - "բիթերներ", - "դավաճանություն", - "արյունոտ", - "սիրողական", - "bollok", - "բոբ", - "բոյֆլես", - "դոշիկներ", - "բուետա", - "բում", - "կոտլետներ", - "գորգի մուշտակ", - "փխրուն", - "շնչառություն", - "կլիտորներ", - "ոտքերի ֆետիշ", - "քորթնի քամմզ", - "կոկտեյլներ", - "ծածկոց", - "գաղտնի", - "ամուսինս", - "սեքս երեքով", - "սեռական հարաբերություն", - "ամուսին", - "սատանա", - "դիք", - "դրսում", - "dildos", - "դինք", - "շան շագանակագույն", - "դուչե", - "ejaculate", - "ejaculated", - "ejaculates", - "ejaculating", - "ցնցում", - "մկնիկը", - "կեղծիք", - "ֆագոտ", - "ֆագոտներ", - "fanny", - "փչացնելով", - "կատարվում է քննություն", - "ֆլանկը", - "հագնված", - "լատեքս", - "փխրուն փաթեթեր", - "աստվածուհին", - "լեգենդ", - "դժոխք", - "հոր", - "հենթաի", - "անջատում", - "կոկորդը", - "լաբիացիան", - "ցանկություն", - "lusting", - "մազոխիստ", - "մանանա", - "մեդիսոն պարկեր", - "նազի", - "նիգեր", - "նիգերներ", - "օրգազմ", - "օրգազմներ", - "պեկկեր", - "պենիս", - "piss", - "հուզված", - "պերսեր", - "մղում", - "pissoff", - "փոստը", - "պոռնիկ", - "պոռնոգրաֆիա", - "հեգնանքով", - "պղինձ", - "մորուքներ", - "պոռնո աստղ", - "բռնաբարություն", - "բռնաբարող", - "ռեկտուս", - "ուշացումով", - "rimming", - "սադիստ", - "պտուտակով", - "շնչափող", - "սերմնացան", - "սեքսը", - "շաղ տալ", - "shagging", - "տրանսվեստիտ", - "բլիթ", - "շիթ", - "բախումներ", - "շիկացած", - "shitting", - "շիկահեր", - "skank", - "ֆանտազիա", - "ստրուկներ", - "smegma", - "սուտ է", - "խլել", - "որդին, որդին", - "spac", - "թափթփված", - "բորբոքում", - "տիտ", - "տիտտ", - "տաք", - "վագինա", - "վիագրան", - "վոլվա", - "wang", - "wank", - "x գնահատված", - "xxx" - ], - "id": [ - "abortus", - "anal", - "dubur", - "pantat", - "bajingan", - "keledai", - "keparat", - "tas bola", - "bola", - "bellend", - "kejam", - "kebinatangan", - "menggerutu", - "pelacur", - "berdarah", - "blowjob", - "bollok", - "dada", - "payudara", - "buceta", - "gelandangan", - "pengunyah karpet", - "celah", - "cipa", - "kelentit", - "kokang", - "pengisap ayam", - "ayam", - "coon", - "sampah", - "air mani", - "cumshot", - "cunillingus", - "vagina", - "mengutuk", - "kontol", - "dildo", - "dink", - "anjing-keparat", - "duche", - "tanggul", - "berejakulasi", - "ejakulasi", - "homo", - "fagging", - "kayu bakar", - "penggemar", - "felching", - "fellatio", - "flens", - "brengsek", - "kacau", - "sialan", - "persetan", - "pengepakan fudge", - "terkutuk", - "ya tuhan", - "neraka", - "hore", - "terangsang", - "kock", - "labia", - "nafsu", - "bernafsu", - "masokis", - "masturbasi", - "keparat ibu", - "nazi", - "orang negro", - "negro", - "orgasim", - "orgasme", - "cotok", - "penis", - "kencing", - "kesal", - "pisser", - "bikin", - "buritan", - "porno", - "pornografi", - "tusukan", - "menusuk", - "pube", - "pussies", - "memperkosa", - "pemerkosa", - "memperlambat", - "rimming", - "sadis", - "meniduri", - "skrotum", - "seks", - "bercinta", - "waria", - "kotoran", - "shite", - "kengerian", - "dikirim", - "buang hajat", - "menyebalkan", - "smegma", - "jelaga", - "merebut", - "dasar bajingan", - "ruang", - "keberanian", - "buah pelir", - "titt", - "viagra", - "vulva", - "wang", - "terima kasih", - "x diberi peringkat", - "xxx" - ], - "is": [ - "fóstureyðingu", - "endaþarms", - "anus", - "rass", - "ass-fucker", - "asna", - "rassgat", - "assholes", - "ballbag", - "kúlur", - "bastarður", - "bellend", - "bestial", - "bestiality", - "tíkur", - "blóðug", - "blowjob", - "bollok", - "bobbingar", - "brjóst", - "buceta", - "bum", - "rassinn", - "teppi muncher", - "chink", - "cipa", - "klitoris", - "hani", - "hani-sogskál", - "hanar", - "coon", - "vitleysa", - "með", - "cumshot", - "cunillingus", - "cunt", - "fjandinn", - "dick", - "dildó", - "dildós", - "hugsa", - "hundur-fucker", - "duche", - "dyke", - "sáðlát", - "sáðkorn", - "fag", - "fagging", - "fagot", - "fagots", - "fanny", - "felching", - "fellatio", - "flans", - "helvíti", - "fucker", - "fuckers", - "fucks", - "fudge pakki", - "guðdæmdur", - "pabbi", - "hore", - "horny", - "jerk-burt", - "kock", - "labia", - "lust", - "lusting", - "masochist", - "sjálfsfróun", - "móður fucker", - "nazi", - "nigger", - "niggers", - "orgasim", - "fullnægingu", - "pecker", - "typpið", - "piss", - "reiður", - "pisser", - "pisses", - "pissa", - "pissoff", - "kúkur", - "klám", - "prick", - "pricks", - "pube", - "pussies", - "kisa", - "nauðgun", - "nauðgari", - "endaþarmi", - "þroskaheftur", - "rimming", - "sadist", - "skrúfa", - "scrotum", - "sæði", - "kynlíf", - "shag", - "shagging", - "shemale", - "skít", - "skítur", - "shitted", - "shitting", - "shitty", - "skank", - "druslan", - "sluts", - "smegma", - "smut", - "hrifsa", - "sonur-af-tíkur", - "bil", - "spunk", - "testicle", - "tit", - "tits", - "titt", - "turd", - "leggöngum", - "viagra", - "vulva", - "wang", - "wank", - "hóra", - "x hlutfall", - "xxx" - ], - "it": [ - "aborto", - "anale", - "ano", - "culo", - "ass-stronzo", - "asini", - "stronzo", - "stronzi", - "ballbag", - "palle", - "bastardo", - "bellend", - "bestiale", - "brutalità", - "cagna", - "bitches", - "bitching", - "sanguinoso", - "pompino", - "bollok", - "tetta", - "tette", - "seni", - "buceta", - "muncher di tappeti", - "spiraglio", - "cipa", - "clitoride", - "cazzo", - "pompinara", - "cazzi", - "procione lavatore", - "una schifezza", - "cum", - "eiaculazione", - "cunillingus", - "fica", - "dannazione", - "dildo", - "dink", - "dog-stronzo", - "duche", - "diga", - "eiaculare", - "eiaculato", - "eiacula", - "sigaretta", - "fagging", - "fascina", - "fascine", - "figa", - "felching", - "fellatio", - "flangia", - "fanculo", - "scopata", - "coglione", - "fuckers", - "fuckings", - "scopa", - "fudge packer", - "god-dannato", - "inferno", - "hore", - "corneo", - "kock", - "labbra", - "lussuria", - "lusting", - "masochista", - "masturbarsi", - "madre stronza", - "nazista", - "negro", - "negri", - "orgasim", - "orgasmo", - "orgasmi", - "pene", - "pisciare", - "incazzata", - "pisser", - "piscia", - "pissing", - "pissoff", - "cacca", - "porno", - "pornografia", - "puntura", - "pube", - "fighe", - "micio", - "stupro", - "stupratore", - "retto", - "ritardare", - "rimming", - "sadico", - "avvitamento", - "scroto", - "sperma", - "sesso", - "scopare", - "shagging", - "transessuali", - "merda", - "shite", - "merde", - "shitted", - "cacare", - "merdoso", - "skank", - "slut", - "troie", - "smegma", - "oscenità", - "strappare", - "figlio di puttana", - "spac", - "audacia", - "testicolo", - "titt", - "escremento", - "vagina", - "viagra", - "vulva", - "wang", - "wank", - "puttana", - "x valutato", - "xxx" - ], - "ja": [ - "中絶", - "アナル", - "肛門", - "お尻", - "お尻クッカー", - "ロバ", - "下衆野郎", - "ろくでなし", - "ボールバッグ", - "ボール", - "クソ野郎", - "bellend", - "ばかげた", - "獣姦", - "雌犬", - "愚痴", - "血まみれの", - "フェラチオ", - "気楽な", - "おっぱい", - "ブセタ", - "やけどする", - "カーペットマンチャー", - "隙", - "シパ", - "クリトリス", - "コック", - "コック吸盤", - "クーン", - "がらくた", - "兼", - "ザーメン", - "クニリンガス", - "女", - "くそー", - "ディック", - "ディルド", - "沈む", - "ドッグファッカー", - "公爵夫人", - "堤防", - "射精する", - "射精した", - "射精", - "ほこり", - "曇り", - "迷い", - "偽物", - "ファニー", - "フェッチ", - "フランジ", - "くそ", - "めちゃくちゃ", - "バカ", - "クッカー", - "クソ", - "ファック", - "ファッジパッカー", - "神だらけの", - "最悪", - "地獄", - "飼い主", - "角質の", - "ジャークオフ", - "陰唇", - "欲望", - "マゾ", - "自慰行為をする", - "マザーファッカー", - "ナチ", - "ニガー", - "オルガシム", - "オーガズム", - "ペッカー", - "陰茎", - "小便", - "怒って", - "おしゃべり", - "おしっこ", - "放尿", - "放棄", - "うんち", - "ポルノの", - "ポルノ", - "刺します", - "プリック", - "パブ", - "プッシー", - "レイプ", - "強姦犯", - "直腸", - "遅らせる", - "リミング", - "サディスト", - "ねじ込み", - "陰嚢", - "精液", - "性別", - "シャグ", - "震え", - "シーメール", - "たわごと", - "シテ", - "スカンク", - "ふしだらな女", - "スメグマ", - "スマット", - "スナッチ", - "spac", - "スパンク", - "睾丸", - "乳首", - "titt", - "のどか", - "膣", - "バイアグラ", - "外陰部", - "王", - "オタク", - "売春婦", - "×定格", - "xxx" - ], - "kn": [ - "ಗರ್ಭಪಾತ", - "ಗುದ", - "ಗುದದ್ವಾರ", - "ಕತ್ತೆ", - "ಆಶ್-ಫಕರ್", - "ಅಸ್ಹೋಲ್", - "ಅಸೋಲೆಸ್", - "ಬಾಲ್ಬಾಗ್", - "ಚೆಂಡುಗಳು", - "ಬಾಸ್ಟರ್ಡ್", - "ಬೆಲೆಂಡ್", - "ಮೃದ್ವಂಗಿ", - "ಪ್ರಾಣಿಜನ್ಯತೆ", - "ಬಿಚ್", - "ಬಿಟ್ಚಿಸ್", - "ಬೆಚಿಂಗ್", - "ರಕ್ತಸಿಕ್ತ", - "ಬ್ಲೋಜಾಬ್", - "ಬೊಲ್ಲೊಕ್", - "ಕುರುಚಲು ಗಿಡ", - "ಬೂಬಿಗಳು", - "ಸ್ತನಗಳನ್ನು", - "ಬುಕೆಟಾ", - "ತಿಕ", - "ಬಟ್", - "ಕಾರ್ಪೆಟ್ ಮಂಚರ್", - "ಚಿಂಕ್", - "ಸಿಪಾ", - "ಚಂದ್ರನಾಡಿ", - "ಕೋಳಿ", - "ಕೋಳಿ ಸಕ್ಕರ್", - "ಕಾಕ್ಸ್", - "ಕೂನ್", - "ಅಮೇಧ್ಯ", - "ಕಮ್", - "ಕಮ್ಶಾಟ್", - "ಕುನಿಲ್ಲಸ್", - "ಕಂಟ್", - "ಡ್ಯಾಮ್", - "ಡಿಕ್", - "ದ್ವಿಧ್ರುವಿ", - "dildos", - "ಡಿಂಕ್", - "ನಾಯಿ-ಫಕರ್", - "ಡಚೆ", - "ಡೈಕ್", - "ಹೊರಹೊಮ್ಮಿಸು", - "ಸ್ಫೂರ್ತಿ", - "ಎಜಾಕ್ಯುಲೇಟ್ಸ್", - "ಇಜಲಲೇಟಿಂಗ್", - "ಉದ್ಗಾರ", - "ತಮಾಷೆ", - "ಮಂದಗತಿ", - "ಮಬ್ಬು", - "fagots", - "ಫ್ಯಾನಿ", - "ಹೊಡೆತ", - "ಪತನ", - "ಚಾಚುಪಟ್ಟಿ", - "ಫಕ್", - "ನಾಶವಾಗಿದ್ದನು", - "ಫಕರ್", - "fuckers", - "ಫಕಿಂಗ್", - "ಫಕಿಂಗ್ಸ್", - "ಇಷ್ಟಪಡುತ್ತಾನೆ", - "ಮಿಠಾಯಿ ಪ್ಯಾಕರ್", - "ದೇವರನ್ನು ಹಾನಿಗೊಳಗಾಯಿತು", - "ಗಾಡ್ಡಮ್", - "ನರಕ", - "ಹೋರ್", - "ಮೊನಚಾದ", - "ಜರ್ಕ್-ಆಫ್", - "ಕೋಕ್", - "ಯೋನಿಯ", - "ಕಾಮ", - "ಕಾಮುಕ", - "ಮಾಸೋಚಿಸ್ಟ್", - "ಹಸ್ತಮೈಥುನ ಮಾಡು", - "ತಾಯಿ ಫಕರ್", - "ನಾಜಿ", - "ನಿಗರ್", - "ನಿಗ್ಗರ್ಗಳು", - "ಒರಾಸಿಮ್", - "ಪರಾಕಾಷ್ಠೆ", - "ಪರಾಕಾಷ್ಠೆಗಳನ್ನು", - "ಪೆಕರ್", - "ಶಿಶ್ನ", - "ಮೂತ್ರ ವಿಸರ್ಜಿಸು", - "ನಿರುತ್ಸಾಹಗೊಂಡಿದೆ", - "ಪಿಸರ್", - "ಮೂತ್ರಪಿಂಡಗಳು", - "pissing", - "ಪಿಸ್ಸಾಫ್", - "ಪೂಪ್", - "ಅಶ್ಲೀಲತೆ", - "ಅಶ್ಲೀಲ", - "ಚುಚ್ಚು", - "ಪ್ರಿಕ್ಸ್", - "ಪಬ್", - "ಪುಸಿಗಳು", - "ಪುಸಿ", - "ಅತ್ಯಾಚಾರ", - "ಅತ್ಯಾಚಾರಿ", - "ಗುದನಾಳದ", - "ರಿಟಾರ್ಡ್", - "ಹಚ್ಚುವುದು", - "ದುಃಖಗಾರ", - "ತಿರುಗಿಸುವುದು", - "ಸ್ಕ್ರೋಟಮ್", - "ವೀರ್ಯ", - "ಲೈಂಗಿಕತೆ", - "ಶಾಗ್", - "ಶಾಗ್ಗಿಂಗ್", - "ಶೆಮೇಲ್", - "ಶಿಟ್", - "ಷೈಟ್", - "ಶಿಟ್ಸ್", - "shitted", - "ಅಲುಗಾಡುವಿಕೆ", - "ಅಸಹ್ಯ", - "ಸ್ಕಾಂಕ್", - "ಸೂಳೆ", - "ಸ್ಲಟ್ಗಳು", - "ಸ್ಮೆಗ್ಮಾ", - "ಕೊಳೆತ", - "ಸ್ನ್ಯಾಚ್", - "ಮಗ-ಆಫ್-ಬಿಚ್", - "spac", - "ಉಬ್ಬು", - "ವೃಷಣ", - "ಟಿಟ್", - "ಚೇಕಡಿ ಹಕ್ಕಿಗಳು", - "turd", - "ಯೋನಿ", - "ವಯಾಗ್ರ", - "ವಾಂಗ್", - "ಮುಷ್ಕರ", - "x ರೇಟೆಡ್", - "xxx" - ], - "ko": [ - "유산", - "항문", - "나귀", - "엉덩이 새끼", - "엉덩이", - "볼 가방", - "불알", - "잡종", - "연예인", - "짐승 같은", - "수성", - "암캐", - "불평", - "피의", - "입으로", - "bollok", - "얼간이", - "가슴", - "부 에타", - "부랑자", - "대상", - "카펫 망치", - "갈라진 틈", - "cipa", - "음핵", - "수탉", - "자지", - "검둥이", - "쓰레기", - "정액", - "사정", - "cunillingus", - "여성 성기", - "조금도", - "형사", - "딜도", - "딩크", - "개 새끼", - "두체", - "다이크", - "갑자기 외치다", - "사정 된", - "사정하다", - "사정하는", - "궐련", - "지저귀다", - "동성애자", - "호모", - "펠칭", - "구강", - "플랜지", - "못쓰게 만들다", - "망할", - "새끼", - "새끼들", - "빌어 먹을", - "퍼지 패커", - "맙소사", - "지옥", - "호르", - "흥분한", - "코크", - "음순", - "색욕", - "찌름", - "매저 키스트", - "자위 행위", - "어머니 새끼", - "나치", - "깜둥이", - "오르가즘", - "오르가슴", - "곡괭이", - "음경", - "소변", - "성난", - "작은 소리", - "오줌", - "화나게", - "고물", - "포르노", - "춘화", - "찌르기", - "덩어리", - "겁쟁이", - "고양이", - "강간", - "강간범", - "직장", - "지체", - "손질", - "사디스트", - "나사못으로 죄다", - "음낭", - "섹스", - "성교", - "뒤죽박죽", - "여비", - "똥", - "지저분한", - "속이다", - "엿 같은", - "스컹크", - "매춘부", - "스 멕마", - "흑수병", - "인상", - "아들 - 개자식", - "우주", - "고환", - "젖꼭지", - "장대비", - "질", - "비아그라", - "외음부", - "왕", - "멍한", - "x 등급", - "트리플 엑스" - ], - "la": [ - "abortum", - "ani figuratur", - "ano est", - "asinus", - "pulli irrumator praetor", - "de asinis", - "culus", - "assholes", - "ballbag", - "balls", - "bastardis", - "bellend", - "bestialem", - "bestialitas", - "bitch", - "licisci", - "bitching", - "cruento", - "blowjob", - "bollok", - "books", - "libris", - "ubera", - "buceta", - "bum", - "dolium", - "tapete fanfare", - "rima,", - "cipa", - "clitoridis", - "gallus", - "gallus hirudo", - "gallorum", - "coon", - "crap", - "cum", - "cumshot", - "cunillingus", - "cunt", - "damnare", - "dick", - "dildo", - "dildos", - "dink", - "canem irrumator praetor,", - "duche", - "fossatum", - "ejaculate", - "euadit:", - "iaciat", - "ejaculating", - "ejaculation", - "fag", - "fagging", - "cinaede", - "malleolis", - "fanny", - "felching", - "fellatio", - "labium", - "irrumabo", - "fucked", - "irrumator praetor", - "fututorum", - "fucking", - "fuckings", - "fucks", - "fudge packer", - "deus, condemnabitur", - "goddamn", - "infernum", - "hore", - "corneum", - "off-inprobus", - "kock", - "purgamentum", - "libidine", - "cupiditatis", - "sine priore", - "masturbari", - "irrumator praetor matrem suam", - "nazi", - "nigger", - "reiteratis dissectionibus", - "orgasim", - "gaudens", - "orgasms", - "ficedulae", - "coles", - "defricatus urina", - "irata", - "mane mingentem", - "pisses", - "meientis", - "pissoff", - "stercus", - "christmas cruises", - "porno", - "turpia scripta imaginesque", - "idest", - "stimulum calcitrare", - "pube", - "pussies", - "pussy", - "stuprum", - "opprimentis explendam", - "rectum iri", - "retardant", - "rimming", - "sadist", - "futuit", - "scrotum milij", - "habuerit", - "sexus", - "sag", - "shagging", - "shemale", - "stercore", - "vacca foeda", - "cacat olim", - "shitted", - "shitting", - "cacata carta", - "skank", - "cunnus", - "pessumae", - "smegma", - "smut", - "rapiunt", - "mæna", - "locutus", - "spunk", - "testiculum nervumque", - "cit", - "tits", - "titt", - "turci", - "naturale eius debent", - "re", - "quidam latinorum praesumtores", - "wang", - "wank", - "scortum", - "x rated", - "xxx:" - ], - "lt": [ - "abortas", - "analinis", - "išangės", - "asilas", - "asilai", - "subingalvis", - "krepšys", - "rutuliai", - "bastard", - "bellend", - "geriausias", - "gerumas", - "kalė", - "kalės", - "bitching", - "kruvinas", - "blowjob", - "bollok", - "boob", - "krūtinės", - "buceta", - "pakimba", - "užpakalis", - "kilimėlis", - "chink", - "cipa", - "klitoris", - "gaidys", - "gaidžiai", - "plaktukas", - "šūdas", - "cum", - "cumshot", - "cunillingus", - "šiknius", - "prakeiktas", - "penis", - "dildo", - "dink", - "šunys", - "duche", - "pylimas", - "ejakuliacija", - "fag", - "fagging", - "fagot", - "fagots", - "fanny", - "nardymas", - "bendrija", - "flanšas", - "pakliuvom", - "žioplys", - "žudikai", - "sušikti", - "fuckings", - "fucks", - "švelnus pakuotojas", - "dieviškas", - "pragaras", - "gerkite", - "raguotas", - "nustumti", - "kock", - "žaizdos", - "geismas", - "lusting", - "masochistas", - "masturbuoti", - "motina žioplys", - "nacių", - "nigger", - "niggers", - "orgazmas", - "orgazmus", - "pecker", - "varpos", - "myžti", - "pissed", - "pisser", - "pisses", - "pissing", - "atsiknisk", - "kakoti", - "porno", - "pornografija", - "prick", - "prizai", - "pube", - "pussies", - "pūlingas", - "išprievartavimas", - "išžagintojas", - "tiesiosios žarnos", - "retard", - "rimavimas", - "sadist", - "įsukimas", - "kapšelį", - "sperma", - "seksas", - "gaudyti", - "shagging", - "shemale", - "shite", - "shits", - "nustumta", - "shitting", - "shitty", - "skank", - "apskretėlė", - "sluts", - "smegma", - "smut", - "pakabinti", - "tarpas", - "spunk", - "sėklidė", - "tit", - "papai", - "titt", - "turd", - "makšties", - "viagra", - "vulva", - "wang", - "wank", - "kekše", - "x įvertintas", - "xxx" - ], - "lv": [ - "aborts", - "anālais", - "tūpļa", - "ass", - "ass-fucker", - "ēzeļi", - "pakaļu", - "assholes", - "somas", - "bumbiņas", - "bastards", - "bellend", - "labsirdīgs", - "labestība", - "kuce", - "kucēm", - "bitching", - "asiņaina", - "blowjob", - "bollok", - "boob", - "krūtis", - "buceta", - "pakaļa", - "muca", - "paklāju muncher", - "smirdēt", - "cipa", - "klitoris", - "gailis", - "gailis-zīdējs", - "gaiļus", - "coon", - "crap", - "cum", - "cumshot", - "cunillingus", - "cunt", - "nopelt", - "penis", - "dildo", - "krunciet", - "sunītis", - "duche", - "dambis", - "ejakulēt", - "ejakulācija", - "ejakulāti", - "fag", - "fagging", - "fagots", - "fanny", - "felching", - "biedrība", - "atloks", - "izdrāzt", - "fucked", - "fuckers", - "jāšanās", - "fuckings", - "fucks", - "izdomājums", - "dievbijīgs", - "sasodīts", - "ellē", - "hore", - "ragveida", - "saraustīties", - "kārts", - "labia", - "iekāre", - "lusting", - "masohists", - "masturbēt", - "māte fucker", - "nacisti", - "nigger", - "niggeri", - "orgasms", - "orgasma", - "pecker", - "dzimumlocekļa", - "mīzt", - "pissed", - "pisser", - "pisses", - "pissing", - "atšujies", - "kakls", - "porno", - "pornogrāfija", - "dūriens", - "prikuļi", - "pube", - "pussies", - "incītis", - "izvarošana", - "izvarotājs", - "taisnās zarnas", - "palēnināt", - "rimšana", - "sadists", - "skrūvēšana", - "kapsula", - "spermu", - "dzimums", - "shag", - "shagging", - "shemale", - "sūdi", - "shite", - "shits", - "nomocīts", - "shitting", - "shitty", - "skank", - "slampa", - "sluts", - "smegma", - "smut", - "satvert", - "kucēns", - "spac", - "spunk", - "sēklinieki", - "zīle", - "titt", - "turd", - "maksts", - "viagra", - "vulva", - "wang", - "wank", - "prostitūta", - "x nominālā", - "xxx" - ], - "mk": [ - "абортус", - "анален", - "анус", - "газ", - "газ-fucker", - "магариња", - "кретену", - "дупки", - "топка", - "топки", - "копиле", - "ѕвонче", - "бестијален", - "бестијалност", - "кучка", - "кучки", - "бакнување", - "крвав", - "blowjob", - "bollok", - "граба", - "гради", - "buceta", - "скитам", - "задник", - "тепих muncher", - "пискам", - "cipa", - "клиторис", - "петел", - "петел-морон", - "петлите", - "кун", - "глупости", - "cum", - "cumshot", - "кунилинус", - "пичка", - "проклето", - "дик", - "дилдо", - "dink", - "куче-fucker", - "duche", - "dyke", - "ејакулација", - "ејакулирани", - "ејакулира", - "fag", - "задебелување", - "педер", - "педери", - "фанни", - "felching", - "фелатио", - "прирабница", - "ебам", - "заебана", - "fucker", - "fuckers", - "ебат", - "fuckings", - "празни епови", - "проклети бог", - "пекол", - "дупка", - "роговиден", - "непотребен пат", - "kock", - "labia", - "страст", - "мазохист", - "мастурбира", - "мајка ебе", - "наци", - "црнец", - "нигери", - "оргазам", - "оргазми", - "pecker", - "пенис", - "мочам", - "изнервирани", - "миксер", - "моча", - "писење", - "pissoff", - "поп", - "порно", - "порнографија", - "измамник", - "приколки", - "пубе", - "пички", - "силување", - "силувач", - "ректум", - "ретардиран", - "римминг", - "садист", - "навртување", - "скротум", - "сперма", - "секс", - "дремка", - "замаглување", - "shemale", - "срање", - "ситни", - "посрамен", - "скинка", - "курва", - "уличари", - "smegma", - "смрдеа", - "грабне", - "син-на-кучка", - "spac", - "пружи", - "тестис", - "тит", - "цицки", - "турдар", - "вагината", - "viagra", - "вулва", - "ванг", - "wank", - "x оценет", - "xxx" - ], - "ml": [ - "ഗർഭഛിദ്രം", - "വിശപ്പ്", - "മലദ്വാരം", - "കഴുത", - "അസി ഫക്കർ", - "കഴുതകളെ", - "ആസ്ഹോൾ", - "അശ്ളീലങ്ങൾ", - "ബോൾബാഗ്", - "പന്തുകൾ", - "തന്തയില്ലാത്തവൻ", - "ബെല്ലെൻഡ്", - "മൃഗീയമായ", - "മൃഗീയത", - "ബിച്ച്", - "ബിച്ചുകൾ", - "ബിപിഡിംഗ്", - "രക്തരൂക്ഷിതമായ", - "ആശ്വാസം", - "ബലോക്ക്", - "ബോബ്", - "പൂക്കൾ", - "സ്തനങ്ങൾ", - "ബ്യൂട്ടാ", - "ബം", - "മയക്കുമരുന്ന്", - "പരവതാനി മാൻച്ചർ", - "ചുംബ്", - "സിപാ", - "ക്ലോറിസിസ്", - "കോക്ക്", - "കോക്ക് സക്കർ", - "കോക്സ്", - "കോൺ", - "ക്രാപ്പ്", - "ശുക്ലം", - "പുരുഷാരം", - "സി", - "മുഷിഞ്ഞ", - "കഷ്ടം", - "ഡിക്ക്", - "ഡിൽഡോ", - "dildos", - "ഡൈൻ", - "നായ-ഫക്കർ", - "ഡച്ച്", - "ഡൈകെ", - "ശമിപ്പിക്കുക", - "മോഷ്ടിച്ചു", - "വികാരങ്ങൾ", - "വിരസത", - "മടി", - "ക്ഷീണിപ്പിക്കുക", - "fagot", - "വഞ്ചന", - "ഫാനി", - "വേദന", - "flange", - "ഊമ്പി", - "സംഭോഗം ചെയ്യുക", - "ഫക്കർ", - "നർമ്മം", - "ഫഡ്ജ് പാക്കർ", - "ദൈവം-കൊള്ളിത", - "ഗോഡ്ഡം", - "നരകം", - "വയ്ക്കുക", - "വൃത്തികെട്ട", - "ജെർക് ഓഫ്", - "കിക്ക്", - "ലാബിയ", - "മോഹം", - "മോഹഭംഗം", - "മാസോച്ചിസ്റ്റ്", - "സ്വയംഭോഗം ചെയ്യുക", - "അമ്മ ഫക്കർ", - "നാസി", - "നിഗർ", - "മയക്കുമരുന്നുകൾ", - "രതിമൂർച്ഛ", - "പെക്കർ", - "ലിംഗം", - "മൂത്രമൊഴിക്കുക", - "കുഴഞ്ഞുവീഴുന്നു", - "പിസ്സർ", - "പിസ്സകൾ", - "pissing", - "പിസ്സോഫ്", - "poop", - "അശ്ലീലം", - "അശ്ലീലത", - "പ്രാവി", - "വിസർജ്യങ്ങൾ", - "പ്യൂബ്", - "pussies", - "pussy", - "ബലാൽസംഗം", - "ബലാത്സംഗം", - "മലാശയം", - "തുടരുക", - "റിമ്മിംഗ്", - "സചിസ്റ്റ്", - "വഞ്ചി", - "പുല്ല്", - "ബീജം", - "ശവം", - "ഷാഗിംഗ്", - "അവൾ", - "ഷീറ്റ്", - "ഷെയ്റ്റ്", - "shits", - "തിന്നിട്ടില്ല", - "ഷോർട്ട്", - "ഷൈറ്റി", - "സ്കാൻ", - "മന്ദഹസരം", - "സ്നെഗമാ", - "പുഞ്ചിരി", - "പിടിക്കുക", - "വെറുക്കപ്പെട്ടയാൾ", - "സ്പെയ്ക്", - "തുളച്ച്", - "വൃഷണം", - "പേ", - "ടിത്ത്", - "കുഴപ്പമില്ല", - "യോനി", - "വരാഗ്ര", - "വാൽവ", - "വാങ്", - "വാൻ", - "വേശ്യ", - "x റേറ്റുചെയ്തു", - "xxx" - ], - "mn": [ - "үр хөндөлт", - "шулуун гэдсээр", - "ану", - "илжиг", - "илжигчин", - "asshole", - "ballbag", - "бөмбөг", - "новш", - "bellend", - "bestial", - "хамгийн сайн сайхан", - "гичий", - "бөхийж байна", - "цуст", - "blowjob", - "bollok", - "boob", - "хярс", - "хөх", - "buceta", - "бөх", - "butt", - "хивсний muncher", - "хяруу", - "cipa", - "clitoris", - "cock", - "cock-sucker", - "тогоонууд", - "coon", - "гэж хэлэв", - "cum", - "cumshot", - "cunillingus", - "cunt", - "новш гэж", - "дик", - "дасгал", - "dildos", - "динамик", - "нохой-fucker", - "duche", - "далан", - "ялгаруулах", - "ejaculated", - "ирэгжсэн", - "ejaculating", - "ejaculation", - "fag", - "fagging", - "fagot", - "fagots", - "fanny", - "хөмсөг", - "харилцаа холбоо", - "хоног", - "fuck", - "fucked", - "fucker", - "fuckers", - "fucking", - "fuckings", - "fucks", - "fudge packer", - "бурханлиг шүү", - "goddamn", - "там", - "өдөр", - "horny", - "jerk-off", - "kock", - "labia", - "хүсэл тачаал", - "луйвар хийх", - "masochist", - "masturbate", - "ээж fucker", - "nazi", - "nigger", - "niggers", - "orgasim", - "дур", - "дуртай", - "pecker", - "шодой", - "piss", - "тэнүүлчин", - "pisser", - "эгч нар", - "писсинг", - "pissoff", - "poop", - "порно", - "порнограф", - "prick", - "pricks", - "pube", - "pussies", - "pussy", - "хүчингийн хэрэг", - "rapist", - "retard", - "rimming", - "садист", - "сунгах", - "scrotum", - "үрийн шингэн", - "хүйс", - "шаг", - "shagging", - "shemale", - "шив", - "shite", - "шившлэг", - "буулгасан", - "сэгсрэх", - "shitty", - "skank", - "slut", - "sluts", - "smegma", - "смит", - "хулгайлах", - "хүүгийнхээ тухай", - "spac", - "үйрмэг", - "титэм", - "tit", - "tits", - "titt", - "турс", - "үтрээ", - "viagra", - "vulva", - "ван", - "wank", - "эрхлэгч", - "x үнэлгээтэй", - "xxx" - ], - "mr": [ - "गर्भपात", - "गुदा", - "गाढव", - "गांडुळ", - "asses", - "asshole", - "assholes", - "ballbag", - "चेंडू", - "बॅस्टर्ड", - "बेलेंड", - "बेस्टियल", - "प्राण्यांबरोबर", - "कुत्री", - "बिट्स", - "खूनी", - "blowjob", - "बोलोक", - "बोब", - "स्तन", - "बसीटा", - "बम", - "बट", - "कार्पेट मुन्चर", - "चिंक", - "सिपा", - "क्लिटोरिस", - "मुर्ख", - "मांसाहारी", - "कॉक्स", - "कॉनन", - "बकवास", - "सह", - "cumshot", - "कनिलिंगस", - "कांट", - "धिक्कार", - "डिक", - "dildo", - "डिल्डो", - "डंक", - "duche", - "डाईक", - "उद्गार", - "उत्साही", - "ejaculates", - "उत्सुकता", - "स्खलन", - "फॅग", - "फॅगिंग", - "फॅगॉट", - "फॅगॉट्स", - "फॅनी", - "फेलिंग", - "फॅलेटीओ", - "निकला", - "fucked", - "गुप्तचर", - "fuckers", - "fucking", - "fuckings", - "fucks", - "फडगे पॅकर", - "देव-शापित", - "देव", - "नरक", - "होरे", - "शिंग", - "झटका बंद", - "कॉक", - "लॅबिया", - "वासना", - "मासोचिस्ट", - "हस्तमैथुन करा", - "आई माकड", - "नाझी", - "निगर", - "निगार", - "ऑर्गॅसिम", - "संभोग", - "orgasms", - "चापटी", - "पुरुषाचे जननेंद्रिय", - "पेशी", - "pissed", - "पिसर", - "pisses", - "पिसिंग", - "पिसोफ", - "घाट", - "अश्लील", - "पोर्नोग्राफी", - "मुरुम", - "प्रिक्स", - "प्यूब", - "pussies", - "मांजर", - "बलात्कार", - "गुदाशय", - "मंद", - "rimming", - "दुःखी", - "screwing", - "स्क्रोटम", - "वीर्य", - "लिंग", - "शेग", - "shagging", - "शेमले", - "विचित्र", - "shite", - "shits", - "shitted", - "shitting", - "shitty", - "घाणेरडा", - "फट", - "sluts", - "सुगंध", - "स्मट", - "छेडछाड", - "मुलगा-एक-कुत्री", - "spac", - "तिरस्कार", - "परीक्षक", - "शीर्षक", - "टिट", - "टर्ड", - "योनी", - "वियाग्रा", - "वल्वा", - "वांग", - "विंक", - "वेश्या", - "एक्स रेट केले", - "xxx" - ], - "ms": [ - "pengguguran", - "dubur", - "anus", - "keldai", - "ass fucker", - "asshole", - "assholes", - "ballbag", - "bola", - "bajingan", - "bellend", - "bestial", - "bestiality", - "jalang", - "bitches", - "janggut", - "berdarah", - "blowjob", - "bollok", - "boob", - "buah dada", - "payudara", - "buceta", - "bum", - "pantat", - "muncher permaidani", - "chink", - "cipa", - "kelentit", - "ayam jantan", - "penis ayam", - "ayam sabung", - "coon", - "omong kosong", - "merangkap", - "cumshot", - "cunillingus", - "kemaluan wanita", - "sialan", - "batang", - "dildo", - "dildos", - "dink", - "anjing-fucker", - "duche", - "dyke", - "ejakulasi", - "fag", - "fagging", - "fagot", - "fagots", - "fanny", - "felching", - "fellatio", - "flange", - "fuck", - "fucked", - "fucker", - "fuckers", - "fucking", - "fuckings", - "mengongkek", - "pembungkus fudge", - "tuhan-tuhan", - "goddamn", - "neraka", - "hori", - "horny", - "jerk-off", - "kock", - "labia", - "nafsu", - "lusting", - "masokis", - "melancap", - "ibu fucker", - "nazi", - "nigger", - "niggers", - "orgasim", - "orgasme", - "pecker", - "zakar", - "kencing", - "marah", - "pisser", - "pisses", - "pissing", - "pissoff", - "kotoran", - "porno", - "pornografi", - "tusukan", - "helah", - "pube", - "pussies", - "pussy", - "rogol", - "pemerkosaan", - "rektum", - "retard", - "rimming", - "sadis", - "menyengat", - "skrotum", - "air mani", - "seks", - "shag", - "shagging", - "shemale", - "shite", - "menipu", - "disingkirkan", - "menampar", - "shitty", - "skank", - "perempuan murahan", - "sluts", - "smegma", - "smut", - "ragut", - "anak anjing", - "spac", - "spunk", - "testis", - "tit", - "tits", - "titt", - "turd", - "faraj", - "viagra", - "vulva", - "wang", - "wank", - "pelacur", - "x diberi nilai", - "xxx" - ], - "mt": [ - "abort", - "anali", - "anus", - "ħmar", - "ħmar-fucker", - "ħmir", - "asshole", - "assholes", - "ballbag", - "blalen", - "bagħal", - "bellend", - "bestjali", - "bestjonalità", - "kelba", - "klieb il-baħar", - "imdemmi", - "blowjob", - "bollok", - "boob", - "boobs", - "isdra", - "buceta", - "bum", - "butt", - "muncher tat-twapet", - "ixkora", - "cipa", - "klitoris", - "vit", - "vit li jreddgħu", - "sriedak", - "coon", - "ħażin", - "cum", - "cumshot", - "cunillingus", - "cunt", - "kkritikat", - "dick", - "dildo", - "dildos", - "dink", - "kelb", - "duche", - "diga", - "eġakula", - "eġakulat", - "eġakulati", - "eġakulazzjoni", - "fag", - "ċpar", - "fagot", - "fagots", - "fanny", - "felching", - "fellatio", - "ħanek", - "fuck", - "fucked", - "fucker", - "fuckers", - "fucking", - "fuckings", - "fucks", - "fudge packer", - "damned alla", - "alla", - "infern", - "hore", - "qarn", - "jerk-off", - "kock", - "labia", - "lust", - "tħobb", - "masochist", - "masturbate", - "omm fucker", - "nazi", - "nigger", - "niggers", - "orgasim", - "orga", - "pecker", - "pene", - "piss", - "imqaxxar", - "pisser", - "pissing", - "pissoff", - "ħmieġ", - "porn", - "porno", - "pornografija", - "prick", - "pricks", - "pajp", - "ħaffiefa", - "pussy", - "stupru", - "rapist", - "rektum", - "ritard", - "rimming", - "sadist", - "kamin", - "skrottum", - "semen", - "sess", - "shag", - "tħawwir", - "shemale", - "shit", - "shite", - "shits", - "shitted", - "shitting", - "shitty", - "skank", - "slut", - "sluts", - "smegma", - "smut", - "snatch", - "iben tal-kelba", - "spac", - "imbuttat", - "it-testikoli", - "tit", - "tits", - "titt", - "imfarrak", - "vaġina", - "viagra", - "vulva", - "wang", - "wank", - "whore", - "x ratata", - "xxx" - ], - "my": [ - "သားလြှောခွငျး", - "စအို", - "မြည်းသည်", - "မြည်းကို-fucker", - "မြည်း", - "သေနာကောင်", - "assholes", - "ballbag", - "ဘောလုံး", - "ခွေးကောင်", - "bellend", - "bestial", - "bestiality", - "ခှေးမ", - "သှေးပါသော", - "blowjob", - "bollok", - "boob", - "ရင်သား", - "buceta", - "လူပျင်း", - "တင်းပါး", - "ကော်ဇော muncher", - "chink", - "cipa", - "အစေ့", - "ကြက်", - "ကြက်-sucker", - "cocks", - "coon", - "ကင်လုပ်ခိုင်း", - "cum", - "cumshot", - "cunillingus", - "cunt", - "သတောပဲ", - "ဒစ်", - "dildo", - "dildos", - "dink", - "ခွေး-fucker", - "ဒွိုက်", - "တမံ", - "သုက်", - "ejaculated", - "သုတ်ရည်လွှတ်", - "fag", - "fagging", - "fagot", - "fagots", - "fanny", - "felching", - "fellatio", - "အနားကွပ်", - "သေရော", - "fuck ဆိုတဲ့", - "အစုတ်ပလုတ်ကောင်", - "fuckers", - "fudge packer", - "ဘုရား-သူကပြောတယ်", - "goddamn", - "ငရဲ", - "hore", - "horny", - "လူရှုပ်-off", - "kock", - "labia", - "တဏှာ", - "lusting", - "masochist", - "masturbate", - "မိခင် fucker", - "နာဇီ", - "nigger", - "niggers", - "orgasim", - "အော်ဂဇင်", - "orgasm", - "pecker", - "ယောကျ်ားအင်္ဂါဇါတ်", - "piss", - "pissed", - "pisser", - "pisses", - "pissing", - "pissoff", - "poop", - "ညစ်ညမ်း", - "porno", - "ဝတ်လစ်စလစ်ရုပ်ရေးခြွယ်ခြင်း", - "ဖောက်ရာ", - "pube", - "pussies", - "pussy", - "မုဒိမ်းကျင့်", - "အဓမ္မပြုကျင့်", - "နှောင့်နှေး", - "rimming", - "လွန်စွာမှရက်စက်ကြမ်းကြုတ်", - "screwing", - "ကပ်ပယ်အိတ်", - "သုတ်ရည်", - "လိင်", - "shag", - "shagging", - "shemale", - "shit", - "shite", - "shitted", - "shitting", - "shitty", - "skank", - "slut", - "sluts", - "smegma", - "smut", - "လု", - "ခွေးမသား", - "spac", - "spunk", - "ဂှေးစေ့", - "tit", - "tits", - "titt", - "turd", - "မိန်းမအင်္ဂါအခေါင်း", - "viagra", - "vulva", - "wang", - "wank", - "မိန်းမပေါ့", - "x ကအဆင့်သတ်မှတ်ထားသော", - "xxx" - ], - "nl": [ - "abortus", - "anaal", - "anus", - "ezel", - "ass-neuker", - "ezels", - "lul", - "klootzakken", - "ballbag", - "ballen", - "bastaard-", - "bellend", - "beestachtig", - "beestachtigheid", - "teef", - "teven", - "zeuren", - "bloedig", - "pijpbeurt", - "bollok", - "lobbes", - "tieten", - "borsten", - "buceta", - "kont", - "mikpunt", - "tapijt muncher", - "spleet", - "cipa", - "clitoris", - "pik", - "cock-sucker", - "hanen", - "coon", - "onzin", - "cum", - "klaarkomen", - "cunillingus", - "kut", - "vloek", - "dick", - "dildo", - "dildo's", - "dink", - "dog-neuker", - "duche", - "dijk", - "ejaculaat", - "ejaculatie", - "ejaculeert", - "zaadlozing", - "flikker", - "fagging", - "takkenbossen", - "fanny", - "felching", - "fellatio", - "flens", - "neuken", - "fucked", - "neuker", - "fuckers", - "fuckings", - "neukt", - "fudge packer", - "god-damned", - "godverdomme", - "hel", - "hore", - "geile", - "jerk-off", - "kock", - "schaamlippen", - "lust", - "begeren", - "masochist", - "masturberen", - "moeder klootzak", - "nazi", - "neger", - "negers", - "orgasim", - "orgasme", - "orgasmes", - "snavel", - "penis", - "pissen", - "dronken", - "pisser", - "pissend", - "pissing", - "donder op", - "achterschip", - "porno", - "pornografie", - "prik", - "prikt", - "pube", - "kutjes", - "kutje", - "verkrachting", - "rapist", - "rectum", - "vertragen", - "rimmen", - "sadist", - "schroeven", - "scrotum", - "sperma", - "seks", - "shag", - "shagging", - "shemale", - "stront", - "shite", - "diarree", - "schijten", - "shitty", - "slet", - "sletten", - "smegma", - "roetvlek", - "rukken", - "son-of-a-teef", - "spac", - "fut", - "zaadbal", - "mees", - "titt", - "drol", - "vagina", - "viagra", - "vulva", - "wang", - "wank", - "hoer", - "x beoordeeld", - "xxx" - ], - "pl": [ - "poronienie", - "analny", - "odbyt", - "tyłek", - "ass-fucker", - "osły", - "dupek", - "dupki", - "okrągła torba", - "kulki", - "drań", - "dzwonek", - "bestialski", - "bestialstwo", - "suka", - "suki", - "dziwka", - "krwawy", - "obciąganie", - "bollok", - "gafa", - "cycki", - "piersi", - "buceta", - "krupon", - "muncher do dywanów", - "szpara", - "cipa", - "łechtaczka", - "kogut", - "kogut-frajer", - "kurki", - "szop", - "bzdury", - "smar", - "wytryski", - "cunillingus", - "cunt", - "cholerny", - "kutas", - "dildo", - "wibratory", - "dink", - "pieprzony pies", - "księżna", - "tama", - "wykrzykiwać", - "wytrysk", - "papieros", - "chichocząc", - "pęk", - "fagoty", - "dupa", - "felching", - "fellatio", - "kołnierz", - "pierdolić", - "pieprzony", - "skurwiel", - "skurwiele", - "pierdolony", - "pieprzone", - "pieprzy", - "fudge packer", - "przeklęty", - "piekło", - "hore", - "seksualnie podniecony", - "szarpnięcie", - "kock", - "wargi sromowe", - "żądza", - "pożądanie", - "masochista", - "uprawiać masturbację", - "matka skurwiela", - "nazi", - "czarnuch", - "czarnuchy", - "orgasim", - "orgazm", - "orgazmy", - "penis", - "siki", - "zalany", - "pisarz", - "wkurza", - "pissing", - "odwal się", - "rufa", - "porno", - "pornografia", - "ukłucie", - "ukłucia", - "pube", - "cipki", - "kiciuś", - "rzepak", - "gwałciciel", - "odbytnica", - "opóźniać", - "rimming", - "sadysta", - "wkręcanie", - "worek mosznowy", - "sperma", - "seks", - "kudły", - "shagging", - "shemale", - "gówno", - "sranie", - "gówniany", - "zdzira", - "chlapa", - "dziwki", - "smegma", - "świństwa", - "urywek", - "spac", - "odwaga", - "jądro", - "cycek", - "titt", - "łajno", - "pochwa", - "wiagra", - "srom", - "wang", - "wank", - "kurwa", - "x ocenione", - "xxx" - ], - "pt": [ - "aborto", - "anal", - "ânus", - "bunda", - "ass-filho da puta", - "asses", - "idiota", - "idiotas", - "saco de bola", - "bolas", - "desgraçado", - "bellend", - "bestial", - "bestialidade", - "cadela", - "cadelas", - "putaria", - "sangrento", - "boquete", - "bollok", - "peitos", - "buceta", - "vagabundo", - "comedor de tapetes", - "fenda", - "cipa", - "clitóris", - "galo", - "otário", - "galos", - "coon", - "porcaria", - "porra", - "gozada", - "cunillingus", - "boceta", - "droga", - "pinto", - "dildo", - "dildos", - "dink", - "dog-filho da puta", - "duche", - "sapatona", - "ejacular", - "ejaculado", - "ejacula", - "ejaculação", - "bicha", - "fagging", - "bichas", - "fanny", - "felching", - "felação", - "mesa", - "fodido", - "filhos da puta", - "merdas", - "fode", - "empacotador de fudge", - "maldito", - "inferno", - "hore", - "com tesão", - "bate uma", - "kock", - "lábios", - "luxúria", - "cobiçoso", - "masoquista", - "masturbar", - "filho da puta", - "nazista", - "negro", - "niggers", - "orgasim", - "orgasmo", - "orgasmos", - "pau", - "pênis", - "xixi", - "puto", - "pisser", - "mijar", - "mijando", - "não me chateies", - "cocô", - "pornô", - "porno", - "pornografia", - "pica", - "picadas", - "pube", - "bichanos", - "bichano", - "estupro", - "estuprador", - "reto", - "retardar", - "rimming", - "sádico", - "aparafusar", - "escroto", - "sêmen", - "sexo", - "trepada", - "transando", - "transsexual", - "merda", - "shite", - "calçado", - "cagando", - "skank", - "vagabunda", - "vadias", - "smegma", - "sujeira", - "arrebatar", - "spac", - "coragem", - "testículo", - "peituda", - "tetas", - "titt", - "vagina", - "viagra", - "vulva", - "wang", - "punheta", - "prostituta", - "x avaliado", - "xxx" - ], - "ro": [ - "intrerupere de sarcina", - "anal", - "anus", - "cur", - "fund-fucker", - "fundurile", - "idiotule", - "gaozari", - "ballbag", - "bile", - "bastard", - "bellend", - "bestial", - "bestialitate", - "căţea", - "cățelele", - "bitching", - "sângeros", - "muie", - "bollok", - "boob", - "ţâţe", - "sânii", - "buceta", - "vagabond", - "îmbinare", - "covor", - "clinchet", - "cipa", - "clitoris", - "cocoş", - "cocoș-fraier", - "cocoșilor", - "șarlatan", - "rahat", - "spermă", - "cumshot", - "cunillingus", - "pizdă", - "la naiba", - "pulă", - "vibrator", - "dildo-uri", - "dink", - "câine-fucker", - "duche", - "opritoare", - "exclama", - "ejaculat", - "ejaculează", - "ejacula", - "ejaculare", - "corvoadă", - "istovitor", - "snop", - "poponari", - "fanny", - "felching", - "felatie", - "flanșă", - "la dracu", - "inpulit", - "nenorocitule", - "futangiilor", - "dracului", - "fuckings", - "fucks", - "fudge packer", - "zeu-al naibii", - "iad", - "hore", - "excitat", - "smucitură-off", - "kock", - "labiilor", - "dorință", - "lusting", - "masochist", - "masturbezi", - "mama nenorocită", - "nazist", - "negru", - "cioroi", - "orgasim", - "orgasm", - "orgasme", - "ciocănitoare", - "penis", - "pișa", - "ofticat", - "pisser", - "pisată", - "pissing", - "pissoff", - "porno", - "pornografie", - "înțepătură", - "intepaturi", - "pube", - "pizde", - "păsărică", - "viol", - "violator", - "rect", - "întârzia", - "rimming", - "sadic", - "insurubare", - "scrot", - "material seminal", - "sex", - "loden", - "trăgea", - "transexuali", - "porcarie", - "cacă", - "shitted", - "caca", - "de pulărie", - "skank", - "curvă", - "curve", - "smegma", - "negru de fum", - "smulge", - "fecior de curva", - "spac", - "curaj", - "testicul", - "pițigoi", - "titt", - "câcat", - "vagin", - "viagra", - "vulvă", - "wang", - "wank", - "x evaluat", - "xxx" - ], - "ru": [ - "аборт", - "анальный", - "анус", - "жопа", - "осел придурок", - "ослы", - "мудак", - "придурки", - "ballbag", - "мячи", - "ублюдок", - "bellend", - "развратный", - "скотство", - "сука", - "суки", - "скулить", - "кровавый", - "минета", - "bollok", - "болван", - "буфера", - "грудь", - "бусета", - "бомж", - "приклад", - "ковровщик", - "скважина", - "cipa", - "клитор", - "петух", - "кран-присоска", - "петухи", - "енот", - "дерьмо", - "сперма", - "cunillingus", - "пизда", - "черт", - "дик", - "фаллоимитатор", - "фаллоимитаторы", - "динк", - "собака-засранец", - "дуче", - "дамба", - "эякулят", - "восклицать", - "эякулирует", - "ejaculating", - "эякуляция", - "пидор", - "fagging", - "педик", - "педики", - "фанни", - "фельчинг", - "фелляция", - "фланец", - "блядь", - "трахал", - "подонок", - "лохи", - "ебля", - "fuckings", - "трахается", - "упаковщик выдумки", - "бог проклятая", - "проклятие", - "ад", - "hore", - "роговой", - "придурок-офф", - "кок", - "половые губы", - "похоть", - "вожделеющий", - "мазохист", - "мастурбировать", - "нацист", - "негр", - "негры", - "orgasim", - "оргазм", - "оргазмы", - "клюв", - "пенис", - "ссать", - "пьяный", - "pisser", - "писает", - "ссание", - "разозлить", - "изнурять", - "порно", - "порнография", - "колоть", - "уколов", - "pube", - "кисок", - "киска", - "изнасилование", - "насильник", - "прямая кишка", - "запаздывание", - "римминг", - "садист", - "завинчивание", - "мошонка", - "секс", - "махорка", - "трахает", - "транссексуал", - "ситэ", - "гадит", - "shitted", - "какание", - "сраный", - "skank", - "шлюха", - "неряхи", - "смегма", - "головня", - "урвать", - "сукин сын", - "упп", - "трут", - "яичко", - "сиська", - "сиськи", - "titt", - "дристун", - "влагалище", - "виагра", - "вульва", - "вана", - "онанизм", - "х рейтинг", - "ххх" - ], - "sk": [ - "potrat", - "análny", - "riť", - "somár", - "ass-zmrd", - "somáre", - "kretén", - "kreténi", - "ballbag", - "lopty", - "bastard", - "bellend", - "beštiálne", - "brutalita", - "fena", - "suky", - "nadávanie", - "krvavý", - "výstrek", - "bollok", - "trdlo", - "prsia", - "poprsie", - "bučať", - "zadok", - "pažba", - "koberec", - "štrbina", - "cipa", - "klitoris", - "kohút", - "kohút-výhonok", - "kohúty", - "mýval", - "blbosť", - "cum", - "striekanie", - "cunillingus", - "piča", - "sakramentsky", - "čurák", - "dildo", - "dilda", - "dink", - "psie fucker", - "duche", - "hrádza", - "ejakulát", - "vyhŕkol", - "ejakuluje", - "ejakulácia", - "teploš", - "fagging", - "otepy", - "číča", - "felching", - "felácie", - "príruba", - "súložiť", - "fucked", - "fucker", - "srac", - "zasraný", - "fuckings", - "fucks", - "fudge balič", - "bohom prekliaty", - "peklo", - "hore", - "nadržaný", - "blbec-off", - "kock", - "pysky", - "chtíč", - "zatúžil", - "masochista", - "masturbovať", - "matka fucker", - "nacistický", - "neger", - "negri", - "orgasim", - "orgazmus", - "orgazmy", - "zobanie vták", - "penis", - "cikať", - "nahnevaný", - "pisser", - "sere", - "pissing", - "pissoff", - "lodné zadok", - "porn", - "porno", - "pornografie", - "bodnutie", - "pichnutie", - "pube", - "buchty", - "mačička", - "znásilnenia", - "násilník", - "konečník", - "spomaliť", - "rimming", - "sadista", - "skrutkovanie", - "miešok", - "spermie", - "sex", - "zarásť", - "pichanie", - "transsexuál", - "hovno", - "shit", - "shitted", - "prdel", - "na hovno", - "skank", - "coura", - "dievky", - "smegma", - "sadze", - "chňapnout", - "syn-of-a-fena", - "spac", - "odvaha", - "semenník", - "sýkorka", - "kozy", - "titty", - "vagína", - "viagra", - "vulva", - "wang", - "wank", - "suka", - "x hodnotené", - "xxx" - ], - "sl": [ - "splav", - "anal", - "anus", - "rit", - "jebač", - "osli", - "kreten", - "vrečka z žogo", - "jajca", - "prasec", - "bellend", - "živalski", - "bestialnost", - "prasica", - "psice", - "bitching", - "krvavo", - "blowjob", - "bollok", - "boob", - "joške", - "prsi", - "buceta", - "bum", - "preproga", - "zlom", - "cipa", - "klitoris", - "petelin", - "petelini", - "coon", - "sranje", - "cum", - "cumshot", - "cunillingus", - "pizda", - "prekleto", - "kurac", - "dildo", - "dildos", - "dink", - "pes", - "duche", - "nasip", - "ejakulat", - "ejakuliran", - "ejakulatov", - "ejakulacija", - "ejakulacijo", - "fag", - "fagging", - "peder", - "fagoti", - "fanny", - "felching", - "felacija", - "prirobnico", - "jebemti", - "zajebal", - "jebači", - "jebe", - "pakirnik", - "preklet", - "pekel", - "hore", - "pohoten", - "kock", - "sramne ustnice", - "poželenje", - "lusting", - "mazohist", - "masturbirati", - "mater", - "nacist", - "črnuh", - "črnci", - "orgasim", - "orgazem", - "orgazmov", - "pecker", - "penis", - "urin", - "jezen", - "pisser", - "besni", - "scal", - "razjeziti", - "kakec", - "porn", - "porno", - "pornografija", - "prick", - "pube", - "pizde", - "muca", - "posilstva", - "posiljevalec", - "rektum", - "retard", - "rimming", - "sadist", - "vijačenje", - "skrotum", - "seme", - "spol", - "shag", - "shagging", - "shemale", - "shitted", - "usrano", - "skank", - "kurba", - "kurbe", - "smegma", - "smut", - "ugrabitev", - "kurbin sin", - "spac", - "spunk", - "testis", - "tit", - "titt", - "turd", - "vagine", - "viagra", - "vulva", - "wang", - "wank", - "x ocenjeno", - "xxx" - ], - "sq": [ - "abort", - "anal", - "anus", - "gomar", - "ass-fucker", - "gomarë", - "trap", - "assholes", - "ballbag", - "balls", - "bastard", - "bellend", - "shtazarak", - "brutalitet", - "kurvë", - "bitches", - "bitching", - "i përgjakshëm", - "blowjob", - "bollok", - "gabim", - "boobs", - "gjinjtë", - "buceta", - "të ndenjura", - "prapanicë", - "mjegull qilim", - "plasë", - "çipa", - "klitoris", - "gjel", - "gjel-piston", - "cocks", - "nakun", - "mut", - "sperma", - "cumshot", - "cunillingus", - "pidhi", - "mallkim", - "kar", - "dildo", - "dildos", - "dink", - "qen-fucker", - "duche", - "digë", - "lëshoj një fjalë", - "hidhet", - "ejakulon", - "ejaculating", - "derdhje", - "zar", - "fagging", - "bythëqirë", - "lëndë djegëse", - "pupë", - "felching", - "fellatio", - "fllanxhë", - "qij", - "fucked", - "fucker", - "fuckers", - "i ndyrë", - "fuckings", - "fucks", - "paketues karamel", - "zot-i dënuar", - "goddamn", - "ferr", - "hore", - "me brirë", - "hov-off", - "kock", - "labia", - "epsh", - "lusting", - "mazoshist", - "masturbohem", - "nëna fucker", - "nazist", - "zezak", - "niggers", - "orgasim", - "orgazmë", - "orgasms", - "sqep", - "penis", - "pshurr", - "i dehur", - "pisser", - "pisses", - "pissing", - "ngrit nervat", - "pornografi", - "porno", - "shpoj", - "pricks", - "pube", - "pussies", - "përdhunim", - "përdhunues", - "rektum", - "vonoj", - "rimming", - "sadist", - "vidhosje", - "qese e herdheve", - "spermë", - "seks", - "xhufkë", - "shagging", - "shemale", - "shite", - "shits", - "shitted", - "shitting", - "skank", - "zuskë", - "sluts", - "smegma", - "vrug", - "rrok", - "djali-i-nje-kurvë", - "kelp", - "inat", - "koqe", - "gji", - "tits", - "titt", - "vaginë", - "viagra", - "vulvë", - "wang", - "wank", - "lavire", - "x vlerësuarat", - "xxx" - ], - "sr": [ - "абортус", - "анал", - "чмар", - "асс", - "гузица", - "ассес", - "ассхоле", - "ассхолес", - "баллбаг", - "баллс", - "копиле", - "белленд", - "бестиал", - "бестијалност", - "кучка", - "битцхес", - "битцхинг", - "крваво", - "бловјоб", - "боллок", - "бооб", - "бообс", - "груди", - "буцета", - "скитница", - "бутт", - "царпет мунцхер", - "цхинк", - "ципа", - "клиторис", - "курац", - "цоцк-суцкер", - "цоцкс", - "цоон", - "срање", - "цум", - "цумсхот", - "цуниллингус", - "пичка", - "проклети", - "дицк", - "дилдо", - "дилдос", - "динк", - "псећи јебач", - "дуцхе", - "дике", - "ејакулат", - "ејацулатед", - "ејацулатес", - "ејакулација", - "фаг", - "фаггинг", - "фагот", - "фаготс", - "фанни", - "фелцхинг", - "фелацио", - "фланге", - "јебати", - "фуцкед", - "фуцкер", - "фуцкерс", - "јебено", - "фуцкингс", - "фуцкс", - "фудге пацкер", - "проклет", - "пакао", - "хоре", - "хорни", - "дркање", - "коцк", - "лабиа", - "пожуда", - "лустинг", - "масоцхист", - "мастурбате", - "мотхер фуцкер", - "нази", - "ниггер", - "ниггерс", - "оргасим", - "оргазам", - "оргазме", - "пецкер", - "пенис", - "мокраћа", - "љут", - "писсер", - "писсес", - "пишање", - "одјеби", - "пооп", - "порн", - "порно", - "порнографија", - "прицк", - "прицкс", - "пубе", - "пуссиес", - "пусси", - "силовање", - "силоватељ", - "ректум", - "ретард", - "римминг", - "садист", - "завртање", - "скротум", - "семен", - "сек", - "схаг", - "схаггинг", - "схемале", - "схите", - "схитс", - "схиттед", - "схиттинг", - "схитти", - "сканк", - "слут", - "слутс", - "смегма", - "смут", - "снатцх", - "кучкин син", - "спац", - "спунк", - "тестицле", - "тит", - "титс", - "титт", - "турд", - "вагина", - "виагра", - "вулва", - "ванг", - "ванк", - "курва", - "к ратед", - "ккк" - ], - "sv": [ - "abort", - "anal", - "anus", - "röv", - "ass-fucker", - "åsnor", - "idiot", - "arslen", - "bollväska", - "bollar", - "bastard", - "bellend", - "bestialisk", - "tidelag", - "tik", - "tikar", - "bitching", - "blodig", - "avsugning", - "bollok", - "boob", - "tuttar", - "bröst", - "buceta", - "luffare", - "stånga", - "mattan mattan", - "spricka", - "cipa", - "klitoris", - "kuk", - "cock-suga", - "tuppar", - "coon", - "skit", - "sperma", - "cumshot", - "cunillingus", - "fitta", - "attans", - "dildo", - "dildos", - "dink", - "hund-fucker", - "duche", - "fördämning", - "ejakulat", - "ejakulerade", - "utlösning", - "ejakulation", - "bög", - "fagging", - "faggots", - "rumpa", - "felching", - "fellatio", - "fläns", - "knulla", - "körd", - "fucker", - "fuckers", - "jävla", - "fuckings", - "fucks", - "fudge packer", - "god-damned", - "helvete", - "hore", - "kåt", - "jerk-off", - "kock", - "blygdläppar", - "lusta", - "lusting", - "masochist", - "onanera", - "mamma fucker", - "nazist", - "nigger", - "niggers", - "orgasim", - "orgasm", - "orgasmer", - "pecker", - "penis", - "piss", - "förbannad", - "pisser", - "pisses", - "pissing", - "dra åt helvete", - "bajs", - "porr", - "pornografi", - "sticka", - "stick", - "pube", - "mesar", - "våldta", - "våldtäktsman", - "ändtarm", - "hämma", - "rimming", - "sadist", - "skruvning", - "scrotum", - "sädesvätska", - "sex", - "shag", - "shagging", - "shemale", - "shite", - "shits", - "shitted", - "shitting", - "shitty", - "skank", - "slampa", - "sluts", - "smegma", - "smut", - "ryck", - "son-of-a-tik", - "spac", - "testikel", - "mes", - "titt", - "vagina", - "viagra", - "vulva", - "wang", - "wank", - "hora", - "x betygsatt", - "xxx" - ], - "te": [ - "గర్భస్రావం", - "అంగ", - "పాయువు", - "గాడిద", - "గాడిద-fucker", - "asses", - "assholes", - "బాల్బ్యాగ్", - "బంతుల్లో", - "బాస్టర్డ్", - "బెల్లెండ్", - "మృగ", - "బెస్టియాలిటీ", - "బిచ్", - "bitches", - "బిట్చింగ్", - "బ్లడీ", - "blowjob", - "బోల్లక", - "బూబ్", - "వక్షోజాలను", - "ఛాతీ", - "buceta", - "బం", - "బట్", - "కార్పెట్ ముంచర్", - "చింక్", - "cipa", - "స్త్రీగుహ్యాంకురము", - "ఆత్మవిశ్వాసం", - "కాక్-సక్కర్", - "కాక్స్", - "కూన్", - "చెత్త", - "కం", - "cumshot", - "క్యునిల్లింగస్", - "కంట్", - "తిట్టు", - "డిక్", - "లైంగిక సంతృప్తి కోసం స్త్రీలు ఉపయోగించే పురుషాంగము వంటి పరికరము", - "డిల్డోస్", - "dink", - "కుక్క-fucker", - "డూష్", - "డైక్", - "స్ఖలించు", - "ఎజాక్యులేటెడ్", - "ఎజాక్యులేట్స్", - "ఎరాక్యులేటింగ్", - "స్ఖలనం", - "నవుకరు", - "ఫాగ్గింగ్", - "ఫాగాట్", - "ఫగాట్స్", - "fanny", - "ఫెల్చింగ్", - "కుడుచుట", - "అచ్చు", - "ఫక్", - "ఇబ్బంది పెట్టాడు", - "fucker", - "ఫకర్స్", - "ఫకింగ్", - "ఫకింగ్స్", - "ఫక్స్", - "ఫడ్జ్ ప్యాకర్", - "దేవతలా మంచిది", - "గాడ్డామ్", - "నరకం", - "హోర్", - "horny", - "జెర్క్-ఆఫ్", - "కాక్", - "పెదవి", - "కామం", - "మనసు పడ్డట్లు చిత్రించారు", - "masochist", - "హస్తప్రయోగం", - "తల్లి ఫెకర్", - "నాజీ", - "నిగ్గర్", - "నిగ్గర్స్", - "ఆర్గాసిమ్", - "స్కలనం", - "orgasms", - "pecker", - "పురుషాంగం", - "విసర్జన", - "pissed", - "పిస్సర్", - "పిస్సీస్", - "పిస్సింగ్", - "పిస్సాఫ్", - "poop", - "శృంగార", - "పోర్నో", - "అశ్లీల", - "బుడతడు", - "ప్రిక్స్", - "ప్యూబ్", - "pussies", - "పుస్సీ", - "రేప్", - "ఉన్నప్పటికీ బలాత్కారం", - "పురీషనాళం", - "రిటార్డ్", - "రిమ్మింగ్", - "పీడన కాముకత", - "screwing", - "స్క్రోటమ్", - "వీర్యం", - "సెక్స్", - "బొచ్చు", - "షగ్గింగ్", - "షీమేల్", - "ఒంటి", - "షైట్", - "షిట్స్", - "షిట్టెడ్", - "షిట్టింగ్", - "shitty", - "స్కాన్క్", - "నీతి", - "స్లట్స్", - "శిశ్న", - "స్మట్", - "స్నాచ్", - "ఒక బిచ్ కుమారుడు ఆఫ్", - "spac", - "స్పంక్", - "వృషణాలు", - "తునక", - "టిట్స్", - "టిట్", - "turd", - "యోని", - "వయాగ్రా", - "జననాంగం", - "వాంగ్", - "వ్యాంక్", - "వేశ్య", - "x రేట్", - "xxx" - ], - "th": [ - "การแท้ง", - "ทางทวารหนัก", - "ทวารหนัก", - "ตูด", - "ตูดร่วมเพศ", - "ลา", - "ไอ้", - "assholes", - "ballbag", - "ลูก", - "ลูกครึ่ง", - "bellend", - "โหดร้าย", - "ลักษณะสัตว์ป่า", - "ผู้หญิงเลว", - "ผู้หญิง", - "ด่า", - "กระหายเลือด", - "ด้ง", - "bollok", - "คนโง่", - "สาว", - "หน้าอก", - "หี", - "ก้น", - "ชน", - "muncher พรม", - "ร่อง", - "cipa", - "อวัยวะเพศหญิง", - "ไก่", - "ไก่ดูด", - "cocks", - "สัตว์ชนิดหนึ่ง", - "อึ", - "ลบ.ม.", - "cumshot", - "cunillingus", - "ประณาม", - "กระเจี๊ยว", - "dildo", - "dildos", - "หมวกแก๊ป", - "สุนัขร่วมเพศ", - "duche", - "เขื่อนกั้นน้ำ", - "อุทาน", - "หลั่งออกมา", - "ejaculates", - "ejaculating", - "การพุ่งออกมา", - "อ่อนล้า", - "แฟกกิง", - "กะเทย", - "ฟืน", - "ตะโพก", - "felching", - "เลีย", - "หน้าแปลน", - "เพศสัมพันธ์", - "ระยำ", - "คนร่วมเพศ", - "fuckers", - "เป็นร่วมเพศ", - "fuckings", - "fucks", - "เหลวไหลเกย์", - "พระเจ้าสาป", - "เหี้ย", - "นรก", - "hore", - "มีเขา", - "สะบัดออก", - "kock", - "ริมฝีปาก", - "ความต้องการทางเพศ", - "lusting", - "ผู้ทำโทษตนเอง", - "สำเร็จความใคร่", - "แม่คนร่วมเพศ", - "นาซี", - "นีโกร", - "นิกเกอร์", - "orgasim", - "การสำเร็จความใคร่", - "ถึงจุดสุดยอด", - "ลึงค์", - "ปัสสาวะ", - "โกรธ", - "pisser", - "pisses", - "pissing", - "pissoff", - "คนเซ่อ", - "สื่อลามก", - "โป๊", - "ทิ่ม", - "pricks", - "pube", - "pussies", - "ข่มขืน", - "ไส้ตรง", - "ชะลอ", - "rimming", - "ซาดิสม์", - "การกวดขัน", - "ถุงอัณฑะ", - "น้ำอสุจิ", - "เพศ", - "ขนปุย", - "shagging", - "กระเทย", - "shite", - "shits", - "shitted", - "shitting", - "เชี่ย", - "อึ้บ", - "ดอกทอง", - "ร่าน", - "smegma", - "เขม่า", - "ฉก", - "ลูกชายของ -a-สุนัขตัวเมีย", - "spac", - "ความกล้าหาญ", - "ลูกอัณฑะ", - "หัวนม", - "titt", - "ขี้", - "ช่องคลอด", - "viagra", - "แคมช่องคลอด", - "วัง", - "ว่าว", - "หญิงขายบริการ", - "อันดับ x", - "xxx" - ], - "tr": [ - "kürtaj", - "anal", - "anüs", - "eşek", - "eşek beceren", - "eşekler", - "pislik", - "götler", - "top çantası", - "taşaklar", - "piç", - "bellend", - "hayvani", - "canavarlık", - "orospu", - "orospular", - "bitching", - "kanlı", - "oral seks", - "bollok", - "dangalak", - "göğüsler", - "memeler", - "buceta", - "serseri", - "popo", - "halı muncher", - "çatlak", - "cipa", - "klitoris", - "horoz", - "saksocu", - "musluklar", - "zenci", - "bok", - "boşalmak", - "cumshot", - "cunillingus", - "am", - "lanet olsun", - "çük", - "yapay penis", - "dildolar", - "dink", - "köpek beceren", - "duche", - "lezbiyen", - "ejaculated", - "ejakülatlar", - "ejaculating", - "boşalma", - "ibne", - "alt sınıf öğrencilerini uşak gibi kullanma", - "ibneler", - "kıç", - "felching", - "flanş", - "kahretsin", - "becerdin", - "pezevenk", - "pislikler", - "kahrolası", - "fuckings", - "şekerleme makinesi", - "god lanetli", - "lanet olası", - "cehennem", - "hore", - "dik", - "otuzbir", - "kock", - "labia", - "şehvet", - "lusting", - "mazoşist", - "mastürbasyon yapmak", - "anne herif", - "nazi", - "zenciler", - "orgasim", - "orgazm", - "ağaçkakan", - "penis", - "işemek", - "sarhoş", - "öfkeli!", - "kızdıran", - "sidik", - "pissoff", - "bok, kaka", - "porno", - "pornografi", - "dikmek", - "pube", - "amcıklar", - "kedi", - "kolza", - "ırz düşmanı", - "rektum", - "geciktirmek", - "rimming", - "sadist", - "vidalama", - "skrotum", - "meni", - "seks", - "sevişmek", - "shagging", - "transeksüel", - "palavra", - "shitted", - "shitting", - "boktan", - "sürtük", - "fahişeler", - "smegma", - "sürme hastalığı", - "kapmak", - "orospu çocuğu", - "spac", - "cesaret", - "testis", - "baştankara", - "titt", - "vajina", - "viagra", - "vulva", - "wang", - "masturbasyon yapmak", - "fahişe", - "x oy verildi", - "xxx" - ], - "uk": [ - "аборт", - "анальний", - "анус", - "дупу", - "задниця", - "осли", - "мудак", - "жопу", - "м'яч", - "кульки", - "ублюдок", - "bellend", - "звір", - "зоофілія", - "сука", - "суки", - "кусання", - "кривавий", - "мінет", - "болок", - "сиськи", - "грудей", - "buceta", - "бум", - "приклад", - "килим muncher", - "свердловина", - "cipa", - "клітор", - "півень", - "півні", - "кун", - "дерьмо", - "диплом", - "сперма. \\ t", - "cunillingus", - "пизда", - "чорт", - "член", - "фалоімітатор", - "фалоімітатори", - "dink", - "собака-трах", - "duche", - "дамби", - "еякуляту", - "еякулювали", - "еякулює", - "еякуляція", - "fag", - "педаль", - "педик", - "педики", - "fanny", - "felching", - "фелація", - "фланець", - "ебать", - "трахкав", - "лохи", - "чортів", - "трахає. \\ t", - "fudge packer", - "бог-проклятий", - "пекло", - "hore", - "роговий", - "ривок", - "kock", - "статевих губ", - "похоті", - "бажання", - "мазохіст", - "мастурбувати", - "матір", - "нацистський", - "негр", - "негри", - "orgasim", - "оргазм", - "оргазми", - "дзьоб", - "пеніс", - "моча", - "п'яний", - "pisser", - "мокрий", - "писати", - "відчепись", - "корм", - "порно", - "порнографія", - "укол", - "уколи", - "pube", - "кицьки", - "кицька", - "згвалтування", - "гвалтівник", - "пряма кишка", - "ретард", - "риммінг", - "садист", - "загвинчування", - "мошонка", - "сперма", - "секс", - "shag", - "shagging", - "shemale", - "лайно", - "shite", - "shits", - "збиті", - "shitting", - "shitty", - "скань", - "повія", - "шлюхи", - "смегма", - "самець", - "вирвати", - "сука син", - "spac", - "колючка", - "яєчко", - "синиця", - "titt", - "какашка", - "піхви", - "viagra", - "вульви", - "wang", - "дрочить", - "x", - "xxx" - ], - "uz": [ - "abort qilish", - "anal", - "anus", - "ass", - "ass-fucker", - "eshak", - "tentak", - "sherlar", - "yukxalta", - "sharlar", - "ablah", - "bellend", - "eng yaxshi", - "chorvachilik", - "xashak", - "bitches", - "shivirlash", - "qonli", - "blowjob", - "bollok", - "boob", - "boobs", - "ko'krak", - "buceta", - "bum", - "boshcha", - "gilam muncher", - "chinni", - "chipa", - "klitoris", - "xo'roz", - "xo'roz sucker", - "musluklar", - "kosmik", - "bokira", - "jum bilan", - "foydalanuvchi bilan", - "shafqatsizlik", - "jingalak", - "jin ursin", - "dik", - "dildo", - "dildos", - "dink", - "it-iti", - "duche", - "dyke", - "ejakulyatsiya", - "ejaklangan", - "ejakulatlar", - "ejakulyatsiya qilish", - "ejekulyatsiya", - "fag", - "fagging", - "fagot", - "fagots", - "fanny", - "suiqasd qilish", - "o'stirish", - "gardish", - "becerdin", - "yaramas", - "jinnilar", - "lol", - "xo'rozlar", - "fucks", - "soxta paketli", - "xudo la'nati", - "loyiq", - "jahannam", - "ustunlar", - "tug'yonga ketgan", - "siqilish", - "kok", - "labia", - "shahvat", - "lusting", - "masochist", - "mast qilib oling", - "ota-onam", - "nazi", - "nigger", - "nigerlar", - "orgazm", - "orgazmlar", - "pecker", - "penis", - "piss", - "ishdan haydaldi", - "pisser", - "pisses", - "pissing", - "yomonsoff", - "poop", - "porno", - "pornografiya", - "teshik", - "pichoqlar", - "pupa", - "pussies", - "mushuk", - "tajovuz", - "tajovuzkor", - "rektum", - "kechikish", - "rimming", - "sadist", - "vidalanish", - "skrotum", - "semen", - "jinsiy aloqa", - "shag", - "shagging", - "shemale", - "shit", - "shite", - "shits", - "shitted", - "shitirlash", - "sharmandalik", - "skank", - "fohishaxonada", - "sluts", - "smegma", - "noqulay", - "qochish", - "itvachcha", - "spac", - "jim", - "moyaklar", - "tit", - "titt", - "turd", - "vagina", - "viagra", - "vulva", - "vang", - "g'amgin", - "fohisha", - "x baholandi", - "xxx" - ], - "vi": [ - "sự phá thai", - "hậu môn", - "mông", - "đồ ngu", - "lừa", - "lỗ đít", - "túi bóng", - "những quả bóng", - "đồ khốn", - "tuyệt vời", - "mục sư", - "lòng tốt", - "chó cái", - "dính máu", - "công việc thổi", - "bollok", - "boob", - "ngực", - "buceta", - "ăn mày", - "thảm muncher", - "sứt mẻ", - "cipa", - "âm vật", - "gà", - "gà hút", - "gà trống", - "coon", - "tào lao", - "kiêm", - "cum", - "cunillingus", - "lồn", - "chỉ trích", - "tinh ranh", - "dương vật giả", - "dink", - "chó-chó", - "duche", - "đê", - "xuất tinh", - "fag", - "đóng băng", - "fagot", - "đồ ăn vặt", - "người hâm mộ", - "nỉ", - "thất bại", - "mặt bích", - "chết tiệt", - "quái", - "đụ", - "ôm", - "đóng gói fudge", - "địa ngục", - "có", - "sừng", - "giật", - "kock", - "môi âm", - "ham muốn", - "khổ dâm", - "thủ dâm", - "mẹ kiếp", - "nazi", - "người da đen", - "người mách nước", - "cực khoái", - "người mổ", - "dương vật", - "đi tiểu", - "bực mình", - "đái", - "phân", - "khiêu dâm", - "nội dung khiêu dâm", - "châm", - "chích", - "pube", - "pussies", - "âm hộ", - "hiếp dâm", - "trực tràng", - "chậm phát triển", - "xé", - "người tàn bạo", - "vặn vít", - "bìu", - "tinh dịch", - "tình dục", - "lông", - "xáo trộn", - "đồng tính", - "cứt", - "shite", - "ván trượt", - "đĩ", - "quần lót", - "smegma", - "xì trum", - "con trai", - "spac", - "spunk", - "tinh hoàn", - "ăn miếng trả miếng", - "titt", - "cỏ", - "âm đạo", - "viagra", - "âm môn", - "wang", - "đã ngủ", - "con điếm", - "x đánh giá", - "xxx" - ], - "zu": [ - "ukukhipha isisu", - "anal", - "i-anus", - "imbongolo", - "izimbongolo", - "i-asshole", - "ama-assholes", - "ibhola", - "amabhola", - "udoti", - "bellend", - "isineke", - "isilwane", - "i-bitch", - "ama-bitches", - "ukubamba", - "igazi", - "i-blowjob", - "bollok", - "i-boob", - "ama-boobs", - "amabele", - "i-buceta", - "bum", - "butt", - "i-carpet muncher", - "chink", - "cipa", - "i-clitoris", - "iqhude", - "i-cock-sucker", - "ama-cocks", - "i-coon", - "ukuphoqa", - "cum", - "i-cumshot", - "cunillingus", - "cunt", - "hewu", - "dick", - "i-dildo", - "ama-dildos", - "dink", - "inja-fucker", - "duche", - "dyke", - "i-ejaculate", - "ejaculated", - "ejaculates", - "ejaculating", - "ukujula", - "fag", - "fagot", - "amafagots", - "fanny", - "ukuqeda", - "fellatio", - "flange", - "fuck", - "fucked", - "fucker", - "fuckers", - "fucking", - "fuckings", - "fucks", - "i-fudge packer", - "unkulunkulu-wehlisiwe", - "goddamn", - "isihogo", - "ukuthi", - "i-horny", - "i-jerk-off", - "i-kock", - "amalabi", - "ukufisa", - "ukukhanuka", - "i-masochist", - "ukushaya indlwabu", - "umama fucker", - "nazi", - "nigger", - "niggers", - "i-orgasim", - "i-orgasm", - "ama-orgasms", - "i-pecker", - "ipeni", - "piss", - "iphoswe", - "i-pisser", - "ama-pisses", - "ukuphosa", - "awu hambe la", - "uthuvi", - "porn", - "porno", - "izithombe zobulili ezingcolile", - "thinta", - "i-pube", - "ama-pussies", - "i-pussy", - "ukudlwengula", - "umdlwenguli", - "i-rectum", - "linda", - "ukuhleka", - "i-sadist", - "ukujibula", - "i-scrotum", - "ubulili", - "shag", - "ukugubha", - "i-shemale", - "shit", - "shite", - "shits", - "shitted", - "shitting", - "shitty", - "skank", - "slut", - "sluts", - "smegma", - "smut", - "bamba", - "indodana-of-a-bitch", - "isikhala", - "i-spunk", - "i-testicle", - "isihloko", - "tits", - "titt", - "i-turd", - "i-viagra", - "i-vulva", - "wang", - "wank", - "isifebe", - "x ulinganisiwe", - "xxx" - ] -} diff --git a/assets/jsons/cooldown_list.json b/assets/jsons/cooldown_list.json new file mode 100644 index 00000000..148184a4 --- /dev/null +++ b/assets/jsons/cooldown_list.json @@ -0,0 +1,182 @@ +{ + "guild": { + "purge": { + "time": 10, + "auth": true, + "premium": true, + "auto_delete": true + }, + "save": { + "time": 5, + "auth": true, + "premium": true, + "auto_delete": true + }, + "setup": { + "time": 10, + "auth": true, + "premium": true, + "auto_delete": true + }, + "set_ranks": { + "time": 10, + "auth": true, + "premium": true, + "auto_delete": true + } + }, + "member": { + "join": { + "time": 1, + "auth": false, + "premium": true, + "auto_delete": true + }, + "announce": { + "time": 2, + "auth": false, + "premium": true, + "auto_delete": true + }, + "force": { + "time": 5, + "auth": true, + "premium": true, + "auto_delete": true + } + }, + "none": { + "leaderboard": { + "time": 0, + "auth": false, + "premium": false, + "auto_delete": true + }, + "ranks": { + "time": 0, + "auth": false, + "premium": true, + "auto_delete": true + }, + "level": { + "time": 0, + "auth": false, + "premium": false, + "auto_delete": true + }, + "about": { + "time": 0, + "auth": false, + "premium": false, + "auto_delete": true + }, + "portal": { + "time": 0, + "auth": true, + "premium": false, + "auto_delete": true + }, + "help": { + "time": 0, + "auth": false, + "premium": false, + "auto_delete": true + }, + "ping": { + "time": 0, + "auth": false, + "premium": false, + "auto_delete": true + }, + "set": { + "time": 0, + "auth": false, + "premium": true, + "auto_delete": true + }, + "role": { + "time": 0, + "auth": false, + "premium": true, + "auto_delete": true + }, + "spotify": { + "time": 0, + "auth": true, + "premium": true, + "auto_delete": true + }, + "music": { + "time": 0, + "auth": true, + "premium": true, + "auto_delete": true + }, + "announcement": { + "time": 0, + "auth": true, + "premium": true, + "auto_delete": true + }, + "url": { + "time": 0, + "auth": true, + "premium": true, + "auto_delete": true + }, + "leave": { + "time": 0, + "auth": false, + "premium": true, + "auto_delete": true + }, + "focus": { + "time": 0, + "auth": false, + "premium": true, + "auto_delete": true + }, + "corona": { + "time": 0, + "auth": false, + "premium": false, + "auto_delete": false + }, + "roll": { + "time": 0, + "auth": false, + "premium": false, + "auto_delete": false + }, + "run": { + "time": 0, + "auth": false, + "premium": true, + "auto_delete": true + }, + "auth_roles": { + "time": 0, + "auth": true, + "premium": true, + "auto_delete": true + }, + "auth_role_add": { + "time": 0, + "auth": true, + "premium": true, + "auto_delete": true + }, + "auth_role_rem": { + "time": 0, + "auth": true, + "premium": true, + "auto_delete": true + }, + "joke": { + "time": 0, + "auth": false, + "premium": false, + "auto_delete": false + } + } +} \ No newline at end of file diff --git a/assets/jsons/country_codes.json b/assets/jsons/country_codes.json index 30059802..e0224659 100644 --- a/assets/jsons/country_codes.json +++ b/assets/jsons/country_codes.json @@ -1,731 +1,974 @@ [ { - "name": "Afghanistan", "code": "AF" + "name": "Afghanistan", + "code": "AF" }, { - "name": "Åland Islands", "code": "AX" + "name": "Åland Islands", + "code": "AX" }, { - "name": "Albania", "code": "AL" + "name": "Albania", + "code": "AL" }, { - "name": "Algeria", "code": "DZ" + "name": "Algeria", + "code": "DZ" }, { - "name": "American Samoa", "code": "AS" + "name": "American Samoa", + "code": "AS" }, { - "name": "AndorrA", "code": "AD" + "name": "AndorrA", + "code": "AD" }, { - "name": "Angola", "code": "AO" + "name": "Angola", + "code": "AO" }, { - "name": "Anguilla", "code": "AI" + "name": "Anguilla", + "code": "AI" }, { - "name": "Antarctica", "code": "AQ" + "name": "Antarctica", + "code": "AQ" }, { - "name": "Antigua and Barbuda", "code": "AG" + "name": "Antigua and Barbuda", + "code": "AG" }, { - "name": "Argentina", "code": "AR" + "name": "Argentina", + "code": "AR" }, { - "name": "Armenia", "code": "AM" + "name": "Armenia", + "code": "AM" }, { - "name": "Aruba", "code": "AW" + "name": "Aruba", + "code": "AW" }, { - "name": "Australia", "code": "AU" + "name": "Australia", + "code": "AU" }, { - "name": "Austria", "code": "AT" + "name": "Austria", + "code": "AT" }, { - "name": "Azerbaijan", "code": "AZ" + "name": "Azerbaijan", + "code": "AZ" }, { - "name": "Bahamas", "code": "BS" + "name": "Bahamas", + "code": "BS" }, { - "name": "Bahrain", "code": "BH" + "name": "Bahrain", + "code": "BH" }, { - "name": "Bangladesh", "code": "BD" + "name": "Bangladesh", + "code": "BD" }, { - "name": "Barbados", "code": "BB" + "name": "Barbados", + "code": "BB" }, { - "name": "Belarus", "code": "BY" + "name": "Belarus", + "code": "BY" }, { - "name": "Belgium", "code": "BE" + "name": "Belgium", + "code": "BE" }, { - "name": "Belize", "code": "BZ" + "name": "Belize", + "code": "BZ" }, { - "name": "Benin", "code": "BJ" + "name": "Benin", + "code": "BJ" }, { - "name": "Bermuda", "code": "BM" + "name": "Bermuda", + "code": "BM" }, { - "name": "Bhutan", "code": "BT" + "name": "Bhutan", + "code": "BT" }, { - "name": "Bolivia", "code": "BO" + "name": "Bolivia", + "code": "BO" }, { - "name": "Bosnia and Herzegovina", "code": "BA" + "name": "Bosnia and Herzegovina", + "code": "BA" }, { - "name": "Botswana", "code": "BW" + "name": "Botswana", + "code": "BW" }, { - "name": "Bouvet Island", "code": "BV" + "name": "Bouvet Island", + "code": "BV" }, { - "name": "Brazil", "code": "BR" + "name": "Brazil", + "code": "BR" }, { - "name": "British Indian Ocean Territory", "code": "IO" + "name": "British Indian Ocean Territory", + "code": "IO" }, { - "name": "Brunei Darussalam", "code": "BN" + "name": "Brunei Darussalam", + "code": "BN" }, { - "name": "Bulgaria", "code": "BG" + "name": "Bulgaria", + "code": "BG" }, { - "name": "Burkina Faso", "code": "BF" + "name": "Burkina Faso", + "code": "BF" }, { - "name": "Burundi", "code": "BI" + "name": "Burundi", + "code": "BI" }, { - "name": "Cambodia", "code": "KH" + "name": "Cambodia", + "code": "KH" }, { - "name": "Cameroon", "code": "CM" + "name": "Cameroon", + "code": "CM" }, { - "name": "Canada", "code": "CA" + "name": "Canada", + "code": "CA" }, { - "name": "Cape Verde", "code": "CV" + "name": "Cape Verde", + "code": "CV" }, { - "name": "Cayman Islands", "code": "KY" + "name": "Cayman Islands", + "code": "KY" }, { - "name": "Central African Republic", "code": "CF" + "name": "Central African Republic", + "code": "CF" }, { - "name": "Chad", "code": "TD" + "name": "Chad", + "code": "TD" }, { - "name": "Chile", "code": "CL" + "name": "Chile", + "code": "CL" }, { - "name": "China", "code": "CN" + "name": "China", + "code": "CN" }, { - "name": "Christmas Island", "code": "CX" + "name": "Christmas Island", + "code": "CX" }, { - "name": "Cocos (Keeling) Islands", "code": "CC" + "name": "Cocos (Keeling) Islands", + "code": "CC" }, { - "name": "Colombia", "code": "CO" + "name": "Colombia", + "code": "CO" }, { - "name": "Comoros", "code": "KM" + "name": "Comoros", + "code": "KM" }, { - "name": "Congo", "code": "CG" + "name": "Congo", + "code": "CG" }, { - "name": "Congo, The Democratic Republic of the", "code": "CD" + "name": "Congo, The Democratic Republic of the", + "code": "CD" }, { - "name": "Cook Islands", "code": "CK" + "name": "Cook Islands", + "code": "CK" }, { - "name": "Costa Rica", "code": "CR" + "name": "Costa Rica", + "code": "CR" }, { - "name": "Cote D\"Ivoire", "code": "CI" + "name": "Cote D\"Ivoire", + "code": "CI" }, { - "name": "Croatia", "code": "HR" + "name": "Croatia", + "code": "HR" }, { - "name": "Cuba", "code": "CU" + "name": "Cuba", + "code": "CU" }, { - "name": "Cyprus", "code": "CY" + "name": "Cyprus", + "code": "CY" }, { - "name": "Czech Republic", "code": "CZ" + "name": "Czech Republic", + "code": "CZ" }, { - "name": "Denmark", "code": "DK" + "name": "Denmark", + "code": "DK" }, { - "name": "Djibouti", "code": "DJ" + "name": "Djibouti", + "code": "DJ" }, { - "name": "Dominica", "code": "DM" + "name": "Dominica", + "code": "DM" }, { - "name": "Dominican Republic", "code": "DO" + "name": "Dominican Republic", + "code": "DO" }, { - "name": "Ecuador", "code": "EC" + "name": "Ecuador", + "code": "EC" }, { - "name": "Egypt", "code": "EG" + "name": "Egypt", + "code": "EG" }, { - "name": "El Salvador", "code": "SV" + "name": "El Salvador", + "code": "SV" }, { - "name": "Equatorial Guinea", "code": "GQ" + "name": "Equatorial Guinea", + "code": "GQ" }, { - "name": "Eritrea", "code": "ER" + "name": "Eritrea", + "code": "ER" }, { - "name": "Estonia", "code": "EE" + "name": "Estonia", + "code": "EE" }, { - "name": "Ethiopia", "code": "ET" + "name": "Ethiopia", + "code": "ET" }, { - "name": "Falkland Islands (Malvinas)", "code": "FK" + "name": "Falkland Islands (Malvinas)", + "code": "FK" }, { - "name": "Faroe Islands", "code": "FO" + "name": "Faroe Islands", + "code": "FO" }, { - "name": "Fiji", "code": "FJ" + "name": "Fiji", + "code": "FJ" }, { - "name": "Finland", "code": "FI" + "name": "Finland", + "code": "FI" }, { - "name": "France", "code": "FR" + "name": "France", + "code": "FR" }, { - "name": "French Guiana", "code": "GF" + "name": "French Guiana", + "code": "GF" }, { - "name": "French Polynesia", "code": "PF" + "name": "French Polynesia", + "code": "PF" }, { - "name": "French Southern Territories", "code": "TF" + "name": "French Southern Territories", + "code": "TF" }, { - "name": "Gabon", "code": "GA" + "name": "Gabon", + "code": "GA" }, { - "name": "Gambia", "code": "GM" + "name": "Gambia", + "code": "GM" }, { - "name": "Georgia", "code": "GE" + "name": "Georgia", + "code": "GE" }, { - "name": "Germany", "code": "DE" + "name": "Germany", + "code": "DE" }, { - "name": "Ghana", "code": "GH" + "name": "Ghana", + "code": "GH" }, { - "name": "Gibraltar", "code": "GI" + "name": "Gibraltar", + "code": "GI" }, { - "name": "Greece", "code": "GR" + "name": "Greece", + "code": "GR" }, { - "name": "Greenland", "code": "GL" + "name": "Greenland", + "code": "GL" }, { - "name": "Grenada", "code": "GD" + "name": "Grenada", + "code": "GD" }, { - "name": "Guadeloupe", "code": "GP" + "name": "Guadeloupe", + "code": "GP" }, { - "name": "Guam", "code": "GU" + "name": "Guam", + "code": "GU" }, { - "name": "Guatemala", "code": "GT" + "name": "Guatemala", + "code": "GT" }, { - "name": "Guernsey", "code": "GG" + "name": "Guernsey", + "code": "GG" }, { - "name": "Guinea", "code": "GN" + "name": "Guinea", + "code": "GN" }, { - "name": "Guinea-Bissau", "code": "GW" + "name": "Guinea-Bissau", + "code": "GW" }, { - "name": "Guyana", "code": "GY" + "name": "Guyana", + "code": "GY" }, { - "name": "Haiti", "code": "HT" + "name": "Haiti", + "code": "HT" }, { - "name": "Heard Island and Mcdonald Islands", "code": "HM" + "name": "Heard Island and Mcdonald Islands", + "code": "HM" }, { - "name": "Holy See (Vatican City State)", "code": "VA" + "name": "Holy See (Vatican City State)", + "code": "VA" }, { - "name": "Honduras", "code": "HN" + "name": "Honduras", + "code": "HN" }, { - "name": "Hong Kong", "code": "HK" + "name": "Hong Kong", + "code": "HK" }, { - "name": "Hungary", "code": "HU" + "name": "Hungary", + "code": "HU" }, { - "name": "Iceland", "code": "IS" + "name": "Iceland", + "code": "IS" }, { - "name": "India", "code": "IN" + "name": "India", + "code": "IN" }, { - "name": "Indonesia", "code": "ID" + "name": "Indonesia", + "code": "ID" }, { - "name": "Iran, Islamic Republic Of", "code": "IR" + "name": "Iran, Islamic Republic Of", + "code": "IR" }, { - "name": "Iraq", "code": "IQ" + "name": "Iraq", + "code": "IQ" }, { - "name": "Ireland", "code": "IE" + "name": "Ireland", + "code": "IE" }, { - "name": "Isle of Man", "code": "IM" + "name": "Isle of Man", + "code": "IM" }, { - "name": "Israel", "code": "IL" + "name": "Israel", + "code": "IL" }, { - "name": "Italy", "code": "IT" + "name": "Italy", + "code": "IT" }, { - "name": "Jamaica", "code": "JM" + "name": "Jamaica", + "code": "JM" }, { - "name": "Japan", "code": "JP" + "name": "Japan", + "code": "JP" }, { - "name": "Jersey", "code": "JE" + "name": "Jersey", + "code": "JE" }, { - "name": "Jordan", "code": "JO" + "name": "Jordan", + "code": "JO" }, { - "name": "Kazakhstan", "code": "KZ" + "name": "Kazakhstan", + "code": "KZ" }, { - "name": "Kenya", "code": "KE" + "name": "Kenya", + "code": "KE" }, { - "name": "Kiribati", "code": "KI" + "name": "Kiribati", + "code": "KI" }, { - "name": "Korea, Democratic People\"S Republic of", "code": "KP" + "name": "Korea, Democratic People\"S Republic of", + "code": "KP" }, { - "name": "Korea, Republic of", "code": "KR" + "name": "Korea, Republic of", + "code": "KR" }, { - "name": "Kuwait", "code": "KW" + "name": "Kuwait", + "code": "KW" }, { - "name": "Kyrgyzstan", "code": "KG" + "name": "Kyrgyzstan", + "code": "KG" }, { - "name": "Lao People\"S Democratic Republic", "code": "LA" + "name": "Lao People\"S Democratic Republic", + "code": "LA" }, { - "name": "Latvia", "code": "LV" + "name": "Latvia", + "code": "LV" }, { - "name": "Lebanon", "code": "LB" + "name": "Lebanon", + "code": "LB" }, { - "name": "Lesotho", "code": "LS" + "name": "Lesotho", + "code": "LS" }, { - "name": "Liberia", "code": "LR" + "name": "Liberia", + "code": "LR" }, { - "name": "Libyan Arab Jamahiriya", "code": "LY" + "name": "Libyan Arab Jamahiriya", + "code": "LY" }, { - "name": "Liechtenstein", "code": "LI" + "name": "Liechtenstein", + "code": "LI" }, { - "name": "Lithuania", "code": "LT" + "name": "Lithuania", + "code": "LT" }, { - "name": "Luxembourg", "code": "LU" + "name": "Luxembourg", + "code": "LU" }, { - "name": "Macao", "code": "MO" + "name": "Macao", + "code": "MO" }, { - "name": "Macedonia, The Former Yugoslav Republic of", "code": "MK" + "name": "Macedonia, The Former Yugoslav Republic of", + "code": "MK" }, { - "name": "Madagascar", "code": "MG" + "name": "Madagascar", + "code": "MG" }, { - "name": "Malawi", "code": "MW" + "name": "Malawi", + "code": "MW" }, { - "name": "Malaysia", "code": "MY" + "name": "Malaysia", + "code": "MY" }, { - "name": "Maldives", "code": "MV" + "name": "Maldives", + "code": "MV" }, { - "name": "Mali", "code": "ML" + "name": "Mali", + "code": "ML" }, { - "name": "Malta", "code": "MT" + "name": "Malta", + "code": "MT" }, { - "name": "Marshall Islands", "code": "MH" + "name": "Marshall Islands", + "code": "MH" }, { - "name": "Martinique", "code": "MQ" + "name": "Martinique", + "code": "MQ" }, { - "name": "Mauritania", "code": "MR" + "name": "Mauritania", + "code": "MR" }, { - "name": "Mauritius", "code": "MU" + "name": "Mauritius", + "code": "MU" }, { - "name": "Mayotte", "code": "YT" + "name": "Mayotte", + "code": "YT" }, { - "name": "Mexico", "code": "MX" + "name": "Mexico", + "code": "MX" }, { - "name": "Micronesia, Federated States of", "code": "FM" + "name": "Micronesia, Federated States of", + "code": "FM" }, { - "name": "Moldova, Republic of", "code": "MD" + "name": "Moldova, Republic of", + "code": "MD" }, { - "name": "Monaco", "code": "MC" + "name": "Monaco", + "code": "MC" }, { - "name": "Mongolia", "code": "MN" + "name": "Mongolia", + "code": "MN" }, { - "name": "Montserrat", "code": "MS" + "name": "Montserrat", + "code": "MS" }, { - "name": "Morocco", "code": "MA" + "name": "Morocco", + "code": "MA" }, { - "name": "Mozambique", "code": "MZ" + "name": "Mozambique", + "code": "MZ" }, { - "name": "Myanmar", "code": "MM" + "name": "Myanmar", + "code": "MM" }, { - "name": "Namibia", "code": "NA" + "name": "Namibia", + "code": "NA" }, { - "name": "Nauru", "code": "NR" + "name": "Nauru", + "code": "NR" }, { - "name": "Nepal", "code": "NP" + "name": "Nepal", + "code": "NP" }, { - "name": "Netherlands", "code": "NL" + "name": "Netherlands", + "code": "NL" }, { - "name": "Netherlands Antilles", "code": "AN" + "name": "Netherlands Antilles", + "code": "AN" }, { - "name": "New Caledonia", "code": "NC" + "name": "New Caledonia", + "code": "NC" }, { - "name": "New Zealand", "code": "NZ" + "name": "New Zealand", + "code": "NZ" }, { - "name": "Nicaragua", "code": "NI" + "name": "Nicaragua", + "code": "NI" }, { - "name": "Niger", "code": "NE" + "name": "Niger", + "code": "NE" }, { - "name": "Nigeria", "code": "NG" + "name": "Nigeria", + "code": "NG" }, { - "name": "Niue", "code": "NU" + "name": "Niue", + "code": "NU" }, { - "name": "Norfolk Island", "code": "NF" + "name": "Norfolk Island", + "code": "NF" }, { - "name": "Northern Mariana Islands", "code": "MP" + "name": "Northern Mariana Islands", + "code": "MP" }, { - "name": "Norway", "code": "NO" + "name": "Norway", + "code": "NO" }, { - "name": "Oman", "code": "OM" + "name": "Oman", + "code": "OM" }, { - "name": "Pakistan", "code": "PK" + "name": "Pakistan", + "code": "PK" }, { - "name": "Palau", "code": "PW" + "name": "Palau", + "code": "PW" }, { - "name": "Palestinian Territory, Occupied", "code": "PS" + "name": "Palestinian Territory, Occupied", + "code": "PS" }, { - "name": "Panama", "code": "PA" + "name": "Panama", + "code": "PA" }, { - "name": "Papua New Guinea", "code": "PG" + "name": "Papua New Guinea", + "code": "PG" }, { - "name": "Paraguay", "code": "PY" + "name": "Paraguay", + "code": "PY" }, { - "name": "Peru", "code": "PE" + "name": "Peru", + "code": "PE" }, { - "name": "Philippines", "code": "PH" + "name": "Philippines", + "code": "PH" }, { - "name": "Pitcairn", "code": "PN" + "name": "Pitcairn", + "code": "PN" }, { - "name": "Poland", "code": "PL" + "name": "Poland", + "code": "PL" }, { - "name": "Portugal", "code": "PT" + "name": "Portugal", + "code": "PT" }, { - "name": "Puerto Rico", "code": "PR" + "name": "Puerto Rico", + "code": "PR" }, { - "name": "Qatar", "code": "QA" + "name": "Qatar", + "code": "QA" }, { - "name": "Reunion", "code": "RE" + "name": "Reunion", + "code": "RE" }, { - "name": "Romania", "code": "RO" + "name": "Romania", + "code": "RO" }, { - "name": "Russian Federation", "code": "RU" + "name": "Russian Federation", + "code": "RU" }, { - "name": "RWANDA", "code": "RW" + "name": "RWANDA", + "code": "RW" }, { - "name": "Saint Helena", "code": "SH" + "name": "Saint Helena", + "code": "SH" }, { - "name": "Saint Kitts and Nevis", "code": "KN" + "name": "Saint Kitts and Nevis", + "code": "KN" }, { - "name": "Saint Lucia", "code": "LC" + "name": "Saint Lucia", + "code": "LC" }, { - "name": "Saint Pierre and Miquelon", "code": "PM" + "name": "Saint Pierre and Miquelon", + "code": "PM" }, { - "name": "Saint Vincent and the Grenadines", "code": "VC" + "name": "Saint Vincent and the Grenadines", + "code": "VC" }, { - "name": "Samoa", "code": "WS" + "name": "Samoa", + "code": "WS" }, { - "name": "San Marino", "code": "SM" + "name": "San Marino", + "code": "SM" }, { - "name": "Sao Tome and Principe", "code": "ST" + "name": "Sao Tome and Principe", + "code": "ST" }, { - "name": "Saudi Arabia", "code": "SA" + "name": "Saudi Arabia", + "code": "SA" }, { - "name": "Senegal", "code": "SN" + "name": "Senegal", + "code": "SN" }, { - "name": "Serbia and Montenegro", "code": "CS" + "name": "Serbia and Montenegro", + "code": "CS" }, { - "name": "Seychelles", "code": "SC" + "name": "Seychelles", + "code": "SC" }, { - "name": "Sierra Leone", "code": "SL" + "name": "Sierra Leone", + "code": "SL" }, { - "name": "Singapore", "code": "SG" + "name": "Singapore", + "code": "SG" }, { - "name": "Slovakia", "code": "SK" + "name": "Slovakia", + "code": "SK" }, { - "name": "Slovenia", "code": "SI" + "name": "Slovenia", + "code": "SI" }, { - "name": "Solomon Islands", "code": "SB" + "name": "Solomon Islands", + "code": "SB" }, { - "name": "Somalia", "code": "SO" + "name": "Somalia", + "code": "SO" }, { - "name": "South Africa", "code": "ZA" + "name": "South Africa", + "code": "ZA" }, { - "name": "South Georgia and the South Sandwich Islands", "code": "GS" + "name": "South Georgia and the South Sandwich Islands", + "code": "GS" }, { - "name": "Spain", "code": "ES" + "name": "Spain", + "code": "ES" }, { - "name": "Sri Lanka", "code": "LK" + "name": "Sri Lanka", + "code": "LK" }, { - "name": "Sudan", "code": "SD" + "name": "Sudan", + "code": "SD" }, { - "name": "Suriname", "code": "SR" + "name": "Suriname", + "code": "SR" }, { - "name": "Svalbard and Jan Mayen", "code": "SJ" + "name": "Svalbard and Jan Mayen", + "code": "SJ" }, { - "name": "Swaziland", "code": "SZ" + "name": "Swaziland", + "code": "SZ" }, { - "name": "Sweden", "code": "SE" + "name": "Sweden", + "code": "SE" }, { - "name": "Switzerland", "code": "CH" + "name": "Switzerland", + "code": "CH" }, { - "name": "Syrian Arab Republic", "code": "SY" + "name": "Syrian Arab Republic", + "code": "SY" }, { - "name": "Taiwan, Province of China", "code": "TW" + "name": "Taiwan, Province of China", + "code": "TW" }, { - "name": "Tajikistan", "code": "TJ" + "name": "Tajikistan", + "code": "TJ" }, { - "name": "Tanzania, United Republic of", "code": "TZ" + "name": "Tanzania, United Republic of", + "code": "TZ" }, { - "name": "Thailand", "code": "TH" + "name": "Thailand", + "code": "TH" }, { - "name": "Timor-Leste", "code": "TL" + "name": "Timor-Leste", + "code": "TL" }, { - "name": "Togo", "code": "TG" + "name": "Togo", + "code": "TG" }, { - "name": "Tokelau", "code": "TK" + "name": "Tokelau", + "code": "TK" }, { - "name": "Tonga", "code": "TO" + "name": "Tonga", + "code": "TO" }, { - "name": "Trinidad and Tobago", "code": "TT" + "name": "Trinidad and Tobago", + "code": "TT" }, { - "name": "Tunisia", "code": "TN" + "name": "Tunisia", + "code": "TN" }, { - "name": "Turkey", "code": "TR" + "name": "Turkey", + "code": "TR" }, { - "name": "Turkmenistan", "code": "TM" + "name": "Turkmenistan", + "code": "TM" }, { - "name": "Turks and Caicos Islands", "code": "TC" + "name": "Turks and Caicos Islands", + "code": "TC" }, { - "name": "Tuvalu", "code": "TV" + "name": "Tuvalu", + "code": "TV" }, { - "name": "Uganda", "code": "UG" + "name": "Uganda", + "code": "UG" }, { - "name": "Ukraine", "code": "UA" + "name": "Ukraine", + "code": "UA" }, { - "name": "United Arab Emirates", "code": "AE" + "name": "United Arab Emirates", + "code": "AE" }, { - "name": "United Kingdom", "code": "GB" + "name": "United Kingdom", + "code": "GB" }, { - "name": "United States", "code": "US" + "name": "United States", + "code": "US" }, { - "name": "United States Minor Outlying Islands", "code": "UM" + "name": "United States Minor Outlying Islands", + "code": "UM" }, { - "name": "Uruguay", "code": "UY" + "name": "Uruguay", + "code": "UY" }, { - "name": "Uzbekistan", "code": "UZ" + "name": "Uzbekistan", + "code": "UZ" }, { - "name": "Vanuatu", "code": "VU" + "name": "Vanuatu", + "code": "VU" }, { - "name": "Venezuela", "code": "VE" + "name": "Venezuela", + "code": "VE" }, { - "name": "Viet Nam", "code": "VN" + "name": "Viet Nam", + "code": "VN" }, { - "name": "Virgin Islands, British", "code": "VG" + "name": "Virgin Islands, British", + "code": "VG" }, { - "name": "Virgin Islands, U.S.", "code": "VI" + "name": "Virgin Islands, U.S.", + "code": "VI" }, { - "name": "Wallis and Futuna", "code": "WF" + "name": "Wallis and Futuna", + "code": "WF" }, { - "name": "Western Sahara", "code": "EH" + "name": "Western Sahara", + "code": "EH" }, { - "name": "Yemen", "code": "YE" + "name": "Yemen", + "code": "YE" }, { - "name": "Zambia", "code": "ZM" + "name": "Zambia", + "code": "ZM" }, { - "name": "Zimbabwe", "code": "ZW" + "name": "Zimbabwe", + "code": "ZW" } ] \ No newline at end of file diff --git a/assets/jsons/country_codes_2.json b/assets/jsons/country_codes_2.json index d4bf5d76..754d4a1e 100644 --- a/assets/jsons/country_codes_2.json +++ b/assets/jsons/country_codes_2.json @@ -53,4 +53,4 @@ "Uzbek": "uz", "Vietnamese": "vi", "Zulu": "zu" -} +} \ No newline at end of file diff --git a/assets/jsons/game_list.json b/assets/jsons/game_list.json index d8b379b6..f9f8a53a 100644 --- a/assets/jsons/game_list.json +++ b/assets/jsons/game_list.json @@ -809,4 +809,4 @@ } } ] -} +} \ No newline at end of file diff --git a/assets/jsons/profane_word_list.json b/assets/jsons/profane_word_list.json new file mode 100644 index 00000000..0036e8ae --- /dev/null +++ b/assets/jsons/profane_word_list.json @@ -0,0 +1,497 @@ +{ + "el": [ + "γαμώ", + "γαμω", + "γαμημένε", + "γαμημενε", + "μουνό", + "μουνο", + "μουνί", + "μουνι", + "μαλάκα", + "μαλακα", + "πούτσα", + "πουτσα", + "πούτσο", + "πουτσο", + "πούτσος", + "πουτσος", + "πούστρα", + "πουστρα", + "παπάρι", + "παπαρι", + "πίπα", + "πιπα", + "γλυφομούνι", + "γλυφομουνι", + "αδερφάρα", + "αδερφαρα", + "γαμόμανο", + "γαμομανο", + "γαμημένε", + "γαμημενε", + "γαμιώλη", + "γαμιωλη", + "γαμιώλης", + "γαμιωλης", + "μαλακοπίτουρο", + "μαλακοπιτουρο", + "βούλωσε το", + "βουλωσε το", + "καργιόλης", + "καργιολης", + "καργιόλα", + "καργιολα", + "γρόθο", + "γροθο" + ], + "en": [ + "ahole", + "anus", + "ash0le", + "ash0les", + "asholes", + "ass", + "Ass Monkey", + "Assface", + "assh0le", + "assh0lez", + "asshole", + "assholes", + "assholz", + "asswipe", + "azzhole", + "bassterds", + "bastard", + "bastards", + "bastardz", + "basterds", + "basterdz", + "Biatch", + "bitch", + "bitches", + "Blow Job", + "boffing", + "butthole", + "buttwipe", + "c0ck", + "c0cks", + "c0k", + "Carpet Muncher", + "cawk", + "cawks", + "Clit", + "cnts", + "cntz", + "cock", + "cockhead", + "cock-head", + "cocks", + "CockSucker", + "cock-sucker", + "crap", + "cum", + "cunt", + "cunts", + "cuntz", + "dick", + "dild0", + "dild0s", + "dildo", + "dildos", + "dilld0", + "dilld0s", + "dominatricks", + "dominatrics", + "dominatrix", + "dyke", + "enema", + "f u c k", + "f u c k e r", + "fag", + "fag1t", + "faget", + "fagg1t", + "faggit", + "faggot", + "fagg0t", + "fagit", + "fags", + "fagz", + "faig", + "faigs", + "fart", + "flipping the bird", + "fuck", + "fucker", + "fuckin", + "fucking", + "fucks", + "Fudge Packer", + "fuk", + "Fukah", + "Fuken", + "fuker", + "Fukin", + "Fukk", + "Fukkah", + "Fukken", + "Fukker", + "Fukkin", + "g00k", + "God-damned", + "h00r", + "h0ar", + "h0re", + "hells", + "hoar", + "hoor", + "hoore", + "jackoff", + "jap", + "japs", + "jerk-off", + "jisim", + "jiss", + "jizm", + "jizz", + "knob", + "knobs", + "knobz", + "kunt", + "kunts", + "kuntz", + "Lezzian", + "Lipshits", + "Lipshitz", + "masochist", + "masokist", + "massterbait", + "masstrbait", + "masstrbate", + "masterbaiter", + "masterbate", + "masterbates", + "Motha Fucker", + "Motha Fuker", + "Motha Fukkah", + "Motha Fukker", + "Mother Fucker", + "Mother Fukah", + "Mother Fuker", + "Mother Fukkah", + "Mother Fukker", + "mother-fucker", + "Mutha Fucker", + "Mutha Fukah", + "Mutha Fuker", + "Mutha Fukkah", + "Mutha Fukker", + "n1gr", + "nastt", + "nigger;", + "nigur;", + "niiger;", + "niigr;", + "orafis", + "orgasim;", + "orgasm", + "orgasum", + "oriface", + "orifice", + "orifiss", + "packi", + "packie", + "packy", + "paki", + "pakie", + "paky", + "pecker", + "peeenus", + "peeenusss", + "peenus", + "peinus", + "pen1s", + "penas", + "penis", + "penis-breath", + "penus", + "penuus", + "Phuc", + "Phuck", + "Phuk", + "Phuker", + "Phukker", + "polac", + "polack", + "polak", + "Poonani", + "pr1c", + "pr1ck", + "pr1k", + "pusse", + "pussee", + "pussy", + "puuke", + "puuker", + "qweir", + "recktum", + "rectum", + "retard", + "sadist", + "scank", + "schlong", + "screwing", + "semen", + "sex", + "sexy", + "Sh!t", + "sh1t", + "sh1ter", + "sh1ts", + "sh1tter", + "sh1tz", + "shit", + "shits", + "shitter", + "Shitty", + "Shity", + "shitz", + "Shyt", + "Shyte", + "Shytty", + "Shyty", + "skanck", + "skank", + "skankee", + "skankey", + "skanks", + "Skanky", + "slag", + "slut", + "sluts", + "Slutty", + "slutz", + "son-of-a-bitch", + "tit", + "turd", + "va1jina", + "vag1na", + "vagiina", + "vagina", + "vaj1na", + "vajina", + "vullva", + "vulva", + "w0p", + "wh00r", + "wh0re", + "whore", + "xrated", + "xxx", + "b!+ch", + "bitch", + "blowjob", + "clit", + "arschloch", + "fuck", + "shit", + "ass", + "asshole", + "b!tch", + "b17ch", + "b1tch", + "bastard", + "bi+ch", + "boiolas", + "buceta", + "c0ck", + "cawk", + "chink", + "cipa", + "clits", + "cock", + "cum", + "cunt", + "dildo", + "dirsa", + "ejakulate", + "fatass", + "fcuk", + "fuk", + "fux0r", + "hoer", + "hore", + "jism", + "kawk", + "l3itch", + "l3i+ch", + "masturbate", + "masterbat", + "masterbat3", + "motherfucker", + "s.o.b.", + "mofo", + "nazi", + "nigga", + "nigger", + "nutsack", + "phuck", + "pimpis", + "pusse", + "pussy", + "scrotum", + "sh!t", + "shemale", + "shi+", + "sh!+", + "slut", + "smut", + "teets", + "tits", + "boobs", + "b00bs", + "teez", + "testical", + "testicle", + "titt", + "w00se", + "jackoff", + "wank", + "whoar", + "whore", + "damn", + "dyke", + "fuck", + "shit", + "@$$", + "amcik", + "andskota", + "arse", + "assrammer", + "ayir", + "bi7ch", + "bitch", + "bollock", + "breasts", + "butt-pirate", + "cabron", + "cazzo", + "chraa", + "chuj", + "Cock", + "cunt", + "d4mn", + "daygo", + "dego", + "dick", + "dike", + "dupa", + "dziwka", + "ejackulate", + "Ekrem", + "Ekto", + "enculer", + "faen", + "fag", + "fanculo", + "fanny", + "feces", + "feg", + "Felcher", + "ficken", + "fitt", + "Flikker", + "foreskin", + "Fotze", + "Fu", + "fuk", + "futkretzn", + "gook", + "guiena", + "h0r", + "h4x0r", + "hell", + "helvete", + "hoer", + "honkey", + "Huevon", + "hui", + "injun", + "jizz", + "kanker", + "kike", + "klootzak", + "kraut", + "knulle", + "kuk", + "kuksuger", + "Kurac", + "kurwa", + "kusi", + "kyrpa", + "lesbo", + "mamhoon", + "masturbat", + "merd", + "mibun", + "monkleigh", + "mouliewop", + "muie", + "mulkku", + "muschi", + "nazis", + "nepesaurio", + "nigger", + "orospu", + "paska", + "perse", + "picka", + "pierdol", + "pillu", + "pimmel", + "piss", + "pizda", + "poontsee", + "poop", + "porn", + "p0rn", + "pr0n", + "preteen", + "pula", + "pule", + "puta", + "puto", + "qahbeh", + "queef", + "rautenberg", + "schaffer", + "scheiss", + "schlampe", + "schmuck", + "screw", + "sh!t", + "sharmuta", + "sharmute", + "shipal", + "shiz", + "skribz", + "skurwysyn", + "sphencter", + "spic", + "spierdalaj", + "splooge", + "suka", + "b00b", + "testicle", + "titt", + "twat", + "vittu", + "wank", + "wetback", + "wichser", + "wop", + "yed", + "zabourah" + ] +} \ No newline at end of file diff --git a/commands/about.js b/commands/about.js deleted file mode 100644 index 5e00555a..00000000 --- a/commands/about.js +++ /dev/null @@ -1,54 +0,0 @@ -/* eslint-disable no-unused-vars */ -/* eslint-disable no-cond-assign */ -/* eslint-disable no-undef */ -const help_mngr = require('../functions/help_manager'); - -module.exports = async (client, message, args, portal_guilds, portal_managed_guilds_path) => { - return new Promise((resolve) => { - const member_info = portal_guilds[message.guild.id].member_list[message.member.id]; - - message.channel.send(help_mngr.create_rich_embed( - 'About Portal', - 'a portal to a managed discord server', - '#1DB954', - [ - { - emote: 'Creator', - role: '***Keybraker***', - inline: true, - }, - { - emote: 'Created', - role: '***2020***', - inline: true, - }, - { - emote: 'Website', - role: '***https://portal-bot.xyz***', - inline: true, - }, - { - emote: 'FAQ', - role: '', - inline: false, - }, - { - emote: 'Does Portal have Premium ?', - role: 'Yes with great features and you can get it at ***https://portal-bot.xyz/premium/***', - inline: false, - }, - { - emote: 'What features does Portal have ?', - role: 'Yes lots of them, you can explore them at ***https://portal-bot.xyz/features/***', - inline: false, - }, - ], - false, - client.user.member, - true, - 'https://portal-bot.xyz/', - )); - - return resolve(null); - }); -}; \ No newline at end of file diff --git a/config.json b/config.json index dcd66700..0f11e719 100644 --- a/config.json +++ b/config.json @@ -1,4 +1,10 @@ { - "token" : "NzA0NDAwODc2ODYwNzM1NTY5.Xqdexg.BkhxqAkXpNZfcIzalW68jFw5DTI", - "prefix" : "./" -} \ No newline at end of file + "token" : "NzA0NDAwODc2ODYwNzM1NTY5.Xqdexg.BkhxqAkXpNZfcIzalW68jFw5DTI", + "token_dev" : "NzU1ODI1ODcwMTAyNTkzNjI2.X2I7sQ.nDesKkpHU-m5wdxZOdXmChlgnXU", + "prefix" : "./", + "owner_id" : 228666893068795905, + "portal_id" : 755825870102593626, + "delete_msg" : false, + "delete_msg_after" : 5, + "always_reply" : true + } \ No newline at end of file diff --git a/PortalDB/models/guild.model.js b/database/PortalDB/models/guild.model.js similarity index 100% rename from PortalDB/models/guild.model.js rename to database/PortalDB/models/guild.model.js diff --git a/PortalDB/models/member.model.js b/database/PortalDB/models/member.model.js similarity index 100% rename from PortalDB/models/member.model.js rename to database/PortalDB/models/member.model.js diff --git a/PortalDB/models/music_data.model.js b/database/PortalDB/models/music_data.model.js similarity index 100% rename from PortalDB/models/music_data.model.js rename to database/PortalDB/models/music_data.model.js diff --git a/PortalDB/models/portal.model.js b/database/PortalDB/models/portal.model.js similarity index 100% rename from PortalDB/models/portal.model.js rename to database/PortalDB/models/portal.model.js diff --git a/PortalDB/models/role.model.js b/database/PortalDB/models/role.model.js similarity index 100% rename from PortalDB/models/role.model.js rename to database/PortalDB/models/role.model.js diff --git a/PortalDB/models/voice.model.js b/database/PortalDB/models/voice.model.js similarity index 100% rename from PortalDB/models/voice.model.js rename to database/PortalDB/models/voice.model.js diff --git a/PortalDB/mongo_connection.js b/database/PortalDB/mongo_connection.js similarity index 100% rename from PortalDB/mongo_connection.js rename to database/PortalDB/mongo_connection.js diff --git a/PortalDB/mongo_schema_script.js b/database/PortalDB/mongo_schema_script.js similarity index 100% rename from PortalDB/mongo_schema_script.js rename to database/PortalDB/mongo_schema_script.js diff --git a/server_storage/guild_list.json b/database/guild_list.json similarity index 51% rename from server_storage/guild_list.json rename to database/guild_list.json index c27758b2..4d73711d 100644 --- a/server_storage/guild_list.json +++ b/database/guild_list.json @@ -1 +1 @@ -{"228667314252283904":{"portal_list":{"772258097875124234":{"creator_id":"228666893068795905","regex_portal":"game-launcher","regex_voice":"G$#-P$member_count | $status_list","no_bots":false,"limit_portal":4,"time_to_live":0,"refresh_rate":0,"locale":"gr","voice_list":{"764615071316967455":{"creator_id":"346306540308922387","regex":"G$#-P$member_count | $status_list","no_bots":false,"time_to_live":0,"refresh_rate":0,"locale":"gr","ann_announce":false,"ann_user":true}},"ann_announce":false,"ann_user":true}},"member_list":{"779828037898338306":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"424232862296834050":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"141355428352229376":{"level":2,"rank":0,"tier":0,"points":440.45,"timestamp":null},"358644113543004173":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"233681213506715649":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"688036058080083968":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"398910271164252167":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"397774224493903872":{"level":3,"rank":0,"tier":0,"points":2.7,"timestamp":null},"437935131936686120":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"245633518829305866":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"386599272587722752":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"285416786566971393":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"230995663607824386":{"level":16,"rank":0,"tier":3,"points":397.3499999999999,"timestamp":null},"222753236686209024":{"level":10,"rank":0,"tier":2,"points":957.4000000000001,"timestamp":null},"427540698544472085":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"233339202698215425":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"562010354540871712":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"346306540308922387":{"level":6,"rank":0,"tier":1,"points":634,"timestamp":null},"249594733150732290":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"394537380914397189":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"534388011857608705":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"362967897452314624":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"545021835432034304":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"248252695801102338":{"level":14,"rank":0,"tier":2,"points":1914.5,"timestamp":null},"547905866255433758":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"400770504539242496":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"317434205057318913":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"370147462893142017":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"476002321868914689":{"level":3,"rank":0,"tier":0,"points":0,"timestamp":null},"408955131690876938":{"level":2,"rank":0,"tier":0,"points":95.19999999999999,"timestamp":null},"159985870458322944":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"427926123859410944":{"level":5,"rank":0,"tier":1,"points":558.7000000000002,"timestamp":null},"449245494217015309":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"419927488563642375":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"231780831268438016":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"461124948560445450":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"404022320055975936":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"228666893068795905":{"level":14,"rank":0,"tier":2,"points":1568.449999999999,"timestamp":null},"231763688405598218":{"level":2,"rank":0,"tier":0,"points":389,"timestamp":null},"234402593256767491":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"690272852720746610":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"698597773712293938":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"370277653812477973":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"155149108183695360":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"232875205523931136":{"level":2,"rank":0,"tier":0,"points":0,"timestamp":null},"684814451345719316":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"148526306500280320":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"433795733230059520":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"233682014283235331":{"level":2,"rank":0,"tier":0,"points":0,"timestamp":null},"488405995979145236":{"level":3,"rank":0,"tier":0,"points":0,"timestamp":null},"659699741373759491":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"270707420831940618":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"534340160494632980":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"231373985420541952":{"level":2,"rank":0,"tier":0,"points":1,"timestamp":null},"142672003717922817":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"507202866537168906":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"406938957348339722":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"178625392586915840":{"level":5,"rank":0,"tier":1,"points":-970.65,"timestamp":"2020-09-22T22:04:21.053Z"},"395667507270254592":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"374865385909911553":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"533778497747812352":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"407615955812745217":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"326471246114062356":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"235088799074484224":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"231106885577605120":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"268865339041775618":{"level":15,"rank":0,"tier":3,"points":982.7000000000003,"timestamp":null},"590848955563376640":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"178621820457582602":{"level":5,"rank":0,"tier":1,"points":-209.6500000000001,"timestamp":null},"522844906243489793":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"540559238733234207":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"408684029039083520":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"642089816573607946":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"294539338119643137":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"537023025585848324":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"230430815505481729":{"level":5,"rank":0,"tier":1,"points":751.55,"timestamp":null}},"url_list":[],"role_list":{},"ranks":{},"auth_role":[],"spotify":null,"music_data":{"channel_id":"760550430429544529","message_id":"760550431154896968","votes":[]},"music_queue":[],"dispatcher":null,"announcement":null,"locale":"en","announce":0,"level_speed":"normal","premium":true},"710746690650374208":{"portal_list":{"758927627422924811":{"creator_id":"228666893068795905","regex_portal":"portal","regex_voice":"G$#-P$member_count | $status_list","no_bots":false,"limit_portal":0,"time_to_live":0,"refresh_rate":0,"locale":"en","voice_list":{},"ann_announce":false,"ann_user":true},"776058355734806538":{"creator_id":"228666893068795905","regex_portal":"test1","regex_voice":"G$#-P$member_count | $status_list","voice_list":{},"no_bots":false,"limit_portal":2,"time_to_live":0,"refresh_rate":0,"locale":"en","ann_announce":false,"ann_user":true,"user_limit_portal":2},"777528623124709397":{"creator_id":"228666893068795905","regex_portal":"hellp","regex_voice":"G$#-P$member_count | $status_list","voice_list":{},"no_bots":false,"limit_portal":2,"time_to_live":0,"refresh_rate":0,"locale":"en","ann_announce":false,"ann_user":true},"777528947965165578":{"creator_id":"228666893068795905","regex_portal":"heqawda","regex_voice":"G$#-P$member_count | $status_list","voice_list":{},"no_bots":false,"limit_portal":2,"time_to_live":0,"refresh_rate":0,"locale":"en","ann_announce":false,"ann_user":true},"777529488044720169":{"creator_id":"228666893068795905","regex_portal":"asdjak","regex_voice":"G$#-P$member_count | $status_list","voice_list":{},"no_bots":false,"limit_portal":2,"time_to_live":0,"refresh_rate":0,"locale":"en","ann_announce":false,"ann_user":true}},"member_list":{"159985870458322944":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"228666893068795905":{"level":11,"rank":0,"tier":2,"points":588.3499999999999,"timestamp":null}},"url_list":[],"role_list":{},"ranks":[{"level":2,"role":"tsiakkas","id":"725393012498366464"}],"auth_role":["725393012498366464","741552875196514415","741552931505176638"],"spotify":null,"music_data":{"channel_id":"777541284637179905","message_id":"777541285849595915","votes":[]},"music_queue":[],"dispatcher":null,"announcement":null,"locale":"en","announce":0,"level_speed":"normal","premium":true},"731942147531735121":{"portal_list":{"759471645264969758":{"creator_id":"228666893068795905","regex_portal":"portal","regex_voice":"Channel $#","no_bots":false,"limit_portal":0,"time_to_live":0,"refresh_rate":0,"locale":"en","voice_list":{},"ann_announce":false,"ann_user":true}},"member_list":{"228666893068795905":{"level":3,"rank":0,"tier":0,"points":8.7,"timestamp":null},"755825870102593626":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null}},"url_list":[],"role_list":{},"ranks":{},"auth_role":[],"spotify":null,"music_data":{"channel_id":null,"message_id":null,"votes":[]},"music_queue":[],"dispatcher":null,"announcement":null,"locale":"en","announce":0,"level_speed":"normal","premium":false},"705112209985896529":{"portal_list":{"759290019701063692":{"creator_id":"228666893068795905","regex_portal":"general-portal","regex_voice":"Channel $#","no_bots":false,"limit_portal":0,"time_to_live":0,"refresh_rate":0,"locale":"en","voice_list":{},"ann_announce":false,"ann_user":true}},"member_list":{"155149108183695360":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"159985870458322944":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"178621820457582602":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"222753236686209024":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"228666893068795905":{"level":2,"rank":0,"tier":0,"points":0.35000000000000003,"timestamp":null},"230995663607824386":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"235088799074484224":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"268865339041775618":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"317434205057318913":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"408955131690876938":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"428866923267358721":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"476002321868914689":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"488405995979145236":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null}},"url_list":["759290026050715668"],"role_list":{},"ranks":{},"auth_role":[],"spotify":"759290022116458507","music_data":{"channel_id":"759290028387074048","message_id":"759290030593277955","votes":[]},"music_queue":[],"dispatcher":null,"announcement":"759290023819477004","locale":"en","announce":0,"level_speed":"normal","premium":false},"544946964177879052":{"portal_list":{"772578902588653568":{"creator_id":"476002321868914689","regex_portal":"my_portal","regex_voice":"G$#-P$member_count | $status_list","no_bots":false,"limit_portal":0,"time_to_live":0,"refresh_rate":0,"locale":"en","voice_list":{},"ann_announce":false,"ann_user":true}},"member_list":{"488405995979145236":{"level":18,"rank":0,"tier":3,"points":875.4499999999998,"timestamp":null},"476002321868914689":{"level":16,"rank":0,"tier":3,"points":2424.6500000000005,"timestamp":null},"178625392586915840":{"level":5,"rank":0,"tier":1,"points":662.85,"timestamp":null},"178621820457582602":{"level":14,"rank":0,"tier":2,"points":1657.65,"timestamp":"2020-11-28T19:59:09.820Z"},"142672003717922817":{"level":5,"rank":0,"tier":1,"points":851,"timestamp":null},"163416718566227969":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"163419504674734080":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"184995276304416768":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"191679617730347008":{"level":2,"rank":0,"tier":0,"points":0,"timestamp":null},"228666893068795905":{"level":10,"rank":0,"tier":2,"points":1197.2999999999997,"timestamp":"2020-11-26T22:43:26.768Z"},"230995663607824386":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"422502204633645112":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"439030658619146240":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"439046172783411202":{"level":10,"rank":0,"tier":2,"points":1063,"timestamp":null},"488032511667208213":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"747543166508335194":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"750410949181046825":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null}},"url_list":["760952178067505255"],"role_list":{},"ranks":{},"auth_role":[],"spotify":"760952176243114045","music_data":{"channel_id":"760952179145310208","message_id":"760952180114325535","votes":[]},"music_queue":[],"dispatcher":null,"announcement":"760952177165729802","locale":"en","announce":0,"level_speed":"normal","premium":true}} \ No newline at end of file +{"228667314252283904":{"portal_list":{"772258097875124234":{"creator_id":"228666893068795905","regex_portal":"game-launcher","regex_voice":"G$#-P$member_count | $status_list","no_bots":false,"limit_portal":4,"time_to_live":0,"refresh_rate":0,"locale":"gr","voice_list":{"764615071316967455":{"creator_id":"346306540308922387","regex":"G$#-P$member_count | $status_list","no_bots":false,"time_to_live":0,"refresh_rate":0,"locale":"gr","ann_announce":false,"ann_user":true}},"ann_announce":false,"ann_user":true}},"member_list":{"779828037898338306":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"424232862296834050":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"141355428352229376":{"level":2,"rank":0,"tier":0,"points":440.45,"timestamp":null},"358644113543004173":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"233681213506715649":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"688036058080083968":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"398910271164252167":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"397774224493903872":{"level":3,"rank":0,"tier":0,"points":2.7,"timestamp":null},"437935131936686120":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"245633518829305866":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"386599272587722752":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"285416786566971393":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"230995663607824386":{"level":16,"rank":0,"tier":3,"points":397.3499999999999,"timestamp":null},"222753236686209024":{"level":10,"rank":0,"tier":2,"points":957.4000000000001,"timestamp":null},"427540698544472085":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"233339202698215425":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"562010354540871712":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"346306540308922387":{"level":6,"rank":0,"tier":1,"points":634,"timestamp":null},"249594733150732290":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"394537380914397189":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"534388011857608705":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"362967897452314624":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"545021835432034304":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"248252695801102338":{"level":14,"rank":0,"tier":2,"points":1914.5,"timestamp":null},"547905866255433758":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"400770504539242496":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"317434205057318913":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"370147462893142017":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"476002321868914689":{"level":3,"rank":0,"tier":0,"points":0,"timestamp":null},"408955131690876938":{"level":2,"rank":0,"tier":0,"points":95.19999999999999,"timestamp":null},"159985870458322944":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"427926123859410944":{"level":5,"rank":0,"tier":1,"points":558.7000000000002,"timestamp":null},"449245494217015309":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"419927488563642375":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"231780831268438016":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"461124948560445450":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"404022320055975936":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"228666893068795905":{"level":14,"rank":0,"tier":2,"points":1568.449999999999,"timestamp":null},"231763688405598218":{"level":2,"rank":0,"tier":0,"points":389,"timestamp":null},"234402593256767491":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"690272852720746610":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"698597773712293938":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"370277653812477973":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"155149108183695360":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"232875205523931136":{"level":2,"rank":0,"tier":0,"points":0,"timestamp":null},"684814451345719316":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"148526306500280320":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"433795733230059520":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"233682014283235331":{"level":2,"rank":0,"tier":0,"points":0,"timestamp":null},"488405995979145236":{"level":3,"rank":0,"tier":0,"points":0,"timestamp":null},"659699741373759491":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"270707420831940618":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"534340160494632980":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"231373985420541952":{"level":2,"rank":0,"tier":0,"points":1,"timestamp":null},"142672003717922817":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"507202866537168906":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"406938957348339722":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"178625392586915840":{"level":5,"rank":0,"tier":1,"points":-970.65,"timestamp":"2020-09-22T22:04:21.053Z"},"395667507270254592":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"374865385909911553":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"533778497747812352":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"407615955812745217":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"326471246114062356":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"235088799074484224":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"231106885577605120":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"268865339041775618":{"level":15,"rank":0,"tier":3,"points":982.7000000000003,"timestamp":null},"590848955563376640":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"178621820457582602":{"level":5,"rank":0,"tier":1,"points":-209.6500000000001,"timestamp":null},"522844906243489793":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"540559238733234207":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"408684029039083520":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"642089816573607946":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"294539338119643137":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"537023025585848324":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"230430815505481729":{"level":5,"rank":0,"tier":1,"points":751.55,"timestamp":null}},"url_list":[],"role_list":{},"ranks":{},"auth_role":[],"spotify":null,"music_data":{"channel_id":"760550430429544529","message_id":"760550431154896968","votes":[]},"music_queue":[],"dispatcher":null,"announcement":null,"locale":"en","announce":0,"level_speed":"normal","premium":true},"731942147531735121":{"portal_list":{"759471645264969758":{"creator_id":"228666893068795905","regex_portal":"portal","regex_voice":"Channel $#","no_bots":false,"limit_portal":0,"time_to_live":0,"refresh_rate":0,"locale":"en","voice_list":{},"ann_announce":false,"ann_user":true}},"member_list":{"228666893068795905":{"level":3,"rank":0,"tier":0,"points":8.7,"timestamp":null},"755825870102593626":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null}},"url_list":[],"role_list":{},"ranks":{},"auth_role":[],"spotify":null,"music_data":{"channel_id":null,"message_id":null,"votes":[]},"music_queue":[],"dispatcher":null,"announcement":null,"locale":"en","announce":0,"level_speed":"normal","premium":false},"705112209985896529":{"portal_list":{"759290019701063692":{"creator_id":"228666893068795905","regex_portal":"general-portal","regex_voice":"Channel $#","no_bots":false,"limit_portal":0,"time_to_live":0,"refresh_rate":0,"locale":"en","voice_list":{},"ann_announce":false,"ann_user":true}},"member_list":{"155149108183695360":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"159985870458322944":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"178621820457582602":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"222753236686209024":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"228666893068795905":{"level":2,"rank":0,"tier":0,"points":0.35000000000000003,"timestamp":null},"230995663607824386":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"235088799074484224":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"268865339041775618":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"317434205057318913":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"408955131690876938":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"428866923267358721":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"476002321868914689":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"488405995979145236":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null}},"url_list":["759290026050715668"],"role_list":{},"ranks":{},"auth_role":[],"spotify":"759290022116458507","music_data":{"channel_id":"759290028387074048","message_id":"759290030593277955","votes":[]},"music_queue":[],"dispatcher":null,"announcement":"759290023819477004","locale":"en","announce":0,"level_speed":"normal","premium":false},"544946964177879052":{"portal_list":{"772578902588653568":{"creator_id":"476002321868914689","regex_portal":"my_portal","regex_voice":"G$#-P$member_count | $status_list","no_bots":false,"limit_portal":0,"time_to_live":0,"refresh_rate":0,"locale":"en","voice_list":{},"ann_announce":false,"ann_user":true}},"member_list":{"488405995979145236":{"level":18,"rank":0,"tier":3,"points":875.4499999999998,"timestamp":null},"476002321868914689":{"level":16,"rank":0,"tier":3,"points":2424.6500000000005,"timestamp":null},"178625392586915840":{"level":5,"rank":0,"tier":1,"points":662.85,"timestamp":null},"178621820457582602":{"level":14,"rank":0,"tier":2,"points":1657.65,"timestamp":"2020-11-28T19:59:09.820Z"},"142672003717922817":{"level":5,"rank":0,"tier":1,"points":851,"timestamp":null},"163416718566227969":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"163419504674734080":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"184995276304416768":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"191679617730347008":{"level":2,"rank":0,"tier":0,"points":0,"timestamp":null},"228666893068795905":{"level":10,"rank":0,"tier":2,"points":1197.2999999999997,"timestamp":"2020-11-26T22:43:26.768Z"},"230995663607824386":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"422502204633645112":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"439030658619146240":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"439046172783411202":{"level":10,"rank":0,"tier":2,"points":1063,"timestamp":null},"488032511667208213":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"747543166508335194":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null},"750410949181046825":{"level":1,"rank":0,"tier":0,"points":0,"timestamp":null}},"url_list":["760952178067505255"],"role_list":{},"ranks":{},"auth_role":[],"spotify":"760952176243114045","music_data":{"channel_id":"760952179145310208","message_id":"760952180114325535","votes":[]},"music_queue":[],"dispatcher":null,"announcement":"760952177165729802","locale":"en","announce":0,"level_speed":"normal","premium":true},"710746690650374208":{"portal_list":{"792859571072139354":{"creator_id":"228666893068795905","regex_portal":"antigoni","regex_voice":"{{\n \"if\": \"$year\", \"is\": \"<=\", \"with\": \"2020\",\n \"yes\": \"Young\", \"no\": \"old\"\n}}","voice_list":{},"no_bots":false,"limit_portal":2,"time_to_live":0,"refresh_rate":0,"locale":"en","ann_announce":true,"ann_user":true},"793520182496591902":{"creator_id":"228666893068795905","regex_portal":"new","regex_voice":"G$#-P$member_count | $status_list","voice_list":{},"no_bots":false,"limit_portal":2,"time_to_live":0,"refresh_rate":0,"locale":"en","ann_announce":true,"ann_user":true}},"member_list":{"228666893068795905":{"level":10,"rank":0,"tier":2,"points":1368.2999999999997,"timestamp":null}},"url_list":["792859574431514685"],"role_list":{"793523333265883137":{"role_emote_map":[{"give":"❤️","strip":"💩","role":"plempa","id":"741552875196514415"},{"give":"🍉","strip":"😆","role":"tsiakkas","id":"725393012498366464"}]}},"ranks":{},"auth_role":[],"spotify":"792859572015595560","music_data":{"channel_id":"792859575476158514","message_id":"792859576605212732","votes":[]},"music_queue":[],"dispatcher":null,"announcement":"792859572829945907","locale":"en","announce":0,"level_speed":"normal","premium":true}} \ No newline at end of file diff --git a/docs/Attributes.md b/docs/Attributes.md new file mode 100644 index 00000000..0ccf1814 --- /dev/null +++ b/docs/Attributes.md @@ -0,0 +1,21 @@ +[back to readme](https://github.com/keybraker/portal-discord-bot) + +## Attributes + +* _prefix:_ __@__ +* _(Attributes are values that a channel has from its inception and are subject to change)_ + +| Attributes | Type | Default | Description | +| :--------- | :--------- | :--------- | :--------- | +`regex_portal` | string | _default regex_ | _regex-guidelines for how to display portal's title_ +`regex_voice` | string | _default regex_ | _regex-guidelines for how to display new voice (current portal)_ +`regex` | string | _default regex_ | _sets regex-guidelines for current voice_ +`locale_guild` | string (gr/en/de) | gr | _locale used for **Portal™**'s interactions_ +`locale_portal` | string (gr/en/de) | gr | _locale used for **Portal™**'s interactions_ +`locale` | string (gr/en/de) | gr | _locale used for **Portal™**'s interactions_ +`user_limit_portal` | number | 0 | _guidelines for max number of members for new voice channel from current portal_ +`user_limit` | number | 0 | _guidelines for max number of members for current voice_ +`bitrate_portal` | number | 64000 | _bitrate of current portal channel_ +`bitrate_voice` | number | 64000 | _bitrate of current voice channel_ +`position` | number | beneath portal | _position of channel_ +`last_update` | timestamp | timestamp | _returns the last update timestamp_ \ No newline at end of file diff --git a/docs/Pipes.md b/docs/Pipes.md new file mode 100644 index 00000000..35928df2 --- /dev/null +++ b/docs/Pipes.md @@ -0,0 +1,22 @@ +[back to readme](https://github.com/keybraker/portal-discord-bot) + +## Pipes + +* _prefix:_ __|__ +* _(Pipes are applied to variables or strings in order to change their outcome)_ + +| Pipe | Type | Description | +| :--------- | :--------- | :--------- | +`upperCase` | string | _returns an upperCase of the input_ +`lowerCase` | string | _returns an lowerCase of the input_ +`capitalize` | string | _returns an capitalize of the input_ +`decapitalize` | string | _returns an decapitalize of the input_ +`souvlakiCase` | string | _returns an souvlakiCase of the input_ +`snakeCase` | string | _returns an snakeCase of the input_ +`titleCase` | string | _returns an titleCase of the input_ +`camelCase` | string | _returns an camelCase of the input_ +`acronym` | string | _returns an acronym of the input_ +`word#` | string | _returns \# words of the input_ +`populous_count` | number | _returns the count of most common element in list_ +`populous` | list | _returns the name of the most common element in list_ +`summary_count` | number | _returns the count of members having a status_ \ No newline at end of file diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..2f66e2b2 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,86 @@ +![Node.js CI](https://github.com/keybraker/portal-discord-bot/workflows/Node.js%20CI/badge.svg) + +**Disclaimer[0]:** +> Portal will never record conversations or store anything you type + +**Disclaimer[1]:** +> Discord update their server rate limit to twice per 10 minutes +> [The new rate limit for channel name and topic updates is 2 updates per 10 minutes, per channel.](https://github.com/discordjs/discord.js/issues/4327) + +*** + +# [Portal™](https://github.com/keybraker/portal-discord-bot) alt text +A feature-rich channel manager for discord. + +Features: +* Automatically generates voice channels. +* Automatically updates the title of the channel in accordance to your regex guidlines. +* Assignes and strips roles from users with a single reaction press. +* Creates temporary "focus" channels for private conversations. +* Get the latest on the corona virus +* Spotify / Announcement / URL channels that allow any server to create and maintain clean announcement channels without being verified. + +*** + +## Commands + +**Portal™ prefix: ./** + +| Name | Description | Arguments | Eligible for use | Cooldown (mins) | +| :-------------- | :--------------------------------------------------------------- | :----------------------------------- | :--------------------------------------------- | :-------------- | +| `about` | _returns an about Portal message_ | _none_ | everyone | - | +| `announce` | _@title \| @body_ | everyone | 1 user | - | +| `announcement` | _creates a new or sets the current channel as announcement_ | _@channel\_name \| @category\_name_ | admin, | admin-role/s | +| `auth_role_add` | _add role to admin roles_ | _!role_ | admin, admin-role/s | - | +| `auth_role_rem` | _removes role from admin roles_ | _!role_ | admin, admin-role/s | - | +| `corona` | _replies with the daily state of corona virus cases_ | _@country code (gr, de, us, etc)_ | everyone | - | +| `focus` | _creates focus channel for you and your requested user_ | _!username @time (default 5minutes)_ | everyone | - | +| `force` | _clones current channel in order to force-update name_ | _none_ | admin, admin-role/s | 2 user | +| `help` | _returns a help-list if specified returns specific description_ | _@command/@vrbl/@func/@pipe/@attr_ | everyone | - | +| `join` | _joins current voice channel and announces events_ | _none_ | everyone | 1 user | +| `leave` | _removes Portal from voice channel_ | _none_ | everyone | - | +| `level` | _returns your level_ | _none_ | everyone | - | +| `music` | _creates a new or sets the current channel as music channel_ | _@channel\_name \| @category\_name_ | admin, admin-role/s | - | +| `ping` | _returns round trip latency_ | _none_ | everyone | - | +| `portal` | _creates a portal voice channel_ | _!channel\_name \| @category\_name_ | admin, admin-role/s | - | +| `ranks` | _returns ranks of ranking system_ | _none_ | everyone | - | +| `role` | _replies with a message that gives roles when an emote is added_ | _role json_ | admin, admin-role/s | - | +| `run` | _runs the given command string and returns its output_ | _!exec\_command_ | everyone | - | +| `save` | _saves current state of server_ | _none_ | admin, admin-role/s | 5 server | +| `set` | _sets the value of an attribute_ | _!attribute !value_ | voice owner/ portal owner, admin, admin-role/s | - | +| `set_ranks` | _sets roles that will be given when said level reached_ | _rank json_ | voice owner/ portal owner, admin, admin-role/ | 10 servers | +| `setup` | _creates an announcement, spotify, url-only and music channel_ | _none_ | admin, admin-role/s | 10 servers | +| `spotify` | _creates a new or sets the current channel as spotify channel_ | _@channel\_name \| @category\_name_ | admin, | admin-role/s | +| `url` | _creates a new or sets the current channel as url-only_ | _@channel\_name \| @category\_name_ | admin, admin-role/s | - | + +* _(Pipes are applied to variables or strings in order to change their outcome)_ +* _(default regex: G$#-P$member_count | $status_list)_ + +* symbol: ! _indicates beginning of mandatory argument **(should not be included)**_ +* symbol: @ _indicates beginning of mandatory argument **(should not be included)**_ + +*** + +## Regex Interpreter + +There are four types of data: +1. [Variables](https://github.com/keybraker/portal-discord-bot/docs/Variables.md), are data used to fetch information for the current state of the channel you are in. +2. [Attributes](https://github.com/keybraker/portal-discord-bot/docs/Attributes.md), are configuration data for Portal's use. +3. [Pipes](https://github.com/keybraker/portal-discord-bot/docs/Pipes.md), are functions that you can pass the strings or Variables to manipulate their outcome. +4. [Structures](https://github.com/keybraker/portal-discord-bot/docs/Structures.md), are conditional flow manipulators. + +## Release History + +| Version | Date | Argument | +| :------ | :--------- | :------- | +| 1.0.1 | 16-06-2020 | _Beta_ | +| 0.5.0 | 18-05-2020 | | +| 0.0.1 | 05-05-2020 | _Alpha_ | + +## Acknowledgements + +> Acknowledgments - _[Discord.js](https://discord.js.org/#/)_ +> Author - _[Ioannis Tsiakkas](https://itsiakkas.com)_ +> License - _[GNU LICENSE](http://www.gnu.org/philosophy/free-sw.html)_ + +Copyrights © Keybraker 2020 [Portal](https://github.com/keybraker/portal-discord-bot), All rights reserved diff --git a/docs/Structures.md b/docs/Structures.md new file mode 100644 index 00000000..3e4d6d61 --- /dev/null +++ b/docs/Structures.md @@ -0,0 +1,12 @@ +[back to readme](https://github.com/keybraker/portal-discord-bot) + +## Structures + +* _prefix:_ __{{__ +* _suffix:_ __}}__ +* _(Structures are grammatical attributes to control the structure of the output)_ + +| Attributes | Description | Usage | +| :--------- | :--------- | :--------- | +`if` | conditional statement | `{{ "if": "John", "is": "===", "with": "John", "yes": "same name", "no": "not the same name"}}` +*** \ No newline at end of file diff --git a/docs/Variables.md b/docs/Variables.md new file mode 100644 index 00000000..8b38ebfb --- /dev/null +++ b/docs/Variables.md @@ -0,0 +1,30 @@ +[back to readme](https://github.com/keybraker/portal-discord-bot) + +## Variables + +* _prefix:_ __$__ +* _(Variables are defacto data sources that can be accessed though calling them they are read-only)_ + +| Variable | Description | +| :--------- | :--------- | +`#` | _number of channel in list_ +`##` | _number of channel in list with \#_ +`date` | _full date: dd/mm/yyyy_ +`number_day` | _gets the day number_ +`name_day` | _gets the day name_ +`month` | _gets the month_ +`year` | _gets the year_ +`time` | _full time: hh/mm/ss_ +`hour` | _gets the hour_ +`minute` | _gets the minute_ +`second` | _gets the second_ +`status_list` | _list of current member statuses_ +`status_count` | _count of current member statuses_ +`status_history` | _history of all the statuses_ +`member_list` | _returns the currently played games_ +`member_count` | _number of members in channel_ +`member_active_count` | _number of members playing_ +`member_with_status` | _number of member with given status_ +`member_history` | _returns the currently played games_ +`creator_portal` | _creator of current voice\'s portal_ +`creator_voice` | _creator of current voice_ \ No newline at end of file diff --git a/functions/http_requests.js b/functions/http_requests.js deleted file mode 100644 index d412a475..00000000 --- a/functions/http_requests.js +++ /dev/null @@ -1,17 +0,0 @@ -/* eslint-disable no-cond-assign */ -/* eslint-disable no-unused-vars */ -const https = require('https'); - -module.exports = async (options) => { - return new Promise((resolve, reject) => { - const req = https.request(options, function(res) { - const chunks = []; - - res.on('data', function(chunk) { chunks.push(chunk); }); - res.on('end', function(chunk) { return resolve(Buffer.concat(chunks)); }); - res.on('error', function(error) { return reject(false); }); - }); - - req.end(); - }); -}; diff --git a/index.js b/index.js deleted file mode 100644 index c7569915..00000000 --- a/index.js +++ /dev/null @@ -1,369 +0,0 @@ -/* eslint-disable no-cond-assign */ -/* eslint-disable no-undef */ -// const mongoose = require('mongoose'); -// mongoose.connect('mongodb://localhost/PortalDB', { useNewUrlParser: true }) -// .catch(error => { -// console.error.bind(console, 'PortallDB connection error:'); -// console.log('Could not connect to PortalDB (mongo) with error:\n', error); -// return -1; -// }); - -// const PortalDB = mongoose.connection; -// PortalDB.once('open', function() { console.log('we\'re connected!'); }); - -const file_system = require('file-system'); - -const portal_managed_guilds_path = './server_storage/guild_list.json'; -const config = require('./config.json'); // config.token / config.prefix - -const guld_mngr = require('./functions/guild_manager'); -const help_mngr = require('./functions/help_manager'); -const lclz_mngr = require('./functions/localization_manager'); -const user_mngr = require('./functions/user_manager'); -const play_mngr = require('./functions/music_manager'); - -const active_cooldown = { guild: [], member: [] }; - -const command_cooldown = { - guild: { - purge: { time: 10, auth: true, premium: true }, save: { time: 5, auth: true, premium: true }, - setup: { time: 10, auth: true, premium: true }, set_ranks: { time: 10, auth: true, premium: true }, - }, - member: { - join: { time: 1, auth: false, premium: true }, announce: { time: 2, auth: false, premium: true }, - force: { time: 5, auth: true, premium: true }, - }, - none: { - leaderboard: { time: 0, auth: false, premium: false }, ranks: { time: 0, auth: false, premium: true }, - level: { time: 0, auth: false, premium: false }, about: { time: 0, auth: false, premium: false }, - portal: { time: 0, auth: true, premium: false }, help: { time: 0, auth: false, premium: false }, - ping: { time: 0, auth: false, premium: false }, set: { time: 0, auth: false, premium: true }, - role: { time: 0, auth: false, premium: true }, spotify: { time: 0, auth: true, premium: true }, - music: { time: 0, auth: true, premium: true }, announcement: { time: 0, auth: true, premium: true }, - url: { time: 0, auth: true, premium: true }, leave: { time: 0, auth: false, premium: true }, - focus: { time: 0, auth: false, premium: true }, corona: { time: 0, auth: false, premium: false }, - run: { time: 0, auth: false, premium: true }, auth_roles: { time: 0, auth: true, premium: true }, - auth_role_add: { time: 0, auth: true, premium: true }, auth_role_rem: { time: 0, auth: true, premium: true }, - }, -}; - -// Load up the discord.js library -const Discord = require('discord.js'); - -// This is the client the Portal Bot. Some people call it bot, some people call -// it 'self', client.user is actually the presence of portal bot in the server -const client = new Discord.Client({ partials: ['MESSAGE', 'CHANNEL', 'REACTION'] }); - -// List of all managed channels in servers -// let guilds = require('./server_storage/guild_list.json'); -const portal_managed_guilds = file_system.readFileSync(portal_managed_guilds_path); -const guild_list = help_mngr.getJSON(portal_managed_guilds); - -if(guild_list === null) { - console.log('guild json is corrupt'); - return; -} - -event_loader = function(event, args) { - console.log(`event emitted: ${event}`); - require(`./events/${event}.js`)(args) - .then(rspns => { - if(rspns !== null && rspns !== undefined) { - if(event === 'messageReactionAdd') { - const music_channel_id = args.guild_list[args.messageReaction.message.guild.id] - .music_data.channel_id; - const music_channel = args.messageReaction.message.guild.channels.cache - .find(channel => channel.id === music_channel_id); - - music_channel - .send(`${args.user}, ${rspns.value.toString()}`) - .then(msg => { msg.delete({ timeout: 5000 }); }) - .catch(error => console.log(error)); - } - else { - console.log(rspns.result, rspns.value); - } - } - }); -}; - -// This event will run if the bot starts, and logs in, successfully. -client.on('ready', () => - event_loader('ready', - { - 'client': client, 'guild_list': guild_list, - 'portal_managed_guilds_path': portal_managed_guilds_path, - }, - )); - -// When bot connects to shard again ? -client.on('shardReconnecting', id => - event_loader('shardReconnecting', - { - 'id': id, - }, - )); - -// This event triggers when the bot joins a guild. -client.on('guildDelete', guild => - event_loader('guildDelete', - { - 'guild': guild, 'guild_list': guild_list, - 'portal_managed_guilds_path': portal_managed_guilds_path, - }, - )); - -// this event triggers when the bot is removed from a guild. -client.on('guildCreate', guild => - event_loader('guildCreate', - { - 'client': client, 'guild': guild, 'guild_list': guild_list, - 'portal_managed_guilds_path': portal_managed_guilds_path, - }, - )); - -// This event triggers when the bot joins a guild. -client.on('channelDelete', channel => - event_loader('channelDelete', - { - 'channel': channel, 'guild_list': guild_list, - 'portal_managed_guilds_path': portal_managed_guilds_path, - }, - )); - -// This event triggers when a new member joins a guild. -client.on('guildMemberAdd', member => - event_loader('guildMemberAdd', - { - 'member': member, 'guild_list': guild_list, - 'portal_managed_guilds_path': portal_managed_guilds_path, - }, - )); - -// This event triggers when a new member leaves a guild. -client.on('guildMemberRemove', member => - event_loader('guildMemberRemove', - { - 'member': member, 'guild_list': guild_list, - 'portal_managed_guilds_path': portal_managed_guilds_path, - }, - )); - -// This event triggers when the status of a guild member has changed -client.on('presenceUpdate', (oldPresence, newPresence) => - event_loader('presenceUpdate', - { - 'client': client, 'guild_list': guild_list, - 'newPresence': newPresence, - }, - )); - -// This event triggers when a member reacts to a message -client.on('messageReactionAdd', (messageReaction, user) => - event_loader('messageReactionAdd', - { - 'client': client, 'guild_list': guild_list, - 'messageReaction': messageReaction, 'user': user, - }, - )); - -// This event triggers when a message is deleted -client.on('messageDelete', (message) => - event_loader('messageDelete', - { - 'client': client, 'guild_list': guild_list, - 'portal_managed_guilds_path': portal_managed_guilds_path, - 'message': message, - }, - )); - -// This event triggers when a member joins or leaves a voice channel -client.on('voiceStateUpdate', (oldState, newState) => - event_loader('voiceStateUpdate', - { - 'client': client, 'guild_list': guild_list, - 'portal_managed_guilds_path': portal_managed_guilds_path, - 'oldState': oldState, 'newState': newState, - }, - )); - -client.on('message', async message => { - // runs on every single message received, from any channel or DM - // Ignore other bots and also itself ('botception') - if (message.author.bot) return; - - // Ignore any direct message - if (message.channel.type === 'dm') return; - - // Check if something written in url channel - let channel_type = null, channel_support = null, channel_talk = null; - - if (guld_mngr.included_in_url_list(message.channel.id, guild_list[message.guild.id])) { - if(help_mngr.is_url(message.content)) { - lclz_mngr.client_talk(client, guild_list, 'url'); - return; - } - else { - channel_type = 'URL'; - channel_support = 'url'; - channel_talk = 'read_only'; - } - } - else if (guild_list[message.guild.id].music_data.channel_id === message.channel.id) { - play_mngr.start(client, message, message.content.toString(), guild_list) - .then(joined => { - help_mngr.message_reply( - joined.result, message.author.presence.member.voice.channel, - message, message.author, joined.value, guild_list, client, true); - }) - .catch(error => { - console.log(error); - message.delete(); - }); - return; - } - - if (channel_type !== null && channel_support !== null && channel_talk !== null) { - lclz_mngr.client_talk(client, guild_list, channel_talk); - help_mngr.message_reply( - null, message.author.presence.member.voice.channel, message, - message.author, `${channel_type} channel is ${channel_support}-only.`, - guild_list, client); - message.delete(); - return; - } - - // ranking system - const level = user_mngr.add_points_message(message, guild_list); - if(level) { - help_mngr.message_reply( - null, message.author.presence.member.voice.channel, message, - message.author, `You reached level ${level}!`, - guild_list, client); - } - help_mngr.update_portal_managed_guilds(true, portal_managed_guilds_path, guild_list); - - // require('./moderation/bad_word_check.js')(message.content.trim().split(/ +/g)) - // .then(rspns => { - // message.react('🚩'); - // if (rspns) { - // help_mngr.message_reply( - // rspns.result, message.author.presence.member.voice.channel, message, message.author, - // rspns.value, guild_list, client, false, '✔️', '🚩'); - // } - // }); - - // Ignore any message that does not start with prefix - if (message.content.indexOf(config.prefix) !== 0) return; - - // Separate function name, and arguments of function - const args = message.content.slice(config.prefix.length).trim().split(/ +/g); - const cmd = args.shift().toLowerCase(); - let type = null; - - if (command_cooldown.guild[cmd]) { - type = 'guild'; - } - else if (command_cooldown.member[cmd]) { - type = 'member'; - } - else if (command_cooldown.none[cmd]) { - type = 'none'; - } - else { - return; - } - - if (command_cooldown[type][cmd].auth) { - const is_user_authorized = help_mngr.is_authorized(guild_list[message.guild.id].auth_role, message.member); - - if (!is_user_authorized) { - help_mngr.message_reply(false, message.author.presence.member.voice.channel, message, message.author, - 'you are not authorized to access this command', guild_list, client); - return; - } - } - - if (command_cooldown[type][cmd].premium && !guild_list[message.guild.id].premium) { - help_mngr.message_reply( - false, message.author.presence.member.voice.channel, message, - message.author, 'this server is not premium', guild_list, client); - return; - } - // else { - // help_mngr.message_reply(true, message.author.presence.member.voice.channel, message, message.author, - // 'you are authorized to access this command', guild_list, client); - // } - - if (type === 'none' && command_cooldown.none[cmd].time === 0) { - require(`./commands/${cmd}.js`)(client, message, args, guild_list, portal_managed_guilds_path) - .then(rspns => { - if(rspns) { - if (rspns.result === true) { - help_mngr.message_reply(true, message.author.presence.member.voice.channel, message, - message.author, rspns.value, guild_list, client); - } - else if (rspns.result === false) { - help_mngr.message_reply(rspns.result, message.author.presence.member.voice.channel, message, - message.author, rspns.value, guild_list, client); - } - } - help_mngr.update_portal_managed_guilds(true, portal_managed_guilds_path, guild_list); - - // help_mngr.message_reply(rspns, message.author.presence.member.voice.channel, message, - // message.author, rspns ? 'executed correctly' : 'executed falsely', guild_list, client); - }); - - - return; - } - - if (active = active_cooldown[type].find(active => - (type === 'member' && active.member === message.author.id && active.command === cmd) - ? true : (type === 'guild' && active.command === cmd))) { - const time = help_mngr.time_elapsed(active.timestamp, command_cooldown[type][cmd].time); - - help_mngr.message_reply( - false, message.author.presence.member.voice.channel, message, - message.author, `*you need to wait* **${help_mngr.pad(time.remaining_min)}:` + - `${help_mngr.pad(time.remaining_sec)}/${help_mngr.pad(time.timeout_min)}:` + - `${help_mngr.pad(time.timeout_sec)}** *to use* **${cmd}** *again${type === 'member' - ? '.*' - : `, as it was used again in* **${message.guild.name}**.`}`, - guild_list, client); - - return; - } - - require(`./commands/${cmd}.js`)(client, message, args, guild_list, portal_managed_guilds_path) - .then(rspns => { - if (rspns.result === true) { - active_cooldown[type].push({ - member: message.author.id, command: cmd, - timestamp: Date.now(), - }); - - setTimeout(() => { - active_cooldown[type] = active_cooldown[type].filter( - active => active.command !== cmd); - }, command_cooldown[type][cmd].time * 60 * 1000); - - help_mngr.message_reply(true, message.author.presence.member.voice.channel, message, - message.author, rspns ? 'executed correctly' : rspns.value, guild_list, client); - } - else if (rspns.result === false) { - help_mngr.message_reply(rspns.result, message.author.presence.member.voice.channel, message, - message.author, rspns.value, guild_list, client); - } - - help_mngr.update_portal_managed_guilds(true, portal_managed_guilds_path, guild_list); - - help_mngr.message_reply(rspns, message.author.presence.member.voice.channel, message, - message.author, rspns ? 'executed correctly' : 'executed falsely', guild_list, client); - }); -}); - -client.login(config.token); - -// console.log('Object.getOwnPropertyNames(message)= ', Object.getOwnPropertyNames(message)) -// console.log('Object.getOwnPropertyNames(message.author)= ', Object.getOwnPropertyNames(message.author)) \ No newline at end of file diff --git a/moderation/bad_word_check.js b/moderation/bad_word_check.js deleted file mode 100644 index 25877f58..00000000 --- a/moderation/bad_word_check.js +++ /dev/null @@ -1,35 +0,0 @@ -/* eslint-disable no-unused-vars */ -const country_codes = require('../assets/jsons/country_codes_2.json'); -const bad_words_by_country = require('../assets/jsons/bad_words_by_country.json'); - -const http_mngr = require('../functions/http_requests'); -const help_mngr = require('../functions/help_manager'); - -const moment = require('moment'); -const voca = require('voca'); - -const is_bad_word = function(sentence) { - for (let i = 0; i < sentence.length; i++) { - for (const country in bad_words_by_country) { - for (let j = 0; j < bad_words_by_country[country].length; j++) { - if (bad_words_by_country[country][j] === sentence[i]) { - return { word: sentence[i], country: country }; - } - } - } - } - console.log('did not find any bad word'); - return false; -}; - -module.exports = async (args) => { - return new Promise((resolve) => { - const is_bad = is_bad_word(args); - if (is_bad) { - return resolve({ - result: false, - value: `please do not swear **!${is_bad.word} (${is_bad.country })**`, - }); - } - }); -}; diff --git a/package-lock.json b/package-lock.json index 3ca9e810..19a2679d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,52 +1,8770 @@ { "name": "portal", - "version": "1.2.0", - "lockfileVersion": 1, + "version": "1.2.1", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "portal", + "version": "1.2.1", + "dependencies": { + "@discordjs/opus": "^0.3.3", + "discord-ytdl-core": "^5.0.0", + "discord.js": "^12.5.1", + "ffmpeg-static": "^4.2.7", + "file-system": "^2.2.2", + "give-me-a-joke": "^0.4.0", + "jest": "^26.6.3", + "jest-discordjs-mocks": "^1.0.2", + "lodash": "^4.17.20", + "moment": "^2.29.1", + "roll": "^1.3.1", + "voca": "^1.4.0", + "yt-search": "^2.5.1", + "ytdl-core": "^4.2.1" + }, + "devDependencies": { + "@types/node": "^10.17.50", + "eslint": "^7.16.0", + "nodemon": "^2.0.6" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/core": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", + "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dependencies": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dependencies": { + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dependencies": { + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dependencies": { + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "node_modules/@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dependencies": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/traverse": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dependencies": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" + } + }, + "node_modules/@derhuerst/http-basic": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@derhuerst/http-basic/-/http-basic-8.2.1.tgz", + "integrity": "sha512-Rmn7qQQulw2sxJ8qGfZ7OuqMWuhz8V+L5xnYKMF5cXVcYqmgWqlVEAme90pF7Ya8OVhxVxLmhh0rI2k6t7ITWw==", + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@discordjs/collection": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", + "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" + }, + "node_modules/@discordjs/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@discordjs/node-pre-gyp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@discordjs/node-pre-gyp/-/node-pre-gyp-0.1.0.tgz", + "integrity": "sha512-6u3EbK2x+j9bM3iK9/pE7BWLxOXZ1PvcsbDo3ZBdPocu95qPHj8zCVsBBk3Cao7V6o8QpwxUyJl6oVJ6T3ZgAg==", + "dependencies": { + "detect-libc": "^1.0.3", + "mkdirp": "^0.5.5", + "needle": "^2.4.1", + "nopt": "^4.0.3", + "npm-packlist": "^1.4.8", + "npmlog": "^4.1.2", + "rc": "^1.2.8", + "rimraf": "^3.0.2", + "semver": "^7.3.0", + "tar": "^6.0.2" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@discordjs/opus": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@discordjs/opus/-/opus-0.3.3.tgz", + "integrity": "sha512-n3hUs4RY0K8cz8vJ2GiZE4EdJlexoxs1vGsaft5lZlAnU6wsZfncpv4px+HVOMKN8ddtjriGfsrG4lVkAyZcmQ==", + "hasInstallScript": true, + "dependencies": { + "@discordjs/node-pre-gyp": "^0.1.0", + "node-addon-api": "^3.0.2" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", + "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "dependencies": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "dependencies": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "node-notifier": "^8.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "dependencies": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", + "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", + "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", + "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz", + "integrity": "sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "26.0.19", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.19.tgz", + "integrity": "sha512-jqHoirTG61fee6v6rwbnEuKhpSKih0tuhqeFbCmMmErhtu3BYlOZaXWjffgOstMM4S/3iQD31lI5bGLTrs97yQ==", + "dependencies": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "node_modules/@types/node": { + "version": "10.17.50", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.50.tgz", + "integrity": "sha512-vwX+/ija9xKc/z9VqMCdbf4WYcMTGsI0I/L/6shIF3qXURxZOhPQlPRHtjTpiNhAwn0paMJzlOQqw6mAGEQnTA==" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" + }, + "node_modules/@types/prettier": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.6.tgz", + "integrity": "sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA==" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==" + }, + "node_modules/@types/yargs": { + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", + "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "dependencies": { + "string-width": "^3.0.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "node_modules/are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async.parallellimit": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.parallellimit/-/async.parallellimit-0.5.2.tgz", + "integrity": "sha1-v9y/Lwgy8f/0wLM1S09jIGY91R8=", + "dependencies": { + "async.util.eachoflimit": "0.5.2", + "async.util.parallel": "0.5.2" + } + }, + "node_modules/async.util.eachoflimit": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.eachoflimit/-/async.util.eachoflimit-0.5.2.tgz", + "integrity": "sha1-i4y4z7AniqXOtQqPgAwcJmjbV+8=", + "dependencies": { + "async.util.keyiterator": "0.5.2", + "async.util.noop": "0.5.2", + "async.util.once": "0.5.2", + "async.util.onlyonce": "0.5.2" + } + }, + "node_modules/async.util.isarray": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.isarray/-/async.util.isarray-0.5.2.tgz", + "integrity": "sha1-5i2sjyY29lh13PdSHC0k0N+yu98=" + }, + "node_modules/async.util.isarraylike": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.isarraylike/-/async.util.isarraylike-0.5.2.tgz", + "integrity": "sha1-jn+H2pFB8vCZboBAR30NTv4/UPg=", + "dependencies": { + "async.util.isarray": "0.5.2" + } + }, + "node_modules/async.util.keyiterator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.keyiterator/-/async.util.keyiterator-0.5.2.tgz", + "integrity": "sha1-M55s6PidAAQz+3gU4ico8/F1CQ0=", + "dependencies": { + "async.util.isarraylike": "0.5.2", + "async.util.keys": "0.5.2" + } + }, + "node_modules/async.util.keys": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.keys/-/async.util.keys-0.5.2.tgz", + "integrity": "sha1-XDTd2KPtt6eIPJtf4hJngbIJivY=" + }, + "node_modules/async.util.noop": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.noop/-/async.util.noop-0.5.2.tgz", + "integrity": "sha1-vdYrl8sKo/YLWGrRSEaGmJdeWLk=" + }, + "node_modules/async.util.once": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.once/-/async.util.once-0.5.2.tgz", + "integrity": "sha1-FFPLdATK0IImlPq6vEepblyqchY=" + }, + "node_modules/async.util.onlyonce": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.onlyonce/-/async.util.onlyonce-0.5.2.tgz", + "integrity": "sha1-uOb8AErckjFk154y8oE+5GXCT/I=" + }, + "node_modules/async.util.parallel": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.parallel/-/async.util.parallel-0.5.2.tgz", + "integrity": "sha1-IzUk49b6/9XplddUdrjZJPloCM0=", + "dependencies": { + "async.util.isarraylike": "0.5.2", + "async.util.noop": "0.5.2", + "async.util.restparam": "0.5.2" + } + }, + "node_modules/async.util.restparam": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/async.util.restparam/-/async.util.restparam-0.5.2.tgz", + "integrity": "sha1-A+/r88Ane5ciDlJaunUPXgT8gM0=" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/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=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410", + "dependencies": { + "follow-redirects": "1.5.10" + } + }, + "node_modules/babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "dependencies": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "dependencies": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": ">= 10.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "node_modules/boolstring": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/boolstring/-/boolstring-1.0.2.tgz", + "integrity": "sha512-0JLNSmZUv1m/O8sVayFm2t0naiOXwQ9O2Gq9u1eoIkhvu6U5NQER/e3k4BGpjZ33G775lWMT7TzJ7r5VtmEnbQ==" + }, + "node_modules/boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/boxen/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dependencies": { + "rsvp": "^4.8.4" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "dependencies": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==" + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.2.0.tgz", + "integrity": "sha1-OlrnT9drYmevZm5p4q+70B3vNNE=", + "dependencies": { + "ansi-regex": "^2.1.1", + "d": "1", + "es5-ext": "^0.10.12", + "es6-iterator": "2", + "memoizee": "^0.4.3", + "timers-ext": "0.1" + } + }, + "node_modules/cli-color/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "node_modules/css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "engines": { + "node": "*" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dasu": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/dasu/-/dasu-0.4.1.tgz", + "integrity": "sha512-+fDXmFqrsZfuCr3dwSxm0pyK5RTiIBFBJiWTG6HaZQc9FhoqT4o9KQFEfGllic0S2gEpzHYMirzqJ5qSh+mOrQ==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/discord-ytdl-core": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/discord-ytdl-core/-/discord-ytdl-core-5.0.0.tgz", + "integrity": "sha512-lhk3VabO3vC+57ZIL0yOCaB5eyco9qmygmXwHoAr9c4VVzG9e02iGCvLAYzMIxOoBtuIggavNLwFTZ6gO6byJA==", + "dependencies": { + "prism-media": "^1.2.2" + }, + "funding": { + "type": "individual", + "url": "https://paypal.me/devsnowflake" + } + }, + "node_modules/discord.js": { + "version": "12.5.1", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.1.tgz", + "integrity": "sha512-VwZkVaUAIOB9mKdca0I5MefPMTQJTNg0qdgi1huF3iwsFwJ0L5s/Y69AQe+iPmjuV6j9rtKoG0Ta0n9vgEIL6w==", + "dependencies": { + "@discordjs/collection": "^0.1.6", + "@discordjs/form-data": "^3.0.1", + "abort-controller": "^3.0.0", + "node-fetch": "^2.6.1", + "prism-media": "^1.2.2", + "setimmediate": "^1.0.5", + "tweetnacl": "^1.0.3", + "ws": "^7.3.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.16.0.tgz", + "integrity": "sha512-iVWPS785RuDA4dWuhhgXTNrGxHHK3a8HLSMBgbbU59ruJDubUraXN8N5rn7kb8tG6sjg74eE0RA3YWT51eusEw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.2.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^6.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.4", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==" + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/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==" + }, + "node_modules/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==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/ffmpeg-static": { + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-4.2.7.tgz", + "integrity": "sha512-SGnOr2d+k0/9toRIv9t5/hN/DMYbm5XMtG0wVwGM1tEyXJAD6dbcWOEvfHq4LOySm9uykKL6LMC4eVPeteUnbQ==", + "hasInstallScript": true, + "license": "GPL-3.0-or-later", + "dependencies": { + "@derhuerst/http-basic": "^8.2.0", + "env-paths": "^2.2.0", + "https-proxy-agent": "^5.0.0", + "progress": "^2.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", + "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/file-match/-/file-match-1.0.2.tgz", + "integrity": "sha1-ycrSZdLIrfOoFHWw30dYWQafrvc=", + "dependencies": { + "utils-extend": "^1.0.6" + } + }, + "node_modules/file-system": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/file-system/-/file-system-2.2.2.tgz", + "integrity": "sha1-fWWDPjojR9zZVqgTxncVPtPt2Yc=", + "license": "ISC", + "dependencies": { + "file-match": "^1.0.1", + "utils-extend": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", + "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dependencies": { + "debug": "=3.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/follow-redirects/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/follow-redirects/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/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==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "deprecated": "Please update to v 2.2.x", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/give-me-a-joke": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/give-me-a-joke/-/give-me-a-joke-0.4.0.tgz", + "integrity": "sha512-qWB6H6QxToUuWrW79BYlWkFVQrlKahCrF5hXtBndthgOgG219SeKakzgBNEFsZItVzHgVjihR5zKJeu1pf1JMw==", + "dependencies": { + "axios": "^0.19.2" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dev": true, + "dependencies": { + "ini": "1.3.7" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true + }, + "node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "node_modules/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "optional": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/htmlparser2/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/human-time": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/human-time/-/human-time-0.0.2.tgz", + "integrity": "sha512-sbYI90YhYmstslPTb70BLGjy6mdESa0lxL7uDR4fIVAx9Iobz8fLEqi7FqF4Q/6vblrzZALg//MsYJlIPBU8SA==" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "node_modules/ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "optional": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=" + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "optional": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", + "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "dependencies": { + "@jest/core": "^26.6.3", + "import-local": "^3.0.2", + "jest-cli": "^26.6.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "dependencies": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dependencies": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-discordjs-mocks": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jest-discordjs-mocks/-/jest-discordjs-mocks-1.0.2.tgz", + "integrity": "sha512-S3wng0scR9GsUZwj4NW/PDCHpPptWQTJz8mqW4lEfOiNl+l8/XQpBYh2dPQq5zFkhnXTb9WRG0DThcB0OOBrhg==", + "dependencies": { + "@types/jest": "^26.0.8", + "discord.js": "^12.2.0", + "jest": "^26.2.2" + } + }, + "node_modules/jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "dependencies": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dependencies": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "fsevents": "^2.1.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "dependencies": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "dependencies": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "dependencies": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "dependencies": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "bin": { + "jest-runtime": "bin/jest-runtime.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "dependencies": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "dependencies": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "dependencies": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/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==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/jsdom": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", + "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "dependencies": { + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "node_modules/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==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/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=" + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonpath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", + "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", + "hasInstallScript": true, + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.7.0" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/keypress": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", + "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "license": "MIT" + }, + "node_modules/lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" + }, + "node_modules/lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "node_modules/lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + }, + "node_modules/lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" + }, + "node_modules/lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" + }, + "node_modules/lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/m3u8stream": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.3.tgz", + "integrity": "sha512-0nAcdrF8YJKUkb6PzWdvGftTPyCVWgoiot1AkNVbPKTeIGsWs6DrOjifrJ0Zi8WQfQmD2SuVCjkYIOip12igng==", + "dependencies": { + "miniget": "^4.0.0", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dependencies": { + "tmpl": "1.0.x" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/memoizee": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", + "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.45", + "es6-weak-map": "^2.0.2", + "event-emitter": "^0.3.5", + "is-promise": "^2.1", + "lru-queue": "0.1", + "next-tick": "1", + "timers-ext": "^0.1.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/miniget": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.1.0.tgz", + "integrity": "sha512-kzhrNv5L7LlomwGmPGQsLQ2PnT1LeJJWfB0wNFGyv426gEM1gsfziBQmfkr6XOBA8EusZg9nowlNT5CbuKTjZg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "node_modules/needle": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz", + "integrity": "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==", + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node_modules/node-addon-api": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", + "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-fzf": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/node-fzf/-/node-fzf-0.5.3.tgz", + "integrity": "sha512-crN8rRfApu/GUrtKq+zJ6LueUyNAOJpFHxoT2Ru1Q+OYRa/F/H7CXvzcMrFc7D964yakYZEZ9XR3YbdSHXgyCw==", + "dependencies": { + "cli-color": "~1.2.0", + "keypress": "~0.2.1", + "minimist": "~1.2.0", + "redstar": "0.0.2", + "string-width": "~2.1.1", + "ttys": "0.0.3" + }, + "bin": { + "nfzf": "bin/cli.js" + } + }, + "node_modules/node-fzf/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "engines": { + "node": ">=4" + } + }, + "node_modules/node-fzf/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "engines": { + "node": ">=4" + } + }, + "node_modules/node-fzf/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/node-fzf/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node_modules/node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-notifier": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", + "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "optional": true, + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + } + }, + "node_modules/nodemon": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz", + "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + }, + "node_modules/npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=" + }, + "node_modules/parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dependencies": { + "node-modules-regexp": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/prism-media": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.3.tgz", + "integrity": "sha512-fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A==", + "peerDependencies": { + "@discordjs/opus": "^0.3.3", + "ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0", + "node-opus": "^0.3.3", + "opusscript": "^0.0.7" + }, + "peerDependenciesMeta": { + "@discordjs/opus": { + "optional": true + }, + "ffmpeg-static": { + "optional": true + }, + "node-opus": { + "optional": true + }, + "opusscript": { + "optional": true + } + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", + "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redstar": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/redstar/-/redstar-0.0.2.tgz", + "integrity": "sha1-nVammAY4yYUaEAsMs799PrkCBcs=", + "dependencies": { + "minimatch": "~3.0.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/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==", + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dependencies": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native/node_modules/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==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/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==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/roll": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/roll/-/roll-1.3.1.tgz", + "integrity": "sha512-f6ePWG9fqC5RZE4CqFfxSqfvpOs3sZlxpvtdpNCHPKz76L1oJP8wQzqrMCHpXg8Ahc+53A7RPXMptDUxwciZow==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "roll": "bin/roll" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "engines": { + "node": "6.* || >= 7.*" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dependencies": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "bin": { + "sane": "src/cli.js" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/sane/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/sane/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/sane/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sane/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sane/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "engines": { + "node": ">=4" + } + }, + "node_modules/sane/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/sane/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "optional": true + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "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" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-length": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", + "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/table": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.4.tgz", + "integrity": "sha512-sBT4xRLdALd+NFBvwOz8bw4b15htyythha+q+DVZqy2RS08PPC8O2sZFgJYEY7bJvbCFKccs+WIZ/cd+xxTWCw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + }, + "node_modules/timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dependencies": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "node_modules/tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/touch/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dependencies": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ttys": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/ttys/-/ttys-0.0.3.tgz", + "integrity": "sha1-FbrN54MQIN5fLyjwGxcy7wNlH00=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dev": true, + "dependencies": { + "debug": "^2.2.0" + } + }, + "node_modules/undefsafe/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/undefsafe/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dev": true, + "dependencies": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/utils-extend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/utils-extend/-/utils-extend-1.0.8.tgz", + "integrity": "sha1-zP17ZFQPjpDuIe7Fd2nQZRyril8=" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", + "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/voca": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/voca/-/voca-1.4.0.tgz", + "integrity": "sha512-8Xz4H3vhYRGbFupLtl6dHwMx0ojUcjt0HYkqZ9oBCfipd/5mD7Md58m2/dq7uPuZU/0T3Gb1m66KS9jn+I+14Q==", + "license": "MIT" + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dependencies": { + "makeerror": "1.0.x" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/widest-line/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", + "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yt-search": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yt-search/-/yt-search-2.5.1.tgz", + "integrity": "sha512-RD2pZwU4ac4Q0Cku1oeas2T3cRliEFzPsMvkrjf5D1JxP4l7sPeJhRhC4vjDdEwBdHr78Ka5NyMpbaNKZ17/WQ==", + "license": "MIT", + "dependencies": { + "async.parallellimit": "~0.5.2", + "boolstring": "~1.0.2", + "cheerio": "~0.22.0", + "dasu": "~0.4.1", + "human-time": "0.0.2", + "jsonpath": "~1.0.2", + "minimist": "~1.2.5", + "node-fzf": "~0.5.1" + }, + "bin": { + "yt-search": "bin/cli.js", + "yt-search-audio": "bin/mpv_audio.sh", + "yt-search-video": "bin/mpv_video.sh" + } + }, + "node_modules/ytdl-core": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.2.1.tgz", + "integrity": "sha512-7zAoJiWpaBGgiAUCQuvKBuWom7tmSCV0A70gRdrPxR96yQoJOrCZkW6Wg1CofvPtAeQVWTVWThC8bXRsE+SBeA==", + "license": "MIT", + "dependencies": { + "m3u8stream": "^0.8.3", + "miniget": "^4.0.0", + "sax": "^1.1.3" + }, + "engines": { + "node": ">=10" + } + } + }, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "requires": { "@babel/highlight": "^7.10.4" } }, - "@babel/helper-validator-identifier": { + "@babel/core": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", + "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "requires": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "requires": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "requires": { + "@babel/types": "^7.12.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "requires": { + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } }, "@babel/highlight": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==" + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "@babel/traverse": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "requires": { + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" } } }, + "@babel/types": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, "@derhuerst/http-basic": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@derhuerst/http-basic/-/http-basic-8.2.0.tgz", - "integrity": "sha512-v1cqPUpFjU8DInW4YkC9caGKy8kUkqz0z10yCHawkxgpaJPId0F5xKi8fUY5rqC58F9Muz9T136jNReZQH9xIw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@derhuerst/http-basic/-/http-basic-8.2.1.tgz", + "integrity": "sha512-Rmn7qQQulw2sxJ8qGfZ7OuqMWuhz8V+L5xnYKMF5cXVcYqmgWqlVEAme90pF7Ya8OVhxVxLmhh0rI2k6t7ITWw==", "requires": { "caseless": "^0.12.0", "concat-stream": "^1.6.2", @@ -87,18 +8805,18 @@ } }, "@discordjs/opus": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@discordjs/opus/-/opus-0.3.2.tgz", - "integrity": "sha512-T/ubykd4Xi19vDfw7/Oe+iTQBJ28yMI2PQAzK+Zue0PB9OpEYaeIXU7k5255061RwL+rHX9w7P/P2of+x2Vu2A==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@discordjs/opus/-/opus-0.3.3.tgz", + "integrity": "sha512-n3hUs4RY0K8cz8vJ2GiZE4EdJlexoxs1vGsaft5lZlAnU6wsZfncpv4px+HVOMKN8ddtjriGfsrG4lVkAyZcmQ==", "requires": { "@discordjs/node-pre-gyp": "^0.1.0", - "node-addon-api": "^2.0.0" + "node-addon-api": "^3.0.2" } }, "@eslint/eslintrc": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", - "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", + "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -111,50 +8829,356 @@ "lodash": "^4.17.19", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "dependencies": { - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" } } }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==" + }, + "@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "requires": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + } + }, + "@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "requires": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "requires": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + } + }, + "@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + } + }, + "@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "requires": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + } + }, + "@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/babel__core": { + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", + "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", + "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", + "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/graceful-fs": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz", + "integrity": "sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==", + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "26.0.19", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.19.tgz", + "integrity": "sha512-jqHoirTG61fee6v6rwbnEuKhpSKih0tuhqeFbCmMmErhtu3BYlOZaXWjffgOstMM4S/3iQD31lI5bGLTrs97yQ==", + "requires": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "@types/node": { + "version": "10.17.50", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.50.tgz", + "integrity": "sha512-vwX+/ija9xKc/z9VqMCdbf4WYcMTGsI0I/L/6shIF3qXURxZOhPQlPRHtjTpiNhAwn0paMJzlOQqw6mAGEQnTA==" }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" + }, + "@types/prettier": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.6.tgz", + "integrity": "sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA==" + }, + "@types/stack-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==" + }, + "@types/yargs": { + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", + "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", "requires": { - "defer-to-connect": "^1.0.1" + "@types/yargs-parser": "*" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true + "@types/yargs-parser": { + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" }, - "@types/node": { - "version": "10.17.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.29.tgz", - "integrity": "sha512-zLo9rjUeQ5+QVhOufDwrb3XKyso31fJBJnk9wUUQIBDExF/O4LryvpOfozfUaxgqifTnlt7FyqsAPXUq5yFZSA==" + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" }, "abbrev": { "version": "1.1.1", @@ -172,38 +9196,41 @@ "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } }, "acorn-jsx": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" }, "agent-base": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", - "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "requires": { "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } } }, "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", @@ -260,25 +9287,38 @@ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + } + } + }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -302,15 +9342,52 @@ "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" } }, - "astral-regex": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "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=" + }, + "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async.parallellimit": { @@ -395,31 +9472,145 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "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=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "requires": { + "follow-redirects": "1.5.10" + } + }, + "babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "requires": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "requires": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } + } + }, "binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, - "bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" - }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -446,22 +9637,6 @@ "widest-line": "^3.1.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -472,33 +9647,12 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -515,24 +9669,6 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -549,21 +9685,44 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } }, - "bson": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.5.tgz", - "integrity": "sha512-kDuEzldR21lHciPQAIulLs1LZlCXdLziXI6Mb/TDkwXhb//UORJNPXgcRs2CuO4H0DcMkpfT3/ySsP3unoZjBg==" + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -599,14 +9758,20 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "requires": { + "rsvp": "^4.8.4" + } }, "caseless": { "version": "0.12.0", @@ -617,53 +9782,16 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + }, "cheerio": { "version": "0.22.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", @@ -688,9 +9816,9 @@ } }, "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "dev": true, "requires": { "anymatch": "~3.1.1", @@ -700,7 +9828,7 @@ "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" + "readdirp": "~3.5.0" } }, "chownr": { @@ -711,8 +9839,84 @@ "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==" + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } }, "cli-boxes": { "version": "2.2.1", @@ -731,6 +9935,45 @@ "es6-iterator": "2", "memoizee": "^0.4.3", "timers-ext": "0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } } }, "clone-response": { @@ -742,25 +9985,42 @@ "mimic-response": "^1.0.0" } }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "combined-stream": { "version": "1.0.8", @@ -770,6 +10030,11 @@ "delayed-stream": "~1.0.0" } }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -805,6 +10070,19 @@ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -814,7 +10092,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -843,6 +10120,26 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -852,19 +10149,52 @@ "type": "^1.0.1" } }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, "dasu": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/dasu/-/dasu-0.4.1.tgz", "integrity": "sha512-+fDXmFqrsZfuCr3dwSxm0pyK5RTiIBFBJiWTG6HaZQc9FhoqT4o9KQFEfGllic0S2gEpzHYMirzqJ5qSh+mOrQ==" }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -884,12 +10214,26 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -900,34 +10244,38 @@ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, - "denque": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", - "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" - }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" + }, "discord-ytdl-core": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/discord-ytdl-core/-/discord-ytdl-core-4.0.9.tgz", - "integrity": "sha512-yXD83OvQvU5fRGO2awQRABHMVVcwMI866D05ivf0vbWlIXvyrU1flk3Neofb7WdlmR2KZyKLoMCE8SC7w3L8Kw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/discord-ytdl-core/-/discord-ytdl-core-5.0.0.tgz", + "integrity": "sha512-lhk3VabO3vC+57ZIL0yOCaB5eyco9qmygmXwHoAr9c4VVzG9e02iGCvLAYzMIxOoBtuIggavNLwFTZ6gO6byJA==", "requires": { - "prism-media": "^1.2.2", - "ytdl-core": "^3.3.0" + "prism-media": "^1.2.2" } }, "discord.js": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.3.1.tgz", - "integrity": "sha512-mSFyV/mbvzH12UXdS4zadmeUf8IMQOo/YdunubG1wWt1xjWvtaJz/s9CGsFD2B5pTw1W/LXxxUbrQjIZ/xlUdw==", + "version": "12.5.1", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.1.tgz", + "integrity": "sha512-VwZkVaUAIOB9mKdca0I5MefPMTQJTNg0qdgi1huF3iwsFwJ0L5s/Y69AQe+iPmjuV6j9rtKoG0Ta0n9vgEIL6w==", "requires": { "@discordjs/collection": "^0.1.6", "@discordjs/form-data": "^3.0.1", "abort-controller": "^3.0.0", - "node-fetch": "^2.6.0", + "node-fetch": "^2.6.1", "prism-media": "^1.2.2", "setimmediate": "^1.0.5", "tweetnacl": "^1.0.3", @@ -957,6 +10305,21 @@ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, "domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", @@ -989,6 +10352,20 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==" + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -999,7 +10376,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -1023,6 +10399,14 @@ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, "es5-ext": { "version": "0.10.53", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", @@ -1072,8 +10456,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { "version": "1.14.3", @@ -1125,13 +10508,13 @@ } }, "eslint": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.11.0.tgz", - "integrity": "sha512-G9+qtYVCHaDi1ZuWzBsOWo2wSwd70TXnU6UHA3cTYHp7gCTXZcpggWFoUVAMRarg68qtPoNfFbzPh+VdOgmwmw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.16.0.tgz", + "integrity": "sha512-iVWPS785RuDA4dWuhhgXTNrGxHHK3a8HLSMBgbbU59ruJDubUraXN8N5rn7kb8tG6sjg74eE0RA3YWT51eusEw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.1.3", + "@eslint/eslintrc": "^0.2.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -1141,10 +10524,10 @@ "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.0", + "espree": "^7.3.1", "esquery": "^1.2.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "file-entry-cache": "^6.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", "globals": "^12.1.0", @@ -1164,41 +10547,9 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - } } }, "eslint-scope": { @@ -1235,13 +10586,13 @@ "dev": true }, "espree": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", - "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { "acorn": "^7.4.0", - "acorn-jsx": "^5.2.0", + "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" }, "dependencies": { @@ -1316,6 +10667,156 @@ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==" + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "requires": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + } + }, "ext": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", @@ -1331,23 +10832,86 @@ } } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, "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 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "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 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, "ffmpeg-static": { "version": "4.2.7", "resolved": "https://registry.npmjs.org/ffmpeg-static/-/ffmpeg-static-4.2.7.tgz", @@ -1360,12 +10924,12 @@ } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", + "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "file-match": { @@ -1389,38 +10953,85 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", + "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "dev": true + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" }, "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "glob": "^7.1.3" + "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "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==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } }, "fs-minipass": { "version": "2.1.0", @@ -1439,9 +11050,13 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, "optional": true }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", @@ -1461,17 +11076,67 @@ "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } } }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "requires": { "pump": "^3.0.0" } }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "give-me-a-joke": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/give-me-a-joke/-/give-me-a-joke-0.4.0.tgz", + "integrity": "sha512-qWB6H6QxToUuWrW79BYlWkFVQrlKahCrF5hXtBndthgOgG219SeKakzgBNEFsZItVzHgVjihR5zKJeu1pf1JMw==", + "requires": { + "axios": "^0.19.2" + } + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -1495,12 +11160,20 @@ } }, "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", "dev": true, "requires": { - "ini": "^1.3.5" + "ini": "1.3.7" + }, + "dependencies": { + "ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true + } } }, "globals": { @@ -1534,30 +11207,116 @@ "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "optional": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true }, - "html-entities": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", - "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==" + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" }, "htmlparser2": { "version": "3.10.1", @@ -1598,6 +11357,16 @@ "@types/node": "^10.0.3" } }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, "https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", @@ -1605,18 +11374,13 @@ "requires": { "agent-base": "6", "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } } }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + }, "human-time": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/human-time/-/human-time-0.0.2.tgz", @@ -1651,9 +11415,9 @@ } }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -1666,11 +11430,19 @@ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", @@ -1687,9 +11459,27 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-binary-path": { "version": "2.1.0", @@ -1700,15 +11490,59 @@ "binary-extensions": "^2.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, "requires": { "ci-info": "^2.0.0" } }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "optional": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1723,6 +11557,11 @@ "number-is-nan": "^1.0.0" } }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", @@ -1751,8 +11590,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-obj": { "version": "2.0.0", @@ -1766,16 +11604,47 @@ "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", "dev": true }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=" + }, "is-promise": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "optional": true, + "requires": { + "is-docker": "^2.0.0" + } }, "is-yarn-global": { "version": "0.3.0", @@ -1791,36 +11660,562 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", + "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "requires": { + "@jest/core": "^26.6.3", + "import-local": "^3.0.2", + "jest-cli": "^26.6.3" + } + }, + "jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "requires": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + } + }, + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + }, + "jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-discordjs-mocks": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jest-discordjs-mocks/-/jest-discordjs-mocks-1.0.2.tgz", + "integrity": "sha512-S3wng0scR9GsUZwj4NW/PDCHpPptWQTJz8mqW4lEfOiNl+l8/XQpBYh2dPQq5zFkhnXTb9WRG0DThcB0OOBrhg==", + "requires": { + "@types/jest": "^26.0.8", + "discord.js": "^12.2.0", + "jest": "^26.2.2" + } + }, + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + } + }, + "jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + } + }, + "jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + } + }, + "jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "requires": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + } + }, + "jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "requires": {} + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==" + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "requires": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + } + }, + "jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + } + }, + "jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + } + }, + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + } + }, + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + } + }, + "jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "requires": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + } + } + }, + "jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "requires": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsdom": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", + "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "requires": { + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", + "xml-name-validator": "^3.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, "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 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -1828,6 +12223,19 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "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=" + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "requires": { + "minimist": "^1.2.5" + } + }, "jsonpath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", @@ -1845,10 +12253,16 @@ } } }, - "kareem": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", - "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } }, "keypress": { "version": "0.2.1", @@ -1864,6 +12278,16 @@ "json-buffer": "3.0.0" } }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, "latest-version": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", @@ -1873,6 +12297,11 @@ "package-json": "^6.3.0" } }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -1883,6 +12312,19 @@ "type-check": "~0.4.0" } }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, "lodash": { "version": "4.17.20", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", @@ -1948,12 +12390,25 @@ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, "lru-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", @@ -1963,26 +12418,18 @@ } }, "m3u8stream": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.7.1.tgz", - "integrity": "sha512-z6ldnAdhbuWOL6LmMkwptSZGzj+qbRytMKLTbNicwF/bJMjf9U9lqD57RNQUFecvWadEkzy6PDjcNJFFgi19uQ==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.8.3.tgz", + "integrity": "sha512-0nAcdrF8YJKUkb6PzWdvGftTPyCVWgoiot1AkNVbPKTeIGsWs6DrOjifrJ0Zi8WQfQmD2SuVCjkYIOip12igng==", "requires": { - "miniget": "^1.6.1", + "miniget": "^4.0.0", "sax": "^1.2.4" - }, - "dependencies": { - "miniget": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/miniget/-/miniget-1.7.2.tgz", - "integrity": "sha512-USPNNK2bnHLOplX8BZVMehUkyQizS/DFpBdoH0TS+fM+hQoLNg9tWg4MeY9wE8gfY0pbzmx5UBEODujt3Lz8AA==" - } } }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "requires": { "semver": "^6.0.0" }, @@ -1990,11 +12437,31 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, "memoizee": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", @@ -2010,11 +12477,19 @@ "timers-ext": "^0.1.5" } }, - "memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } }, "mime-db": { "version": "1.44.0", @@ -2029,6 +12504,11 @@ "mime-db": "1.44.0" } }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -2036,9 +12516,9 @@ "dev": true }, "miniget": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/miniget/-/miniget-2.0.1.tgz", - "integrity": "sha512-MX+QfVIPAutz6c+T7WKuFKtjcw0nOyRRh1ubhTDD+z/e/pKcSAsfAV63aQKUgb1MFRT1GyfJeW53N5fHkX0wIA==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/miniget/-/miniget-4.1.0.tgz", + "integrity": "sha512-kzhrNv5L7LlomwGmPGQsLQ2PnT1LeJJWfB0wNFGyv426gEM1gsfziBQmfkr6XOBA8EusZg9nowlNT5CbuKTjZg==" }, "minimatch": { "version": "3.0.4", @@ -2070,6 +12550,15 @@ "yallist": "^4.0.0" } }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -2083,91 +12572,33 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" }, - "mongodb": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.2.tgz", - "integrity": "sha512-sSZOb04w3HcnrrXC82NEh/YGCmBuRgR+C1hZgmmv4L6dBz4BkRse6Y8/q/neXer9i95fKUBbFi4KgeceXmbsOA==", - "requires": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "require_optional": "^1.0.1", - "safe-buffer": "^5.1.2", - "saslprep": "^1.0.0" - } - }, - "mongoose": { - "version": "5.10.9", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.10.9.tgz", - "integrity": "sha512-7dkr1d6Uyk87hELzoc6B7Zo7kkPTx8rKummk51Y0je2V2Ttsw0KFPwTp1G8JIbBta7Wpw8j15PJi0d33Ode2nw==", - "requires": { - "bson": "^1.1.4", - "kareem": "2.3.1", - "mongodb": "3.6.2", - "mongoose-legacy-pluralize": "1.0.2", - "mpath": "0.7.0", - "mquery": "3.2.2", - "ms": "2.1.2", - "regexp-clone": "1.0.0", - "safe-buffer": "5.2.1", - "sift": "7.0.1", - "sliced": "1.0.1" - }, - "dependencies": { - "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==" - } - } - }, - "mongoose-legacy-pluralize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", - "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" - }, - "mpath": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.7.0.tgz", - "integrity": "sha512-Aiq04hILxhz1L+f7sjGyn7IxYzWm1zLNNXcfhDtx04kZ2Gk7uvFdgZ8ts1cWa/6d0TQmag2yR8zSGZUmp0tFNg==" - }, - "mquery": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", - "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", - "requires": { - "bluebird": "3.5.1", - "debug": "3.1.0", - "regexp-clone": "^1.0.0", - "safe-buffer": "5.1.2", - "sliced": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "needle": { "version": "2.5.2", @@ -2177,6 +12608,16 @@ "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } } }, "next-tick": { @@ -2184,10 +12625,15 @@ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", + "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" }, "node-fetch": { "version": "2.6.1", @@ -2236,10 +12682,34 @@ } } }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + }, + "node-notifier": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", + "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + } + }, "nodemon": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz", - "integrity": "sha512-Ltced+hIfTmaS28Zjv1BM552oQ3dbwPqI4+zI0SLgq+wpJhSyqgYude/aZa/3i31VCQWMfXJVxvu86abcam3uQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz", + "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==", "dev": true, "requires": { "chokidar": "^3.2.2", @@ -2250,15 +12720,39 @@ "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.2", - "update-notifier": "^4.0.0" + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" }, "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -2271,11 +12765,28 @@ "osenv": "^0.1.4" } }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-url": { "version": "4.5.0", @@ -2306,6 +12817,14 @@ "npm-normalize-package-bin": "^1.0.1" } }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -2330,11 +12849,98 @@ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2343,6 +12949,14 @@ "wrappy": "1" } }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -2382,6 +12996,37 @@ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, "package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", @@ -2416,6 +13061,32 @@ "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=" }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -2424,14 +13095,43 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { "version": "1.2.1", @@ -2445,10 +13145,22 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, "prism-media": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.2.tgz", - "integrity": "sha512-I+nkWY212lJ500jLe4tN9tWO7nRiBAVdMv76P9kffZjYhw20raMlW1HSSvS+MLXC9MmbNZCazMrAr+5jEEgTuw==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.3.tgz", + "integrity": "sha512-fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A==", + "requires": {} }, "process-nextick-args": { "version": "2.0.1", @@ -2460,6 +13172,20 @@ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, + "prompts": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", + "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -2470,7 +13196,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -2479,18 +13204,22 @@ "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 + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "pupa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", - "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", "dev": true, "requires": { "escape-goat": "^2.0.0" } }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -2500,6 +13229,46 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + } + } + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" } }, "readable-stream": { @@ -2517,9 +13286,9 @@ } }, "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -2533,10 +13302,14 @@ "minimatch": "~3.0.4" } }, - "regexp-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", - "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } }, "regexpp": { "version": "3.1.0", @@ -2545,9 +13318,9 @@ "dev": true }, "registry-auth-token": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", - "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", "dev": true, "requires": { "rc": "^1.2.8" @@ -2562,24 +13335,124 @@ "rc": "^1.2.8" } }, - "require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "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" + }, + "dependencies": { + "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==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "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==", + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "dependencies": { + "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==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "requires": { - "resolve-from": "^2.0.0", - "semver": "^5.1.0" + "resolve-from": "^5.0.0" }, "dependencies": { "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" } } }, @@ -2589,6 +13462,11 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", @@ -2598,31 +13476,253 @@ "lowercase-keys": "^1.0.0" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { - "glob": "^7.1.3" + "glob": "^7.1.3" + } + }, + "roll": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/roll/-/roll-1.3.1.tgz", + "integrity": "sha512-f6ePWG9fqC5RZE4CqFfxSqfvpOs3sZlxpvtdpNCHPKz76L1oJP8wQzqrMCHpXg8Ahc+53A7RPXMptDUxwciZow==", + "requires": { + "minimist": "^1.2.5" } }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "optional": true, - "requires": { - "sparse-bitfield": "^3.0.3" + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } } }, "sax": { @@ -2630,10 +13730,21 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "requires": { + "lru-cache": "^6.0.0" + } }, "semver-diff": { "version": "3.1.1", @@ -2652,16 +13763,37 @@ } } }, - "sentiment": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/sentiment/-/sentiment-5.0.2.tgz", - "integrity": "sha512-ZeC3y0JsOYTdwujt5uOd7ILJNilbgFzUtg/LEG4wUv43LayFNLZ28ec8+Su+h3saHlJmIwYxBzfDHHZuiMA15g==" - }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } + } + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -2671,7 +13803,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -2679,63 +13810,302 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, - "sift": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", - "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "optional": true }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true } } }, - "sliced": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, - "sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "optional": true, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "requires": { - "memory-pager": "^1.0.2" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "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" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } + } + }, + "stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } }, "static-eval": { "version": "2.0.2", @@ -2745,6 +14115,98 @@ "escodegen": "^1.8.1" } }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-length": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", + "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -2753,80 +14215,107 @@ "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "safe-buffer": "~5.1.0" + "ansi-regex": "^5.0.0" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "ansi-regex": "^2.0.0" + "has-flag": "^4.0.0" } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, + "supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" } }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.4.tgz", + "integrity": "sha512-sBT4xRLdALd+NFBvwOz8bw4b15htyythha+q+DVZqy2RS08PPC8O2sZFgJYEY7bJvbCFKccs+WIZ/cd+xxTWCw==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^6.12.4", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } } } @@ -2852,17 +14341,41 @@ } }, "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", "dev": true }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + }, "timers-ext": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", @@ -2872,17 +14385,55 @@ "next-tick": "1" } }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -2907,11 +14458,37 @@ } } }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "requires": { + "punycode": "^2.1.1" + } + }, "ttys": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/ttys/-/ttys-0.0.3.tgz", "integrity": "sha1-FbrN54MQIN5fLyjwGxcy7wNlH00=" }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", @@ -2931,11 +14508,15 @@ "prelude-ls": "^1.2.1" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" }, "typedarray": { "version": "0.0.6", @@ -2946,7 +14527,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, "requires": { "is-typedarray": "^1.0.0" } @@ -2982,6 +14562,24 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } + } + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -2991,10 +14589,46 @@ "crypto-random-string": "^2.0.0" } }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, "update-notifier": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.1.tgz", - "integrity": "sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", "dev": true, "requires": { "boxen": "^4.2.0", @@ -3012,16 +14646,6 @@ "xdg-basedir": "^4.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -3031,36 +14655,6 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -3068,11 +14662,15 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "dev": true, "requires": { "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -3082,6 +14680,11 @@ "prepend-http": "^2.0.0" } }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -3092,31 +14695,124 @@ "resolved": "https://registry.npmjs.org/utils-extend/-/utils-extend-1.0.8.tgz", "integrity": "sha1-zP17ZFQPjpDuIe7Fd2nQZRyril8=" }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true + }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, - "validator": { - "version": "13.1.17", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.1.17.tgz", - "integrity": "sha512-zL5QBoemJ3jYFb2/j38y7ljhwYGXVLUp8H6W1nVxadnAOvUOytec+L7BHh1oBQ82/TzWXHd+GSaxUWp4lROkLg==" + "v8-to-istanbul": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", + "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } }, "voca": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/voca/-/voca-1.4.0.tgz", "integrity": "sha512-8Xz4H3vhYRGbFupLtl6dHwMx0ojUcjt0HYkqZ9oBCfipd/5mD7Md58m2/dq7uPuZU/0T3Gb1m66KS9jn+I+14Q==" }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -3134,12 +14830,6 @@ "string-width": "^4.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -3162,15 +14852,6 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } } } }, @@ -3179,25 +14860,47 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -3206,9 +14909,10 @@ } }, "ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==" + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", + "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", + "requires": {} }, "xdg-basedir": { "version": "4.0.0", @@ -3216,15 +14920,79 @@ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, "yt-search": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/yt-search/-/yt-search-2.3.2.tgz", - "integrity": "sha512-SgHgqYNhXcr5LGKK6ANUsE5nASYLQ57KHs9893gaIaidJqRoGoGyt5pl1cEU4BDbyiqBRqkyHQWw5UyVNwtwVA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yt-search/-/yt-search-2.5.1.tgz", + "integrity": "sha512-RD2pZwU4ac4Q0Cku1oeas2T3cRliEFzPsMvkrjf5D1JxP4l7sPeJhRhC4vjDdEwBdHr78Ka5NyMpbaNKZ17/WQ==", "requires": { "async.parallellimit": "~0.5.2", "boolstring": "~1.0.2", @@ -3237,13 +15005,12 @@ } }, "ytdl-core": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-3.3.0.tgz", - "integrity": "sha512-jesZn1BCKanWEtVymezoJTMUF0B0Z6OQuf8M61zy0QUoNQprR2SYwzwI6dTOZHURz7wk1ffPgbYLu6BZq0vUsQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-4.2.1.tgz", + "integrity": "sha512-7zAoJiWpaBGgiAUCQuvKBuWom7tmSCV0A70gRdrPxR96yQoJOrCZkW6Wg1CofvPtAeQVWTVWThC8bXRsE+SBeA==", "requires": { - "html-entities": "^1.3.1", - "m3u8stream": "^0.7.1", - "miniget": "^2.0.1", + "m3u8stream": "^0.8.3", + "miniget": "^4.0.0", "sax": "^1.1.3" } } diff --git a/package.json b/package.json index ea35f3a0..6f75ea59 100644 --- a/package.json +++ b/package.json @@ -1,33 +1,34 @@ { "name": "portal", "author": "Ioannis Tsiakkas", - "version": "1.2.0", + "version": "1.2.1", "private": true, - "main": "index.js", + "main": "src/portal.ts", "scripts": { - "start": "node index.js", - "dev": "nodemon index.js", - "lint": "eslint **/*.js", - "lint-fix": "eslint --fix **/*.js", - "dview": "npm-dview" + "start": "node src/portal.js", + "start_ts": "tsc src/portal.ts", + "test": "jest", + "dev": "nodemon src/portal.ts" }, "dependencies": { - "@discordjs/opus": "^0.3.2", - "discord-ytdl-core": "^4.0.9", - "discord.js": "^12.2.0", - "ffmpeg-static": "^4.2.2", + "@discordjs/opus": "^0.3.3", + "discord-ytdl-core": "^5.0.0", + "discord.js": "^12.5.1", + "ffmpeg-static": "^4.2.7", "file-system": "^2.2.2", + "give-me-a-joke": "^0.4.0", + "jest": "^26.6.3", + "jest-discordjs-mocks": "^1.0.2", "lodash": "^4.17.20", "moment": "^2.29.1", - "mongoose": "^5.10.9", - "sentiment": "^5.0.2", - "validator": "^13.1.17", + "roll": "^1.3.1", "voca": "^1.4.0", - "yt-search": "^2.3.2", - "ytdl-core": "^3.3.0" + "yt-search": "^2.5.1", + "ytdl-core": "^4.2.1" }, "devDependencies": { - "eslint": "^7.11.0", - "nodemon": "^2.0.4" + "@types/node": "^10.17.50", + "eslint": "^7.16.0", + "nodemon": "^2.0.6" } } diff --git a/src/commands/about.js b/src/commands/about.js new file mode 100644 index 00000000..e3715953 --- /dev/null +++ b/src/commands/about.js @@ -0,0 +1,68 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var _this = this; +module.exports = function (client, message, args, portal_guilds, portal_managed_guilds_path) { return __awaiter(_this, void 0, void 0, function () { + var help_mngr; + return __generator(this, function (_a) { + help_mngr = require('../functions/help_manager'); + return [2 /*return*/, new Promise(function (resolve) { + message.channel.send(help_mngr.create_rich_embed('About', 'a portal to a managed discord server', '#1DB954', [ + { + emote: 'Creator', + role: '***Keybraker***', + inline: true + }, + { + emote: 'Created', + role: '***2020***', + inline: true + }, + { + emote: 'Version', + role: '***1.0.2***', + inline: true + }, + { + emote: 'For help just type', + role: './help', + inline: false + }, + ], false, client.user.member, true, 'https://portal-bot.xyz/')); + return resolve({ result: true, value: 'about message.' }); + })]; + }); +}); }; diff --git a/commands/announce.js b/src/commands/announce.js similarity index 100% rename from commands/announce.js rename to src/commands/announce.js diff --git a/commands/announcement.js b/src/commands/announcement.js similarity index 100% rename from commands/announcement.js rename to src/commands/announcement.js diff --git a/commands/auth_role_add.js b/src/commands/auth_role_add.js similarity index 100% rename from commands/auth_role_add.js rename to src/commands/auth_role_add.js diff --git a/commands/auth_role_rem.js b/src/commands/auth_role_rem.js similarity index 100% rename from commands/auth_role_rem.js rename to src/commands/auth_role_rem.js diff --git a/commands/auth_roles.js b/src/commands/auth_roles.js similarity index 100% rename from commands/auth_roles.js rename to src/commands/auth_roles.js diff --git a/commands/corona.js b/src/commands/corona.js similarity index 98% rename from commands/corona.js rename to src/commands/corona.js index 367db520..c68847e2 100644 --- a/commands/corona.js +++ b/src/commands/corona.js @@ -1,5 +1,5 @@ /* eslint-disable no-unused-vars */ -const country_codes = require('../assets/jsons/country_codes.json'); +const country_codes = require('../../assets/jsons/country_codes.json'); const http_mngr = require('../functions/http_requests'); const help_mngr = require('../functions/help_manager'); diff --git a/commands/corona_old.js b/src/commands/corona_old.js similarity index 98% rename from commands/corona_old.js rename to src/commands/corona_old.js index e6f114ac..bc839046 100644 --- a/commands/corona_old.js +++ b/src/commands/corona_old.js @@ -1,5 +1,5 @@ /* eslint-disable no-unused-vars */ -const country_codes = require('../assets/jsons/country_codes.json'); +const country_codes = require('../../assets/jsons/country_codes.json'); const http_mngr = require('../functions/http_requests'); const help_mngr = require('../functions/help_manager'); diff --git a/commands/focus.js b/src/commands/focus.js similarity index 100% rename from commands/focus.js rename to src/commands/focus.js diff --git a/commands/force.js b/src/commands/force.js similarity index 100% rename from commands/force.js rename to src/commands/force.js diff --git a/commands/help.js b/src/commands/help.js similarity index 100% rename from commands/help.js rename to src/commands/help.js diff --git a/commands/join.js b/src/commands/join.js similarity index 100% rename from commands/join.js rename to src/commands/join.js diff --git a/src/commands/joke.js b/src/commands/joke.js new file mode 100644 index 00000000..dd112937 --- /dev/null +++ b/src/commands/joke.js @@ -0,0 +1,24 @@ +const giveMeAJoke = require('give-me-a-joke'); + +module.exports = async (client, message, args, portal_guilds, portal_managed_guilds_path) => { + return new Promise((resolve) => { + if (args.length === 1) { + if (args[0] === 'dad') { + giveMeAJoke.getRandomDadJoke(joke => message.channel.send(joke)); + } else if (args[0] === 'chuck') { + giveMeAJoke.getRandomCNJoke(joke => message.channel.send(joke)); + } else if (args[0] === 'blonde' || args[0] === 'knock-knock' || + args[0] === 'animal' || args[0] === 'jod') { + giveMeAJoke.getRandomJokeOfTheDay(args[0], joke => message.channel.send(joke)); + } else { + return resolve({ + result: false, + value: '*you can run "./help joke" for help.*' + }); + } + } else { + giveMeAJoke.getCustomJoke('', message.author.username, joke => message.channel.send(joke)); + } + return resolve({ result: true, value: null }); + }); +}; diff --git a/commands/leaderboard.js b/src/commands/leaderboard.js similarity index 100% rename from commands/leaderboard.js rename to src/commands/leaderboard.js diff --git a/commands/leave.js b/src/commands/leave.js similarity index 100% rename from commands/leave.js rename to src/commands/leave.js diff --git a/commands/level.js b/src/commands/level.js similarity index 100% rename from commands/level.js rename to src/commands/level.js diff --git a/commands/music.js b/src/commands/music.js similarity index 100% rename from commands/music.js rename to src/commands/music.js diff --git a/commands/news.js b/src/commands/news.js similarity index 97% rename from commands/news.js rename to src/commands/news.js index 15c1bab3..9eab0a12 100644 --- a/commands/news.js +++ b/src/commands/news.js @@ -1,5 +1,5 @@ /* eslint-disable no-unused-vars */ -const country_codes = require('../assets/jsons/country_codes.json'); +const country_codes = require('../../assets/jsons/country_codes.json'); const http_mngr = require('../functions/http_requests'); const help_mngr = require('../functions/help_manager'); diff --git a/commands/ping.js b/src/commands/ping.js similarity index 100% rename from commands/ping.js rename to src/commands/ping.js diff --git a/commands/portal.js b/src/commands/portal.js similarity index 100% rename from commands/portal.js rename to src/commands/portal.js diff --git a/commands/purge.js b/src/commands/purge.js similarity index 100% rename from commands/purge.js rename to src/commands/purge.js diff --git a/commands/ranks.js b/src/commands/ranks.js similarity index 100% rename from commands/ranks.js rename to src/commands/ranks.js diff --git a/commands/role.js b/src/commands/role.js similarity index 100% rename from commands/role.js rename to src/commands/role.js diff --git a/src/commands/roll.js b/src/commands/roll.js new file mode 100644 index 00000000..5488105a --- /dev/null +++ b/src/commands/roll.js @@ -0,0 +1,21 @@ +const Roll = require('roll'); + +module.exports = async (client, message, args, portal_guilds, portal_managed_guilds_path) => { + return new Promise((resolve) => { + if (args.length === 1) { + const roll_lib = new Roll(); + const roll = roll_lib.roll(args[0]); + message.channel.send(`${message.author}, ${roll.result} (${roll.rolled} from ${args[0]})`); + + return resolve({ + result: true, + value: null + }); + } else { + return resolve({ + result: false, + value: '*you can run "./help roll" for help.*' + }); + } + }); +}; diff --git a/commands/run.js b/src/commands/run.js similarity index 100% rename from commands/run.js rename to src/commands/run.js diff --git a/commands/save.js b/src/commands/save.js similarity index 100% rename from commands/save.js rename to src/commands/save.js diff --git a/commands/set.js b/src/commands/set.js similarity index 100% rename from commands/set.js rename to src/commands/set.js diff --git a/commands/set_ranks.js b/src/commands/set_ranks.js similarity index 100% rename from commands/set_ranks.js rename to src/commands/set_ranks.js diff --git a/commands/setup.js b/src/commands/setup.js similarity index 100% rename from commands/setup.js rename to src/commands/setup.js diff --git a/commands/spotify.js b/src/commands/spotify.js similarity index 100% rename from commands/spotify.js rename to src/commands/spotify.js diff --git a/commands/url.js b/src/commands/url.js similarity index 100% rename from commands/url.js rename to src/commands/url.js diff --git a/events/channelDelete.js b/src/events/channelDelete.js similarity index 100% rename from events/channelDelete.js rename to src/events/channelDelete.js diff --git a/events/guildCreate.js b/src/events/guildCreate.js similarity index 100% rename from events/guildCreate.js rename to src/events/guildCreate.js diff --git a/events/guildDelete.js b/src/events/guildDelete.js similarity index 100% rename from events/guildDelete.js rename to src/events/guildDelete.js diff --git a/events/guildMemberAdd.js b/src/events/guildMemberAdd.js similarity index 91% rename from events/guildMemberAdd.js rename to src/events/guildMemberAdd.js index f4f8aaac..a7d7e8a9 100644 --- a/events/guildMemberAdd.js +++ b/src/events/guildMemberAdd.js @@ -1,5 +1,5 @@ const help_mngr = require('../functions/help_manager'); -const member_class = require('../assets/classes/member_class'); +const member_class = require('../../assets/classes/member_class'); module.exports = async (args) => { const join_message = `member: ${args.member.presence.user}\n` + diff --git a/events/guildMemberRemove.js b/src/events/guildMemberRemove.js similarity index 100% rename from events/guildMemberRemove.js rename to src/events/guildMemberRemove.js diff --git a/events/messageDelete.js b/src/events/messageDelete.js similarity index 100% rename from events/messageDelete.js rename to src/events/messageDelete.js diff --git a/events/messageReactionAdd.js b/src/events/messageReactionAdd.js similarity index 98% rename from events/messageReactionAdd.js rename to src/events/messageReactionAdd.js index 50b5952a..3161c6de 100644 --- a/events/messageReactionAdd.js +++ b/src/events/messageReactionAdd.js @@ -91,7 +91,10 @@ const reaction_music_manager = function(args) { return { result: false, value: 'portal is not playing music write now' }; } const is_member_in_same_channel_as_portal = voice_connection_in_reaction_guild.channel.members - .some(member => member.id === args.user.presence.member.id); + .some(member => { + console.log(member.id ,' === ' , args.user.id); + return member.id === args.user.id; + }); if (!is_member_in_same_channel_as_portal) { clear_user_reactions(args); return { result: false, value: 'you must be in the same channel with portal to control music' }; diff --git a/events/presenceUpdate.js b/src/events/presenceUpdate.js similarity index 100% rename from events/presenceUpdate.js rename to src/events/presenceUpdate.js diff --git a/events/ready.js b/src/events/ready.js similarity index 100% rename from events/ready.js rename to src/events/ready.js diff --git a/events/shardReconnecting.js b/src/events/shardReconnecting.js similarity index 100% rename from events/shardReconnecting.js rename to src/events/shardReconnecting.js diff --git a/events/voiceStateUpdate.js b/src/events/voiceStateUpdate.js similarity index 96% rename from events/voiceStateUpdate.js rename to src/events/voiceStateUpdate.js index e78579f7..d7c8b69f 100644 --- a/events/voiceStateUpdate.js +++ b/src/events/voiceStateUpdate.js @@ -39,7 +39,6 @@ module.exports = async (args) => { let report_message = `from: ${oldChannel} to ${newChannel}\n`; if (oldChannel === null) { - if (newChannel !== null) { // joined from null report_message += 'null->existing\n'; @@ -73,10 +72,8 @@ module.exports = async (args) => { } } - } else if (oldChannel !== null) { // Left from existing - if (newChannel === null) { report_message += 'existing->null\n'; @@ -97,9 +94,7 @@ module.exports = async (args) => { } } } - user_mngr.update_timestamp(args.newState, args.guild_list); // points calculation from any channel - } else if (newChannel !== null) { // Moved from channel to channel report_message += 'existing->existing\n'; @@ -121,12 +116,9 @@ module.exports = async (args) => { args.guild_list[args.newState.guild.id].portal_list, args.guild_list[args.newState.guild.id], args.newState.guild); - } - } - else if (guld_mngr.included_in_voice_list( - oldChannel.id, args.guild_list[args.newState.guild.id].portal_list)) { + else if (guld_mngr.included_in_voice_list(oldChannel.id, args.guild_list[args.newState.guild.id].portal_list)) { report_message += '->source: voice_list\n'; @@ -161,8 +153,7 @@ module.exports = async (args) => { args.guild_list[args.newState.guild.id], args.newState.guild); } - else if (guld_mngr.included_in_voice_list( - newChannel.id, args.guild_list[args.newState.guild.id].portal_list)) { // moved from voice to voice + else if (guld_mngr.included_in_voice_list(newChannel.id, args.guild_list[args.newState.guild.id].portal_list)) { // moved from voice to voice report_message += '->dest: voice_list\n'; @@ -215,10 +206,8 @@ module.exports = async (args) => { args.guild_list[args.newState.guild.id], args.newState.guild); } - } else { - report_message += '->source: other voice\n'; if (guld_mngr.included_in_portal_list( @@ -244,7 +233,6 @@ module.exports = async (args) => { args.guild_list[args.newState.guild.id].portal_list, args.guild_list[args.newState.guild.id], args.newState.guild); - } } } diff --git a/functions/guild_manager.js b/src/functions/guild_manager.js similarity index 84% rename from functions/guild_manager.js rename to src/functions/guild_manager.js index 6a5609f1..f7bba8d2 100644 --- a/functions/guild_manager.js +++ b/src/functions/guild_manager.js @@ -4,15 +4,15 @@ const vrbl_objct = require('../properties/variable_list'); const pipe_objct = require('../properties/pipe_list'); const attr_objct = require('../properties/attribute_list'); -const guild_class = require('../assets/classes/guild_class'); -const portal_class = require('../assets/classes/portal_class'); -const voice_class = require('../assets/classes/voice_class'); -const member_class = require('../assets/classes/member_class'); +const guild_class = require('../../assets/classes/guild_class'); +const portal_class = require('../../assets/classes/portal_class'); +const voice_class = require('../../assets/classes/voice_class'); +const member_class = require('../../assets/classes/member_class'); const help_mngr = require('./help_manager'); const musc_mngr = require('./music_manager'); -const getOptions = function(guild, topic) { +const getOptions = function (guild, topic) { return { type: 'text', topic: `by Portal, ${topic}`, @@ -27,57 +27,55 @@ const getOptions = function(guild, topic) { module.exports = { - included_in_portal_guilds: function(guild_id, portal_guilds) { - if (portal_guilds[guild_id] !== undefined) {return true;} - return false; + included_in_portal_guilds: function (guild_id, portal_guilds) { + return portal_guilds[guild_id] !== undefined; }, - included_in_portal_list: function(channel_id, portal_list) { - if (portal_list[channel_id]) {return true;} - return false; + included_in_portal_list: function (channel_id, portal_list) { + return portal_list[channel_id]; }, - included_in_voice_list: function(channel_id, portal_list) { + included_in_voice_list: function (channel_id, portal_list) { for (const key in portal_list) { - if (portal_list[key].voice_list[channel_id]) {return true;} + if (portal_list[key].voice_list[channel_id]) { + return true; + } } return false; }, - included_in_url_list: function(channel_id, guild_object) { + included_in_url_list: function (channel_id, guild_object) { for (let i = 0; i < guild_object.url_list.length; i++) { - if (guild_object.url_list[i] === channel_id) {return true;} + if (guild_object.url_list[i] === channel_id) { + return true; + } } return false; }, - is_spotify_channel: function(channel_id, guild_object) { - if (guild_object.spotify === channel_id) {return true;} - return false; + is_spotify_channel: function (channel_id, guild_object) { + return guild_object.spotify === channel_id; }, - is_music_channel: function(channel_id, guild_object) { - if (guild_object.music_data.channel_id === channel_id) {return true;} - return false; + is_music_channel: function (channel_id, guild_object) { + return guild_object.music_data.channel_id === channel_id; }, - is_announcement_channel: function(channel_id, guild_object) { - if (guild_object.announcement === channel_id) {return true;} - return false; + is_announcement_channel: function (channel_id, guild_object) { + return guild_object.announcement === channel_id; }, // - is_role: function(guild, role_name) { - const role = guild.roles.cache.find(cached_role => cached_role.name === role_name); - - if (role) {return role;} - else {return null;} + is_role: function (guild, role_name) { + const role = guild.roles.cache.find(cached_role => + cached_role.name === role_name); + return role ? role : null; }, // - create_focus_channel: async function(guild, member, member_found, focus_time) { + create_focus_channel: async function (guild, member, member_found, focus_time) { return new Promise((resolve) => { const return_value = { result: false, value: '*you can run "./help focus" for help.*' }; @@ -86,10 +84,10 @@ module.exports = { guild.channels.create( `${member.displayName}&${member_found.displayName}`, { - type: 'voice', - bitrate: 64000, - userLimit: 2, - }) + type: 'voice', + bitrate: 64000, + userLimit: 2, + }) .then(channel => { newChannel = channel; member.voice.setChannel(channel); @@ -110,23 +108,22 @@ module.exports = { newChannel.delete().catch(console.error); return_value.result = true; return_value.value = 'focus ended properly.'; - return resolve (return_value); + return resolve(return_value); } }).catch(console.error); }).catch(console.error); - } else { return_value.result = false; return_value.value = 'could not move to original channel because it was deleted.'; - return resolve (return_value); + return resolve(return_value); } }, focus_time * 60 * 1000); }); }, - create_url_channel: function(guild, url_name, url_category, url_list) { + create_url_channel: function (guild, url_name, url_category, url_list) { if (url_category && typeof url_category === 'string') { // with category guild.channels .create(`${url_name}`, { type: 'text', topic: 'Portal URL-only' }) @@ -156,7 +153,7 @@ module.exports = { } }, - create_spotify_channel: function(guild, spotify_channel, spotify_category, guild_object) { + create_spotify_channel: function (guild, spotify_channel, spotify_category, guild_object) { if (spotify_category && typeof spotify_category === 'string') { // with category return guild.channels .create( @@ -198,7 +195,7 @@ module.exports = { } }, - create_music_channel: async function(guild, music_channel, music_category, guild_object) { + create_music_channel: async function (guild, music_channel, music_category, guild_object) { const portal_icon_url = 'https://raw.githubusercontent.com/keybraker/keybraker' + '.github.io/master/assets/img/logo.png'; return new Promise((resolve) => { @@ -256,7 +253,7 @@ module.exports = { }); }, - create_announcement_channel: function(guild, announcement_channel, announcement_category, guild_object) { + create_announcement_channel: function (guild, announcement_channel, announcement_category, guild_object) { if (announcement_category && typeof announcement_category === 'string') { // with category return guild.channels .create( @@ -297,7 +294,7 @@ module.exports = { } }, - create_portal_channel: function(guild, portal_channel, portal_category, portal_objct, guild_object, creator_id) { + create_portal_channel: function (guild, portal_channel, portal_category, portal_objct, guild_object, creator_id) { if (portal_category && typeof portal_category === 'string') { // with category return guild.channels .create(portal_channel, { type: 'voice', bitrate: 64000, userLimit: 1 }) @@ -308,7 +305,7 @@ module.exports = { guild_object[guild.id].premium ? 'G$#-P$member_count | $status_list' : 'Channel $#', - {}, false, 2, 0, 0, guild_object[guild.id].locale, false, true, + {}, false, 2, 0, 0, guild_object[guild.id].locale, true, true, ); guild.channels .create(portal_category, { type: 'category' }) @@ -328,7 +325,7 @@ module.exports = { guild_object[guild.id].premium ? 'G$#-P$member_count | $status_list' : 'Channel $#', - {}, false, 2, 0, 0, guild_object[guild.id].locale, false, true, + {}, false, 2, 0, 0, guild_object[guild.id].locale, true, true, ); }) .catch(console.error); @@ -343,14 +340,14 @@ module.exports = { guild_object[guild.id].premium ? 'G$#-P$member_count | $status_list' : 'Channel $#', - {}, false, 2, 0, 0, guild_object[guild.id].locale, false, true, + {}, false, 2, 0, 0, guild_object[guild.id].locale, true, true, ); }) .catch(console.error); } }, - create_voice_channel: function(state, portal_objct, portal_channel, creator_id) { + create_voice_channel: function (state, portal_objct, portal_channel, creator_id) { state.channel.guild.channels .create('loading...', { type: 'voice', @@ -371,12 +368,14 @@ module.exports = { return; }, - create_member_list: function(guild_id, client) { + create_member_list: function (guild_id, client) { const member_list = {}; const guild = client.guilds.cache.find(cached_guild => cached_guild.id === guild_id); + console.log('new guild :>> ', guild); + console.log('new guild.members.cache :>> ', guild.members.cache); guild.members.cache.forEach(member => { - if (member.id !== '704400876860735569' && !member.user.bot) { + if (member.id !== client.user.id && !member.user.bot) { member_list[member.id] = new member_class(1, 0, 0, 0, null); } }); @@ -384,7 +383,7 @@ module.exports = { return member_list; }, - insert_guild: function(guild_id, portal_guilds, client) { + insert_guild: function (guild_id, portal_guilds, client) { const portal_list = {}; const member_list = this.create_member_list(guild_id, client); const url_list = []; @@ -407,12 +406,12 @@ module.exports = { // - delete_guild: function(guild_id, portal_guilds) { + delete_guild: function (guild_id, portal_guilds) { delete portal_guilds[guild_id]; }, delete_channel: (channel_to_delete, message, isPortal = false) => { - if(!isPortal) { + if (!isPortal) { const author = message.author; const channel_to_delete_name = channel_to_delete.name; let channel_deleted = false; @@ -424,7 +423,7 @@ module.exports = { const collector = message.channel.createMessageCollector(filter, { time: 10000 }); collector.on('collect', m => { - if(m.content === 'yes') { + if (m.content === 'yes') { if (channel_to_delete.deletable) { channel_to_delete .delete() @@ -444,7 +443,7 @@ module.exports = { } collector.stop(); } - else if(m.content === 'no') { + else if (m.content === 'no') { collector.stop(); } }); @@ -473,7 +472,7 @@ module.exports = { } }, - channel_deleted_update_state: function(channel_to_remove, guild_list) { + channel_deleted_update_state: function (channel_to_remove, guild_list) { const TypesOfChannel = { Unknown: 0, Portal: 1, Voice: 2, Url: 3, Spotify: 4, Announcement: 5, Music: 6 }; const current_guild = guild_list[channel_to_remove.guild.id]; let type_of_channel = TypesOfChannel.Unknown; @@ -526,7 +525,7 @@ module.exports = { // - generate_channel_name: function(voice_channel, portal_object, guild_object, guild) { + generate_channel_name: function (voice_channel, portal_object, guild_object, guild) { for (const portal_id in portal_object) { if (portal_object[portal_id].voice_list[voice_channel.id]) { const voice_object = portal_object[portal_id].voice_list[voice_channel.id]; @@ -559,7 +558,7 @@ module.exports = { return false; }, - regex_interpreter: function(regex, voice_channel, voice_object, portal_object, guild_object, guild) { + regex_interpreter: function (regex, voice_channel, voice_object, portal_object, guild_object, guild) { let last_space_index = 0; let last_vatiable_end_index = 0; @@ -678,14 +677,14 @@ module.exports = { else if (regex[i] === '{' && (regex[i + 1] !== undefined && regex[i + 1] === '{')) { const inline = { - '==': (a, b) => (a == b) ? true : false, - '===': (a, b) => (a === b) ? true : false, - '!=': (a, b) => (a != b) ? true : false, - '!==': (a, b) => (a !== b) ? true : false, - '>': (a, b) => (a > b) ? true : false, - '<': (a, b) => (a < b) ? true : false, - '>=': (a, b) => (a >= b) ? true : false, - '<=': (a, b) => (a <= b) ? true : false, + '==': (a, b) => (a == b) ? true : false, + '===': (a, b) => (a === b) ? true : false, + '!=': (a, b) => (a != b) ? true : false, + '!==': (a, b) => (a !== b) ? true : false, + '>': (a, b) => (a > b) ? true : false, + '<': (a, b) => (a < b) ? true : false, + '>=': (a, b) => (a >= b) ? true : false, + '<=': (a, b) => (a <= b) ? true : false, }; try { @@ -706,9 +705,9 @@ module.exports = { } } - if(!is_valid) { + if (!is_valid) { new_channel_name += regex[i]; - if (regex[i] === ' ') {last_space_index = i + 1;} + if (regex[i] === ' ') { last_space_index = i + 1; } } else { if (inline[statement.is]( @@ -722,13 +721,13 @@ module.exports = { const value = this.regex_interpreter( statement.yes, voice_channel, voice_object, portal_object, guild_object, guild, ); - if (value !== '--') {new_channel_name += value;} + if (value !== '--') { new_channel_name += value; } } else { const value = this.regex_interpreter( statement.no, voice_channel, voice_object, portal_object, guild_object, guild, ); - if (value !== '--') {new_channel_name += value;} + if (value !== '--') { new_channel_name += value; } } i += regex.substring(i + 1).indexOf('}}') + 2; } @@ -741,11 +740,11 @@ module.exports = { } else { new_channel_name += regex[i]; - if (regex[i] === ' ') {last_space_index = i + 1;} + if (regex[i] === ' ') { last_space_index = i + 1; } } } - if (new_channel_name === '') {return '.';} + if (new_channel_name === '') { return '.'; } return new_channel_name; }, diff --git a/functions/help_manager.js b/src/functions/help_manager.js similarity index 75% rename from functions/help_manager.js rename to src/functions/help_manager.js index 8a00ffa6..2b580eb4 100644 --- a/functions/help_manager.js +++ b/src/functions/help_manager.js @@ -5,11 +5,11 @@ const lodash = require('lodash'); // const guld_mngr = require('./guild_manager'); // circular module call doesnt work ! const lclz_mngr = require('./localization_manager'); -const role_class = require('../assets/classes/role_class'); +const role_class = require('../../assets/classes/role_class'); module.exports = { - create_role_message: function(channel, role_list, title, desc, colour, role_emb, role_map) { + create_role_message: function (channel, role_list, title, desc, colour, role_emb, role_map) { const role_message_emb = this.create_rich_embed(title, desc, colour, role_emb); channel .send(role_message_emb) @@ -23,7 +23,7 @@ module.exports = { .catch(error => console.log(error)); }, - create_music_message: function(channel, thumbnail, guild_object) { + create_music_message: function (channel, thumbnail, guild_object) { const music_message_emb = this.create_rich_embed( 'Music Player', 'just type and I\'ll play', @@ -54,7 +54,7 @@ module.exports = { }); }, - update_message: function(guild, guild_object, yts) { + update_message: function (guild, guild_object, yts) { const music_message_emb = this.create_rich_embed( yts.title, yts.url, @@ -72,7 +72,7 @@ module.exports = { ); const channel = guild_object.channels.cache.get(guild.music_data.channel_id); - if(channel) { + if (channel) { channel.messages.channel.messages .fetch(guild.music_data.message_id) .then(message => { @@ -84,56 +84,58 @@ module.exports = { } }, - join_user_voice: async function(client, message, portal_guilds, join) { // localize + join_user_voice: async function (client, message, portal_guilds, join) { // localize return new Promise((resolve) => { const current_voice = message.member.voice.channel; if (current_voice === null) { - return resolve ({ result: false, value: 'you are not connected to any channel.' }); + return resolve({ result: false, value: 'you are not connected to any channel.' }); } if (current_voice.guild.id !== message.guild.id) { - return resolve ({ result: false, value: 'your current channel is on another guild.' }); + return resolve({ result: false, value: 'your current channel is on another guild.' }); } - const portal_list = portal_guilds[message.guild.id].portal_list; + const portal_list = portal_guilds[message.guild.id].portal_list; let included_in_voice_list = false; + for (const key in portal_list) { - if (portal_list[key].voice_list[current_voice.id]) {included_in_voice_list = true;} + if (portal_list[key].voice_list[current_voice.id]) { included_in_voice_list = true; } } if (!included_in_voice_list) { console.log('I can only connect to my channels.'); - return resolve ({ result: false, value: 'I can only connect to my channels.' }); + return resolve({ result: false, value: 'I can only connect to my channels.' }); } const existing_voice_connection = client.voice.connections.find(connection => - connection.channel.id === message.member.voice.channel.id); + connection.channel.id === message.member.voice.channel.id + ); if (existing_voice_connection) { - return resolve ({ + return resolve({ result: true, value: 'already in voice channel', voice_connection: existing_voice_connection, }); + } else { + // let new_voice_connection = null; + current_voice.join() + .then(conn => { + if (join) lclz_mngr.client_talk(client, portal_guilds, 'join'); + + return resolve({ + result: true, + value: lclz_mngr.client_write(message, portal_guilds, 'join'), + voice_connection: conn, + }); + }) + .catch(e => { console.log('ERROR CREATING VOICE CONNECTION TO CHANNEL: ', e); }); } - - // let new_voice_connection = null; - current_voice.join() - .then(conn => { - if(join) lclz_mngr.client_talk(client, portal_guilds, 'join'); - - return resolve ({ - result: true, - value: lclz_mngr.client_write(message, portal_guilds, 'join'), - voice_connection: conn, - }); - }) - .catch(e => { console.log('ERROR CREATING VOICE CONNECTION TO CHANNEL: ', e); }); }); }, - getJSON: function(str) { + getJSON: function (str) { let data = null; try { data = JSON.parse(str); @@ -145,28 +147,28 @@ module.exports = { return data; }, - create_rich_embed: function(title, description, colour, field_array, thumbnail, member, from_bot, url, image) { + create_rich_embed: function (title, description, colour, field_array, thumbnail, member, from_bot, url, image) { const portal_icon_url = 'https://raw.githubusercontent.com/keybraker/keybraker' + '.github.io/master/assets/img/logo.png'; const keybraker_url = 'https://github.com/keybraker'; const rich_message = new Discord.MessageEmbed() .setTimestamp(); - // .setAuthor('Portal', portal_icon_url, keybraker_url) + // .setAuthor('Portal', portal_icon_url, keybraker_url) - if(title) { + if (title) { rich_message .setTitle(title); } - if(url) { + if (url) { rich_message .setURL(url); } - if(colour) { + if (colour) { rich_message .setColor(colour); } - if(description) { + if (description) { rich_message .setDescription(description); } @@ -208,12 +210,12 @@ module.exports = { return rich_message; }, - empty_channel_remover: function(current_guild, portal_guilds, portal_managed_guilds_path) { + empty_channel_remover: function (current_guild, portal_guilds, portal_managed_guilds_path) { current_guild.channels.cache.forEach(channel => { - if(portal_guilds[current_guild.id]) { - for(const portal_channel in portal_guilds[current_guild.id].portal_list) { - if(portal_guilds[current_guild.id].portal_list[portal_channel].voice_list[channel.id]) { - if(!channel.members.size) { + if (portal_guilds[current_guild.id]) { + for (const portal_channel in portal_guilds[current_guild.id].portal_list) { + if (portal_guilds[current_guild.id].portal_list[portal_channel].voice_list[channel.id]) { + if (!channel.members.size) { console.log('Deleting channel: ', channel.name, 'from ', channel.guild.name); // guld_mngr.delete_channel(channel); if (channel.deletable) { @@ -238,11 +240,11 @@ module.exports = { this.update_portal_managed_guilds(true, portal_managed_guilds_path, portal_guilds); }, - update_portal_managed_guilds: async function(force, portal_managed_guilds_path, portal_guilds) { + update_portal_managed_guilds: async function (force, portal_managed_guilds_path, portal_guilds) { return new Promise((resolve) => { // , reject) => { setTimeout(() => { const portal_guilds_no_voice = lodash.cloneDeep(portal_guilds); - for(const guild_id in portal_guilds_no_voice) { + for (const guild_id in portal_guilds_no_voice) { portal_guilds_no_voice[guild_id].dispatcher = null; } @@ -261,11 +263,11 @@ module.exports = { ); } }, 1000); - return resolve ({ result: true, value: '*updated portal guild json.*' }); + return resolve({ result: true, value: '*updated portal guild json.*' }); }); }, - is_authorized: function(auth_role, member) { + is_authorized: function (auth_role, member) { return !member.hasPermission('ADMINISTRATOR') ? member.roles.cache !== undefined && member.roles.cache !== null ? member.roles.cache.some(role => @@ -277,8 +279,8 @@ module.exports = { }, // channel should be removed ! - message_reply: function(status, channel, message, user, str, portal_guilds, - client, to_delete = true, emote_pass = '✔️', emote_fail = '❌') { + message_reply: function (status, channel, message, user, str, portal_guilds, + client, to_delete = false, emote_pass = '✔️', emote_fail = '❌') { if (!message.channel.deleted && str !== null) { message.channel .send(`${user}, ${str}`) @@ -290,27 +292,22 @@ module.exports = { message .react(emote_pass) .catch(error => console.log(error)); - if(to_delete) { - message - .delete({ timeout: 5000 }) - .catch(error => console.log(error)); - } } else if (status === false) { lclz_mngr.client_talk(client, portal_guilds, 'fail'); message .react(emote_fail) .catch(error => console.log(error)); - if(to_delete) { - message - .delete({ timeout: 5000 }) - .catch(error => console.log(error)); - } + } + if (to_delete) { + message + .delete({ timeout: 5000 }) + .catch(error => console.log(error)); } } }, - is_url: function(potential_url) { + is_url: function (potential_url) { const pattern = new RegExp('^(https?:\\/\\/)?' + // protocol '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address @@ -321,7 +318,7 @@ module.exports = { return pattern.test(potential_url); }, - pad: function(num) { + pad: function (num) { if (num.toString().length >= 2) { return num; } @@ -330,7 +327,7 @@ module.exports = { } }, - time_elapsed: function(timestamp, timeout) { + time_elapsed: function (timestamp, timeout) { const time_elapsed = Date.now() - timestamp; const timeout_time = timeout * 60 * 1000; @@ -355,7 +352,7 @@ module.exports = { return { timeout_min, timeout_sec, remaining_hrs, remaining_min, remaining_sec }; }, - time_remaining: function(timestamp, timeout) { + time_remaining: function (timestamp, timeout) { const time_elapsed = Date.now() - timestamp; const timeout_time = timeout * 60 * 1000; const time_remaining = timeout_time - time_elapsed; diff --git a/src/functions/http_requests.js b/src/functions/http_requests.js new file mode 100644 index 00000000..22a60135 --- /dev/null +++ b/src/functions/http_requests.js @@ -0,0 +1,17 @@ +/* eslint-disable no-cond-assign */ +/* eslint-disable no-unused-vars */ +const https = require('https'); + +module.exports = async (options) => { + return new Promise((resolve, reject) => { + const req = https.request(options, function (res) { + const chunks = []; + + res.on('data', function (chunk) { chunks.push(chunk); }); + res.on('end', function (chunk) { return resolve(Buffer.concat(chunks)); }); + res.on('error', function (error) { return reject(false); }); + }); + + req.end(); + }); +}; diff --git a/functions/localization_manager.js b/src/functions/localization_manager.js similarity index 83% rename from functions/localization_manager.js rename to src/functions/localization_manager.js index d1b609ca..3f3431b0 100644 --- a/functions/localization_manager.js +++ b/src/functions/localization_manager.js @@ -8,13 +8,14 @@ const type_of_action = ['user_connected', 'user_disconnected']; module.exports = { - client_talk: function(client, guild_list, context) { + client_talk: function (client, guild_list, context) { let check = null; if (type_of_announcement.includes(context)) { check = 'ann_announce'; } else if (type_of_action.includes(context)) { check = 'ann_user'; } if (client.voice !== undefined) { - if (voiceConnection = client.voice.connections.find(connection => connection.channel.id)) { + const voiceConnection = client.voice.connections.find(connection => connection.channel.id); + if (voiceConnection) { for (const guild_id in guild_list) { for (const portal_id in guild_list[guild_id].portal_list) { for (const voice_id in guild_list[guild_id].portal_list[portal_id].voice_list) { @@ -34,7 +35,7 @@ module.exports = } }, - client_write: function(message, guild_list, context) { + client_write: function (message, guild_list, context) { let locale = null; if (message !== null) { if (message.member.voice !== undefined && message.member.voice !== null) { @@ -55,7 +56,7 @@ module.exports = return this.portal[context][locale](); }, - client_log: function(guild_id, message, guild_list, context, args) { + client_log: function (guild_id, message, guild_list, context, args) { let locale = null; if (message !== null) { if (message.author.voice !== undefined && message.author.voice !== null) { @@ -130,15 +131,15 @@ module.exports = ready: { gr: (args) => { return `Το μποτ ξεκίνησε, με ${args.client.users.cache.size} χρήστες, μέσα σε ` + - `${args.client.channels.cache.size} κανάλια σε ${args.client.guilds.cache.size} συντεχνίες.`; + `${args.client.channels.cache.size} κανάλια σε ${args.client.guilds.cache.size} συντεχνίες.`; }, en: (args) => { return `Bot has started, with ${args.client.users.cache.size} users, ` + - `in ${args.client.channels.cache.size} channels from ${args.client.guilds.cache.size} guilds.`; + `in ${args.client.channels.cache.size} channels from ${args.client.guilds.cache.size} guilds.`; }, de: (args) => { return `Bot hat ${args.client.users.cache.size} Mitglieder in ${channel_count} ` + - `Kanälen von ${guild_count} Gilden gestartet.`; + `Kanälen von ${guild_count} Gilden gestartet.`; }, }, updating_guild: { @@ -149,30 +150,30 @@ module.exports = presence_controlled_away: { gr: (args) => { return `Ο χρήστης ${args.newPresence.member.displayName} είναι μέλος ` + - `μια ελεγχόμενης συντεχνίας, έχει αλλάξει κατάσταση, αλλά βρίσκεται στη συντεχνία ` + - `(${args.newPresence.guild.name})`; + `μια ελεγχόμενης συντεχνίας, έχει αλλάξει κατάσταση, αλλά βρίσκεται στη συντεχνία ` + + `(${args.newPresence.guild.name})`; }, en: (args) => { return `${args.newPresence.member.displayName} who is a member of a handled server, ` + - `has changed presence, but is in another server (${args.newPresence.guild.name})`; + `has changed presence, but is in another server (${args.newPresence.guild.name})`; }, de: (args) => { return `${args.newPresence.member.displayName} who is a member of a handled server, ` + - `has changed presence, but is in another server (${args.newPresence.guild.name})`; + `has changed presence, but is in another server (${args.newPresence.guild.name})`; }, }, presence_controlled: { gr: (args) => { return `Ο χρήστης ${args.newPresence.member.displayName} έχει αλλάξει κατάσταση, ` + - `και βρίσκεται στην ελεγχόμενη συντεχνία (${args.newPresence.guild.name})`; + `και βρίσκεται στην ελεγχόμενη συντεχνία (${args.newPresence.guild.name})`; }, en: (args) => { return `${args.newPresence.member.displayName} has changed presence, ` + - `in controlled server (${args.newPresence.guild.name})`; + `in controlled server (${args.newPresence.guild.name})`; }, de: (args) => { return `${args.newPresence.member.displayName} has changed presence, ` + - `in controlled server (${args.newPresence.guild.name})`; + `in controlled server (${args.newPresence.guild.name})`; }, }, }, diff --git a/functions/music_manager.js b/src/functions/music_manager.js similarity index 73% rename from functions/music_manager.js rename to src/functions/music_manager.js index 310d3afe..5a07f225 100644 --- a/functions/music_manager.js +++ b/src/functions/music_manager.js @@ -6,12 +6,12 @@ const ytdl = require('discord-ytdl-core'); module.exports = { - start: async function(client, message, search_term, portal_guilds) { + start: async function (client, message, search_term, portal_guilds) { return new Promise((resolve) => { - if(!search_term || search_term === '') { + if (!search_term || search_term === '') { return resolve({ result: false, value: 'cannot search for nothing.' }); } - if(!message.member.voice.channel) { + if (!message.member.voice.channel) { return resolve({ result: false, value: 'you are not connected to any channel.' }); } @@ -19,14 +19,14 @@ module.exports = { const current_dispatcher = portal_guilds[guild_id].dispatcher; const current_music_queue = portal_guilds[guild_id].music_queue; - if(current_dispatcher !== null && current_dispatcher !== undefined) { + if (current_dispatcher !== null && current_dispatcher !== undefined) { yts(search_term) .then(yts_attempt => { if (yts_attempt) { current_music_queue.push(yts_attempt.videos[0]); } else { - return resolve ({ result: false, value: 'could not find youtube video' }); + return resolve({ result: false, value: 'could not find youtube video' }); } }) .catch(error => console.log(error)); @@ -39,7 +39,6 @@ module.exports = { yts(search_term) .then(yts_attempt => { if (yts_attempt && yts_attempt.videos.length > 0) { - console.log('yts_attempt.videos[0] :>> ', yts_attempt.videos[0]); const stream = ytdl(yts_attempt.videos[0].url, { filter: 'audioonly', opusEncoded: false, @@ -56,29 +55,29 @@ module.exports = { portal_guilds[guild_id].music_data.votes = []; }); - return resolve ({ result: false, value: 'playing video' }); + return resolve({ result: false, value: 'playing video' }); } else { - return resolve ({ result: false, value: 'could not find youtube video' }); + return resolve({ result: false, value: 'could not find youtube video' }); } }) .catch(error => console.log(error)); } else { console.log(join_attempt.value); - return resolve ({ result: false, value: join_attempt.value }); + return resolve({ result: false, value: join_attempt.value }); } }) .catch(error => console.log(error)); }); }, - play: async function(guild_id, portal_guilds, client, guild_object) { + play: async function (guild_id, portal_guilds, client, guild_object) { return new Promise((resolve) => { const current_dispatcher = portal_guilds[guild_id].dispatcher; - if(current_dispatcher !== null && current_dispatcher !== undefined) { - if(current_dispatcher.paused) { + if (current_dispatcher !== null && current_dispatcher !== undefined) { + if (current_dispatcher.paused) { current_dispatcher.resume(); portal_guilds[guild_id].dispatcher.on('finish', () => { @@ -86,7 +85,7 @@ module.exports = { portal_guilds[guild_id].music_data.votes = []; }); - return resolve ({ result: false, value: 'song has been resumed.' }); + return resolve({ result: false, value: 'song has been resumed.' }); } } else if (current_dispatcher === null) { @@ -113,31 +112,31 @@ module.exports = { }); } - return resolve ({ result: false, value: 'next video playing.' }); + return resolve({ result: false, value: 'next video playing.' }); } else { - return resolve ({ result: false, value: 'nothing playing write now.' }); + return resolve({ result: false, value: 'nothing playing write now.' }); } }); }, - pause: async function(guild_id, portal_guilds) { + pause: async function (guild_id, portal_guilds) { return new Promise((resolve) => { const current_dispatcher = portal_guilds[guild_id].dispatcher; - if(current_dispatcher !== null && current_dispatcher !== undefined) { - if(!current_dispatcher.paused) { + if (current_dispatcher !== null && current_dispatcher !== undefined) { + if (!current_dispatcher.paused) { current_dispatcher.pause(); } - return resolve ({ result: false, value: 'song has been paused.' }); + return resolve({ result: false, value: 'song has been paused.' }); } else { - return resolve ({ result: false, value: 'nothing playing write now.' }); + return resolve({ result: false, value: 'nothing playing write now.' }); } }); }, - stop: async function(guild_id, portal_guilds, guild_object) { + stop: async function (guild_id, portal_guilds, guild_object) { return new Promise((resolve) => { const current_dispatcher = portal_guilds[guild_id].dispatcher; @@ -155,27 +154,27 @@ module.exports = { thumbnail: portal_icon_url, }); - if(current_dispatcher !== null && current_dispatcher !== undefined) { - if(!current_dispatcher.paused) { + if (current_dispatcher !== null && current_dispatcher !== undefined) { + if (!current_dispatcher.paused) { current_dispatcher.pause(); } portal_guilds[guild_id].dispatcher = null; - return resolve ({ result: false, value: 'song has been stopped.' }); + return resolve({ result: false, value: 'song has been stopped.' }); } else { portal_guilds[guild_id].dispatcher = null; - return resolve ({ result: false, value: 'nothing playing write now.' }); + return resolve({ result: false, value: 'nothing playing write now.' }); } }); }, - skip: async function(guild_id, portal_guilds, client, guild_object) { + skip: async function (guild_id, portal_guilds, client, guild_object) { return new Promise((resolve) => { const current_dispatcher = portal_guilds[guild_id].dispatcher; const current_music_queue = portal_guilds[guild_id].music_queue; - if(current_dispatcher !== null && current_dispatcher !== undefined) { - if(current_music_queue.length > 0) { + if (current_dispatcher !== null && current_dispatcher !== undefined) { + if (current_music_queue.length > 0) { const next_yts_video = portal_guilds[guild_id].music_queue.shift(); const voice_connection = client.voice.connections.find(connection => connection.channel.id); @@ -201,7 +200,7 @@ module.exports = { } else { const portal_icon_url = 'https://raw.githubusercontent.com/keybraker/keybraker' + - '.github.io/master/assets/img/logo.png'; + '.github.io/master/assets/img/logo.png'; help_mngr.update_message(portal_guilds[guild_id], guild_object, { @@ -212,17 +211,17 @@ module.exports = { ago: '-', thumbnail: portal_icon_url, }); - if(!current_dispatcher.paused) { + if (!current_dispatcher.paused) { current_dispatcher.pause(); } portal_guilds[guild_id].dispatcher = null; - return resolve ({ result: false, value: 'music list is empty' }); + return resolve({ result: false, value: 'music list is empty' }); } - return resolve ({ result: false, value: 'song has been skipped.' }); + return resolve({ result: false, value: 'song has been skipped.' }); } else { - return resolve ({ result: false, value: 'nothing playing write now.' }); + return resolve({ result: false, value: 'nothing playing write now.' }); } }); } diff --git a/functions/status_manager.js b/src/functions/status_manager.js similarity index 82% rename from functions/status_manager.js rename to src/functions/status_manager.js index 9f30cc45..1f0e098a 100644 --- a/functions/status_manager.js +++ b/src/functions/status_manager.js @@ -1,8 +1,8 @@ -const games = require('../assets/jsons/game_list.json'); -const programs = require('../assets/jsons/program_list.json'); +const games = require('../../assets/jsons/game_list.json'); +const programs = require('../../assets/jsons/program_list.json'); module.exports = { - status_aliases: function(activities, locale) { + status_aliases: function (activities, locale) { const new_status = []; activities.forEach(activity => { @@ -20,7 +20,7 @@ module.exports = { } } - if(!found) { + if (!found) { for (let l = 0; l < programs.program_attributes.length; l++) { if (activity.name == programs.program_attributes[l].status) { if (locale === 'gr') { @@ -35,7 +35,7 @@ module.exports = { } } - if(!found) { + if (!found) { new_status.push(activity.name); } }); @@ -43,13 +43,13 @@ module.exports = { return new_status; }, - get_status_list: function(voice_channel, voice_object) { + get_status_list: function (voice_channel, voice_object) { const array_of_statuses = []; voice_channel.members.forEach(member => { - if(!member.user.bot) { + if (!member.user.bot) { if (member.presence.activities !== undefined) { - if(member.presence.activities.length > 0) { + if (member.presence.activities.length > 0) { this.status_aliases(member.presence.activities, voice_object.locale) .forEach(stat => { if (!array_of_statuses.includes(stat)) { diff --git a/functions/user_manager.js b/src/functions/user_manager.js similarity index 70% rename from functions/user_manager.js rename to src/functions/user_manager.js index 51018f2a..1bcedc1c 100644 --- a/functions/user_manager.js +++ b/src/functions/user_manager.js @@ -5,18 +5,18 @@ level_speed = { 'slow': 0.01, 'normal': 0.05, 'fast': 0.1 }; module.exports = { - give_role_from_rankup: function(user, member, ranks, guild) { + give_role_from_rankup: function (user, member, ranks, guild) { if (ranks) return; const new_rank = ranks.find(rank => rank.level === user.level); - if(new_rank === null || new_rank === undefined) return; + if (new_rank === null || new_rank === undefined) return; const new_role = guild.roles.cache.find(role => role.id === new_rank.id); - if(new_role === null || new_role === undefined) return; + if (new_role === null || new_role === undefined) return; - if (!member.roles.cache.some(role => role === new_role)) {member.roles.add(new_role);} + if (!member.roles.cache.some(role => role === new_role)) { member.roles.add(new_role); } }, - calculate_rank: function(user) { + calculate_rank: function (user) { if (user.points >= user.tier * 1000) { user.points -= user.tier * 1000; user.level++; @@ -28,7 +28,7 @@ module.exports = } }, - add_points_time: function(user, speed) { + add_points_time: function (user, speed) { const voice_time = help_mngr.time_elapsed(user.timestamp, 0); user.points += Math.round(voice_time.remaining_sec * level_speed[speed]); @@ -38,7 +38,7 @@ module.exports = user.timestamp = null; }, - update_timestamp: function(voiceState, guild_list) { + update_timestamp: function (voiceState, guild_list) { if (voiceState.member.user.bot) return; const guild = voiceState.guild; @@ -57,11 +57,11 @@ module.exports = this.calculate_rank(user); this.give_role_from_rankup(user, member, ranks, guild); - if (user.level > cached_level) {return user.level;} + if (user.level > cached_level) { return user.level; } return false; }, - add_points_message: function(message, guild_list) { + add_points_message: function (message, guild_list) { const user = guild_list[message.guild.id].member_list[message.author.id]; const speed = guild_list[message.guild.id].level_speed; const points = message.content.length * level_speed[speed]; @@ -75,23 +75,23 @@ module.exports = return false; }, - kick: function(message, args) { + kick: function (message, args) { // This command must be limited to mods and admins. In this example we just hardcode the role names. // Please read on Array.some() to understand this bit: // https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/some? - if(!message.member.roles.some(r=>['Administrator', 'Moderator'].includes(r.name))) {return message.reply('Sorry, you don\'t have permissions to use this!');} + if (!message.member.roles.some(r => ['Administrator', 'Moderator'].includes(r.name))) { return message.reply('Sorry, you don\'t have permissions to use this!'); } // Let's first check if we have a member and if we can kick them! // message.mentions.members is a collection of people that have been mentioned, as GuildMembers. // We can also support getting the member by ID, which would be args[0] const member = message.mentions.members.first() || message.guild.members.get(args[0]); - if(!member) {return message.reply('Please mention a valid member of this server');} - if(!member.kickable) {return message.reply('I cannot kick this user! Do they have a higher role? Do I have kick permissions?');} + if (!member) { return message.reply('Please mention a valid member of this server'); } + if (!member.kickable) { return message.reply('I cannot kick this user! Do they have a higher role? Do I have kick permissions?'); } // slice(1) removes the first part, which here should be the user mention or ID // join(' ') takes all the various parts to make it a single string. let reason = args.slice(1).join(' '); - if(!reason) reason = 'No reason provided'; + if (!reason) reason = 'No reason provided'; // Now, time for a swift kick in the nuts! // await member.kick(reason) @@ -100,17 +100,17 @@ module.exports = message.reply(`${member.user.tag} has been kicked by ${message.author.tag} because: ${reason}`); }, - ban: function(message, args) { + ban: function (message, args) { // Most of this command is identical to kick, except that here we'll only let admins do it. // In the real world mods could ban too, but this is just an example, right? ;) - if(!message.member.roles.some(r=>['Administrator'].includes(r.name))) {return message.reply('Sorry, you don\'t have permissions to use this!');} + if (!message.member.roles.some(r => ['Administrator'].includes(r.name))) { return message.reply('Sorry, you don\'t have permissions to use this!'); } const member = message.mentions.members.first(); - if(!member) {return message.reply('Please mention a valid member of this server');} - if(!member.bannable) {return message.reply('I cannot ban this user! Do they have a higher role? Do I have ban permissions?');} + if (!member) { return message.reply('Please mention a valid member of this server'); } + if (!member.bannable) { return message.reply('I cannot ban this user! Do they have a higher role? Do I have ban permissions?'); } let reason = args.slice(1).join(' '); - if(!reason) reason = 'No reason provided'; + if (!reason) reason = 'No reason provided'; // await member.ban(reason) member.ban(reason) diff --git a/src/moderation/profanity.js b/src/moderation/profanity.js new file mode 100644 index 00000000..d2253464 --- /dev/null +++ b/src/moderation/profanity.js @@ -0,0 +1,29 @@ +/* eslint-disable no-unused-vars */ +const profane_word_list = require('../../assets/jsons/profane_word_list.json'); + +/** + * Determine if a string contains profane language. + * @param {string} string - String to evaluate for profanity. + * + * https://github.com/web-mech/badwords + */ +module.exports = function isProfane(string) { + const str_array = [string]; + for (let i = 0; i < string.length; i++) { + str_array.push(string.substr(0, i)); + str_array.push(string.substr(i, string.length - 1)); + } + + return Object.getOwnPropertyNames(profane_word_list).some(lang => { + return profane_word_list[lang].filter((word) => { + if (lang === 'en') { + const regex_word = word.replace(/(\W)/g, '\\$1'); + const word_exp = new RegExp(`\\b(\\w*${word}\\w*)\\b`, 'gi'); + return word_exp.test(string); + } else if (lang === 'el') { + return str_array.some(str => str === word); + } + + }).length > 0 || false; + }); +} \ No newline at end of file diff --git a/src/portal.js b/src/portal.js new file mode 100644 index 00000000..255d79da --- /dev/null +++ b/src/portal.js @@ -0,0 +1,341 @@ +// const mongoose = require('mongoose'); +// mongoose.connect('mongodb://localhost/PortalDB', { useNewUrlParser: true }) +// .catch(error => { +// console.error.bind(console, 'PortallDB connection error:'); +// console.log('Could not connect to PortalDB (mongo) with error:\n', error); +// return -1; +// }); + +// const PortalDB = mongoose.connection; +// PortalDB.once('open', function() { console.log('we\'re connected!'); }); + +// list of all managed channels in servers +const portal_managed_guilds_path = './database/guild_list.json'; +const guild_list = require('../database/guild_list.json'); + +if (guild_list === null) { + console.log('guild json is corrupt'); + process.exit(1); +} + +const config = require('../config.json'); +const cooldown_list = require('../assets/jsons/cooldown_list.json'); + +const profanity = require('./moderation/profanity.js') +const guld_mngr = require('./functions/guild_manager'); +const help_mngr = require('./functions/help_manager'); +const lclz_mngr = require('./functions/localization_manager'); +const user_mngr = require('./functions/user_manager'); +const play_mngr = require('./functions/music_manager'); + +// load up the discord.js library +const Discord = require('discord.js'); +// const { Discord, Client, Message, Guild, DMChannel, GuildChannel, GuildMember, Presence } = require('discord.js'); + +// this is the client the Portal Bot. Some people call it bot, some people call +// it 'self', client.user is actually the presence of portal bot in the server +const client = new Discord.Client({ partials: ['MESSAGE', 'CHANNEL', 'REACTION'] }); + +const active_cooldown = { guild: [], member: [] }; + +// This event will run if the bot starts, and logs in, successfully. +client.on('ready', () => + event_loader('ready', { + 'client': client, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// When bot connects to shard again ? +client.on('shardReconnecting', id => + event_loader('shardReconnecting', { + 'id': id, + }) +); + +// this event triggers when the bot is removed from a guild. +client.on('guildDelete', guild => + event_loader('guildDelete', { + 'guild': guild, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// This event triggers when the bot joins a guild. +client.on('guildCreate', guild => + event_loader('guildCreate', { + 'client': client, + 'guild': guild, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// This event triggers when the bot joins a guild. +client.on('channelDelete', channel => + event_loader('channelDelete', { + 'channel': channel, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// This event triggers when a new member joins a guild. +client.on('guildMemberAdd', member => + event_loader('guildMemberAdd', { + 'member': member, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// This event triggers when a new member leaves a guild. +client.on('guildMemberRemove', member => + event_loader('guildMemberRemove', { + 'member': member, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// This event triggers when the status of a guild member has changed +client.on('presenceUpdate', (oldPresence, newPresence) => + event_loader('presenceUpdate', { + 'client': client, + 'guild_list': guild_list, + 'newPresence': newPresence, + }) +); + +// This event triggers when a member reacts to a message +client.on('messageReactionAdd', (messageReaction, user) => + event_loader('messageReactionAdd', { + 'client': client, + 'guild_list': guild_list, + 'messageReaction': messageReaction, + 'user': user, + }) +); + +// This event triggers when a message is deleted +client.on('messageDelete', (message) => + event_loader('messageDelete', { + 'client': client, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + 'message': message, + }) +); + +// This event triggers when a member joins or leaves a voice channel +client.on('voiceStateUpdate', (oldState, newState) => + event_loader('voiceStateUpdate', { + 'client': client, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + 'oldState': oldState, + 'newState': newState, + }) +); + +// runs on every single message received, from any channel or DM +client.on('message', async message => { + // Ignore other bots and also itself ('botception') + if (message.author.bot) return; + + // Ignore any direct message + if (message.channel.type === 'dm') return; + + // check if something written in portal channels + portal_channel_handler(message); + + // ranking system + ranking_system(message); + + // word check + if (profanity(message.content)) { + message.react('🚩'); + message.author + .send("try not to use profanities") + .catch(console.error); + } + + help_mngr.update_portal_managed_guilds(true, portal_managed_guilds_path, guild_list); + + // Ignore any message that does not start with prefix + if (message.content.indexOf(config.prefix) !== 0) return; + + // Separate function name, and arguments of function + const args = message.content.slice(config.prefix.length).trim().split(/ +/g); + const cmd = args.shift().toLowerCase(); + let type = null; + + if (cooldown_list.guild[cmd]) { + type = 'guild'; + } + else if (cooldown_list.member[cmd]) { + type = 'member'; + } + else if (cooldown_list.none[cmd]) { + type = 'none'; + } + else { + return; + } + + if (cooldown_list[type][cmd].auth) { + const is_user_authorized = help_mngr.is_authorized( + guild_list[message.guild.id].auth_role, message.member); + + if (!is_user_authorized) { + help_mngr.message_reply(false, message.channel, message, message.author, + 'you are not authorized to access this command', guild_list, client); + return; + } + } + + if (cooldown_list[type][cmd].premium && !guild_list[message.guild.id].premium) { + help_mngr.message_reply( + false, message.channel, message, + message.author, 'this server is not premium', guild_list, client); + return; + } + + if (type === 'none' && cooldown_list.none[cmd].time === 0) { + require(`./commands/${cmd}.js`)(client, message, args, guild_list, portal_managed_guilds_path) + .then(rspns => { + help_mngr.message_reply(rspns.result, message.channel, message, + message.author, rspns.value, guild_list, client, cooldown_list[type][cmd].auto_delete); + help_mngr.update_portal_managed_guilds(true, portal_managed_guilds_path, guild_list); + }); + return; + } + + const active = active_cooldown[type].find(active_current => { + if (active_current.command === cmd) { + if (type === 'member' && active_current.member === message.author.id) { + return true; + } + if (type === 'guild') { + return true; + } + } + return false; + }); + + if (active) { + const time = help_mngr.time_elapsed(active.timestamp, cooldown_list[type][cmd].time); + const type_for_msg = type === 'member' ? '.*' : `, as it was used again in* **${message.guild.name}**.`; + + help_mngr.message_reply(false, message.channel, message, message.author, + `*you need to wait* **${help_mngr.pad(time.remaining_min)}:` + + `${help_mngr.pad(time.remaining_sec)}/${help_mngr.pad(time.timeout_min)}:` + + `${help_mngr.pad(time.timeout_sec)}** *to use* **${cmd}** *again${type_for_msg}`, + guild_list, client); + + return; + } + + require(`./commands/${cmd}.js`)(client, message, args, guild_list, portal_managed_guilds_path) + .then(rspns => { + if (rspns.result === true) { + active_cooldown[type].push({ member: message.author.id, command: cmd, timestamp: Date.now() }); + + setTimeout(() => { + active_cooldown[type] = active_cooldown[type] + .filter(active.command !== cmd); + }, cooldown_list[type][cmd].time * 60 * 1000); + } + console.log('cooldown_list[type][cmd].auto_delete :>> ', cooldown_list[type][cmd].auto_delete); + help_mngr.message_reply(rspns, message.channel, message, message.author, + rspns ? 'executed correctly' : 'executed falsely', guild_list, client, + cooldown_list[type][cmd].auto_delete); + + help_mngr.update_portal_managed_guilds(true, portal_managed_guilds_path, guild_list); + }); +}); + +function event_loader(event, args) { + console.log(`event emitted: ${event}`); + require(`./events/${event}.js`)(args) + .then(rspns => { + if (rspns !== null && rspns !== undefined) { + if (event === 'messageReactionAdd') { + const music_channel_id = args.guild_list[args.messageReaction.message.guild.id] + .music_data.channel_id; + const music_channel = args.messageReaction.message.guild.channels.cache + .find(channel => channel.id === music_channel_id); + + music_channel + .send(`${args.user}, ${rspns.value.toString()}`) + .then(msg => { msg.delete({ timeout: 5000 }); }) + .catch(error => console.log(error)); + } + else { + console.log(rspns.result, rspns.value); + } + } + }); +}; + +function portal_channel_handler(message) { + let channel_type = null, channel_support = null, channel_talk = null; + + if (guld_mngr.included_in_url_list(message.channel.id, guild_list[message.guild.id])) { + if (help_mngr.is_url(message.content)) { + lclz_mngr.client_talk(client, guild_list, 'url'); + return; + } + else { + channel_type = 'URL'; + channel_support = 'url'; + channel_talk = 'read_only'; + } + } + else if (guild_list[message.guild.id].music_data.channel_id === message.channel.id) { + play_mngr.start(client, message, message.content, guild_list) + .then(joined => { + help_mngr.message_reply(joined.result, message.channel, message, + message.author, joined.value, guild_list, client, true); + }) + .catch(error => { + console.log(error); + message.delete(); + }); + return; + } + + if (channel_type !== null && channel_support !== null && channel_talk !== null) { + lclz_mngr.client_talk(client, guild_list, channel_talk); + help_mngr.message_reply( + null, message.channel, message, + message.author, `${channel_type} channel is ${channel_support}-only.`, + guild_list, client); + message.delete(); + return; + } +} + +function ranking_system(message) { + const level = user_mngr.add_points_message(message, guild_list); + if (level) { + help_mngr.message_reply( + null, message.channel, message, + message.author, `You reached level ${level}!`, + guild_list, client); + } +} + +function log_portal() { + client.login(config.token); +} + +log_portal(); + +exports.client = client; +exports.log_portal = log_portal; + +// console.log('Object.getOwnPropertyNames(message) = ', Object.getOwnPropertyNames(message)) +// console.log('Object.getOwnPropertyNames(message.author) = ', Object.getOwnPropertyNames(message.author)) diff --git a/src/portal.ts b/src/portal.ts new file mode 100644 index 00000000..63dd5c4e --- /dev/null +++ b/src/portal.ts @@ -0,0 +1,341 @@ +// const mongoose = require('mongoose'); +// mongoose.connect('mongodb://localhost/PortalDB', { useNewUrlParser: true }) +// .catch(error => { +// console.error.bind(console, 'PortallDB connection error:'); +// console.log('Could not connect to PortalDB (mongo) with error:\n', error); +// return -1; +// }); + +// const PortalDB = mongoose.connection; +// PortalDB.once('open', function() { console.log('we\'re connected!'); }); + +// list of all managed channels in servers +const portal_managed_guilds_path = './database/guild_list.json'; +const guild_list = require('../database/guild_list.json'); + +if (guild_list === null) { + console.log('guild json is corrupt'); + process.exit(1); +} + +const config = require('../config.json'); +const cooldown_list = require('../assets/jsons/cooldown_list.json'); + +const profanity = require('./moderation/profanity.js') +const guld_mngr = require('./functions/guild_manager'); +const help_mngr = require('./functions/help_manager'); +const lclz_mngr = require('./functions/localization_manager'); +const user_mngr = require('./functions/user_manager'); +const play_mngr = require('./functions/music_manager'); + +// load up the discord.js library +const Discord = require('discord.js'); +// const { Discord, Client, Message, Guild, DMChannel, GuildChannel, GuildMember, Presence } = require('discord.js'); + +// this is the client the Portal Bot. Some people call it bot, some people call +// it 'self', client.user is actually the presence of portal bot in the server +const client = new Discord.Client({ partials: ['MESSAGE', 'CHANNEL', 'REACTION'] }); + +const active_cooldown = { guild: [], member: [] }; + +// This event will run if the bot starts, and logs in, successfully. +client.on('ready', () => + event_loader('ready', { + 'client': client, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// When bot connects to shard again ? +client.on('shardReconnecting', id => + event_loader('shardReconnecting', { + 'id': id, + }) +); + +// this event triggers when the bot is removed from a guild. +client.on('guildDelete', guild => + event_loader('guildDelete', { + 'guild': guild, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// This event triggers when the bot joins a guild. +client.on('guildCreate', guild => + event_loader('guildCreate', { + 'client': client, + 'guild': guild, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// This event triggers when the bot joins a guild. +client.on('channelDelete', channel => + event_loader('channelDelete', { + 'channel': channel, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// This event triggers when a new member joins a guild. +client.on('guildMemberAdd', member => + event_loader('guildMemberAdd', { + 'member': member, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// This event triggers when a new member leaves a guild. +client.on('guildMemberRemove', member => + event_loader('guildMemberRemove', { + 'member': member, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + }) +); + +// This event triggers when the status of a guild member has changed +client.on('presenceUpdate', (oldPresence, newPresence) => + event_loader('presenceUpdate', { + 'client': client, + 'guild_list': guild_list, + 'newPresence': newPresence, + }) +); + +// This event triggers when a member reacts to a message +client.on('messageReactionAdd', (messageReaction, user) => + event_loader('messageReactionAdd', { + 'client': client, + 'guild_list': guild_list, + 'messageReaction': messageReaction, + 'user': user, + }) +); + +// This event triggers when a message is deleted +client.on('messageDelete', (message) => + event_loader('messageDelete', { + 'client': client, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + 'message': message, + }) +); + +// This event triggers when a member joins or leaves a voice channel +client.on('voiceStateUpdate', (oldState, newState) => + event_loader('voiceStateUpdate', { + 'client': client, + 'guild_list': guild_list, + 'portal_managed_guilds_path': portal_managed_guilds_path, + 'oldState': oldState, + 'newState': newState, + }) +); + +// runs on every single message received, from any channel or DM +client.on('message', async (message: @Discord.message) => { + // Ignore other bots and also itself ('botception') + if (message.author.bot) return; + + // Ignore any direct message + if (message.channel.type === 'dm') return; + + // check if something written in portal channels + portal_channel_handler(message); + + // ranking system + ranking_system(message); + + // word check + if (profanity(message.content)) { + message.react('🚩'); + message.author + .send("try not to use profanities") + .catch(console.error); + } + + help_mngr.update_portal_managed_guilds(true, portal_managed_guilds_path, guild_list); + + // Ignore any message that does not start with prefix + if (message.content.indexOf(config.prefix) !== 0) return; + + // Separate function name, and arguments of function + const args = message.content.slice(config.prefix.length).trim().split(/ +/g); + const cmd = args.shift().toLowerCase(); + let type = null; + + if (cooldown_list.guild[cmd]) { + type = 'guild'; + } + else if (cooldown_list.member[cmd]) { + type = 'member'; + } + else if (cooldown_list.none[cmd]) { + type = 'none'; + } + else { + return; + } + + if (cooldown_list[type][cmd].auth) { + const is_user_authorized = help_mngr.is_authorized( + guild_list[message.guild.id].auth_role, message.member); + + if (!is_user_authorized) { + help_mngr.message_reply(false, message.channel, message, message.author, + 'you are not authorized to access this command', guild_list, client); + return; + } + } + + if (cooldown_list[type][cmd].premium && !guild_list[message.guild.id].premium) { + help_mngr.message_reply( + false, message.channel, message, + message.author, 'this server is not premium', guild_list, client); + return; + } + + if (type === 'none' && cooldown_list.none[cmd].time === 0) { + require(`./commands/${cmd}.js`)(client, message, args, guild_list, portal_managed_guilds_path) + .then(rspns => { + help_mngr.message_reply(rspns.result, message.channel, message, + message.author, rspns.value, guild_list, client, cooldown_list[type][cmd].auto_delete); + help_mngr.update_portal_managed_guilds(true, portal_managed_guilds_path, guild_list); + }); + return; + } + + const active = active_cooldown[type].find(active_current => { + if (active_current.command === cmd) { + if (type === 'member' && active_current.member === message.author.id) { + return true; + } + if (type === 'guild') { + return true; + } + } + return false; + }); + + if (active) { + const time = help_mngr.time_elapsed(active.timestamp, cooldown_list[type][cmd].time); + const type_for_msg = type === 'member' ? '.*' : `, as it was used again in* **${message.guild.name}**.`; + + help_mngr.message_reply(false, message.channel, message, message.author, + `*you need to wait* **${help_mngr.pad(time.remaining_min)}:` + + `${help_mngr.pad(time.remaining_sec)}/${help_mngr.pad(time.timeout_min)}:` + + `${help_mngr.pad(time.timeout_sec)}** *to use* **${cmd}** *again${type_for_msg}`, + guild_list, client); + + return; + } + + require(`./commands/${cmd}.js`)(client, message, args, guild_list, portal_managed_guilds_path) + .then(rspns => { + if (rspns.result === true) { + active_cooldown[type].push({ member: message.author.id, command: cmd, timestamp: Date.now() }); + + setTimeout(() => { + active_cooldown[type] = active_cooldown[type] + .filter(active.command !== cmd); + }, cooldown_list[type][cmd].time * 60 * 1000); + } + console.log('cooldown_list[type][cmd].auto_delete :>> ', cooldown_list[type][cmd].auto_delete); + help_mngr.message_reply(rspns, message.channel, message, message.author, + rspns ? 'executed correctly' : 'executed falsely', guild_list, client, + cooldown_list[type][cmd].auto_delete); + + help_mngr.update_portal_managed_guilds(true, portal_managed_guilds_path, guild_list); + }); +}); + +function event_loader(event, args) { + console.log(`event emitted: ${event}`); + require(`./events/${event}.js`)(args) + .then(rspns => { + if (rspns !== null && rspns !== undefined) { + if (event === 'messageReactionAdd') { + const music_channel_id = args.guild_list[args.messageReaction.message.guild.id] + .music_data.channel_id; + const music_channel = args.messageReaction.message.guild.channels.cache + .find(channel => channel.id === music_channel_id); + + music_channel + .send(`${args.user}, ${rspns.value.toString()}`) + .then(msg => { msg.delete({ timeout: 5000 }); }) + .catch(error => console.log(error)); + } + else { + console.log(rspns.result, rspns.value); + } + } + }); +}; + +function portal_channel_handler(message) { + let channel_type = null, channel_support = null, channel_talk = null; + + if (guld_mngr.included_in_url_list(message.channel.id, guild_list[message.guild.id])) { + if (help_mngr.is_url(message.content)) { + lclz_mngr.client_talk(client, guild_list, 'url'); + return; + } + else { + channel_type = 'URL'; + channel_support = 'url'; + channel_talk = 'read_only'; + } + } + else if (guild_list[message.guild.id].music_data.channel_id === message.channel.id) { + play_mngr.start(client, message, message.content, guild_list) + .then(joined => { + help_mngr.message_reply(joined.result, message.channel, message, + message.author, joined.value, guild_list, client, true); + }) + .catch(error => { + console.log(error); + message.delete(); + }); + return; + } + + if (channel_type !== null && channel_support !== null && channel_talk !== null) { + lclz_mngr.client_talk(client, guild_list, channel_talk); + help_mngr.message_reply( + null, message.channel, message, + message.author, `${channel_type} channel is ${channel_support}-only.`, + guild_list, client); + message.delete(); + return; + } +} + +function ranking_system(message) { + const level = user_mngr.add_points_message(message, guild_list); + if (level) { + help_mngr.message_reply( + null, message.channel, message, + message.author, `You reached level ${level}!`, + guild_list, client); + } +} + +function log_portal() { + client.login(config.token); +} + +log_portal(); + +exports.client = client; +exports.log_portal = log_portal; + +// console.log('Object.getOwnPropertyNames(message) = ', Object.getOwnPropertyNames(message)) +// console.log('Object.getOwnPropertyNames(message.author) = ', Object.getOwnPropertyNames(message.author)) \ No newline at end of file diff --git a/properties/attribute_list.js b/src/properties/attribute_list.js similarity index 93% rename from properties/attribute_list.js rename to src/properties/attribute_list.js index 020c7860..6e5e9504 100644 --- a/properties/attribute_list.js +++ b/src/properties/attribute_list.js @@ -4,13 +4,13 @@ const locales = ['gr', 'en', 'de']; module.exports = { - is_attribute: function(arg) { + is_attribute: function (arg) { for (let i = 0; i < this.attributes.length; i++) { - if (String(arg).substring(1, (String(this.attributes[i].name).length + 1)) == this.attributes[i].name) {return this.attributes[i].name;} + if (String(arg).substring(1, (String(this.attributes[i].name).length + 1)) == this.attributes[i].name) { return this.attributes[i].name; } } return false; }, - get_help: function() { + get_help: function () { const attr_array = []; for (let i = 0; i < this.attributes.length; i++) { attr_array.push({ @@ -25,7 +25,7 @@ module.exports = '\n**!**: *mandatory*, **@**: *optional*', '#FF5714', attr_array); }, - get_help_super: function(check) { + get_help_super: function (check) { for (let i = 0; i < this.attributes.length; i++) { const attr = this.attributes[i]; if (attr.name === check) { @@ -45,7 +45,7 @@ module.exports = } return false; }, - get: function(voice_channel, voice_object, portal_object, guild_object, attr) { + get: function (voice_channel, voice_object, portal_object, guild_object, attr) { for (let l = 0; l < this.attributes.length; l++) { if (attr === this.attributes[l].name) { return this.attributes[l].get(voice_channel, voice_object, portal_object, guild_object); @@ -53,27 +53,27 @@ module.exports = } return -1; }, - set: function(voice_channel, voice_object, portal_object, guild_object, attr, value, member) { + set: function (voice_channel, voice_object, portal_object, guild_object, attr, value, member) { for (let l = 0; l < this.attributes.length; l++) { if (attr === this.attributes[l].name) { switch (this.attributes[l].auth) { - case 'admin': - if (!member.hasPermission('ADMINISTRATOR')) { - return -2; - } - break; - case 'portal': - if(portal_object.creator_id !== member.id) { - return -3; - } - break; - case 'voice': - if(voice_object.creator_id !== member.id) { - return -4; - } - break; - default: - break; + case 'admin': + if (!member.hasPermission('ADMINISTRATOR')) { + return -2; + } + break; + case 'portal': + if (portal_object.creator_id !== member.id) { + return -3; + } + break; + case 'voice': + if (voice_object.creator_id !== member.id) { + return -4; + } + break; + default: + break; } return this.attributes[l].set(voice_channel, voice_object, portal_object, guild_object, value); diff --git a/properties/command_list.js b/src/properties/command_list.js similarity index 94% rename from properties/command_list.js rename to src/properties/command_list.js index 629f77e3..82f4ecec 100644 --- a/properties/command_list.js +++ b/src/properties/command_list.js @@ -2,13 +2,13 @@ const help_mngr = require('../functions/help_manager'); module.exports = { - is_command: function(arg) { + is_command: function (arg) { for (let i = 0; i < this.commands.length; i++) { - if (String(arg).substring(1, (String(this.commands[i].name).length + 1)) == this.commands[i].name) {return this.commands[i].name;} + if (String(arg).substring(1, (String(this.commands[i].name).length + 1)) == this.commands[i].name) { return this.commands[i].name; } } return false; }, - get_help: function() { + get_help: function () { const func_array = []; for (let i = 0; i < this.commands.length; i++) { func_array.push({ @@ -23,7 +23,7 @@ module.exports = '\n**!**: *mandatory*, **@**: *optional*', '#9775A9', func_array); }, - get_help_super: function(check) { + get_help_super: function (check) { for (let i = 0; i < this.commands.length; i++) { const cmmd = this.commands[i]; if (cmmd.name === check) { @@ -145,6 +145,15 @@ module.exports = example: './join', args: 'none', }, + { + name: 'joke', + description: 'returns a joke.', + super_description: '**joke**, returns a joke. You can specify the category of joke by' + + ' using arguments: dad, chuck, blonde, knock-knock, animal or jod.' + + ' By default it is about you.', + example: './joke', + args: '<@category>', + }, { name: 'leave', description: 'leaves the voice channel portal is currently in.', @@ -212,6 +221,14 @@ module.exports = '\n>This will create a message giving/striping moba role with :heart:/:poop: and fps role with :rofl:/:dog:.', args: '```json\nJSON array of objects:\n{ "give": ":heart:", "strip": ":poop:", "role": "moba" }```', }, + { + name: 'roll', + description: 'rolls requested dice.', + super_description: '**roll**, rolls requested dice you can also combine rolls.' + + 'Rolls are following the same philosophy as roll20 does.', + example: './roll 3d12+5', + args: '', + }, { name: 'run', description: 'returns the log of data given in log_string.', diff --git a/properties/pipe_list.js b/src/properties/pipe_list.js similarity index 96% rename from properties/pipe_list.js rename to src/properties/pipe_list.js index 1c60cb9b..1c5a01aa 100644 --- a/properties/pipe_list.js +++ b/src/properties/pipe_list.js @@ -3,13 +3,13 @@ const voca = require('voca'); const help_mngr = require('../functions/help_manager'); module.exports = { - is_pipe: function(arg) { + is_pipe: function (arg) { for (let i = 0; i < this.pipes.length; i++) { - if (String(arg).substring(1, (String(this.pipes[i].name).length + 1)) == this.pipes[i].name) {return this.pipes[i].name;} + if (String(arg).substring(1, (String(this.pipes[i].name).length + 1)) == this.pipes[i].name) { return this.pipes[i].name; } } return false; }, - get_help: function() { + get_help: function () { const pipe_array = []; for (let i = 0; i < this.pipes.length; i++) { pipe_array.push({ @@ -24,7 +24,7 @@ module.exports = '\n**!**: *mandatory*, **@**: *optional*', '#6EEB83', pipe_array); }, - get_help_super: function(check) { + get_help_super: function (check) { for (let i = 0; i < this.pipes.length; i++) { const pipe = this.pipes[i]; if (pipe.name === check) { @@ -44,7 +44,7 @@ module.exports = } return false; }, - get: function(str, pipe) { + get: function (str, pipe) { for (let l = 0; l < this.pipes.length; l++) { if (pipe === this.pipes[l].name) { return this.pipes[l].get(str); diff --git a/properties/structure_list.js b/src/properties/structure_list.js similarity index 96% rename from properties/structure_list.js rename to src/properties/structure_list.js index 94af3691..fa6e5846 100644 --- a/properties/structure_list.js +++ b/src/properties/structure_list.js @@ -2,7 +2,7 @@ const help_mngr = require('../functions/help_manager'); module.exports = { - is_structure: function(arg) { + is_structure: function (arg) { for (let i = 0; i < this.structures.length; i++) { if (String(arg).substring(1, (String(this.structures[i].name).length + 1)) == this.structures[i].name) { return this.structures[i].name; @@ -10,7 +10,7 @@ module.exports = } return false; }, - get_help: function() { + get_help: function () { const strc_array = []; for (let i = 0; i < this.structures.length; i++) { strc_array.push({ @@ -25,7 +25,7 @@ module.exports = '\n**!**: *mandatory*, **@**: *optional*', '#EEB902', strc_array); }, - get_help_super: function(check) { + get_help_super: function (check) { for (let i = 0; i < this.structures.length; i++) { const strc = this.structures[i]; if (strc.name === check) { diff --git a/properties/variable_list.js b/src/properties/variable_list.js similarity index 98% rename from properties/variable_list.js rename to src/properties/variable_list.js index 916a6951..8044bca7 100644 --- a/properties/variable_list.js +++ b/src/properties/variable_list.js @@ -5,7 +5,7 @@ const help_mngr = require('../functions/help_manager'); module.exports = { - is_variable: function(arg) { + is_variable: function (arg) { for (let i = 0; i < this.variables.length; i++) { if (String(arg).substring(1, (String(this.variables[i].name).length + 1)) == this.variables[i].name) { return this.variables[i].name; @@ -13,7 +13,7 @@ module.exports = } return false; }, - get_help: function() { + get_help: function () { const vrbl_array = []; for (let i = 0; i < this.variables.length; i++) { vrbl_array.push({ @@ -28,7 +28,7 @@ module.exports = '\n**!**: *mandatory*, **@**: *optional*', '#1BE7FF', vrbl_array); }, - get_help_super: function(check) { + get_help_super: function (check) { for (let i = 0; i < this.variables.length; i++) { const vrbl = this.variables[i]; if (vrbl.name === check) { @@ -48,7 +48,7 @@ module.exports = } return false; }, - get: function(voice_channel, voice_object, portal_list_object, guild_object, guild, vrbl) { + get: function (voice_channel, voice_object, portal_list_object, guild_object, guild, vrbl) { for (let l = 0; l < this.variables.length; l++) { if (vrbl === this.variables[l].name) { return this.variables[l].get(voice_channel, voice_object, portal_list_object, guild_object, guild); diff --git a/tests/commands/roll.test.js b/tests/commands/roll.test.js new file mode 100644 index 00000000..e6c1e611 --- /dev/null +++ b/tests/commands/roll.test.js @@ -0,0 +1,22 @@ +const roll = require('../../src/commands/roll.js'); + +test('1d6 must return a number between 1 and 6', () => { + roll(null, null, ['1d6']).then(result => { + expect(parseInt(result.value.substr(0, 1))).toBeGreaterThanOrEqual(1); + expect(parseInt(result.value.substr(0, 1))).toBeLessThan(7); + }); +}); + +test('3d2+3 must return a number between 6 and 9', () => { + roll(null, null, ['3d2+3']).then(result => { + expect(parseInt(result.value.substr(0, 1))).toBeGreaterThanOrEqual(6); + expect(parseInt(result.value.substr(0, 1))).toBeLessThan(10); + }); +}); + +test('1d50+1d20 must return a number between 2 and 70', () => { + roll(null, null, ['1d50+1d20']).then(result => { + expect(parseInt(result.value.substr(0, 2))).toBeGreaterThanOrEqual(2); + expect(parseInt(result.value.substr(0, 2))).toBeLessThan(71); + }); +}); diff --git a/tests/moderation/profanity.test.js b/tests/moderation/profanity.test.js new file mode 100644 index 00000000..b18c5f2b --- /dev/null +++ b/tests/moderation/profanity.test.js @@ -0,0 +1,25 @@ +const profanity = require('../../src/moderation/profanity.js'); + +test('fuck must return true', () => { + expect(profanity('fuck')).toBe(true); +}); + +test('sample must return true', () => { + expect(profanity('sample')).toBe(false); +}); + +test('fuckshit must return true', () => { + expect(profanity('fuckshit')).toBe(true); +}); + +test('πούτσα must return true', () => { + expect(profanity('πούτσα')).toBe(true); +}); + +test('καλημέρα must return true', () => { + expect(profanity('καλημέρα')).toBe(false); +}); + +test('πουτσομπανάνα must return true', () => { + expect(profanity('πουτσομπανάνα')).toBe(true); +}); \ No newline at end of file diff --git a/tests/portal.test.js b/tests/portal.test.js new file mode 100644 index 00000000..e3a263a5 --- /dev/null +++ b/tests/portal.test.js @@ -0,0 +1,12 @@ +// const { MockMessage, MockTextChannel } = require("jest-discordjs-mocks"); +// const { client, log_portal } = require('../src/portal'); + +test("discord.js mock test", () => { + // const message = new MockMessage(); + // const channel = new MockTextChannel(); + // message.content = "test"; + // message.channel = channel; + // callMyFunctionToTestHere(message); + + expect(true).toBe(true); +});