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)
-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)
+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);
+});