From 11f2b70b92e0be69f6eb4c079519484f155f5e76 Mon Sep 17 00:00:00 2001 From: XzFirzal <67226790+XzFirzal@users.noreply.github.com> Date: Fri, 29 Oct 2021 09:37:02 +0700 Subject: [PATCH] Initial Commit --- .eslintrc.json | 12 + .gitignore | 5 + LICENSE | 29 + README.md | 134 + docs/.nojekyll | 1 + docs/assets/highlight.css | 78 + docs/assets/icons.css | 1043 ++ docs/assets/icons.png | Bin 0 -> 9615 bytes docs/assets/icons@2x.png | Bin 0 -> 28144 bytes docs/assets/main.js | 52 + docs/assets/search.js | 1 + docs/assets/style.css | 1388 +++ docs/assets/widgets.png | Bin 0 -> 480 bytes docs/assets/widgets@2x.png | Bin 0 -> 855 bytes docs/classes/CoffeeLava.html | 19 + docs/classes/CoffeeNode.html | 21 + docs/classes/CoffeePlayer.html | 53 + docs/classes/CoffeeQueue.html | 23 + docs/classes/CoffeeTrack.html | 27 + docs/classes/UnresolvedTrack.html | 1 + docs/enums/Utils.EventTypes.html | 1 + docs/enums/Utils.LoadTypes.html | 1 + docs/enums/Utils.LoopMode.html | 1 + docs/enums/Utils.OpCodes.html | 1 + docs/enums/Utils.OpIncoming.html | 1 + docs/enums/Utils.PlayerStates.html | 1 + docs/enums/Utils.PlayerVoiceStates.html | 1 + docs/index.html | 129 + docs/interfaces/ITrack.html | 17 + docs/interfaces/LavaEvents.html | 39 + docs/interfaces/NodeEvents.html | 17 + docs/interfaces/Utils.ChannelMix.html | 1 + docs/interfaces/Utils.DestroyPayload.html | 1 + docs/interfaces/Utils.Distortion.html | 1 + docs/interfaces/Utils.Equalizer.html | 5 + docs/interfaces/Utils.EventPayload.html | 1 + docs/interfaces/Utils.Filters.html | 21 + docs/interfaces/Utils.FiltersPayload.html | 21 + docs/interfaces/Utils.IncomingPayload.html | 1 + docs/interfaces/Utils.Karaoke.html | 1 + docs/interfaces/Utils.LavaOptions.html | 13 + docs/interfaces/Utils.LowPass.html | 1 + docs/interfaces/Utils.NodeCPUStats.html | 7 + docs/interfaces/Utils.NodeFrameStats.html | 7 + docs/interfaces/Utils.NodeMemoryStats.html | 9 + docs/interfaces/Utils.NodeOptions.html | 17 + docs/interfaces/Utils.NodeStats.html | 15 + docs/interfaces/Utils.OutgoingPayload.html | 1 + docs/interfaces/Utils.PausePayload.html | 1 + docs/interfaces/Utils.PlayOptions.html | 5 + docs/interfaces/Utils.PlayPayload.html | 1 + docs/interfaces/Utils.PlayerOptions.html | 15 + .../interfaces/Utils.PlayerUpdatePayload.html | 1 + docs/interfaces/Utils.Playlist.html | 7 + docs/interfaces/Utils.Rotation.html | 3 + docs/interfaces/Utils.SearchQuery.html | 5 + docs/interfaces/Utils.SearchResult.html | 9 + docs/interfaces/Utils.SeekPayload.html | 1 + docs/interfaces/Utils.StatsPayload.html | 15 + docs/interfaces/Utils.StopPayload.html | 1 + docs/interfaces/Utils.TimeScale.html | 1 + docs/interfaces/Utils.TrackData.html | 1 + docs/interfaces/Utils.TrackEndPayload.html | 1 + .../Utils.TrackExceptionPayload.html | 1 + docs/interfaces/Utils.TrackInfo.html | 1 + docs/interfaces/Utils.TrackStartPayload.html | 1 + docs/interfaces/Utils.TrackStuckPayload.html | 1 + docs/interfaces/Utils.TracksData.html | 1 + docs/interfaces/Utils.Tremolo.html | 5 + docs/interfaces/Utils.Vibrato.html | 5 + docs/interfaces/Utils.VoiceServerUpdate.html | 1 + docs/interfaces/Utils.VoiceStatePayload.html | 1 + docs/interfaces/Utils.VoiceStateUpdate.html | 1 + docs/interfaces/Utils.VoiceUpdatePayload.html | 1 + docs/interfaces/Utils.VolumePayload.html | 1 + .../Utils.WebSocketClosedPayload.html | 1 + docs/modules.html | 1 + docs/modules/Utils.html | 1 + package-lock.json | 9168 +++++++++++++++++ package.json | 55 + src/index.ts | 5 + src/structures/CoffeeLava.ts | 333 + src/structures/CoffeeNode.ts | 238 + src/structures/CoffeePlayer.ts | 336 + src/structures/CoffeeQueue.ts | 69 + src/structures/CoffeeTrack.ts | 85 + src/structures/index.ts | 5 + src/utils/constants.ts | 43 + src/utils/decorators/constructs.ts | 221 + src/utils/decorators/validators.ts | 58 + src/utils/filters.ts | 83 + src/utils/index.ts | 5 + src/utils/payloads.ts | 162 + src/utils/rest.ts | 38 + src/utils/typings.ts | 148 + test.tsconfig.json | 16 + test/index.ts | 732 ++ tsconfig.json | 16 + 98 files changed, 15125 insertions(+) create mode 100644 .eslintrc.json create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 docs/.nojekyll create mode 100644 docs/assets/highlight.css create mode 100644 docs/assets/icons.css create mode 100644 docs/assets/icons.png create mode 100644 docs/assets/icons@2x.png create mode 100644 docs/assets/main.js create mode 100644 docs/assets/search.js create mode 100644 docs/assets/style.css create mode 100644 docs/assets/widgets.png create mode 100644 docs/assets/widgets@2x.png create mode 100644 docs/classes/CoffeeLava.html create mode 100644 docs/classes/CoffeeNode.html create mode 100644 docs/classes/CoffeePlayer.html create mode 100644 docs/classes/CoffeeQueue.html create mode 100644 docs/classes/CoffeeTrack.html create mode 100644 docs/classes/UnresolvedTrack.html create mode 100644 docs/enums/Utils.EventTypes.html create mode 100644 docs/enums/Utils.LoadTypes.html create mode 100644 docs/enums/Utils.LoopMode.html create mode 100644 docs/enums/Utils.OpCodes.html create mode 100644 docs/enums/Utils.OpIncoming.html create mode 100644 docs/enums/Utils.PlayerStates.html create mode 100644 docs/enums/Utils.PlayerVoiceStates.html create mode 100644 docs/index.html create mode 100644 docs/interfaces/ITrack.html create mode 100644 docs/interfaces/LavaEvents.html create mode 100644 docs/interfaces/NodeEvents.html create mode 100644 docs/interfaces/Utils.ChannelMix.html create mode 100644 docs/interfaces/Utils.DestroyPayload.html create mode 100644 docs/interfaces/Utils.Distortion.html create mode 100644 docs/interfaces/Utils.Equalizer.html create mode 100644 docs/interfaces/Utils.EventPayload.html create mode 100644 docs/interfaces/Utils.Filters.html create mode 100644 docs/interfaces/Utils.FiltersPayload.html create mode 100644 docs/interfaces/Utils.IncomingPayload.html create mode 100644 docs/interfaces/Utils.Karaoke.html create mode 100644 docs/interfaces/Utils.LavaOptions.html create mode 100644 docs/interfaces/Utils.LowPass.html create mode 100644 docs/interfaces/Utils.NodeCPUStats.html create mode 100644 docs/interfaces/Utils.NodeFrameStats.html create mode 100644 docs/interfaces/Utils.NodeMemoryStats.html create mode 100644 docs/interfaces/Utils.NodeOptions.html create mode 100644 docs/interfaces/Utils.NodeStats.html create mode 100644 docs/interfaces/Utils.OutgoingPayload.html create mode 100644 docs/interfaces/Utils.PausePayload.html create mode 100644 docs/interfaces/Utils.PlayOptions.html create mode 100644 docs/interfaces/Utils.PlayPayload.html create mode 100644 docs/interfaces/Utils.PlayerOptions.html create mode 100644 docs/interfaces/Utils.PlayerUpdatePayload.html create mode 100644 docs/interfaces/Utils.Playlist.html create mode 100644 docs/interfaces/Utils.Rotation.html create mode 100644 docs/interfaces/Utils.SearchQuery.html create mode 100644 docs/interfaces/Utils.SearchResult.html create mode 100644 docs/interfaces/Utils.SeekPayload.html create mode 100644 docs/interfaces/Utils.StatsPayload.html create mode 100644 docs/interfaces/Utils.StopPayload.html create mode 100644 docs/interfaces/Utils.TimeScale.html create mode 100644 docs/interfaces/Utils.TrackData.html create mode 100644 docs/interfaces/Utils.TrackEndPayload.html create mode 100644 docs/interfaces/Utils.TrackExceptionPayload.html create mode 100644 docs/interfaces/Utils.TrackInfo.html create mode 100644 docs/interfaces/Utils.TrackStartPayload.html create mode 100644 docs/interfaces/Utils.TrackStuckPayload.html create mode 100644 docs/interfaces/Utils.TracksData.html create mode 100644 docs/interfaces/Utils.Tremolo.html create mode 100644 docs/interfaces/Utils.Vibrato.html create mode 100644 docs/interfaces/Utils.VoiceServerUpdate.html create mode 100644 docs/interfaces/Utils.VoiceStatePayload.html create mode 100644 docs/interfaces/Utils.VoiceStateUpdate.html create mode 100644 docs/interfaces/Utils.VoiceUpdatePayload.html create mode 100644 docs/interfaces/Utils.VolumePayload.html create mode 100644 docs/interfaces/Utils.WebSocketClosedPayload.html create mode 100644 docs/modules.html create mode 100644 docs/modules/Utils.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/index.ts create mode 100644 src/structures/CoffeeLava.ts create mode 100644 src/structures/CoffeeNode.ts create mode 100644 src/structures/CoffeePlayer.ts create mode 100644 src/structures/CoffeeQueue.ts create mode 100644 src/structures/CoffeeTrack.ts create mode 100644 src/structures/index.ts create mode 100644 src/utils/constants.ts create mode 100644 src/utils/decorators/constructs.ts create mode 100644 src/utils/decorators/validators.ts create mode 100644 src/utils/filters.ts create mode 100644 src/utils/index.ts create mode 100644 src/utils/payloads.ts create mode 100644 src/utils/rest.ts create mode 100644 src/utils/typings.ts create mode 100644 test.tsconfig.json create mode 100644 test/index.ts create mode 100644 tsconfig.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..84efbc2 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,12 @@ +{ + "extends": "@zhycorp/eslint-config/typescript/node", + "rules": { + "sort-keys": "off", + "linebreak-style": "off", + "@typescript-eslint/semi": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/member-delimiter-style": "off", + "@typescript-eslint/no-unnecessary-condition": "off", + "@typescript-eslint/indent": ["error", 2] + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..040edcb --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules +test/config.json +test/compiled +dist +index.d.ts diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f341bed --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2021, XzFirzal +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..83d36df --- /dev/null +++ b/README.md @@ -0,0 +1,134 @@ +# lavacoffee +> A lightweight and rich-featured lavalink wrapper for node.js + +> Install and grab some coffee ☕ + +[![NPM Version](https://img.shields.io/npm/v/lavacoffee.svg?maxAge=3600)](https://www.npmjs.com/package/lavacoffee) +[![NPM Downloads](https://img.shields.io/npm/dt/lavacoffee.svg?maxAge=3600)](https://www.npmjs.com/package/lavacoffee) + +# Table Of Contents +- [Features](#features) +- [Installation](#installation) +- [Documentation](#documentation) +- [Getting Lavalink](#getting-lavalink) +- [Test](#test) +- [Examples](#examples) + - [Init](#init) + - [Nodes](#nodes) + - [Voice Updates](#voice-updates) + - [Events](#events) + - [Players](#players) + - [Creating](#creating) + - [Getting](#getting) + - [Replaying](#replaying) + +# Features +- Easy-to-use +- Lightweight and performant + +# Installation +> NPM (Stable) => npm install lavacoffee + +> Github (Dev) => npm install XzFirzal/lavacoffee#main + +# Documentation +> https://xzfirzal.github.io/lavacoffee + +# Getting Lavalink +Download the latest binaries from the [CI Server (Dev)](https://ci.fredboat.com/repository/download/Lavalink_Build?guest=1&branch=refs/heads/dev) + +Put an [application.yml](https://github.com/freyacodes/Lavalink/blob/master/LavalinkServer/application.yml.example) in your working directory. + +Run with `java -jar Lavalink.jar` + +Docker images are available on the [Docker hub](https://hub.docker.com/r/fredboat/lavalink/). + +# Test +[Test Bot](https://github.com/XzFirzal/lavacoffee/blob/main/test/index.ts) +> npm run test + +# Examples +### Init +```ts +// Importing lava instance constructor +import { CoffeeLava } from "lavacoffee" + +// Construct the lava instance +const lava = new CoffeeLava(lavaOptions) + +// Init the lava instance +lava.init(clientID) +``` + +### Nodes +```ts +// Adding a node +lava.add(nodeOptions) + +// More nodes +lava.add(nodeOptions1) +lava.add(nodeOptions2) +... +``` + +### Voice Updates +```ts +// Payload can be voice state update payload or voice server update payload +lava.updateVoiceData(payload) +``` + +### Events +> [LavaEvents](https://xzfirzal.github.io/lavacoffee/interfaces/LavaEvents.html) + +## Players +### Creating +```ts +// THis will create a new player or get an existing if exist +const player = lava.create(playerOptions) + +// Connect to voice channel +player.options.voiceID = voiceChannelID +player.connect() + +// Adding tracks +player.queue.add(tracks) + +// Play +player.play() +... +``` + +### Getting +```ts +// Use this if you only want to get a player without creating it +const player = lava.get(guildID) + +if (!player) return + +// Getting queue +const queue = player.queue + +// Getting current track +const track = player.queue.current +... +``` + +### Replaying +```ts +/** + * When player is disconnected from node + * it will automatically move to another node + * then replay the track on current position + * you can disable this behaviour with setting + * `autoReplay` to false in LavaOptions + */ + +// Replay events + +// When successfully replayed +lava.on("playerReplay", player => { ... }) + +// When there's an error while replaying +lava.on("replayError", (player, error) => { ... }) +... +``` diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e2ac661 --- /dev/null +++ b/docs/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css new file mode 100644 index 0000000..5e56002 --- /dev/null +++ b/docs/assets/highlight.css @@ -0,0 +1,78 @@ +:root { + --light-hl-0: #008000; + --dark-hl-0: #6A9955; + --light-hl-1: #AF00DB; + --dark-hl-1: #C586C0; + --light-hl-2: #000000; + --dark-hl-2: #D4D4D4; + --light-hl-3: #001080; + --dark-hl-3: #9CDCFE; + --light-hl-4: #A31515; + --dark-hl-4: #CE9178; + --light-hl-5: #0000FF; + --dark-hl-5: #569CD6; + --light-hl-6: #0070C1; + --dark-hl-6: #4FC1FF; + --light-hl-7: #795E26; + --dark-hl-7: #DCDCAA; + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --code-background: var(--dark-code-background); +} } + +body.light { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --code-background: var(--light-code-background); +} + +body.dark { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --code-background: var(--dark-code-background); +} + +.hl-0 { color: var(--hl-0); } +.hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +.hl-3 { color: var(--hl-3); } +.hl-4 { color: var(--hl-4); } +.hl-5 { color: var(--hl-5); } +.hl-6 { color: var(--hl-6); } +.hl-7 { color: var(--hl-7); } +pre, code { background: var(--code-background); } diff --git a/docs/assets/icons.css b/docs/assets/icons.css new file mode 100644 index 0000000..776a356 --- /dev/null +++ b/docs/assets/icons.css @@ -0,0 +1,1043 @@ +.tsd-kind-icon { + display: block; + position: relative; + padding-left: 20px; + text-indent: -20px; +} +.tsd-kind-icon:before { + content: ""; + display: inline-block; + vertical-align: middle; + width: 17px; + height: 17px; + margin: 0 3px 2px 0; + background-image: url(./icons.png); +} +@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { + .tsd-kind-icon:before { + background-image: url(./icons@2x.png); + background-size: 238px 204px; + } +} + +.tsd-signature.tsd-kind-icon:before { + background-position: 0 -153px; +} + +.tsd-kind-object-literal > .tsd-kind-icon:before { + background-position: 0px -17px; +} +.tsd-kind-object-literal.tsd-is-protected > .tsd-kind-icon:before { + background-position: -17px -17px; +} +.tsd-kind-object-literal.tsd-is-private > .tsd-kind-icon:before { + background-position: -34px -17px; +} + +.tsd-kind-class > .tsd-kind-icon:before { + background-position: 0px -34px; +} +.tsd-kind-class.tsd-is-protected > .tsd-kind-icon:before { + background-position: -17px -34px; +} +.tsd-kind-class.tsd-is-private > .tsd-kind-icon:before { + background-position: -34px -34px; +} + +.tsd-kind-class.tsd-has-type-parameter > .tsd-kind-icon:before { + background-position: 0px -51px; +} +.tsd-kind-class.tsd-has-type-parameter.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -17px -51px; +} +.tsd-kind-class.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { + background-position: -34px -51px; +} + +.tsd-kind-interface > .tsd-kind-icon:before { + background-position: 0px -68px; +} +.tsd-kind-interface.tsd-is-protected > .tsd-kind-icon:before { + background-position: -17px -68px; +} +.tsd-kind-interface.tsd-is-private > .tsd-kind-icon:before { + background-position: -34px -68px; +} + +.tsd-kind-interface.tsd-has-type-parameter > .tsd-kind-icon:before { + background-position: 0px -85px; +} +.tsd-kind-interface.tsd-has-type-parameter.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -17px -85px; +} +.tsd-kind-interface.tsd-has-type-parameter.tsd-is-private + > .tsd-kind-icon:before { + background-position: -34px -85px; +} + +.tsd-kind-namespace > .tsd-kind-icon:before { + background-position: 0px -102px; +} +.tsd-kind-namespace.tsd-is-protected > .tsd-kind-icon:before { + background-position: -17px -102px; +} +.tsd-kind-namespace.tsd-is-private > .tsd-kind-icon:before { + background-position: -34px -102px; +} + +.tsd-kind-module > .tsd-kind-icon:before { + background-position: 0px -102px; +} +.tsd-kind-module.tsd-is-protected > .tsd-kind-icon:before { + background-position: -17px -102px; +} +.tsd-kind-module.tsd-is-private > .tsd-kind-icon:before { + background-position: -34px -102px; +} + +.tsd-kind-enum > .tsd-kind-icon:before { + background-position: 0px -119px; +} +.tsd-kind-enum.tsd-is-protected > .tsd-kind-icon:before { + background-position: -17px -119px; +} +.tsd-kind-enum.tsd-is-private > .tsd-kind-icon:before { + background-position: -34px -119px; +} + +.tsd-kind-enum-member > .tsd-kind-icon:before { + background-position: 0px -136px; +} +.tsd-kind-enum-member.tsd-is-protected > .tsd-kind-icon:before { + background-position: -17px -136px; +} +.tsd-kind-enum-member.tsd-is-private > .tsd-kind-icon:before { + background-position: -34px -136px; +} + +.tsd-kind-signature > .tsd-kind-icon:before { + background-position: 0px -153px; +} +.tsd-kind-signature.tsd-is-protected > .tsd-kind-icon:before { + background-position: -17px -153px; +} +.tsd-kind-signature.tsd-is-private > .tsd-kind-icon:before { + background-position: -34px -153px; +} + +.tsd-kind-type-alias > .tsd-kind-icon:before { + background-position: 0px -170px; +} +.tsd-kind-type-alias.tsd-is-protected > .tsd-kind-icon:before { + background-position: -17px -170px; +} +.tsd-kind-type-alias.tsd-is-private > .tsd-kind-icon:before { + background-position: -34px -170px; +} + +.tsd-kind-type-alias.tsd-has-type-parameter > .tsd-kind-icon:before { + background-position: 0px -187px; +} +.tsd-kind-type-alias.tsd-has-type-parameter.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -17px -187px; +} +.tsd-kind-type-alias.tsd-has-type-parameter.tsd-is-private + > .tsd-kind-icon:before { + background-position: -34px -187px; +} + +.tsd-kind-variable > .tsd-kind-icon:before { + background-position: -136px -0px; +} +.tsd-kind-variable.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -0px; +} +.tsd-kind-variable.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -0px; +} +.tsd-kind-variable.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -0px; +} +.tsd-kind-variable.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -0px; +} +.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -0px; +} +.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -0px; +} +.tsd-kind-variable.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -0px; +} +.tsd-kind-variable.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -0px; +} +.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -0px; +} +.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -0px; +} +.tsd-kind-variable.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -0px; +} +.tsd-kind-variable.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -0px; +} + +.tsd-kind-property > .tsd-kind-icon:before { + background-position: -136px -0px; +} +.tsd-kind-property.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -0px; +} +.tsd-kind-property.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -0px; +} +.tsd-kind-property.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -0px; +} +.tsd-kind-property.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -0px; +} +.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -0px; +} +.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -0px; +} +.tsd-kind-property.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -0px; +} +.tsd-kind-property.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -0px; +} +.tsd-kind-property.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -0px; +} +.tsd-kind-property.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -0px; +} +.tsd-kind-property.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -0px; +} +.tsd-kind-property.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -0px; +} + +.tsd-kind-get-signature > .tsd-kind-icon:before { + background-position: -136px -17px; +} +.tsd-kind-get-signature.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -17px; +} +.tsd-kind-get-signature.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -17px; +} +.tsd-kind-get-signature.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -17px; +} +.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -17px; +} +.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -17px; +} +.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -17px; +} +.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -17px; +} +.tsd-kind-get-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -17px; +} +.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -17px; +} +.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -17px; +} +.tsd-kind-get-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -17px; +} +.tsd-kind-get-signature.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -17px; +} + +.tsd-kind-set-signature > .tsd-kind-icon:before { + background-position: -136px -34px; +} +.tsd-kind-set-signature.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -34px; +} +.tsd-kind-set-signature.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -34px; +} +.tsd-kind-set-signature.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -34px; +} +.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -34px; +} +.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -34px; +} +.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -34px; +} +.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -34px; +} +.tsd-kind-set-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -34px; +} +.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -34px; +} +.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -34px; +} +.tsd-kind-set-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -34px; +} +.tsd-kind-set-signature.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -34px; +} + +.tsd-kind-accessor > .tsd-kind-icon:before { + background-position: -136px -51px; +} +.tsd-kind-accessor.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -51px; +} +.tsd-kind-accessor.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -51px; +} +.tsd-kind-accessor.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -51px; +} +.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -51px; +} +.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -51px; +} +.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -51px; +} +.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -51px; +} +.tsd-kind-accessor.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -51px; +} +.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -51px; +} +.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -51px; +} +.tsd-kind-accessor.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -51px; +} +.tsd-kind-accessor.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -51px; +} + +.tsd-kind-function > .tsd-kind-icon:before { + background-position: -136px -68px; +} +.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -68px; +} +.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -68px; +} +.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -68px; +} +.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -68px; +} +.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -68px; +} +.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -68px; +} +.tsd-kind-function.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -68px; +} +.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -68px; +} +.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -68px; +} +.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -68px; +} +.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -68px; +} +.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -68px; +} + +.tsd-kind-method > .tsd-kind-icon:before { + background-position: -136px -68px; +} +.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -68px; +} +.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -68px; +} +.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -68px; +} +.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -68px; +} +.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -68px; +} +.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -68px; +} +.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -68px; +} +.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -68px; +} +.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { + background-position: -187px -68px; +} +.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -68px; +} +.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -68px; +} +.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -68px; +} + +.tsd-kind-call-signature > .tsd-kind-icon:before { + background-position: -136px -68px; +} +.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -68px; +} +.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -68px; +} +.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -68px; +} +.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -68px; +} +.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -68px; +} +.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -68px; +} +.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -68px; +} +.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -68px; +} +.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -68px; +} +.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -68px; +} +.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -68px; +} +.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -68px; +} + +.tsd-kind-function.tsd-has-type-parameter > .tsd-kind-icon:before { + background-position: -136px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -153px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class + > .tsd-kind-icon:before { + background-position: -51px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum + > .tsd-kind-icon:before { + background-position: -170px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface + > .tsd-kind-icon:before { + background-position: -204px -85px; +} +.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -85px; +} + +.tsd-kind-method.tsd-has-type-parameter > .tsd-kind-icon:before { + background-position: -136px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -153px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class + > .tsd-kind-icon:before { + background-position: -51px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum + > .tsd-kind-icon:before { + background-position: -170px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface + > .tsd-kind-icon:before { + background-position: -204px -85px; +} +.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -85px; +} + +.tsd-kind-constructor > .tsd-kind-icon:before { + background-position: -136px -102px; +} +.tsd-kind-constructor.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -102px; +} +.tsd-kind-constructor.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -102px; +} +.tsd-kind-constructor.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -102px; +} +.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -102px; +} +.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -102px; +} +.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -102px; +} +.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -102px; +} +.tsd-kind-constructor.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -102px; +} +.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -102px; +} +.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -102px; +} +.tsd-kind-constructor.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -102px; +} +.tsd-kind-constructor.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -102px; +} + +.tsd-kind-constructor-signature > .tsd-kind-icon:before { + background-position: -136px -102px; +} +.tsd-kind-constructor-signature.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -102px; +} +.tsd-kind-constructor-signature.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -102px; +} +.tsd-kind-constructor-signature.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -102px; +} +.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -102px; +} +.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -102px; +} +.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -102px; +} +.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -102px; +} +.tsd-kind-constructor-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -102px; +} +.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -102px; +} +.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -102px; +} +.tsd-kind-constructor-signature.tsd-parent-kind-interface + > .tsd-kind-icon:before { + background-position: -204px -102px; +} +.tsd-kind-constructor-signature.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -102px; +} + +.tsd-kind-index-signature > .tsd-kind-icon:before { + background-position: -136px -119px; +} +.tsd-kind-index-signature.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -119px; +} +.tsd-kind-index-signature.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -119px; +} +.tsd-kind-index-signature.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -119px; +} +.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -119px; +} +.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -119px; +} +.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -119px; +} +.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -119px; +} +.tsd-kind-index-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -119px; +} +.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -119px; +} +.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -119px; +} +.tsd-kind-index-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -119px; +} +.tsd-kind-index-signature.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -119px; +} + +.tsd-kind-event > .tsd-kind-icon:before { + background-position: -136px -136px; +} +.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -136px; +} +.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -136px; +} +.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -136px; +} +.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { + background-position: -68px -136px; +} +.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { + background-position: -85px -136px; +} +.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -136px; +} +.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -136px; +} +.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -136px; +} +.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { + background-position: -187px -136px; +} +.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -136px; +} +.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -136px; +} +.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -136px; +} + +.tsd-is-static > .tsd-kind-icon:before { + background-position: -136px -153px; +} +.tsd-is-static.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -153px; +} +.tsd-is-static.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -153px; +} +.tsd-is-static.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -153px; +} +.tsd-is-static.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { + background-position: -68px -153px; +} +.tsd-is-static.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { + background-position: -85px -153px; +} +.tsd-is-static.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -153px; +} +.tsd-is-static.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -153px; +} +.tsd-is-static.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -153px; +} +.tsd-is-static.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { + background-position: -187px -153px; +} +.tsd-is-static.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -153px; +} +.tsd-is-static.tsd-parent-kind-interface > .tsd-kind-icon:before { + background-position: -204px -153px; +} +.tsd-is-static.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -153px; +} + +.tsd-is-static.tsd-kind-function > .tsd-kind-icon:before { + background-position: -136px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface + > .tsd-kind-icon:before { + background-position: -204px -170px; +} +.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -170px; +} + +.tsd-is-static.tsd-kind-method > .tsd-kind-icon:before { + background-position: -136px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface + > .tsd-kind-icon:before { + background-position: -204px -170px; +} +.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -170px; +} + +.tsd-is-static.tsd-kind-call-signature > .tsd-kind-icon:before { + background-position: -136px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -153px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class + > .tsd-kind-icon:before { + background-position: -51px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum + > .tsd-kind-icon:before { + background-position: -170px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface + > .tsd-kind-icon:before { + background-position: -204px -170px; +} +.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -170px; +} + +.tsd-is-static.tsd-kind-event > .tsd-kind-icon:before { + background-position: -136px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { + background-position: -153px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { + background-position: -119px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { + background-position: -51px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -68px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -85px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -102px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { + background-position: -170px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected + > .tsd-kind-icon:before { + background-position: -187px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private + > .tsd-kind-icon:before { + background-position: -119px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface + > .tsd-kind-icon:before { + background-position: -204px -187px; +} +.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited + > .tsd-kind-icon:before { + background-position: -221px -187px; +} diff --git a/docs/assets/icons.png b/docs/assets/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..3836d5fe46e48bbe186116855aae879c23935327 GIT binary patch literal 9615 zcmZ{Kc_36>+`rwViHMAd#!?~-${LfgP1$7)F~(N1WKRsT#$-?;yNq3ylq}iztr1xY z8DtsBI<`UHtDfii{r-60Kg@OSJ?GqW=bZ2NvwY{NzOLpergKbGR8*&KBGn9m;|lQC z2Vwv|y`nSufCHVQijE2uRauuTeKZL;=kiiF^SbTk;N^?*u%}Y7bF;O-aMK0lXm4nb zvU~Kf+x|Kgl@Ro%nu?L%x8-yetd((kCqY|t;-%}@Y3Ez_m(HTRt=ekeUQ2n4-aRvJ zrlKaWct8JSc8Kxl4KHu+3VW1L`9%n~_KC5}g6&tFXqyKT-}R0?EdkYqCmQot47^9Z z6;opqR@7Nq-s|6=e6*0^`}+X1kg>CpuGnbpL7{xFTa|8nymC0{xgx*tI7n4mTKZNA znsd@3eVsV>YhATuv~+5(^Vu4j?)Tn`{x@8ijIA;wdf`+0P3$vnSrcWFXXc{Lx`1Z7 z%-n(BM(owD$7LzqJx)(f^Cusecq>OW z=h6n4YzSVM-V!-DK(sLT`!W~}($=O$9|ie`>_fpH0=1G1tiIFw($?~{5T>`74|p0H z``5=UydE)!CiFvmECW|s^TzG9*7pN|KknkVm3C{fEu30gffX&8iCm? zTFPm6*k%Hog`Q6JGj@dg9Z5nlAc6ApUe>;6xauB0-u!?wMU92jVL|3EcP9gEu5^wH z%tXRy#>HCEs*?KgMf73UcJ!lJ?x<6+)eJ{mEIS|HMDP7(7!(< z@X;?ACT8mncW9*XIaiJPW}Mw@b0W||)!sYnLw)0j4&-rXQgJhnQ2?frg1Nfk&JpmV8F=dDZl)e%#Grs|&0th7_o) z?7hQn<1078qcq?#;)CH=2kBBiGt37EtcXfpTXtHB59dr9=B~jI`yPm-Q?(ys=ajAu zGY;eS^z&WFvztZI3I~}*l}_lI^}6D<&CZ94;|&G9_pMx!C~$~EL4^8`QjT#|tqxxk zhl4CdxppbDiOk!Ht#SVAK4gf6Cr#=U&1sVxZ`y-X zTSi#@wHf(?(Dd6ypNOyshRZ*tneVP^W?y?$ur_!9iD-vY{&Q5(ooX2;`SkUjwEYA~ zwGcylCT4_`MZobm(0v$U(IhfYXxyjNJ@ztpH0sDmfpn|LMp3eM(R4uqKi_q1=D1-d z%GdV<&2+_9k@sc44xhIjqktRA2!Su|vzM0R-@#MK&{RdLoU#$Hc?{{JItvX{hKCtc zQNqZpkfG^@LGJRZM4H_>`F=N;O*+_`>M_ko_XWCgu@}ntqLX8VSeZQ_25Z8|^!d?o z$~}~9|`ZW9d_o<=8&K^~;Cr08b;qgq{(*e*sNt00lO2lZ;m-b<`Rl}=Lr6iQ8+$&br z!RLn{5a}j1Dh^|_1)Q?<;iBSrS0V|c_D@3}mc2d!%tV1VN?BC@clkFdx?HB&9KOTF z)9eHpmUEYsCqx^%JHuNdwY zz9P3oPYuTAXZVY}LRp&2qNl$pbsXL1GJ@wx?@CTO!acs+OFfW_U6?&As-(GJED}RR zO}B+Kxph7aUUm>i3rbPZQGXN}oQq;u`yTnFDAJ*d$4gjEJH!JPyt6V{cOUp*Jbyol zE$8wh)T=vpJOWRbv}HvR(cUSlO}ePIPdJ`J@yp=IC&E6K%r?QfW7F&%p!H~@?%yj5 z&MpiV!hyfukD56A097f!0+ANt`JSB~oLak75oKQN7FH=rQbX#Eak37|4&mqp@S~TA zOo51)xQxX}5NQ(3I_UeR4B;P0Q#x$_lDce78ET`Blo;`Hj*R;b8slZS7Oak(LjDuE z3z?-~-U@vWe*cEOsf^9|duH9};Pe)!=Ky+QQ!jr2VV-jMUH-F>oB>Ds zDJw}jm%V?OT^fu1y`$`yRdaW03L?)6vmInxhAsGrPhWIP8?=speMFf9Inn4^t zs$!88*B~c1A2J6t0~hgK2BJ_Pl23l=oeQQqjI2(4Mcv6U_#9#$PEN|qz36rCZ5$@I zNF1LpRe%ZG4qwuYr7ZdaynrPs?spt;9VbQM$462zbksMVhAOqPunrR7@Nbv#5;VKk zJB7xC?~QXd(e9REiLixHxRGhLcKR#0va}|LMS`AXKGOIGFKQv?=+>zf^ zN5XLjX6^`zh*%1UG_QV1H`@z!HZgC+OT2`+_B( z)J95hk;3C+K4XCswSP}au;fx=47~*$k`RAaYEU-qb03y0#x|&>LAeiXgri5E(!h9k z|9OVt@sk1-4+>0?ELyw|zs`~<95M=%o?Gix$?8z4Gz3Kpw|b>?BcD&s{X)-aXg!GJ zyq&`ZEP{K^u7ActXP$gGnO#F0Sr+QUZe0&d5*Yhw9A?C4(Sx2j3QKAlUpkQz7nji^ z%y8F|W{ypj(T%Bf#Wgyvq4szMo?*U-;3IGBRg1fK9!h-=YRsZ_+t~2!-)=pr;)Vnk zmt95&wMb02toOf`I9>M^Kv3LqKb_-#jauF&cGrWsCnMt?p7*uh zevugda={D04DB#7wR375=1i5}Z9fi3r)!F#7qmX9`SjppE&%8l8bKt+ADRMTWRv21 z4L&PldV8YpHw3b^`p0uWlIm#J&K65-y4lQW0VzZR!4#gfeT{b#fL1e*)Z*Ux}M^}bO%OM7uXip_4! zL@yo@q{utZeVV?3CtXs}i>nI|%26fwuzt0f#96fQ!{=dEX^YKnvIk*D%y9Cin;9R) zi{?)baJhgFs$1$SOZESTpldw2H&FD=v*v@1cA!`|s;avDKHa>Q+uJ8qhy!9%C4&lJSTN4OeydYOm4S?Bj7*e{xRYbU9Xos)R7qZT3dBBD5{ zo+(E3pR{>>)}hFhE+}!yYP0V+CVhyAq+RV{^X`XA3{iXj(ir$k@u|t8ZJ1ZnHq2dd zD$0RHmGJ=!?T5`*T2zOEJ~y}Nsyt7O)%+!0ulRQdsopJJxoznfpusv=2@zLXIq@^& z>0T5k4lzGCG(DnltLIe@6=ZOG@C(dvmYXfh4IhJfMfY8S?KkT znb7~EDE}Yhg$J1LxB7m`L4VMS(+(SXTQvh_mz!x&M3-6Z zFRB*a%_gVEqI^mL5|c%V=l_oi%|~h>gL0SB4QH5uonWd#={KPg6}6ES)zk0~#3^KJ zJq@{iqbHe3gyC))jeQ`W;(u3|q)JxuF24|GMsh%v5>>VY-bok%* z1Yl@(5G2UCK=fQck}pAyWV0n{`ML|rsl_N7vmW|frii__zB;ozrQ7{z)y}M^Sg@m_ z;+?{q3sUZs3WxnBbp~CyyL(TA?C*0KIeDPp7w0$!Ijd+M8#}r~vYW)NB*$mG*7-vH z@s^wK07OMxq>WveCEQFQ*p&2gjD1j%i+#G9z##Th`gew>H5=`RwyfPDg2G%f>x3@c z14Oy}pQK?(i06GWLWu%4cGjDoE-tTEI$`9^E?nLT663vu_>6K1e!N>A-^q&tfl$0& zy&>w~+yUelAa!c@xd8iyt^`B^$cj+}h}0i!40K2Ve1KFCDezBzZO8@=k&r)`TNTJ* zzF4Pim>SYL^=~7kW>EyiVHXNMT2)8l#v^IW!pLB_8ZvVfK&m8QHkjsZ)mvd?o$VYG zX#HiWwWlW>N{D85URJ-d)}_3h73|)X=E(6hFzi#TF{$4aSka4TeY>1a_(RIkFBL#O zE0_FoSQI)}+si51ufAqRHhDU=actTRQl@y#2h}xaDv-A&GP&0Qu9V4ED5aWnX z1E#mRT1QSvL!4~%Ozt84nP{&F>VIm6w2q!EPhh^BF-94$4JhCTcrdbDXA3Q&8mPTh zqdPv|X}??B?bIZPpl}z%(zr<8U-NoXjb*L#xyqHHfpIGAgN$5i(E9#rYPYq_tISC4 z2TDkd*uZ;CIhVI2o!||T)Kz`ER@%rTf-&SfmJFF>;d(RW(B6k!1<)uxHM_1G+9BWe zc)k`gBxYMcztqY5@jccaU)CqQ@^G5TBVx(nNf2}D@);3+{D)GzyT{>%dO6ibggS({N!!=P4=M8J}5R*&fgd(w36z0M0D$ z(SN5a`i%sZ9vmaEjiC4)DF}ix&`?mc-vYwK@+}8Gqzj6r6y)lT|Iqwlpj(LXqvh;- zb>jECiiOZ%&Q7gQg7(ix-?-RE*c(O6NG0F-+VCr;701@%L~fyfHnU<;Vk`m3A2{1MSmpii@G*k?KDq0GdZ)|hd`8OHep z8@6wv_|9NKNpe*sc#?zZ1S#}*qk{k<(I99u6(QT#>wf9w^u9~9_>;2d20T=^g-;b5 ze9x~fHZ-JL=J`hq-;W{2SgN)&m9RsVo=%?`JYp`pxEA_>`18Y>XA$rfWm^pQfG3MQ zxT^I1*({tZz2}+!5$AyNUE*jiYwu_S8v<#qZS4e!bGGBdY`3RkgLMf%Kz8s-;7PF+ z6w#-FwV#)PiKGR79miXmrDyv=ZTjc)j>N=&h4F+#G;unBZhhZz?a*;8@bi5`fV4)O zuU5pCs;tvRzbV@P5%W5xLI4I+w*^KExeVlzP4kNRGp-wi3g$lf-I|(o`JQ|u^XfkP zcik+g-5~2lG*oHfjLCpfNalFwz=4ZY>$Rc-QGpws&tCfFZUuJDL)3et%ap*$Q=-v0 zgLfsn-&%#+wnox~@)6ppx30sK(UJg1dCAvQF&}DkoPI+uX_wH))iaYvWtl}BtVKpU&MN= z0GdENbhdLgIwL-#_phGK;mZRlk4zq8*)akvV5zRX@jFUmvcr#3p99P@4z@m|bz-)^ zbZl8Wt?hR*z(sEZl;2PaILIG#835i@YoZQ@EwrD9IOBl7BpJX(ilLgcd)KCZAzo^b z6Z{|~=H;$D2dD53tejr_jx7^y-zT{SNZpNjn4+wJQX~K#LcrlKOv=D5xk%QXD{tg; z+xh`PvMV*HC*rF?xyjK5@KsMl5*w`r@wL#r13uFpso~#^oYIFc^&gGNS825eqFttU2_sG%_ z;X8VXD#Ol4X&$2B_Z$*&-)ZIUXf9I%mOOXJ3O%GbGpJfl+9(jY^fF_(b!Gt{{HAA3 zusUOCPDHYT@&*H~7a050c7r-_CaFACp$BXx)5==@fC11Gn|n~~+u@6N-}lvdyl3&6 z<#c_zm0Xp1F!8o2OBbFfgzzC4vno}9XEf40dGaVo;jiwiazo8hZ~iPVD(re=5k;H| zotm286$6nnTeIw>1FY$Ri|t{Lp?o(Fg3g_>|y~Z+16tvyLc@r?t9g7 zBuXyVuu9bC#q`?@OFIhgS)6v^XP@H0ukl2X!RPMsg%`YHMGad z4{VsgxaprFss3X%HbZablb6IdaNdbISVWp7yQXPPn=s7?J9qLEH{4>XAv8}%h&TDg zs()1sh}4at3nL3^%q!?P9BbW80e*ZwU63}CV7pt}gVu;~V6c$9p+*wfhw!zeE-z|V z=k{Ksec2)$Hu&?pRh;*TPk0T$Fc~^oAoBT4q?-Q}Y&3DluXeoMQ0LesTk}pVlf5(I z$dl8;zA0&=L&z*F*H>W7IeiPhTo@P0VTB~vyC2Bm7lCN}t7@NNlKFSHGKkh?z_qij zoYju!#D4b28cdslLdIM5Cmqe&!v^IcRr=qq^?l+P^n@6}fh@)IS81hx)SPAY7osk0)^ulqC1F*{hBNQl+Y}b>XjVXnS_Cc!L zIZ@Jq#mp^E&fKT~t4DM_^S17R@YJ@`(7;zv1mz_Y=~q*Gdg#*yXGxotY=#F|lvhPM zjlE)VHS=8=)njE^c7M|ZiBqARx>9Ib!y91$70iC8jPi$c+ysP}5Q3s`ti&1sx>~oG zI^>^1onS%G`mtq&)cZ15dZ{X^#MOfatyH0I=l%Q)n z7*@kZtC_3?=J_}?_G@?F?UK<0_AhYFclyrS-PkfYhAeVHcF z16x+quy10*2V$A%p_|@C(vlf}j3uY83h(#TSr$(;^8(I={_=YQQWmA9-IlwJv>tQm z=vN-I{TO7X`;qBxwb5w$91YLV?ZD5}pddq(7IdMCH zi>`qAn|#FITi!L5;K!(tYm9r416}Wof}P8~?R9I9Gp(?VA;uQg19MO47*gS7fH*&jBO!+ zA*<^BMccHjJIvGHguBb4a`X z3aZw#!c&Xr8&szD1+gu&;vYfoWo>0Pxfr2%m34tC33fmRbzWF9I_Pqb9nNK@N##9_ z7K)v)des!^owH`MoXY_O?|;^9;comiPx0e78xhnnVvTYt+t+cU1rn_>gaFJsL-iPn)?<9P9cF#4)7q&v+d&6|3G@s-AcJy+m zE&u*GUaMK|x|4GmT(CgBICk`2BP@3rqtjKIRD#uBy}y*d;<>`?W&mGsG;i*_}V&^tlP`%;=g39@jxP z+3lrtg*!i6N;irOpUfKcd;iDl5a`<#kr8RwFm9=^m+ouwwjcXmTB}w5V#9IF^&Bl$ zr1$Ly#cQ<3u86>am9}pk&i%nxu(W&s@>qEDtn_xVtH-_EiQ}iAK4Ssfsdn&L9t=)d z`XOQN7*J)g$Jrtq0=-yeLnHg*23LxYA7$cxz^Yc)I6E-!;{LQwu_wfGw4&MYy7{n< z@{g0Hf)N5gAJKQ1Z&HGPn9x9B7U(m(9K&=+LHAc_D{YdMBZs~x)u1Y8|Oq!`C4(3_9<&$ddi6>R$Nsz z*ti?=jA-Sr_97V}feo+}Lq3-cfpgWR;PLI8s{ve9@?e;2o}0MpquOucipz^DrT}QH z*(<{nLb4h9799hx4&%I8KPj}xcQ}llgcaG1!nRb(PP?m)=CzA4v%6>oOe96H9 zv4mUhw`>V$29k?)$Co>qIqq(~3w4jJ;Hv5(RxjB-j_iEhlF;&|DDC|I8IcT>Vn;RY zhtw5mT0ygXAu=M%{^;GqYuYIMu4H;Mj--5CL}|zMEhOum_o51Y7i|D>$XmUFoe;@1 z%GsTUsKgF4w%-Cr3lg#~h)8;Lk%WQTLBS8r*sE{YBUDw4HU#o}E)8pVIEfWv&14?U z-+Za${OFm=>IA358en)nB5Iaqxw&Xi*ty@uDOX8o2c0tq0^sX>ZXD+Hn|;KY!Omm1 z^%wgf&Zy9Azd?vmU`~zuOOA0{TZ*mAC!_>|avcN83F#c+sFn_6tGo!v?95IUR2bL$ zlO(OlhszqAgy)mNt8PRulC#6u^SL#z-O&@{=_!AzBZ>T4ROorj%fx$A;u8u>saum0ha7p zeHRX-z)PW*@v9bruyAtVI@)PhaEs5kp`xyxTQ`U9$Whwz#z$=U$V|&0w@EfCUS!Ob zACSTE{VeC-0V~ZCpkKq~P4CLgdOeBy>vB+0ZxIt_Cp4aa%vI#LS^K}ui07WNo}5r0 zagMHmq-jqTf-OD<kAvu_ob1mUP%1jxeKqB!1&-)_hP{p74hHE%WM!atyx68j5b zSqwh8aKo|NIOL<2_eiX+iOsRP`{MUt{0iQetB*SL!F_8)_;0f$iJ4(o__4KWuvy_! z8TZ{dTb*rL6VmuN-yl2Z>0glL84u^jAH^DQl}VRI=x0CnuF*|;|My-5aPI;>(mo+m z`nyEOe&k$RG11$vEdDPG7^raBCw|#C*4#pIUoZJNx?4|ZC{)l>+jaSiiJ`GBKf}l) zUk1>%A61hqy!KvfRsM^|u6vwbH5WpfH(I5AdpBAg%rar%zW}nccGxfgRV4&v`tEoGyBq!uz^f zVqWEtxn%j&+Q2Fi$rL)H`M_HExP+?mFyN^){c{JXs{IM}f}p>7lfD zLZ;s)%6a(Ow@`(jP}k~pn@!dv6JhJkZf5UoumHv`g-tcCs)w* z#0sc%t9@Li{p}f*$vg$UiQ*RGZUr=ykDIaxRDU_(QfcURuYrpX*7IQcS$(Buw%VW7 zxaffDgn{-=K@iEh)LlPc3MPzc+qM^>RXr6Y8ASnP&dr6fqmwYILTpmh$E%{Iz%Qz( NZmR35l_G4O{0}dcmS_L~ literal 0 HcmV?d00001 diff --git a/docs/assets/icons@2x.png b/docs/assets/icons@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5a209e2f6d7f915cc9cb6fe7a4264c8be4db87b0 GIT binary patch literal 28144 zcmeFZcUTka`>%_-5TzIqq$xo`r3nZ`iiBRG(z{ZnN$)K|ii-3S5u{fmRRNLEoAh2n z@4X|01dtAA(50@mzH5K?{+)CF+}EWTz2eMdW-{;n-p}WG1C$hCWW;pD1Ox#ad~k9g4`y4!oVfq@3c(iW~uhy*`T7_0aH7`>`EnYuXVq#+YC==3#rnNM4TqqzM zpi2Elr!3hl!ZdK#y0bV+yVc8rwFEtAX3=QlvJ&e-EsBp)Q`0yKXbNuf-yYw7kh0CD z|Flk1UuHgvoR+*QR0ee&IDUfUzE7*`A=P$6nC;BPI@VJs|F#`Xc>X!`<6%M7XXNok zw^unt1h0m>-&2{GiIGsByulr92XZRrazZs&&M3jJintF7A}cE^uW4zt_r81yHt1I! z6-_gmO@78G3$})kfyhR0^qk?zev_%4R$qSjQI3MAg0)9EM#TOAD=_tf(*)S$7yiiR z&5v>wk3Bn**iD9S_I#2%^vi(^O+gpv2i^A);6^AcH%VC>0nH8|O!jN*L<#RtT z@aF9HMNu*d(BdiZq(LBO%(qsjSot+ZXQd{zLYh#CvOrK(?#u+|XYRylqcXOLk=m!) zBp`~~1dg7kF(Q#m)I8ZHMOD5%m&U)5jGOW@7+sm1N+O~^j*zRG;e4x@OteV=T4yo9 zSG`^0j^S)ZYp2DT>}AR|n$S)4FPI#8#(R~;Y**AZ9`&yqT;p`rks7Nhz;)dn-TgXU zw!^Bo@W6|jfp@}ijsSEFo#x3LnG;`o_yXK@2KuG8cTv&K@=dU?_PK*6=YU9!Ix8l;<_!y*Qc2phVpLM}&t|CuHBv&{M$K?VXtTabi(7kUMwV zl!>5cDNNqK6`Br*B~EcVh#5Z!FgiJZBN5nzpC7?UdAc+&AT0ivd;DA2$@YXMPK6=< z+#U~?*!R0i`3uu|#zDrRRN&j-j>ZOu#h-n#7WO^)@0> zCT6a$LGWwFLcPfN=(3#6`*UIS%uIT=LIXV-RbGE&!!+8)q~dkx`l{aKCe1`{J<5&< zlhRo;JX-UC>5)X;mwR+W96`@&ucHp$jIb~B_w_=mH>In?BLume!Wta=`ca+&7~pek zBVD?f5{nelCaje~EtZn+g3%5GJF}R_b`q}IH$Iom2IRD$^h*R)Cid8Q5~4Dzm!P&Q z<`iI)4wA#l@TwjPL)*9k5Vc!!;`9;bf?HRMm86wi9LI8A%*NGep3g11H{aP)>%l2Q zRMMQU!*0J$hJI5Qs3b=6?}qR7O;BU%Yzufc*ZKBV`}ro7zm=C?OY6Vlabc^r6r7P> z?1c^jD{e4n*Ou441V=Pd1eE8utX@)G5gq72HQAXLZ4l2wKd@yIYC+s) z-mu`E`kj=B!)a^B;pecv4W5oh>_tpj>^NU8L*eH4EhcOxQ|);$x(z(Yb5^tudSptV z%8z{(h@_t`chWkvFX=r!p~Vjhf1AdM>uGK05$1fyLb5D7m0!MUKW=JTZv)bXz9~*F z$yP@U3UE0=$;yjWr8b7C(1^oNDMZVxYYeMtL}ZnvQDkm>S0)=r_ugabEZ}AJ<<_Fu z{I^KKIz+V8K|pK811W5r##z8^S*2fr9Ln zlRG?Zzz8;xu9VSE8s+=(!^TGi1P2hC7%7MUqF=cZqFBtJNW9BROV ziv0cjsUmVvsU^X!`1UivK|dy+fSG$3YH8W0`q${`)taBT9jV{Hfh|&RIaJVvqRIFh zC*Rmvl&3*;XcMiJZ-+Mvfe0xN4N?AvJeABnNdgs(BYb!fK5<1)5UvM!Tz4_aojmUX z#Ymoh)m%fN(>6|#*RP~Lxt1?5);w}yT_lftje3sidO&MxNgcMg9@S+>M%s~y)0i`8 zT_+7LrZ~d<7V^K^C^~ast~@nM04^c5dw*&660^p%^R>n4xzd&jo)Y@ z1r=F09>jFOr%wsj^a3;>N!{rvf(qpkAdWM*5IYCsuwNwoJh7;9I$#`T6-NUIEKsiS;OylQ(XY zQtCiR1dyEGJV=~|zaFOEveB&szAVx*wsyuY?hiBGWR{h0!D zv;G`;F9cnib*YxugasrI^%uy@i)>BvC4V8@! zwy5#iHC#Qar(i0EPA3CuMQbaKy4m$CLjLSNwJs!13b%h{&x7479bv{SjC&3?SO&)3 z6q4nRRP(zOfw-mQrmx@Z64~o}GNXa9YCE$vD-(CLseaF%6HH+WZz4 zbRiJ~zAtA6*i9;z!+zZ?9~V0Lr66|Ae;}U1e#6D^hMhB6XJNHZi{t>DgU&jb=#rPK z@s04Hr_SOr%UCRY_SdDuSw^D*Rzre~4PCqgc)DBYam}@G^TxsTqX%w-yWtYU-Q2IX-a2Z4Kz_-yIe`m;x2bY1F?XZoIH=`uW{$R)ICXxqU$- zG#M6s!fDZwUOA_cs|PXe1T@XN3^UdYyR*t}943A1dTvXp!=%8c%)(s)5y@OJ@@%1a ztlq}Uvhfo3^ZO>ZO|NKfu37JMRRmXfJ_*VOBVnxFFmbq!zc%A+R+w|={11?sJpmca zCeCi;;-*yO)ywzKxa#q?E%@U-+LGH4{=2|reRd-Kz*Ps1$u6sPFO>{K9^k2Y!@=h7rZt472^BCU& z|0MZmbh1HlC3#bcjoX#m73R?H>6oW=45{gu0$S>j`v?``ch#0kGur}QbO_gO3XrB- zS4pz-Yrnqqt-k_LE-&~ox9gd#^n&HE%Z~grM;N@Das8-#U304PA$v*rj36j~qQzYN zsX>8?%q9DhpxrWR@M>30YI^WUDh4bcn+*bYn;~zt_g`$3{#G+=lBmWE;j}5e&vlDa zjsdE(Xg^o(Z|3$Tx>~-q5NrZ}^$y0eMd|h`7Y4OWkgF0(Cu&CfJV03AKfzSGBhMU4bqd4kc`qE!CH4Q^FdOCtUHaZW3R&>S}$! zhk=OYL~3fch$-?wa0)OEkynDzJR=vc^vuUQ$hF(>E(q3{7{4uhC^f@bzHUZT>k%%R zsekA}E`OlGE(x+lP1smp0;Ba7{C$F=@Pp~i$AsJkc)x+3Vf9xQB=aSN>D!T;Y5iU~39#6yoQuj6Bj%kdYC z`72YjnSoF_A)d#@S`|;~F|6TOn%b{4?MWJC4uG&NK=D zqd0rU$A@62MtWD$=Gg>TgO6)b6Vf41#Au&Zq<@p1RG!t}NG8kv#>%{bHuCdAeIao2 zkWX{dyO`XCdv`FlK?jS{48~Uaz;oD6PtoFF0u6HBTHCHh<)5wP<r?9UIw%{psu)`l~*PK0?1^oH}d{D_wF{En-ejdBHTK|(*2$K?xVkG zwYXl8^HAjVOqKQj0f6s~O`)Slp+alXd8@#4Iw?pHys|MW1|l%ipCPeN)|fLB$Dc(9s}LNw@?8G{ zU>U(Vid5}ltIy~zNv>o09)rC()g8O`<5~!qF*Z_?L;+2Sy!WSv=}|67mnOPb!A*2; z^f>okkk+f3+9?Tg&6NBMX%;BtB3Ds#(PZ6E4`X0e`~amc=9QGw3J-$!nw6)l1A8;m zFdl>D?g@J3P-41+3N`R32d*Hq0GWj!{3n&rVA)dpcB+|5`XZFFZI1bKA7d;-x=0wt zy;$6nvCJ$_&JDjWa%`LQYq&(6LqBP7G_+`+4$|qk7IlS4wK{qnP-3!yFO%_fw(8(Q(#|htD?ECEYPeT&anf%0GjGQC<0)vR3x=4pq`@gX z{0?*O(e3p_zu@N9G2O%!F8j&|FRhF(c@BWMxZTpdW0xv^K!`2L39%+Hs0#R>a@n-J#u*kF6~?DIhPrUi@$pR0tS?5wF%PE z(-eYCc#{7tVRzd>j~xO&LBPK62xxwmxrdd{N6!G1hfD0H?fV)_B^PBIm|@~CZXnpdaM=<+?&D8Md^RL00JfP zK|cm@`4bB6muuN!Zck2>k+wh^8kM73#1(%6#^TG;42H{?eTC(h^zB32g{Skc%t3Dn zcHX3$TQhR}n9xXCd$?igvlBH@ZU~p4OO*Gf=$@=w?9vYs)!RYa9V@}xVt8Sr4y_!< zGjn5?gnlSKhqS-YW^o#@NScez6I3x{ zv>meTLLYSK!pa+|kqQI8rWST7_)jL~mqQ}Ou*!V2U-g|ZR+pB%Z@w|HnZrV~uY*w?_gMhSp+4fY?hMmdNXYD(iruAlj0&qga8nQ1=c#y* zgYc@oWp>=|LQ+s})zQ5kv*UF?QMJ2|FN1CzjX$x&TwGJ!4VjOiZxVDVz#r28{^WRn z{o1SYRs*^Nt9(ZX`wad=44v--X~h#aROW$yKE=n-VWRfhI&wn|_X6(` z_WPK(bt4Q8gxJ=b%BW_nNj&h;H;2z`{vi`~)tCBk(zGYBp?f;(Ua+^@+rKm53ld9S zPP#A^Wv7>F7c36IAp7(%S716|mr9fnL?n&Q*?OcmX7>@shP*98yVXmJ{1{z!s;@_D zt0}M~j-0t@?)wY>a9PxzCVtBiTKiS1<;-&hv5CHiv=8d$IOnl?aI_>zR3eW}l*}`T zd7%jWK1w(iqAjU37u~dz-4@O^=PWhD7_yL+z1;-hnPx|je;QFR?I_x6McEg|;`Zuf z_}_7>V@hb=%%^H&>8W{N&Ud5bKD%p(B6#&l@nN^wOdQizb`@g}g1c|qGqGr^c>a1w z|5;G!BbS8(8#mlqM+re6&;L0Ba$evPxRGW!koG@-z@*c+8&^U^7Q+0jgUtgB$)Bh)OGD5oa(ju zL&w{}@q-4qVXtvRtXul%gWH0DxXe$&?MN>z2jh1!ElU%a2;fz@xaTyfs`lnr<` zLv5teGAw`KJIh))Wg8JzoRNMyP>X1rhr)=#Y8O6Nf7>}xLS8!@+&6k0h#H>Nn{`&~ z<h^0MI*wtWWT)UGMw#$-to|sCF?yXL$;_=8T>RsAI7ks*W{$R-UI&M5a3{Gda?9J z3PeWSws3vp1$(`F*+<1X7B6hG<6u)lqr|?N&1Up;Si*MeoRFeRNGZa1=`C?4ZaPvJ zuHL9EQ^d$jd1pu9n6iBgWPMtJyxmfJGQf{a*eag-%E@KZ$^*2_&F#h|LL)2_l*QS9(#5T>)&wtE8a=@FF+vG8N zk>*kU^97;}tRP6EGf5HKhlr6@^Nb7N1`_>QnnYF9-8tncspx59kcfE)TtFun#cCjn zEU2;}6Xu~xx+Bv+O;tKLcuo?~kQbcPghcWdz4-^H!wQOhQukRZRMRk>kfMa~V;A;p zSqpR3D87(4X}j4Awfr<~7h4dgK)pzpZf{bn z^yt`yH4+85n%*$3rL0fWi>l^4|J{Qess(a2+0W-O>gl%xIaVi`l9N3Nq}{$Q?o$#6 zP(6};On20~O*x}!V+=9YO)zz4yeTv@_04tEzA@Muc((5aTR+rHpa6@RymHX{a%Ss{ z+ZVey@TSCpCZq6G3WNWPfd3Z(|HlaUnQ37#)!hnd5VH}%lQbK+^qVrFox87bV{eTd zMjY@0wT+?ndYzV$vST&K{gWpow&Zbq;%=a$(B%@MLh@v!P|L4U zgM9JBN_Gb)g+}3@K$8-*b+GGuC&@6v)Fomd?4){kVQ)620*%U<8saNfLM+ndN~1z> zV$;~rU}Fc&M@|;i!@q(ZqbHdoB(EYYOs>u5jd5A-M`}}pr;g+_B5o2kj-|Pa zF8qc!e5d+kUV>;ih=57(*r24g=6@)>+c%LfGLw_-Bbm7r_`az+tag}5rqG&jrg(-W~CJFkaxZTf@_Ofx@ zzxqF#<4|HKKBpc&B9R1r8t{!k_=WNfzbR?aogs939=bT|!c4N>91ai-wsc4|JdG9y zGpB1A4i1ueuSS{R3h}0^YLpx`pB;Ok2-R5 zZzHya))4+|xc0QJ*&1>3;@0$RcgE3M_rt55cZ9<51j!pV&i`8js3v%e$CG{I{X+yj zruhC$iN%UA-Y%u_?FQq!rBg;{`8h`ZCg^bG&OC=733*%4cUW`DPGqp|OgNy?)-Lky zuY7>yw$@M~Jl&X?9MI2RqOdsWZwzFd6{P)UF5-=GVh z;$}}BvAUMs#V{T@TweGxI7dhuIzFqotm&oQreos6)^Nt1G4l8ce%&u1F<%WFM9t;W zBAEtq#1FS}e7Gq{9nzJ-0@1fhx^+w)&5)h+@I@?kv+h4xs>`xqTMB()kR)QH0W6ODL=b|ea)CmcTzPItT=KH66{L4@p}bW9=F z=+(cM#QUgiq$M^X08=_kUPU7sf!8j#4rN7NO0#TX0-;8=ySO&T7v$C}*`++cHZu0; zRv+{Je*j9;z>+TGv1i76Qc^1lu^>XXp&w}t;MzI_nTpY_m?O?J|UF!?x>j)zIZZ*}uTg|S?56^~@P4iEAwq#7&c^D#OmVAeT^&ib{UcAER@k$$X; zQdR$NNz=G^;6|aY!VuP>0e2>_I^ymyjmC*~Oj(aU>lb7XxoNc&mR~HbdffiYw#m3DLJ)nb-vczmSGI=PaP=yOJ4mrW01pSsP02=(ym z!R+#8VFsL>Puje-hBZZ0gY`?oFt44R6Z--pJ~w8q7te$W<+z`WB)mKtrOR>%f~{*2 z8>hh;3|%NPQq8-xDbWw`*n5*Ni7GB0zr7D?q`b1s^a4*X%Jk>EYA*r$va{t*S$Wk8 zL^lqaL9$a?PVadKA#e`-ocbsFKC1awpXsVmMxs^Fnz9Tb*6tD1sa`;k~@OqRo@ub(|hVwu)j^O#EQmIetE!ma(-|!O<`ZRqJb<$^dia$W5ARK;F@n)=G zXY|L|OhQ88G?ay6&;=(qqYF;O$NJ7x1?PPHYJC`UButfql;CF9^Z@N$9e`rgvKY7- zzkY{r^gSjplQ4S;+v7}YOOB)q;im)xJ8Tb}^>Fe{+E{o<&QW1zc~g`vO5=ii`UUW? zZp)~%d!YRLs1P5Gsp1zs3gc8)u&mU&?P*XcG+Tr-__K7L+$}7WQfV_Ngi(tq_9feK zK+m&sYg9Dt?NYYIX6$uOy3OW4i<~fWv+Cf(7LSO2Cy{IK;1#Y8C_5@I{l+TY*=I|v zB849$N`$Qn3)Wezrk#N{(Sj^ujO*o{#sa4oD_O8zmLim4B{5HQWLd}YpB(b z4G-q~15C`KQcuBSO|^7AHPTM2RneHT?`cv7UxhiJ{_{;Q;kGe05x5xg&K3|_>$pD_a&U>aXaI13$(JL50d8Z5nu7>Swu zA*$V;mYnn2)kI5c`a29y*`L60#8U8YzlVb^NVbZO*AIlUcC6{g-vYStoB)oYa(>HrRpU$_+Fu$?E^-+?mgq9i+l>lZ?b zT6(Rs*ytr2RlqzPAC<(}aFaO~EuqFiP9Nk%5YV?9#t-?A=4jtCuRhpfZRc5{uXo+q z=LI8vUYPpMT}NAmAiT1T|Lra-gEjft1a;1k`{Oe~KvJy%Wz~FR@vzsl)Hj`G)zsap zD0(^YuCzHguv&0Ryn%gl!eek+ywQej&`(Qef(ql7EcAYQoG}tAUY=Ns0uhUO05V)*ND z@*NLrHqhR{%JlU-nMJbBbn#Q$0gDOt;1glG|M6dhX@zoq#PRvcMk<`}n-dBYPlDbf zY2&o+<&J4^>4Q557tWSxa)1M;mS}X$!JFe6+N_0AI?erp9CdjDGuyvnelpc04y2u#n8-PU5wo6P&9?ZpnONA+t}Ucy z&nD(V>H%M8avRC7jdV$uW8n|L5W6kw7|(e8$j>_ZLqe`6y!1fWM}{tJ3t7HmzB894QuSOpNj=&WDT3e5Or0)3wFwasb4%9_M@6)K z&l3J-@<{!8U7lZ%P!XZsO|ejU04NSjBEBESP4Ff6+T}!&pxTCxBG{W z{I$5gyC-P##k--2l=5r77AsRg@o4?Q7zqe%7Y9-kbSnK|KDcKK;nZqb@o$i(QzUtW z4FlkIku@T67|OO;)}XWaHSwT$i->~}#O|Bld^q?M%%`d*s2x9BKP zZo$OD?q27J1NAg#Nd(Fn?4I|PbI>nwdR&!F6YOHC^L#n$QG{zQGnjL8QL{~TyS%sy zMT%4c%BbJPXL6?WNg|O1-c<>qUm^=RW`+5)eH2jAI{T^M6-_natW57V(D?*MKT4n;I#vjkQ1Y~X{0hj4% zF}qYRzy8zJX(%d$`X$XgPvDafqM65Qw_;|~(JO*m8-*q1ir0~W4cd`@#KX3_GEp5t z5?rPAGz%$L?%(5dRFgw~R^|tdxXDGF>^=J2drvtC0;nBNt)$2d+>6A}c}i_~ef`fu zywIKq{Tp+H@09h2i{+Dn7?p7~8D%gZ+<(bq<1f|tL;Qy~w3}O7WX))3Ej+(psj!1- zrlt&tNKU|u?sySN{!ByuYY@P5bL5@7&Uld^k~iLzJaP7WDAI|JZrsHHT>hmAC?xw& zC!c!IBNTzL7K;wAXR3vVTe1i(oYdqoy3H0Zw{@>?*4UcFaMCNHwib2efs0(Ync=2q zwM72#(Cn=nv2ablw^j({)fdng^E-(uP|5UD8@CzqpKlZ^=HH}?5{kmM7vLAoAatc; zwH5KZJkkdhh8C1p5+HZgC}LE+Xu}KIn7|*#?;j-8^-VaZ5jOW{JA#*;g5p`(xTiDd zKkPnW*IU@QEsE%-JWbaZU2+aF3<-bfklBU}TCC{E-~c1suP&!}=v`e&X_xF{wro+L zcgxt?1af+ArOGprbI<(>!E99@GkN&7?#q=uz{(bMN@|0qqxcTr07b2;i>k6W8Za(r zOGe?77{mF3SVV_<+hIDRNdbE)(lSDJU|Bf|swOh*8)pQ6AizER8M>1xnN1+Qcqhg$ z&ak{6PD5v75^-mAcvoOH6*!9Hkzpt)*#Ip_vNoGk)^|nj*9+w7+7R(=j4q>aw<4Wc z=nBx)kd4$ER29&>bnknJ`n4)pOczJMPJ! z0)p$AgO&S=`T1(PYN?P}4cSJ%&R?iNexQp^N$*`-AbTP7WfZIW#P4d}}S2|=#O7ke0mzh*aEWQE)y!|#~iGCKXe zpzrFFL$pk!^d8pUI(IfGO<%TTQHsrDXLDNnMC6*d0wT9m7x6Ft7V=_OlTqkuj{x>p z;1kpB_NxE04RdYk)Y!laqUU=rfZJ$T5)`7`QV?5(Ltg_xlECcjtEa{J!@6Brx);>b zl?P)xrifEIfWi;~!Hgrq*7bz~i3BH#^2_mOIb$vnOz3yqef|S?NrX2~aMzcrlIGhJ zJ57YYnbrjk0gMXNJsZ;3!GV3+U0eN7l{dNPN>2^D{M%{F_n#@Jh)M2G9pb6tlT&F# zzc){OFWO&LCDH1cNMGR@X9VA+vt>EiQ|#sD{Y6sIh0eE(T5g#Bhn{L{CgdEL#dtrL zC>~e(BtwcN6QdM$0h>v5cu{@BvleO1d{z*-w8N(k$wHP$AXwvfT1)EL-?E&6nLdTq zFA@*HmwLR__b301zkRRgd(MeG6hCvppG6OwFv=2NKQVx_rQX$Z3q-DFDcOMHtbuC2 zb}=nSGqv$BlXjj(ahhid7ECVPglKaK;z#;LgZZ+OisWYuKBPX7xpErFk*@EYkKqg2 ze61oYkPXBN#&}jK`c6OUoF{pGlCOmyvi0VbqIH)+GaMDJ>Eg{$20?GwP~=nbph7n3wT-iS@IWTjG!q<-}5nJdNKFs75SDJ`2N60FM#00h+c!NU0ufy*_DlHj73t z5%X`Hqe$xxtHUL9%+{FK#XTYqf1a`&Lh=``4pOX3cy239FO^N zfStakz4XYa-?AppcGY?%Pj@WYmLvxBlKhq06UyFTy`Dj|YO2D`3uG#B$$f7PEjp~U zN;XAx*Xx;j?A}%@n)?=Uw67Bf^MPlLUonDdnT0whr^OXyCbtVRp^N&tL4I{~Dg4l+ zvxK9}?_3)Y$>n?i!054VsQ<#MMZ=Q@luen-sz=N_VC}l?`zNJtA`krH?K@>?REBq0S+(}^2UlFWDqHi30Pa~uu05d$T+-JrcJV1?aXOg(}Rs zl`@li5%>|PHxJjZT#h6)u5#ukqU%dvk;$HYi|x;L7naNA&)c1zj7(iIm+BYA&tK7r zwW0zwzaX`x0|CVQVi4}J(N#ScVIBUXBSyY%CN{!aH)SJ(GEwpFU}-yF{d#w05hL=m zqA}!Sf^U&%EPmu~34)ZMEMWZ|Z{ zf+Da%zhehlo-wY?=x^Nensm)O!dR`~B96^wloNE6>dRY#u#pQB(ftm&2{0{aPw);3 zLS~XJegtuFdsZ#-4}Yw<2z1ya*ZublDU*Ut>&i)(l$<$AW-E7gWuf>Kh>nR@=~Jgg zYVeI|2kH%1E@)ScwTRMO*HTWJ!AcdT*o-xoiH_PF%JHNE29RfRx{{W~Mn)HwZeR53 z{~74suQ)4?@;WN79bIYU3yi%hNhnxTu7in4w>kOLA9 z^_cPfyxl`BO^Jaqzdl`|Ez%y3HTE#{dbqX?j$5k&zQxN?z*CZw+vAZV-WEk=-9oI^ zi>;EFv9pBIbUMsM{{@)yaWwa#nUxs`jEZa5y%dJ~ZYpxpbwF;r5KM9NBrtI6bS49Z z{7GcMaXGAxDfXDD;60Li!JF~fHPwUU&ynr@B*@3ChF52>+Zzj(2PL6C2Mor0xpcaX zJz8ihH2PY@>!))WZIW^vV%K*vW$Xw?vcF2|dP9n=qCP9;7B^IZhW=jxJ&T%Ztkc=ADNzA zsx*6uOG(O5$(&<*ti|J7dW)DtZjKZ4%;`A)POZf?A4Jh3X-N5M*8W<2T>+@m+RM zso4=f_o0cfhnM$+auk~mI=kVgHZ;l-+V`UB8DLApLi~fqxxCu82ZpTHwuvkJ zMaL0c$(fK#3^%@^>W3#TVHR`5ZG3y0Clb5K47#1K#yLmQyhW_55~ZZn&H*`)Kcz#xCRQCFdlucHx%dY1wZPf=tL$KK^-_TTkBlg%SX#-AMe8 zDRJaA`0SE_!0FPPn@x{0rimZQd9k+}88MLx`S?6fu6=l1Y@h3fs<=&*q;z=urTS=C zK%}u|(8k5e&Y-zSmoYb|zD$^cY}p6(t?!f9J6m?2>Tc-Xy34Rp*Ug6P;_=3oS~ z%u;Q7%I5MiGqZ{d!-pEl{0|+1NTm+haNN1M^6$Gh!|V@!B;}D{h3pn(C{xBk%}#IR zO1TK6*^j5|!U4^zB>Fw$Ab?>qDPT1M^Jx#~^C&2cPdIB_0;KSVNk9r$##HLTSD_Z& zz)jE%*Gj)7d9uVMl=+HdJ8%e}9%lwaY;_kEvV>UsLHx;mMC@f3lzq5Iv&y8{w)@Z#?E z$bXT?tyF)?<3bugVVY6(e@Vg`2i>|)$^m~$WioLwW}oXXZ}=w;=N0{LOx0{9*as^Bb{)>T@3m+vEip|GPIJDHTEO0j?I58}) z3~@%Q(7?0uCeHM#BsO=kytmWFVcmtD#HF#V$&{e5iF)nW6D|+WjJvd;&5ukcPLykI zL)z_SO#T-IEgtk{E$oT_$8EEJI%wS_Y2C(F)`01pzGC)%N-d}qrB@+6yelt`_?uuN zPMGYZCo678{Kdb+IPo{#IN(js1Ummj@!l19H8oPMb}r|M+d{D&z2T^r|!8rbRwlE=7j zz{QM`99y%o-F!wvWl#jR$l|ML^ohwPPlBQ~Vi{{yBOjvrhl~uf zK5Vk45;70o*YhtM&7#Sc2dfA3wZq@0ZZ6N~v6zg&MzJl<$ZNrwqf-$TiT@#W`2x6Mt;TiS4huyA5^}YIPTFF^l19VciDe9QgSuo770l zz$Fvs?0FY@_UtE2YE##{%dGmgZHHfzsU_`V*H`P4*F`ul(sYs9Jq*h6rbk1>eD34Z{2K;_cLbZ46halLc ze2%NUKU&GA!WwUqG&=coFm>87tCT*F4xGxo74O@5Y3xJVE!8F_1FP%~BdC2FS9Isf zXuW-CnGh!{^D*Drcrxc3Y`W9=5ZVYqn-rEs?8_&q}IoEx+VFS zRga(VCYV$<=Zq#wk?;b+las#o#HsNw*`FGFDeA^*xQuB(cE3~CcEUYt6MjgdL|p=P z2+pPgOZ0Zk#7FPiJV}Wb={;89-U46uTu_QI1&b)P=+se1|88_^!5Um>o)Nj!lfI}_ zA{$}3*734@W4yItj?m zLJCa$`Rn$L_lRPSglt!uro*Wg-e^WHi@NW8q5zxYdq%ULx=%RZ(Ry~zKFHmgD!x8n_+?xj`!7VyZLb@!Ht zcyvx*=Ox|L<#!iwxI;b}HqA-#(_&c7eI; zh0-~Nl>BWL;lGfbd$~ThM~0`;bnAxA&t^Bg46A9F67?ijVTmmSHXl37dKJH@X%pJ( zv;J34-$9e2BLwPjbgdS-#g6)O&a!wuZ-4?=C;(W1fb*oq3F7!&Q;TDT{dSIuAJ0r( zTYW}1z5Y^?(IYRkcvPK{&UNZ!DTD2NG^^l4v6pZ*x!@0~FW+zs*VWLZvD5?b&529v zzAIr#Blpmqud6Eze&qzM(zwET6WE`YFdmz$)SiInkY`uE9 z2W8d!Z|P-BLFnbp3rcnGlI9P_{}G(V#2CJpq^&-OF7u(-e@`ex!`4!J7AZxIWjne$ z*}p)Oo)D;<^YCfczySXZ)mxzJ%Trh$e@@Xs6YI$UjQXTpMM3=OD}yJh-k2t_G}69%^Fr!Z2HQA5*4M*x@spn| zrheG^IKj0ez3X@*QK}PLKen)$lLlOFZ8tSxuEOsfZ4ZBRv~f7a=7}eY0qYvDhVUkw zZOeCWJKZrO(yrm9v!+wYKhPp+8sVTN>nKBQt1)2z7ZTr41?oJxD3UIFa*^`;bD2FhRFQI1$)e-S7>YM&OE5M83i$Yg1gC4XbSB(3HY$XeKc0w~r|t-}85eyvq znGOcAFmP`I@uNFB6D-U3R7zi&HI?4$T$XBCYp7jyF2hIU++&75Z}~Yj0lG(o!Q{%x zle@H4z=iwQ^%fFV}$@P%l|Q*S||Fc=aU(OuYN7&dFa}V3Nc7J*3pGRNHysT zpl1qYqD}+z4udN>1yr0@uF3~3%~hGND|wBbU_IaPN$MmzOSBa(DV?!lmqJAFWhao7 z6XK-N{+v`HO%=al&V4z}>Sa|@+Qf8!nk9bZMS#vdzl+RDih{^-@~-07nqb7URdH*R+DD=7!&A9Oi{-a*?F%R^?_>z|&W zHQ+4C_b)3pp#^K(qJHO8s1UDOMw^aDYOOebgZD{HMbGVDVk$+=PF2;lVmdaX96DD( z2>^x9360&?xbJ=C?ww+GUzY7mi#yf$i@Zi^^Y}?DA8FLB1O|#d@$jX3gICv(QdzlV&8dxsHV(c+LsK>QTvzU6_ zYb0#5dCxZ%c~~}R7+|_=M1NiJ;GL(M6jlh!W$wT&BZz#^;TRxOvOoC5av{aK*jUdB zEJTT7g$OLq7j%VOxq7lBmjswrMs{Cq4i_QLuY?I-R*l_PX%)WEauEF6LE{{cM%g#Z zY=g9-pHTq4-?B_^ws)ot(CdUT(Q;?3ZgB%&0-LSJk}S~oODd0f;gmE$LNlWC)*SZw zTF2tWUDe>}3GAgFzfUW{@fr-5%+TXNF!#@u3xLK#M@{^pJ@RwHxR(mQv$rbM^u)yF zp7gc4+^-scO=w4GnLoUHm&|*G%B4)zdnT-@sLAXD{t?qVWoK?M#QmO7ZDZYumcROM zT0RXq?@|A$uOb2&0IX>Ab9ty?U)lM3)bo7LPM+d~0IDZ9U)9X4Pt|IhEccrc4$Yqg zxN&t9niz^0H@V{LX*57HW5=4LcVn`mZrtz!m-E4LWa#a&|ZE=ZeR z_be>uWC0uQotqmp(+ySAn|+s`Jh^?c#?)U-^^qVEROY9akEY4F$EfL{d=!)6%BG-- zzxb^*e?e$Rf1Wl1QT?k8F>OCoXwv?=Ung`f@oR`*z|{D)G%5h9(2EXaoVg^$f5Zm< zKZTunJXG!9$1R~Oja|ej${K1yXo$j8_FcA;rjQxV!J)?|Gj8yk6(bnRAXg-|KsQuFvOvU}1Q)$#BKFf7rFv3#c^C6nuM& zOO0Gft$Kq{^uZk+fBQMx4ywF#eZ10jN%@}^6Trc3hCtkr5v?qLPeTBZoa}i>5KfE4m^W45!H&tNIy2!R)_bi2pfs)oyorVbu+nl5 ziVqIJzcjU0;LWSXA>n4vmdvWwz`nJ(vB0=#2PO^BiHo&%ecgXrM@U_;#^7aMCflK* zu?J85J`Tl@CXG@Gz9}c1FQwCP4okOwbBpS37P8a>qfV`z9k+`X5YFPzTfu%UP!6y`Fvr_P9?4V5;X6Bf8{U9#rCkAZ zM&uVB!n66B@`9(+a&}!KKRfCf^oQNN+6$^tHoMIK!>*$7-0ZFr=x>*b-P5X-LgxBY zo2Ug*pNH%q>8qqJmtk=~7g&DYcueN3PcuE3&z~%j0gUYgSS9wn57tV0QdV~{+bxEnx{U^j4&k6Tg_t{mX$_Yq$xe=@q|jc4#`MB^ zJT!tidMB9LT+XqKk3JFN=!_dS0?dknKn##1>;EeT2o)}9LyEIBz=e4SFuw9d_vq)Y znKx|vFBXdWkaNz_)-AYMGNnQ9zLj_f%C}~7N!N>u)Lf+CfEIdIU7czh$QbcAide4T zZQJy*?<2fUv(SP%PV21I_X1kz7G8vO5oI)0xCIvcYt6{A`!}bwQlGSad^&0sE+dig ztCN-J!D2iYgG*FJ2{BPzy1^u&y=FXDd67a8y7BGP|L)Sh_Z*1ci7meUFD~utdnA|k z%FkshXa7&|yHfQ-cZaL9*88w++@nx&uAPsEVL*=wVw{~gi>(snR7!xUfN3m@nIRqe z$bxi@pG5F$L=in`nIEOo82`J5h_9j*7~_4)pr(1ea&G+SOCoJiMKDK#1^!`Tmo zu(KAj$s(@Ez}~eSFWD$y#q zslU<&-b60sArh0MhfMd8Ut(rM_CQZ8FfKQivy3;fi)0|#R9eO4o~zDAw8`&mCJBRl zL+V<9>B#dX+=Ch6E=t$PUla#aJlOiq<<`$o@7t~|m@_8YX~f5JPr8|q*x0k}KKaw) zlj4s{p!Bb0(O2I@&cJP`BT4v(=^IBCC}>G;6Pl`dvTGO(u1uHZFzBch#Oi5#?{oUA zMDhff&?FU9`${$qfOt^aXNUDLXp}!L8o++(*YdqI@rZ`e_9q$WGiZtk%BdwBGNUQLOvKhbHU?bZL0ypyF6t66gl zm;}?$LvW7=cpykxJulrHg1_Tybvk9?!FUgQFW7)ZjiG5RKh5P)A-N+a_IR~*prd%Jub(3dwV#iE zEZRnitmR!zrZDwcFZbI$fi zpQ#2NyF^|ZZxhg}_2{p|uY5RbnD8K6ZJ*(Qw2)?}wekp&yaRA|Qo#DxsS?SeI+jqSMG)is9$_pX3e;QRCk`w z6Eyf}-+>ptnm-5fB$ja02cI*FiDNlWz6!au(Hs}CGqc@Mmic~|=QFFJrG1@1hjtXy z4~e%c+1cVu*QrSvt}^-J7&3CYOFA(;0v#pDtP1!!v4p;BvW*`n{US>q(dX{NUrV`ti>sUd7L3MP0-oP`aRTgYw5brGKhov{JH8&ZnR)OJ2X6Hj z*N%E-g5%w9Tu(o3p@Ox209&F)dqM|)8ypzq@>_T7)U{4lXM#FbS?FxaC!G^bZMM9+ z4tmuQbQP|}fWbv^^L6{ks3C9Ej)`TTPs7Rx%f;*+b8A$!FHS$N0rHb7YlE-;Os=Pr zQ{twGcgc=sfxFbo@AZ<0v(i)mIIN>SayZmhz4f%!>5C|cW!)L%h17s1v)z*m@qbN( zLIG`HP@`-xc!<{bo61SZlQWVZ1OuYl!Sb-gF-ru;V-o?-65R4%f%6Z;4dlCb<*tm4 zT`7ejX`!VvI;>13$7YHQz%+8p7l(Tpo$_JB4f^W={o?Bv;zK3iLCjqj{gvE5lo;fd zHH{q|VzJ(ecLFb~dW44K((lhkhDQ$2inQ@ZcRq7Y>-^*1b>gOVEt)4}ovdHpbt^K@ z|3sf`Dm|bJwcZkK{pP34+PPS-&Y(HzYpQh%%*U0(ohJ^qYv&SPhZse79v3M#nTUb? zTTjUjU*9&)0S1{kUx6pKuPYG_c~z}evFZy5xUz{>?k8wd2OGRLnS6!W@2E;KWyJGkUt&UFTh*2NVjj=kW%jj~V001z!4 z=ACav4hf=_2vC25z)FK{a-HCIF%1b@(>NH^N7$**yWUBYO61yA32R`g-kGrQqT2&s zZ1aW~`>zx~03Uhl@0bL?Vul+mpc)cp64nzfU1rpi*eG&?8WU7Xl4Pf1!!_iKpK_${ zC;xLY0h})InNl8x8hkL6Jpz7odsa%}^mCw|17HWPhf{dC+kQ}x((i~n?<}jL=p9a@ z<9^KPtHyuVYuBL`*B7H;P2iVO8ICwx_P&$c40y;=GC7R)u@F`J-|`;#me&bZ9#xFU zJg^Th!=rFfc{Bw+ujIxWBM>U0T(6i0?6X&W^QWn?a#<*foA?<)RQJ+am_wkw5~pN- z7sfTpB>PChT4dEn1d;2VMl0o-hg^bZeAQZSZ%fT*?fK_jkzO;p1^Kn_+yjstFP#ra zNvx;BrMYSMj?`B;0sS zFuJaW4L~Ou?IWxSIxyrDP0$laaSx}5DtUOzHO?=y^m2JYfcOG)&~ws}entE=bCT7$ z=#rYt?lU1eR^i}WaqU8Z0rKPflqR^`l!q|k(Zo+khOK+ubx;hXEPh&3dhXVaKhK_5 zEWuW;iN*%L+&b5&xM}Dl-pY8w8~S%KsSYAxoEeE0RatjS6)vupzw^Mi4zR4J9^a9vEO zGsL1|=&T;B!-Hc|XANCOT4+&_Am}oQeN;)!5I#Ng%dGfD89Z`xzBJfQ5Uq?0g3AeUS9@IhE|>w~}OV)8>HvkoV#COPN{LT#vk8 zt2Z)j@{a(~lW*kv*4-rOL6sffa^(OAYdJ-0AsgF9gwSQe2wH&X@4yh*TSHt#%TNt1(?*1p$1*$&WoXj%(3D- zcQ5QJ#PkYUg9UjMs?vZCI$TX&{X=JmqECeM2>uCx|CpLx$`!gYuDe(vVX}YRkFG^k zURe>tw{_d=^mg9nvS?KtpkI=2?(iG$tPXR5QosdvzxGoCt z$$I=Gfzpq+2F3?10L^~%hk|tHo!byiu28i+0-PzrVDKCekd-_eW}(>Fp}Ancc191J z%LV{ozGVXd7!U|yD)X?cRj`u12B#u~Q22#>5x;tCwV54R+A8Kzk+(poe&f<5a*v*K zT2oU&Cy_LPGej(sedjw!v3{YylrY}sxYF)>cfp<-T!xEu)CFu&YJe?D)I%N!%*L!8 zEi#ZVi4r-oMksMF`zOoUUiq(+KVL}Vgk4zs|M2{i%LBzJSShuf5=6EJK+gfbJ})q= zG0GhyJ>s|)s`}>jgj5{06DiB8;CT5#UeEFuCDRNU65yFEh+SOUYPR?{idoz^hcctc z&442k_wYk5d(L7ZTKmy)4^n0o##7c6!_jl_B86&KbNSP0;&tq_AS1DeI66n%PR*pX zi2%0k-ZNP@3`AaRb)vJ?W}XEv*Z1a+PPd6tY;c0IY-s0=Iw-*C*soU) zC=bBofdMQRHt;f`m;%bDO+Q@6&hS8dvdDDe(V_H-k2t&!J`FL&9w2#0bHLqd5+>n8)4e;ua%TPUO&4#d!TjvD`IHe+m+wqABkj zoNs5r+GI!s>cQZx77EF%7%V;lk~d43R$%h9**@|sc6SSR>J07Anld(@sT0nyR>Qu_ zPhkc@Fj;M*AKsf3%f|p*H1HyY%3g7T%cCKt?y8k0=-`j0laL`{!mVH11jZ{=3)Zbo z21^05#asw*jiv?Hew&@KV*;teNz-jz?UZ2y0k!l8DBW^9Rj~0!uD>Ft|27Lg;_|N} z*?vvL_xnuig>$EG@^@kLoJ?zdbt0stXU1YVLJO_W zCv!h-*}a>}{Q3SZv`DX6-2%p&B;T>R%A72KsxXP5VK54m2trhI`mBmx(#zV{ zInu6zS{==2l?XBO^i7UsOK?Fk{?ekyEXECjxn| ze`kRpJim|8Q}?3d(XG1>vcoX%zs<(_g-QWYTElLe@&5AL%%^F!{2#PFiop zRz~d(ix56>b@e=g)qGNk>2`{de6Q_WxRCIF*6yQFR#bxy#Qy{EQ~~2n-V>tkL{`UY z&0Rmmuj2DpeT)jObl<7A@des_b`d1V25nwoq~e9M<^f>hHSU>co8g(*{m}-YwofiI z-mkS=3Wl~O+8MFVW{YqX8E6K**_pPc`QNK@m~X8Hg&Kle5qX4L!dd6!IWdLU*Nlkc zGiH(n$H6or(h^BfuCPB&?kP`30z;2(u1 zR+FQfD9dIbldYlRvSLo87bRrF5U656yei7F$Z+uFv&!-!9(3wD{QY)By0oUJmuQ{- zU}FV=;Y7LSZ1uxnRdzVY10dxWlIkcKoJet_HxrwC@n~W6^hFyQekJ5|pV<4XQj zka1?kZLfD%g`ld(`_Jln6>AAWt9jnwML-$NI@O($<9KJ{W`C%l?Zl4-L0J7Mr!-?21u}Dy5k;D zu}!eeZ*3?R;L}9xDghYu?{zNJxF-U5o>7it>+~T~$v2ua{;7P)^J*yJ6~TT02(a@l_L<@JIZo3wOYJ9t9BNNUnvpIZ184_1fah;Vh@r1saB z^4y@`7jq3dxmVlsiow+%)C~5)FovY6v>3pvw$J%t@r@7cp&Ec@j$@T1u-i81-!`X5 z*u0~!^hDZq+7k7};*;b~0?h1x(q(|(>8OIVD1hr(THoGWk=iwDyIPzQf69sA=(J+o zn#EcLV}QPlry2xM(Oe*&QuTxz|DO({_ui&T9ig&XSsUK?V&dy)5>MGnr6uw&*J)SR z4O5d0C2t!+(VG{Y3fFU3G4!F~;z`0^Zy$VT zlJGjGSF&$3BUtfc03n5Fp1KQfb~InA&8`q*1q&GG=||Hzpy6L2H1f*;LpyQht{w?} zDZ2kUk>FaSr)>&iD|Z|7sH6U!z%}z@JhB~OedrN<`}Lfq^UV}Y43>cn?*zZ0AOM2< zpX5w(`QSQaEYTvqHz~=NXHUjQf0o%dBkQfeAN31lR&xxOEgYHTdZp%bVXN280=Ana z^M=FH$n=5rl?&BI)^08Qe_`>YwGkkoEIR+Kv^%~Pb0k^b?3|sA#qp8cs#eTueeM2Q zRw=0&M&6mX$~YF!Y0ZBc@63#c7`f!9BKSXd@Voc{RoLU+XN*d^;RK${8T?=LBS%Bk z&gk{var Ce=Object.create;var J=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,_e=Object.prototype.hasOwnProperty;var Me=t=>J(t,"__esModule",{value:!0});var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Oe(e))!_e.call(t,n)&&n!=="default"&&J(t,n,{get:()=>e[n],enumerable:!(r=Pe(e,n))||r.enumerable});return t},Ae=t=>De(Me(J(t!=null?Ce(Re(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var de=Fe((ue,he)=>{(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i0){var h=t.utils.clone(r)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(n.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n1&&(oe&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?h+=2:a==c&&(r+=n[l+1]*i[h+1],l+=2,h+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),f=s.str.charAt(1),v;f in s.node.edges?v=s.node.edges[f]:(v=new t.TokenSet,s.node.edges[f]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof ue=="object"?he.exports=r():e.lunr=r()}(this,function(){return t})})()});var le=[];function N(t,e){le.push({selector:e,constructor:t})}var X=class{constructor(){this.createComponents(document.body)}createComponents(e){le.forEach(r=>{e.querySelectorAll(r.selector).forEach(n=>{n.dataset.hasInstance||(new r.constructor({el:n}),n.dataset.hasInstance=String(!0))})})}};var Q=class{constructor(e){this.el=e.el}};var Z=class{constructor(){this.listeners={}}addEventListener(e,r){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(r)}removeEventListener(e,r){if(!(e in this.listeners))return;let n=this.listeners[e];for(let i=0,s=n.length;i{let r=Date.now();return(...n)=>{r+e-Date.now()<0&&(t(...n),r=Date.now())}};var ee=class extends Z{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.secondaryNav=document.querySelector(".tsd-navigation.secondary"),window.addEventListener("scroll",K(()=>this.onScroll(),10)),window.addEventListener("resize",K(()=>this.onResize(),10)),this.onResize(),this.onScroll()}triggerResize(){let e=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(e)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let e=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(e)}onScroll(){this.scrollTop=window.scrollY||0;let e=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(e),this.hideShowToolbar()}hideShowToolbar(){let e=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0,e!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.secondaryNav.classList.toggle("tsd-navigation--toolbar-hide")),this.lastY=this.scrollTop}},I=ee;I.instance=new ee;var te=class extends Q{constructor(e){super(e);this.anchors=[];this.index=-1;I.instance.addEventListener("resize",()=>this.onResize()),I.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let e=window.location.href;e.indexOf("#")!=-1&&(e=e.substr(0,e.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let n=r.href;if(n.indexOf("#")==-1||n.substr(0,e.length)!=e)return;let i=n.substr(n.indexOf("#")+1),s=document.querySelector("a.tsd-anchor[name="+i+"]"),o=r.parentNode;!s||!o||this.anchors.push({link:o,anchor:s,position:0})}),this.onResize()}onResize(){let e;for(let n=0,i=this.anchors.length;nn.position-i.position);let r=new CustomEvent("scroll",{detail:{scrollTop:I.instance.scrollTop}});this.onScroll(r)}onScroll(e){let r=e.detail.scrollTop+5,n=this.anchors,i=n.length-1,s=this.index;for(;s>-1&&n[s].position>r;)s-=1;for(;s-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=s,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ce=(t,e=100)=>{let r;return(...n)=>{clearTimeout(r),r=setTimeout(()=>t(n),e)}};var pe=Ae(de());function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let r=document.querySelector("#tsd-search input"),n=document.querySelector("#tsd-search .results");if(!r||!n)throw new Error("The input field or the result list wrapper was not found");let i=!1;n.addEventListener("mousedown",()=>i=!0),n.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Ve(t,n,r,s)}function Ve(t,e,r,n){r.addEventListener("input",ce(()=>{ze(t,e,r,n)},200));let i=!1;r.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,r):s.key=="Escape"?r.blur():s.key=="ArrowUp"?me(e,-1):s.key==="ArrowDown"?me(e,1):i=!1}),r.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!r.matches(":focus")&&s.key==="/"&&(r.focus(),s.preventDefault())})}function He(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=pe.Index.load(window.searchData.index))}function ze(t,e,r,n){if(He(n,t),!n.index||!n.data)return;e.textContent="";let i=r.value.trim(),s=n.index.search(`*${i}*`);for(let o=0,a=Math.min(10,s.length);o${ve(c.parent,i)}.${l}`);let h=document.createElement("li");h.classList.value=c.classes;let f=document.createElement("a");f.href=n.base+c.url,f.classList.add("tsd-kind-icon"),f.innerHTML=l,h.append(f),e.appendChild(h)}}function me(t,e){let r=t.querySelector(".current");if(!r)r=t.querySelector(e==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let n=r;if(e===1)do n=n.nextElementSibling;while(n instanceof HTMLElement&&n.offsetParent==null);else do n=n.previousElementSibling;while(n instanceof HTMLElement&&n.offsetParent==null);n&&(r.classList.remove("current"),n.classList.add("current"))}}function Ne(t,e){let r=t.querySelector(".current");if(r||(r=t.querySelector("li:first-child")),r){let n=r.querySelector("a");n&&(window.location.href=n.href),e.blur()}}function ve(t,e){if(e==="")return t;let r=t.toLocaleLowerCase(),n=e.toLocaleLowerCase(),i=[],s=0,o=r.indexOf(n);for(;o!=-1;)i.push(re(t.substring(s,o)),`${re(t.substring(o,o+n.length))}`),s=o+n.length,o=r.indexOf(n,s);return i.push(re(t.substring(s))),i.join("")}var je={"&":"&","<":"<",">":">","'":"'",'"':"""};function re(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var ge=class{constructor(e,r){this.signature=e,this.description=r}addClass(e){return this.signature.classList.add(e),this.description.classList.add(e),this}removeClass(e){return this.signature.classList.remove(e),this.description.classList.remove(e),this}},ne=class extends Q{constructor(e){super(e);this.groups=[];this.index=-1;this.createGroups(),this.container&&(this.el.classList.add("active"),Array.from(this.el.children).forEach(r=>{r.addEventListener("touchstart",n=>this.onClick(n)),r.addEventListener("click",n=>this.onClick(n))}),this.container.classList.add("active"),this.setIndex(0))}setIndex(e){if(e<0&&(e=0),e>this.groups.length-1&&(e=this.groups.length-1),this.index==e)return;let r=this.groups[e];if(this.index>-1){let n=this.groups[this.index];n.removeClass("current").addClass("fade-out"),r.addClass("current"),r.addClass("fade-in"),I.instance.triggerResize(),setTimeout(()=>{n.removeClass("fade-out"),r.removeClass("fade-in")},300)}else r.addClass("current"),I.instance.triggerResize();this.index=e}createGroups(){let e=this.el.children;if(e.length<2)return;this.container=this.el.nextElementSibling;let r=this.container.children;this.groups=[];for(let n=0;n{r.signature===e.currentTarget&&this.setIndex(n)})}};var C="mousedown",ye="mousemove",_="mouseup",G={x:0,y:0},xe=!1,ie=!1,Be=!1,A=!1,Le=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Le?"is-mobile":"not-mobile");Le&&"ontouchstart"in document.documentElement&&(Be=!0,C="touchstart",ye="touchmove",_="touchend");document.addEventListener(C,t=>{ie=!0,A=!1;let e=C=="touchstart"?t.targetTouches[0]:t;G.y=e.pageY||0,G.x=e.pageX||0});document.addEventListener(ye,t=>{if(!!ie&&!A){let e=C=="touchstart"?t.targetTouches[0]:t,r=G.x-(e.pageX||0),n=G.y-(e.pageY||0);A=Math.sqrt(r*r+n*n)>10}});document.addEventListener(_,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var se=class extends Q{constructor(e){super(e);this.className=this.el.dataset.toggle||"",this.el.addEventListener(_,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(C,r=>this.onDocumentPointerDown(r)),document.addEventListener(_,r=>this.onDocumentPointerUp(r))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(e){A||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!A&&this.active&&e.target.closest(".col-menu")){let r=e.target.closest("a");if(r){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substr(0,n.indexOf("#"))),r.href.substr(0,n.length)==n&&setTimeout(()=>this.setActive(!1),250)}}}};var oe=class{constructor(e,r){this.key=e,this.value=r,this.defaultValue=r,this.initialize(),window.localStorage[this.key]&&this.setValue(this.fromLocalStorage(window.localStorage[this.key]))}initialize(){}setValue(e){if(this.value==e)return;let r=this.value;this.value=e,window.localStorage[this.key]=this.toLocalStorage(e),this.handleValueChange(r,e)}},ae=class extends oe{initialize(){let e=document.querySelector("#tsd-filter-"+this.key);!e||(this.checkbox=e,this.checkbox.addEventListener("change",()=>{this.setValue(this.checkbox.checked)}))}handleValueChange(e,r){!this.checkbox||(this.checkbox.checked=this.value,document.documentElement.classList.toggle("toggle-"+this.key,this.value!=this.defaultValue))}fromLocalStorage(e){return e=="true"}toLocalStorage(e){return e?"true":"false"}},Ee=class extends oe{initialize(){document.documentElement.classList.add("toggle-"+this.key+this.value);let e=document.querySelector("#tsd-filter-"+this.key);if(!e)return;this.select=e;let r=()=>{this.select.classList.add("active")},n=()=>{this.select.classList.remove("active")};this.select.addEventListener(C,r),this.select.addEventListener("mouseover",r),this.select.addEventListener("mouseleave",n),this.select.querySelectorAll("li").forEach(i=>{i.addEventListener(_,s=>{e.classList.remove("active"),this.setValue(s.target.dataset.value||"")})}),document.addEventListener(C,i=>{this.select.contains(i.target)||this.select.classList.remove("active")})}handleValueChange(e,r){this.select.querySelectorAll("li.selected").forEach(s=>{s.classList.remove("selected")});let n=this.select.querySelector('li[data-value="'+r+'"]'),i=this.select.querySelector(".tsd-select-label");n&&i&&(n.classList.add("selected"),i.textContent=n.textContent),document.documentElement.classList.remove("toggle-"+e),document.documentElement.classList.add("toggle-"+r)}fromLocalStorage(e){return e}toLocalStorage(e){return e}},Y=class extends Q{constructor(e){super(e);this.optionVisibility=new Ee("visibility","private"),this.optionInherited=new ae("inherited",!0),this.optionExternals=new ae("externals",!0)}static isSupported(){try{return typeof window.localStorage!="undefined"}catch{return!1}}};function be(t){let e=localStorage.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{localStorage.setItem("tsd-theme",t.value),we(t.value)})}function we(t){switch(t){case"os":document.body.classList.remove("light","dark");break;case"light":document.body.classList.remove("dark"),document.body.classList.add("light");break;case"dark":document.body.classList.remove("light"),document.body.classList.add("dark");break}}fe();N(te,".menu-highlight");N(ne,".tsd-signatures");N(se,"a[data-toggle]");Y.isSupported()?N(Y,"#tsd-filter"):document.documentElement.classList.add("no-filter");var Te=document.getElementById("theme");Te&&be(Te);var qe=new X;Object.defineProperty(window,"app",{value:qe});})(); +/*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + */ +/*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ diff --git a/docs/assets/search.js b/docs/assets/search.js new file mode 100644 index 0000000..8f5a086 --- /dev/null +++ b/docs/assets/search.js @@ -0,0 +1 @@ +window.searchData = {"kinds":{"4":"Namespace","8":"Enumeration","16":"Enumeration member","32":"Variable","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","4194304":"Type alias"},"rows":[{"id":0,"kind":32,"name":"version","url":"modules.html#version","classes":"tsd-kind-variable"},{"id":1,"kind":4,"name":"Utils","url":"modules/Utils.html","classes":"tsd-kind-namespace"},{"id":2,"kind":8,"name":"OpCodes","url":"enums/Utils.OpCodes.html","classes":"tsd-kind-enum tsd-parent-kind-namespace","parent":"Utils"},{"id":3,"kind":16,"name":"VoiceUpdate","url":"enums/Utils.OpCodes.html#VoiceUpdate","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpCodes"},{"id":4,"kind":16,"name":"Play","url":"enums/Utils.OpCodes.html#Play","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpCodes"},{"id":5,"kind":16,"name":"Stop","url":"enums/Utils.OpCodes.html#Stop","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpCodes"},{"id":6,"kind":16,"name":"Pause","url":"enums/Utils.OpCodes.html#Pause","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpCodes"},{"id":7,"kind":16,"name":"Seek","url":"enums/Utils.OpCodes.html#Seek","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpCodes"},{"id":8,"kind":16,"name":"Volume","url":"enums/Utils.OpCodes.html#Volume","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpCodes"},{"id":9,"kind":16,"name":"Filters","url":"enums/Utils.OpCodes.html#Filters","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpCodes"},{"id":10,"kind":16,"name":"Destroy","url":"enums/Utils.OpCodes.html#Destroy","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpCodes"},{"id":11,"kind":8,"name":"OpIncoming","url":"enums/Utils.OpIncoming.html","classes":"tsd-kind-enum tsd-parent-kind-namespace","parent":"Utils"},{"id":12,"kind":16,"name":"PlayerUpdate","url":"enums/Utils.OpIncoming.html#PlayerUpdate","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpIncoming"},{"id":13,"kind":16,"name":"Stats","url":"enums/Utils.OpIncoming.html#Stats","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpIncoming"},{"id":14,"kind":16,"name":"Event","url":"enums/Utils.OpIncoming.html#Event","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.OpIncoming"},{"id":15,"kind":8,"name":"EventTypes","url":"enums/Utils.EventTypes.html","classes":"tsd-kind-enum tsd-parent-kind-namespace","parent":"Utils"},{"id":16,"kind":16,"name":"TrackStart","url":"enums/Utils.EventTypes.html#TrackStart","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.EventTypes"},{"id":17,"kind":16,"name":"TrackEnd","url":"enums/Utils.EventTypes.html#TrackEnd","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.EventTypes"},{"id":18,"kind":16,"name":"TrackException","url":"enums/Utils.EventTypes.html#TrackException","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.EventTypes"},{"id":19,"kind":16,"name":"TrackStuck","url":"enums/Utils.EventTypes.html#TrackStuck","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.EventTypes"},{"id":20,"kind":16,"name":"WebSocketClosed","url":"enums/Utils.EventTypes.html#WebSocketClosed","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.EventTypes"},{"id":21,"kind":8,"name":"LoopMode","url":"enums/Utils.LoopMode.html","classes":"tsd-kind-enum tsd-parent-kind-namespace","parent":"Utils"},{"id":22,"kind":16,"name":"None","url":"enums/Utils.LoopMode.html#None","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.LoopMode"},{"id":23,"kind":16,"name":"Track","url":"enums/Utils.LoopMode.html#Track","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.LoopMode"},{"id":24,"kind":16,"name":"Queue","url":"enums/Utils.LoopMode.html#Queue","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.LoopMode"},{"id":25,"kind":8,"name":"PlayerStates","url":"enums/Utils.PlayerStates.html","classes":"tsd-kind-enum tsd-parent-kind-namespace","parent":"Utils"},{"id":26,"kind":16,"name":"Playing","url":"enums/Utils.PlayerStates.html#Playing","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.PlayerStates"},{"id":27,"kind":16,"name":"Paused","url":"enums/Utils.PlayerStates.html#Paused","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.PlayerStates"},{"id":28,"kind":16,"name":"Destroyed","url":"enums/Utils.PlayerStates.html#Destroyed","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.PlayerStates"},{"id":29,"kind":8,"name":"PlayerVoiceStates","url":"enums/Utils.PlayerVoiceStates.html","classes":"tsd-kind-enum tsd-parent-kind-namespace","parent":"Utils"},{"id":30,"kind":16,"name":"Connecting","url":"enums/Utils.PlayerVoiceStates.html#Connecting","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.PlayerVoiceStates"},{"id":31,"kind":16,"name":"Connected","url":"enums/Utils.PlayerVoiceStates.html#Connected","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.PlayerVoiceStates"},{"id":32,"kind":16,"name":"Disconnecting","url":"enums/Utils.PlayerVoiceStates.html#Disconnecting","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.PlayerVoiceStates"},{"id":33,"kind":16,"name":"Disconnected","url":"enums/Utils.PlayerVoiceStates.html#Disconnected","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.PlayerVoiceStates"},{"id":34,"kind":256,"name":"Filters","url":"interfaces/Utils.Filters.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":35,"kind":1024,"name":"volume","url":"interfaces/Utils.Filters.html#volume","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Filters"},{"id":36,"kind":1024,"name":"equalizer","url":"interfaces/Utils.Filters.html#equalizer","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Filters"},{"id":37,"kind":1024,"name":"karaoke","url":"interfaces/Utils.Filters.html#karaoke","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Filters"},{"id":38,"kind":1024,"name":"timescale","url":"interfaces/Utils.Filters.html#timescale","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Filters"},{"id":39,"kind":1024,"name":"tremolo","url":"interfaces/Utils.Filters.html#tremolo","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Filters"},{"id":40,"kind":1024,"name":"vibrato","url":"interfaces/Utils.Filters.html#vibrato","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Filters"},{"id":41,"kind":1024,"name":"rotation","url":"interfaces/Utils.Filters.html#rotation","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Filters"},{"id":42,"kind":1024,"name":"distortion","url":"interfaces/Utils.Filters.html#distortion","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Filters"},{"id":43,"kind":1024,"name":"channelMix","url":"interfaces/Utils.Filters.html#channelMix","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Filters"},{"id":44,"kind":1024,"name":"lowPass","url":"interfaces/Utils.Filters.html#lowPass","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Filters"},{"id":45,"kind":256,"name":"Equalizer","url":"interfaces/Utils.Equalizer.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":46,"kind":1024,"name":"band","url":"interfaces/Utils.Equalizer.html#band","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Equalizer"},{"id":47,"kind":1024,"name":"gain","url":"interfaces/Utils.Equalizer.html#gain","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Equalizer"},{"id":48,"kind":256,"name":"Karaoke","url":"interfaces/Utils.Karaoke.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":49,"kind":1024,"name":"level","url":"interfaces/Utils.Karaoke.html#level","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Karaoke"},{"id":50,"kind":1024,"name":"monoLevel","url":"interfaces/Utils.Karaoke.html#monoLevel","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Karaoke"},{"id":51,"kind":1024,"name":"filterBand","url":"interfaces/Utils.Karaoke.html#filterBand","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Karaoke"},{"id":52,"kind":1024,"name":"filterWidth","url":"interfaces/Utils.Karaoke.html#filterWidth","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Karaoke"},{"id":53,"kind":256,"name":"TimeScale","url":"interfaces/Utils.TimeScale.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":54,"kind":1024,"name":"speed","url":"interfaces/Utils.TimeScale.html#speed","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TimeScale"},{"id":55,"kind":1024,"name":"pitch","url":"interfaces/Utils.TimeScale.html#pitch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TimeScale"},{"id":56,"kind":1024,"name":"rate","url":"interfaces/Utils.TimeScale.html#rate","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TimeScale"},{"id":57,"kind":256,"name":"Tremolo","url":"interfaces/Utils.Tremolo.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":58,"kind":1024,"name":"frequency","url":"interfaces/Utils.Tremolo.html#frequency","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Tremolo"},{"id":59,"kind":1024,"name":"depth","url":"interfaces/Utils.Tremolo.html#depth","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Tremolo"},{"id":60,"kind":256,"name":"Vibrato","url":"interfaces/Utils.Vibrato.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":61,"kind":1024,"name":"frequency","url":"interfaces/Utils.Vibrato.html#frequency","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Vibrato"},{"id":62,"kind":1024,"name":"depth","url":"interfaces/Utils.Vibrato.html#depth","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Vibrato"},{"id":63,"kind":256,"name":"Rotation","url":"interfaces/Utils.Rotation.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":64,"kind":1024,"name":"rotationHz","url":"interfaces/Utils.Rotation.html#rotationHz","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Rotation"},{"id":65,"kind":256,"name":"Distortion","url":"interfaces/Utils.Distortion.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":66,"kind":1024,"name":"sinOffset","url":"interfaces/Utils.Distortion.html#sinOffset","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Distortion"},{"id":67,"kind":1024,"name":"sinScale","url":"interfaces/Utils.Distortion.html#sinScale","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Distortion"},{"id":68,"kind":1024,"name":"cosOffset","url":"interfaces/Utils.Distortion.html#cosOffset","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Distortion"},{"id":69,"kind":1024,"name":"cosScale","url":"interfaces/Utils.Distortion.html#cosScale","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Distortion"},{"id":70,"kind":1024,"name":"tanOffset","url":"interfaces/Utils.Distortion.html#tanOffset","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Distortion"},{"id":71,"kind":1024,"name":"tanScale","url":"interfaces/Utils.Distortion.html#tanScale","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Distortion"},{"id":72,"kind":1024,"name":"offset","url":"interfaces/Utils.Distortion.html#offset","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Distortion"},{"id":73,"kind":1024,"name":"scale","url":"interfaces/Utils.Distortion.html#scale","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Distortion"},{"id":74,"kind":256,"name":"ChannelMix","url":"interfaces/Utils.ChannelMix.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":75,"kind":1024,"name":"leftToLeft","url":"interfaces/Utils.ChannelMix.html#leftToLeft","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.ChannelMix"},{"id":76,"kind":1024,"name":"leftToRight","url":"interfaces/Utils.ChannelMix.html#leftToRight","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.ChannelMix"},{"id":77,"kind":1024,"name":"rightToLeft","url":"interfaces/Utils.ChannelMix.html#rightToLeft","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.ChannelMix"},{"id":78,"kind":1024,"name":"rightToRight","url":"interfaces/Utils.ChannelMix.html#rightToRight","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.ChannelMix"},{"id":79,"kind":256,"name":"LowPass","url":"interfaces/Utils.LowPass.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":80,"kind":1024,"name":"smoothing","url":"interfaces/Utils.LowPass.html#smoothing","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.LowPass"},{"id":81,"kind":256,"name":"VoiceServerUpdate","url":"interfaces/Utils.VoiceServerUpdate.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":82,"kind":1024,"name":"op","url":"interfaces/Utils.VoiceServerUpdate.html#op","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceServerUpdate"},{"id":83,"kind":1024,"name":"s","url":"interfaces/Utils.VoiceServerUpdate.html#s","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceServerUpdate"},{"id":84,"kind":1024,"name":"t","url":"interfaces/Utils.VoiceServerUpdate.html#t","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceServerUpdate"},{"id":85,"kind":1024,"name":"d","url":"interfaces/Utils.VoiceServerUpdate.html#d","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceServerUpdate"},{"id":86,"kind":65536,"name":"__type","url":"interfaces/Utils.VoiceServerUpdate.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-interface","parent":"Utils.VoiceServerUpdate"},{"id":87,"kind":1024,"name":"token","url":"interfaces/Utils.VoiceServerUpdate.html#__type.token","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceServerUpdate.__type"},{"id":88,"kind":1024,"name":"guild_id","url":"interfaces/Utils.VoiceServerUpdate.html#__type.guild_id","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceServerUpdate.__type"},{"id":89,"kind":1024,"name":"endpoint","url":"interfaces/Utils.VoiceServerUpdate.html#__type.endpoint","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceServerUpdate.__type"},{"id":90,"kind":256,"name":"VoiceStateUpdate","url":"interfaces/Utils.VoiceStateUpdate.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":91,"kind":1024,"name":"op","url":"interfaces/Utils.VoiceStateUpdate.html#op","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceStateUpdate"},{"id":92,"kind":1024,"name":"s","url":"interfaces/Utils.VoiceStateUpdate.html#s","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceStateUpdate"},{"id":93,"kind":1024,"name":"t","url":"interfaces/Utils.VoiceStateUpdate.html#t","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceStateUpdate"},{"id":94,"kind":1024,"name":"d","url":"interfaces/Utils.VoiceStateUpdate.html#d","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceStateUpdate"},{"id":95,"kind":65536,"name":"__type","url":"interfaces/Utils.VoiceStateUpdate.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-interface","parent":"Utils.VoiceStateUpdate"},{"id":96,"kind":1024,"name":"guild_id","url":"interfaces/Utils.VoiceStateUpdate.html#__type.guild_id","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":97,"kind":1024,"name":"channel_id","url":"interfaces/Utils.VoiceStateUpdate.html#__type.channel_id","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":98,"kind":1024,"name":"user_id","url":"interfaces/Utils.VoiceStateUpdate.html#__type.user_id","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":99,"kind":1024,"name":"session_id","url":"interfaces/Utils.VoiceStateUpdate.html#__type.session_id","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":100,"kind":1024,"name":"deaf","url":"interfaces/Utils.VoiceStateUpdate.html#__type.deaf","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":101,"kind":1024,"name":"mute","url":"interfaces/Utils.VoiceStateUpdate.html#__type.mute","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":102,"kind":1024,"name":"self_deaf","url":"interfaces/Utils.VoiceStateUpdate.html#__type.self_deaf","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":103,"kind":1024,"name":"self_mute","url":"interfaces/Utils.VoiceStateUpdate.html#__type.self_mute","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":104,"kind":1024,"name":"self_stream","url":"interfaces/Utils.VoiceStateUpdate.html#__type.self_stream","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":105,"kind":1024,"name":"self_video","url":"interfaces/Utils.VoiceStateUpdate.html#__type.self_video","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":106,"kind":1024,"name":"suppress","url":"interfaces/Utils.VoiceStateUpdate.html#__type.suppress","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":107,"kind":1024,"name":"request_to_speak_timestamp","url":"interfaces/Utils.VoiceStateUpdate.html#__type.request_to_speak_timestamp","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStateUpdate.__type"},{"id":108,"kind":256,"name":"OutgoingPayload","url":"interfaces/Utils.OutgoingPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":109,"kind":1024,"name":"op","url":"interfaces/Utils.OutgoingPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.OutgoingPayload"},{"id":110,"kind":1024,"name":"guildId","url":"interfaces/Utils.OutgoingPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.OutgoingPayload"},{"id":111,"kind":4194304,"name":"OutgoingPayloads","url":"modules/Utils.html#OutgoingPayloads","classes":"tsd-kind-type-alias tsd-parent-kind-namespace","parent":"Utils"},{"id":112,"kind":256,"name":"VoiceUpdatePayload","url":"interfaces/Utils.VoiceUpdatePayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":113,"kind":1024,"name":"op","url":"interfaces/Utils.VoiceUpdatePayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.VoiceUpdatePayload"},{"id":114,"kind":1024,"name":"event","url":"interfaces/Utils.VoiceUpdatePayload.html#event","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceUpdatePayload"},{"id":115,"kind":65536,"name":"__type","url":"interfaces/Utils.VoiceUpdatePayload.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-interface","parent":"Utils.VoiceUpdatePayload"},{"id":116,"kind":1024,"name":"token","url":"interfaces/Utils.VoiceUpdatePayload.html#__type.token","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceUpdatePayload.__type"},{"id":117,"kind":1024,"name":"guild_id","url":"interfaces/Utils.VoiceUpdatePayload.html#__type.guild_id","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceUpdatePayload.__type"},{"id":118,"kind":1024,"name":"endpoint","url":"interfaces/Utils.VoiceUpdatePayload.html#__type.endpoint","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceUpdatePayload.__type"},{"id":119,"kind":1024,"name":"sessionId","url":"interfaces/Utils.VoiceUpdatePayload.html#sessionId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceUpdatePayload"},{"id":120,"kind":1024,"name":"guildId","url":"interfaces/Utils.VoiceUpdatePayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.VoiceUpdatePayload"},{"id":121,"kind":256,"name":"PlayPayload","url":"interfaces/Utils.PlayPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":122,"kind":1024,"name":"op","url":"interfaces/Utils.PlayPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.PlayPayload"},{"id":123,"kind":1024,"name":"track","url":"interfaces/Utils.PlayPayload.html#track","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayPayload"},{"id":124,"kind":1024,"name":"startTime","url":"interfaces/Utils.PlayPayload.html#startTime","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayPayload"},{"id":125,"kind":1024,"name":"endTime","url":"interfaces/Utils.PlayPayload.html#endTime","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayPayload"},{"id":126,"kind":1024,"name":"volume","url":"interfaces/Utils.PlayPayload.html#volume","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayPayload"},{"id":127,"kind":1024,"name":"noReplace","url":"interfaces/Utils.PlayPayload.html#noReplace","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayPayload"},{"id":128,"kind":1024,"name":"pause","url":"interfaces/Utils.PlayPayload.html#pause","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayPayload"},{"id":129,"kind":1024,"name":"guildId","url":"interfaces/Utils.PlayPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.PlayPayload"},{"id":130,"kind":256,"name":"StopPayload","url":"interfaces/Utils.StopPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":131,"kind":1024,"name":"op","url":"interfaces/Utils.StopPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.StopPayload"},{"id":132,"kind":1024,"name":"guildId","url":"interfaces/Utils.StopPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.StopPayload"},{"id":133,"kind":256,"name":"PausePayload","url":"interfaces/Utils.PausePayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":134,"kind":1024,"name":"op","url":"interfaces/Utils.PausePayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.PausePayload"},{"id":135,"kind":1024,"name":"pause","url":"interfaces/Utils.PausePayload.html#pause","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PausePayload"},{"id":136,"kind":1024,"name":"guildId","url":"interfaces/Utils.PausePayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.PausePayload"},{"id":137,"kind":256,"name":"SeekPayload","url":"interfaces/Utils.SeekPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":138,"kind":1024,"name":"op","url":"interfaces/Utils.SeekPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.SeekPayload"},{"id":139,"kind":1024,"name":"position","url":"interfaces/Utils.SeekPayload.html#position","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.SeekPayload"},{"id":140,"kind":1024,"name":"guildId","url":"interfaces/Utils.SeekPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.SeekPayload"},{"id":141,"kind":256,"name":"VolumePayload","url":"interfaces/Utils.VolumePayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":142,"kind":1024,"name":"op","url":"interfaces/Utils.VolumePayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.VolumePayload"},{"id":143,"kind":1024,"name":"volume","url":"interfaces/Utils.VolumePayload.html#volume","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VolumePayload"},{"id":144,"kind":1024,"name":"guildId","url":"interfaces/Utils.VolumePayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.VolumePayload"},{"id":145,"kind":256,"name":"FiltersPayload","url":"interfaces/Utils.FiltersPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":146,"kind":1024,"name":"op","url":"interfaces/Utils.FiltersPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.FiltersPayload"},{"id":147,"kind":1024,"name":"guildId","url":"interfaces/Utils.FiltersPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":148,"kind":1024,"name":"volume","url":"interfaces/Utils.FiltersPayload.html#volume","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":149,"kind":1024,"name":"equalizer","url":"interfaces/Utils.FiltersPayload.html#equalizer","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":150,"kind":1024,"name":"karaoke","url":"interfaces/Utils.FiltersPayload.html#karaoke","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":151,"kind":1024,"name":"timescale","url":"interfaces/Utils.FiltersPayload.html#timescale","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":152,"kind":1024,"name":"tremolo","url":"interfaces/Utils.FiltersPayload.html#tremolo","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":153,"kind":1024,"name":"vibrato","url":"interfaces/Utils.FiltersPayload.html#vibrato","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":154,"kind":1024,"name":"rotation","url":"interfaces/Utils.FiltersPayload.html#rotation","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":155,"kind":1024,"name":"distortion","url":"interfaces/Utils.FiltersPayload.html#distortion","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":156,"kind":1024,"name":"channelMix","url":"interfaces/Utils.FiltersPayload.html#channelMix","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":157,"kind":1024,"name":"lowPass","url":"interfaces/Utils.FiltersPayload.html#lowPass","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.FiltersPayload"},{"id":158,"kind":256,"name":"DestroyPayload","url":"interfaces/Utils.DestroyPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":159,"kind":1024,"name":"op","url":"interfaces/Utils.DestroyPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.DestroyPayload"},{"id":160,"kind":1024,"name":"guildId","url":"interfaces/Utils.DestroyPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.DestroyPayload"},{"id":161,"kind":256,"name":"IncomingPayload","url":"interfaces/Utils.IncomingPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":162,"kind":1024,"name":"op","url":"interfaces/Utils.IncomingPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.IncomingPayload"},{"id":163,"kind":4194304,"name":"IncomingPayloads","url":"modules/Utils.html#IncomingPayloads","classes":"tsd-kind-type-alias tsd-parent-kind-namespace","parent":"Utils"},{"id":164,"kind":256,"name":"PlayerUpdatePayload","url":"interfaces/Utils.PlayerUpdatePayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":165,"kind":1024,"name":"op","url":"interfaces/Utils.PlayerUpdatePayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.PlayerUpdatePayload"},{"id":166,"kind":1024,"name":"guildId","url":"interfaces/Utils.PlayerUpdatePayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayerUpdatePayload"},{"id":167,"kind":1024,"name":"state","url":"interfaces/Utils.PlayerUpdatePayload.html#state","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayerUpdatePayload"},{"id":168,"kind":65536,"name":"__type","url":"interfaces/Utils.PlayerUpdatePayload.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-interface","parent":"Utils.PlayerUpdatePayload"},{"id":169,"kind":1024,"name":"time","url":"interfaces/Utils.PlayerUpdatePayload.html#__type.time","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.PlayerUpdatePayload.__type"},{"id":170,"kind":1024,"name":"position","url":"interfaces/Utils.PlayerUpdatePayload.html#__type.position","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.PlayerUpdatePayload.__type"},{"id":171,"kind":1024,"name":"connected","url":"interfaces/Utils.PlayerUpdatePayload.html#__type.connected","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.PlayerUpdatePayload.__type"},{"id":172,"kind":256,"name":"StatsPayload","url":"interfaces/Utils.StatsPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":173,"kind":1024,"name":"op","url":"interfaces/Utils.StatsPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.StatsPayload"},{"id":174,"kind":1024,"name":"players","url":"interfaces/Utils.StatsPayload.html#players","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.StatsPayload"},{"id":175,"kind":1024,"name":"playingPlayers","url":"interfaces/Utils.StatsPayload.html#playingPlayers","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.StatsPayload"},{"id":176,"kind":1024,"name":"uptime","url":"interfaces/Utils.StatsPayload.html#uptime","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.StatsPayload"},{"id":177,"kind":1024,"name":"memory","url":"interfaces/Utils.StatsPayload.html#memory","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.StatsPayload"},{"id":178,"kind":1024,"name":"cpu","url":"interfaces/Utils.StatsPayload.html#cpu","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.StatsPayload"},{"id":179,"kind":1024,"name":"lastUpdated","url":"interfaces/Utils.StatsPayload.html#lastUpdated","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.StatsPayload"},{"id":180,"kind":1024,"name":"frameStats","url":"interfaces/Utils.StatsPayload.html#frameStats","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.StatsPayload"},{"id":181,"kind":256,"name":"EventPayload","url":"interfaces/Utils.EventPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":182,"kind":1024,"name":"op","url":"interfaces/Utils.EventPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.EventPayload"},{"id":183,"kind":1024,"name":"type","url":"interfaces/Utils.EventPayload.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.EventPayload"},{"id":184,"kind":1024,"name":"guildId","url":"interfaces/Utils.EventPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.EventPayload"},{"id":185,"kind":4194304,"name":"EventPayloads","url":"modules/Utils.html#EventPayloads","classes":"tsd-kind-type-alias tsd-parent-kind-namespace","parent":"Utils"},{"id":186,"kind":256,"name":"TrackStartPayload","url":"interfaces/Utils.TrackStartPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":187,"kind":1024,"name":"type","url":"interfaces/Utils.TrackStartPayload.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.TrackStartPayload"},{"id":188,"kind":1024,"name":"track","url":"interfaces/Utils.TrackStartPayload.html#track","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackStartPayload"},{"id":189,"kind":1024,"name":"op","url":"interfaces/Utils.TrackStartPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.TrackStartPayload"},{"id":190,"kind":1024,"name":"guildId","url":"interfaces/Utils.TrackStartPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.TrackStartPayload"},{"id":191,"kind":256,"name":"TrackEndPayload","url":"interfaces/Utils.TrackEndPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":192,"kind":1024,"name":"type","url":"interfaces/Utils.TrackEndPayload.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.TrackEndPayload"},{"id":193,"kind":1024,"name":"track","url":"interfaces/Utils.TrackEndPayload.html#track","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackEndPayload"},{"id":194,"kind":1024,"name":"reason","url":"interfaces/Utils.TrackEndPayload.html#reason","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackEndPayload"},{"id":195,"kind":1024,"name":"op","url":"interfaces/Utils.TrackEndPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.TrackEndPayload"},{"id":196,"kind":1024,"name":"guildId","url":"interfaces/Utils.TrackEndPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.TrackEndPayload"},{"id":197,"kind":256,"name":"TrackExceptionPayload","url":"interfaces/Utils.TrackExceptionPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":198,"kind":1024,"name":"type","url":"interfaces/Utils.TrackExceptionPayload.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.TrackExceptionPayload"},{"id":199,"kind":1024,"name":"track","url":"interfaces/Utils.TrackExceptionPayload.html#track","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackExceptionPayload"},{"id":200,"kind":1024,"name":"exception","url":"interfaces/Utils.TrackExceptionPayload.html#exception","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackExceptionPayload"},{"id":201,"kind":65536,"name":"__type","url":"interfaces/Utils.TrackExceptionPayload.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-interface","parent":"Utils.TrackExceptionPayload"},{"id":202,"kind":1024,"name":"message","url":"interfaces/Utils.TrackExceptionPayload.html#__type.message","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.TrackExceptionPayload.__type"},{"id":203,"kind":1024,"name":"severity","url":"interfaces/Utils.TrackExceptionPayload.html#__type.severity","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.TrackExceptionPayload.__type"},{"id":204,"kind":1024,"name":"cause","url":"interfaces/Utils.TrackExceptionPayload.html#__type.cause","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.TrackExceptionPayload.__type"},{"id":205,"kind":1024,"name":"op","url":"interfaces/Utils.TrackExceptionPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.TrackExceptionPayload"},{"id":206,"kind":1024,"name":"guildId","url":"interfaces/Utils.TrackExceptionPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.TrackExceptionPayload"},{"id":207,"kind":256,"name":"TrackStuckPayload","url":"interfaces/Utils.TrackStuckPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":208,"kind":1024,"name":"type","url":"interfaces/Utils.TrackStuckPayload.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.TrackStuckPayload"},{"id":209,"kind":1024,"name":"track","url":"interfaces/Utils.TrackStuckPayload.html#track","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackStuckPayload"},{"id":210,"kind":1024,"name":"thresholdMs","url":"interfaces/Utils.TrackStuckPayload.html#thresholdMs","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackStuckPayload"},{"id":211,"kind":1024,"name":"op","url":"interfaces/Utils.TrackStuckPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.TrackStuckPayload"},{"id":212,"kind":1024,"name":"guildId","url":"interfaces/Utils.TrackStuckPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.TrackStuckPayload"},{"id":213,"kind":256,"name":"WebSocketClosedPayload","url":"interfaces/Utils.WebSocketClosedPayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":214,"kind":1024,"name":"type","url":"interfaces/Utils.WebSocketClosedPayload.html#type","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite","parent":"Utils.WebSocketClosedPayload"},{"id":215,"kind":1024,"name":"code","url":"interfaces/Utils.WebSocketClosedPayload.html#code","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.WebSocketClosedPayload"},{"id":216,"kind":1024,"name":"reason","url":"interfaces/Utils.WebSocketClosedPayload.html#reason","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.WebSocketClosedPayload"},{"id":217,"kind":1024,"name":"byRemote","url":"interfaces/Utils.WebSocketClosedPayload.html#byRemote","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.WebSocketClosedPayload"},{"id":218,"kind":1024,"name":"op","url":"interfaces/Utils.WebSocketClosedPayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.WebSocketClosedPayload"},{"id":219,"kind":1024,"name":"guildId","url":"interfaces/Utils.WebSocketClosedPayload.html#guildId","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Utils.WebSocketClosedPayload"},{"id":220,"kind":8,"name":"LoadTypes","url":"enums/Utils.LoadTypes.html","classes":"tsd-kind-enum tsd-parent-kind-namespace","parent":"Utils"},{"id":221,"kind":16,"name":"TrackLoaded","url":"enums/Utils.LoadTypes.html#TrackLoaded","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.LoadTypes"},{"id":222,"kind":16,"name":"PlaylistLoaded","url":"enums/Utils.LoadTypes.html#PlaylistLoaded","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.LoadTypes"},{"id":223,"kind":16,"name":"SearchResult","url":"enums/Utils.LoadTypes.html#SearchResult","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.LoadTypes"},{"id":224,"kind":16,"name":"NoMatches","url":"enums/Utils.LoadTypes.html#NoMatches","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.LoadTypes"},{"id":225,"kind":16,"name":"LoadFailed","url":"enums/Utils.LoadTypes.html#LoadFailed","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"Utils.LoadTypes"},{"id":226,"kind":256,"name":"TrackInfo","url":"interfaces/Utils.TrackInfo.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":227,"kind":1024,"name":"identifier","url":"interfaces/Utils.TrackInfo.html#identifier","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackInfo"},{"id":228,"kind":1024,"name":"isSeekable","url":"interfaces/Utils.TrackInfo.html#isSeekable","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackInfo"},{"id":229,"kind":1024,"name":"author","url":"interfaces/Utils.TrackInfo.html#author","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackInfo"},{"id":230,"kind":1024,"name":"length","url":"interfaces/Utils.TrackInfo.html#length","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackInfo"},{"id":231,"kind":1024,"name":"isStream","url":"interfaces/Utils.TrackInfo.html#isStream","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackInfo"},{"id":232,"kind":1024,"name":"title","url":"interfaces/Utils.TrackInfo.html#title","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackInfo"},{"id":233,"kind":1024,"name":"uri","url":"interfaces/Utils.TrackInfo.html#uri","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackInfo"},{"id":234,"kind":1024,"name":"sourceName","url":"interfaces/Utils.TrackInfo.html#sourceName","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackInfo"},{"id":235,"kind":256,"name":"TrackData","url":"interfaces/Utils.TrackData.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":236,"kind":1024,"name":"track","url":"interfaces/Utils.TrackData.html#track","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackData"},{"id":237,"kind":1024,"name":"info","url":"interfaces/Utils.TrackData.html#info","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TrackData"},{"id":238,"kind":4194304,"name":"Tracks","url":"modules/Utils.html#Tracks","classes":"tsd-kind-type-alias tsd-parent-kind-namespace","parent":"Utils"},{"id":239,"kind":256,"name":"TracksData","url":"interfaces/Utils.TracksData.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":240,"kind":1024,"name":"loadType","url":"interfaces/Utils.TracksData.html#loadType","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TracksData"},{"id":241,"kind":1024,"name":"tracks","url":"interfaces/Utils.TracksData.html#tracks","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TracksData"},{"id":242,"kind":1024,"name":"playlistInfo","url":"interfaces/Utils.TracksData.html#playlistInfo","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TracksData"},{"id":243,"kind":65536,"name":"__type","url":"interfaces/Utils.TracksData.html#__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-interface","parent":"Utils.TracksData"},{"id":244,"kind":1024,"name":"name","url":"interfaces/Utils.TracksData.html#__type-1.name","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.TracksData.__type"},{"id":245,"kind":1024,"name":"selectedTrack","url":"interfaces/Utils.TracksData.html#__type-1.selectedTrack","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.TracksData.__type"},{"id":246,"kind":1024,"name":"exception","url":"interfaces/Utils.TracksData.html#exception","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.TracksData"},{"id":247,"kind":65536,"name":"__type","url":"interfaces/Utils.TracksData.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-interface","parent":"Utils.TracksData"},{"id":248,"kind":1024,"name":"message","url":"interfaces/Utils.TracksData.html#__type.message","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.TracksData.__type"},{"id":249,"kind":1024,"name":"severity","url":"interfaces/Utils.TracksData.html#__type.severity","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.TracksData.__type"},{"id":250,"kind":256,"name":"NodeOptions","url":"interfaces/Utils.NodeOptions.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":251,"kind":1024,"name":"url","url":"interfaces/Utils.NodeOptions.html#url","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeOptions"},{"id":252,"kind":1024,"name":"name","url":"interfaces/Utils.NodeOptions.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeOptions"},{"id":253,"kind":1024,"name":"password","url":"interfaces/Utils.NodeOptions.html#password","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeOptions"},{"id":254,"kind":1024,"name":"secure","url":"interfaces/Utils.NodeOptions.html#secure","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeOptions"},{"id":255,"kind":1024,"name":"retryAmount","url":"interfaces/Utils.NodeOptions.html#retryAmount","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeOptions"},{"id":256,"kind":1024,"name":"retryDelay","url":"interfaces/Utils.NodeOptions.html#retryDelay","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeOptions"},{"id":257,"kind":1024,"name":"requestTimeout","url":"interfaces/Utils.NodeOptions.html#requestTimeout","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeOptions"},{"id":258,"kind":1024,"name":"maxConnections","url":"interfaces/Utils.NodeOptions.html#maxConnections","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeOptions"},{"id":259,"kind":256,"name":"NodeMemoryStats","url":"interfaces/Utils.NodeMemoryStats.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":260,"kind":1024,"name":"free","url":"interfaces/Utils.NodeMemoryStats.html#free","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeMemoryStats"},{"id":261,"kind":1024,"name":"used","url":"interfaces/Utils.NodeMemoryStats.html#used","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeMemoryStats"},{"id":262,"kind":1024,"name":"allocated","url":"interfaces/Utils.NodeMemoryStats.html#allocated","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeMemoryStats"},{"id":263,"kind":1024,"name":"reservable","url":"interfaces/Utils.NodeMemoryStats.html#reservable","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeMemoryStats"},{"id":264,"kind":256,"name":"NodeCPUStats","url":"interfaces/Utils.NodeCPUStats.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":265,"kind":1024,"name":"cores","url":"interfaces/Utils.NodeCPUStats.html#cores","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeCPUStats"},{"id":266,"kind":1024,"name":"systemLoad","url":"interfaces/Utils.NodeCPUStats.html#systemLoad","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeCPUStats"},{"id":267,"kind":1024,"name":"lavalinkLoad","url":"interfaces/Utils.NodeCPUStats.html#lavalinkLoad","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeCPUStats"},{"id":268,"kind":256,"name":"NodeFrameStats","url":"interfaces/Utils.NodeFrameStats.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":269,"kind":1024,"name":"sent","url":"interfaces/Utils.NodeFrameStats.html#sent","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeFrameStats"},{"id":270,"kind":1024,"name":"nulled","url":"interfaces/Utils.NodeFrameStats.html#nulled","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeFrameStats"},{"id":271,"kind":1024,"name":"deficit","url":"interfaces/Utils.NodeFrameStats.html#deficit","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeFrameStats"},{"id":272,"kind":256,"name":"NodeStats","url":"interfaces/Utils.NodeStats.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":273,"kind":1024,"name":"players","url":"interfaces/Utils.NodeStats.html#players","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeStats"},{"id":274,"kind":1024,"name":"playingPlayers","url":"interfaces/Utils.NodeStats.html#playingPlayers","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeStats"},{"id":275,"kind":1024,"name":"uptime","url":"interfaces/Utils.NodeStats.html#uptime","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeStats"},{"id":276,"kind":1024,"name":"memory","url":"interfaces/Utils.NodeStats.html#memory","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeStats"},{"id":277,"kind":1024,"name":"cpu","url":"interfaces/Utils.NodeStats.html#cpu","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeStats"},{"id":278,"kind":1024,"name":"lastUpdated","url":"interfaces/Utils.NodeStats.html#lastUpdated","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeStats"},{"id":279,"kind":1024,"name":"frameStats","url":"interfaces/Utils.NodeStats.html#frameStats","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.NodeStats"},{"id":280,"kind":4194304,"name":"SearchPlatform","url":"modules/Utils.html#SearchPlatform","classes":"tsd-kind-type-alias tsd-parent-kind-namespace","parent":"Utils"},{"id":281,"kind":256,"name":"VoiceStatePayload","url":"interfaces/Utils.VoiceStatePayload.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":282,"kind":1024,"name":"op","url":"interfaces/Utils.VoiceStatePayload.html#op","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceStatePayload"},{"id":283,"kind":1024,"name":"d","url":"interfaces/Utils.VoiceStatePayload.html#d","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.VoiceStatePayload"},{"id":284,"kind":65536,"name":"__type","url":"interfaces/Utils.VoiceStatePayload.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-interface","parent":"Utils.VoiceStatePayload"},{"id":285,"kind":1024,"name":"guild_id","url":"interfaces/Utils.VoiceStatePayload.html#__type.guild_id","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStatePayload.__type"},{"id":286,"kind":1024,"name":"channel_id","url":"interfaces/Utils.VoiceStatePayload.html#__type.channel_id","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStatePayload.__type"},{"id":287,"kind":1024,"name":"self_mute","url":"interfaces/Utils.VoiceStatePayload.html#__type.self_mute","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStatePayload.__type"},{"id":288,"kind":1024,"name":"self_deaf","url":"interfaces/Utils.VoiceStatePayload.html#__type.self_deaf","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.VoiceStatePayload.__type"},{"id":289,"kind":256,"name":"LavaOptions","url":"interfaces/Utils.LavaOptions.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":290,"kind":1024,"name":"clientName","url":"interfaces/Utils.LavaOptions.html#clientName","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.LavaOptions"},{"id":291,"kind":1024,"name":"shards","url":"interfaces/Utils.LavaOptions.html#shards","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.LavaOptions"},{"id":292,"kind":1024,"name":"autoPlay","url":"interfaces/Utils.LavaOptions.html#autoPlay","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.LavaOptions"},{"id":293,"kind":1024,"name":"defaultSearchPlatform","url":"interfaces/Utils.LavaOptions.html#defaultSearchPlatform","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.LavaOptions"},{"id":294,"kind":1024,"name":"autoReplay","url":"interfaces/Utils.LavaOptions.html#autoReplay","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.LavaOptions"},{"id":295,"kind":2048,"name":"send","url":"interfaces/Utils.LavaOptions.html#send","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Utils.LavaOptions"},{"id":296,"kind":256,"name":"SearchQuery","url":"interfaces/Utils.SearchQuery.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":297,"kind":1024,"name":"source","url":"interfaces/Utils.SearchQuery.html#source","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.SearchQuery"},{"id":298,"kind":1024,"name":"query","url":"interfaces/Utils.SearchQuery.html#query","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.SearchQuery"},{"id":299,"kind":256,"name":"PlayerOptions","url":"interfaces/Utils.PlayerOptions.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":300,"kind":1024,"name":"guildID","url":"interfaces/Utils.PlayerOptions.html#guildID","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayerOptions"},{"id":301,"kind":1024,"name":"voiceID","url":"interfaces/Utils.PlayerOptions.html#voiceID","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayerOptions"},{"id":302,"kind":1024,"name":"node","url":"interfaces/Utils.PlayerOptions.html#node","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayerOptions"},{"id":303,"kind":1024,"name":"volume","url":"interfaces/Utils.PlayerOptions.html#volume","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayerOptions"},{"id":304,"kind":1024,"name":"selfMute","url":"interfaces/Utils.PlayerOptions.html#selfMute","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayerOptions"},{"id":305,"kind":1024,"name":"selfDeaf","url":"interfaces/Utils.PlayerOptions.html#selfDeaf","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayerOptions"},{"id":306,"kind":1024,"name":"metadata","url":"interfaces/Utils.PlayerOptions.html#metadata","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayerOptions"},{"id":307,"kind":256,"name":"PlayOptions","url":"interfaces/Utils.PlayOptions.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":308,"kind":1024,"name":"startTime","url":"interfaces/Utils.PlayOptions.html#startTime","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayOptions"},{"id":309,"kind":1024,"name":"endTime","url":"interfaces/Utils.PlayOptions.html#endTime","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.PlayOptions"},{"id":310,"kind":256,"name":"Playlist","url":"interfaces/Utils.Playlist.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":311,"kind":1024,"name":"name","url":"interfaces/Utils.Playlist.html#name","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Playlist"},{"id":312,"kind":1024,"name":"selectedTrack","url":"interfaces/Utils.Playlist.html#selectedTrack","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Playlist"},{"id":313,"kind":1024,"name":"duration","url":"interfaces/Utils.Playlist.html#duration","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.Playlist"},{"id":314,"kind":256,"name":"SearchResult","url":"interfaces/Utils.SearchResult.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"Utils"},{"id":315,"kind":1024,"name":"loadType","url":"interfaces/Utils.SearchResult.html#loadType","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.SearchResult"},{"id":316,"kind":1024,"name":"tracks","url":"interfaces/Utils.SearchResult.html#tracks","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.SearchResult"},{"id":317,"kind":1024,"name":"playlist","url":"interfaces/Utils.SearchResult.html#playlist","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.SearchResult"},{"id":318,"kind":1024,"name":"error","url":"interfaces/Utils.SearchResult.html#error","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Utils.SearchResult"},{"id":319,"kind":65536,"name":"__type","url":"interfaces/Utils.SearchResult.html#__type","classes":"tsd-kind-type-literal tsd-parent-kind-interface","parent":"Utils.SearchResult"},{"id":320,"kind":1024,"name":"message","url":"interfaces/Utils.SearchResult.html#__type.message","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.SearchResult.__type"},{"id":321,"kind":1024,"name":"severity","url":"interfaces/Utils.SearchResult.html#__type.severity","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Utils.SearchResult.__type"},{"id":322,"kind":256,"name":"LavaEvents","url":"interfaces/LavaEvents.html","classes":"tsd-kind-interface"},{"id":323,"kind":2048,"name":"nodeCreate","url":"interfaces/LavaEvents.html#nodeCreate","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":324,"kind":2048,"name":"nodeDestroy","url":"interfaces/LavaEvents.html#nodeDestroy","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":325,"kind":2048,"name":"nodeConnect","url":"interfaces/LavaEvents.html#nodeConnect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":326,"kind":2048,"name":"nodeReconnect","url":"interfaces/LavaEvents.html#nodeReconnect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":327,"kind":2048,"name":"nodeDisconnect","url":"interfaces/LavaEvents.html#nodeDisconnect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":328,"kind":2048,"name":"nodeError","url":"interfaces/LavaEvents.html#nodeError","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":329,"kind":2048,"name":"nodeRaw","url":"interfaces/LavaEvents.html#nodeRaw","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":330,"kind":2048,"name":"playerCreate","url":"interfaces/LavaEvents.html#playerCreate","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":331,"kind":2048,"name":"playerDestroy","url":"interfaces/LavaEvents.html#playerDestroy","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":332,"kind":2048,"name":"playerReplay","url":"interfaces/LavaEvents.html#playerReplay","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":333,"kind":2048,"name":"replayError","url":"interfaces/LavaEvents.html#replayError","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":334,"kind":2048,"name":"playerMove","url":"interfaces/LavaEvents.html#playerMove","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":335,"kind":2048,"name":"queueStart","url":"interfaces/LavaEvents.html#queueStart","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":336,"kind":2048,"name":"queueEnd","url":"interfaces/LavaEvents.html#queueEnd","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":337,"kind":2048,"name":"trackStart","url":"interfaces/LavaEvents.html#trackStart","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":338,"kind":2048,"name":"trackEnd","url":"interfaces/LavaEvents.html#trackEnd","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":339,"kind":2048,"name":"trackStuck","url":"interfaces/LavaEvents.html#trackStuck","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":340,"kind":2048,"name":"trackError","url":"interfaces/LavaEvents.html#trackError","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":341,"kind":2048,"name":"socketClosed","url":"interfaces/LavaEvents.html#socketClosed","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"LavaEvents"},{"id":342,"kind":128,"name":"CoffeeLava","url":"classes/CoffeeLava.html","classes":"tsd-kind-class"},{"id":343,"kind":512,"name":"constructor","url":"classes/CoffeeLava.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"CoffeeLava"},{"id":344,"kind":1024,"name":"clientID","url":"classes/CoffeeLava.html#clientID","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeLava"},{"id":345,"kind":1024,"name":"options","url":"classes/CoffeeLava.html#options","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeLava"},{"id":346,"kind":1024,"name":"nodes","url":"classes/CoffeeLava.html#nodes","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeLava"},{"id":347,"kind":1024,"name":"players","url":"classes/CoffeeLava.html#players","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeLava"},{"id":348,"kind":262144,"name":"leastUsedNode","url":"classes/CoffeeLava.html#leastUsedNode","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"CoffeeLava"},{"id":349,"kind":262144,"name":"leastLoadNode","url":"classes/CoffeeLava.html#leastLoadNode","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"CoffeeLava"},{"id":350,"kind":2048,"name":"init","url":"classes/CoffeeLava.html#init","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeLava"},{"id":351,"kind":2048,"name":"search","url":"classes/CoffeeLava.html#search","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeLava"},{"id":352,"kind":2048,"name":"decodeTrack","url":"classes/CoffeeLava.html#decodeTrack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeLava"},{"id":353,"kind":2048,"name":"updateVoiceData","url":"classes/CoffeeLava.html#updateVoiceData","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeLava"},{"id":354,"kind":2048,"name":"create","url":"classes/CoffeeLava.html#create","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeLava"},{"id":355,"kind":2048,"name":"get","url":"classes/CoffeeLava.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeLava"},{"id":356,"kind":2048,"name":"destroy","url":"classes/CoffeeLava.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeLava"},{"id":357,"kind":2048,"name":"add","url":"classes/CoffeeLava.html#add","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeLava"},{"id":358,"kind":256,"name":"NodeEvents","url":"interfaces/NodeEvents.html","classes":"tsd-kind-interface"},{"id":359,"kind":2048,"name":"destroy","url":"interfaces/NodeEvents.html#destroy","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"NodeEvents"},{"id":360,"kind":2048,"name":"connect","url":"interfaces/NodeEvents.html#connect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"NodeEvents"},{"id":361,"kind":2048,"name":"reconnect","url":"interfaces/NodeEvents.html#reconnect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"NodeEvents"},{"id":362,"kind":2048,"name":"disconnect","url":"interfaces/NodeEvents.html#disconnect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"NodeEvents"},{"id":363,"kind":2048,"name":"error","url":"interfaces/NodeEvents.html#error","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"NodeEvents"},{"id":364,"kind":2048,"name":"raw","url":"interfaces/NodeEvents.html#raw","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"NodeEvents"},{"id":365,"kind":2048,"name":"event","url":"interfaces/NodeEvents.html#event","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"NodeEvents"},{"id":366,"kind":2048,"name":"playerUpdate","url":"interfaces/NodeEvents.html#playerUpdate","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"NodeEvents"},{"id":367,"kind":128,"name":"CoffeeNode","url":"classes/CoffeeNode.html","classes":"tsd-kind-class"},{"id":368,"kind":512,"name":"constructor","url":"classes/CoffeeNode.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"CoffeeNode"},{"id":369,"kind":1024,"name":"options","url":"classes/CoffeeNode.html#options","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeNode"},{"id":370,"kind":1024,"name":"stats","url":"classes/CoffeeNode.html#stats","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeNode"},{"id":371,"kind":1024,"name":"socket","url":"classes/CoffeeNode.html#socket","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeNode"},{"id":372,"kind":1024,"name":"calls","url":"classes/CoffeeNode.html#calls","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeNode"},{"id":373,"kind":1024,"name":"connected","url":"classes/CoffeeNode.html#connected","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeNode"},{"id":374,"kind":1024,"name":"http","url":"classes/CoffeeNode.html#http","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeNode"},{"id":375,"kind":1024,"name":"lava","url":"classes/CoffeeNode.html#lava","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeNode"},{"id":376,"kind":2048,"name":"request","url":"classes/CoffeeNode.html#request","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"CoffeeNode"},{"id":377,"kind":2048,"name":"connect","url":"classes/CoffeeNode.html#connect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeNode"},{"id":378,"kind":2048,"name":"destroy","url":"classes/CoffeeNode.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeNode"},{"id":379,"kind":2048,"name":"send","url":"classes/CoffeeNode.html#send","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeNode"},{"id":380,"kind":128,"name":"CoffeePlayer","url":"classes/CoffeePlayer.html","classes":"tsd-kind-class"},{"id":381,"kind":512,"name":"constructor","url":"classes/CoffeePlayer.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":382,"kind":1024,"name":"queue","url":"classes/CoffeePlayer.html#queue","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":383,"kind":1024,"name":"options","url":"classes/CoffeePlayer.html#options","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":384,"kind":1024,"name":"lava","url":"classes/CoffeePlayer.html#lava","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":385,"kind":1024,"name":"position","url":"classes/CoffeePlayer.html#position","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":386,"kind":1024,"name":"replaying","url":"classes/CoffeePlayer.html#replaying","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":387,"kind":1024,"name":"filters","url":"classes/CoffeePlayer.html#filters","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":388,"kind":1024,"name":"loop","url":"classes/CoffeePlayer.html#loop","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":389,"kind":1024,"name":"state","url":"classes/CoffeePlayer.html#state","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":390,"kind":1024,"name":"voiceState","url":"classes/CoffeePlayer.html#voiceState","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":391,"kind":1024,"name":"voice","url":"classes/CoffeePlayer.html#voice","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":392,"kind":1024,"name":"playOptions","url":"classes/CoffeePlayer.html#playOptions","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":393,"kind":262144,"name":"node","url":"classes/CoffeePlayer.html#node","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":394,"kind":2048,"name":"setNode","url":"classes/CoffeePlayer.html#setNode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":395,"kind":2048,"name":"connect","url":"classes/CoffeePlayer.html#connect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":396,"kind":2048,"name":"disconnect","url":"classes/CoffeePlayer.html#disconnect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":397,"kind":2048,"name":"play","url":"classes/CoffeePlayer.html#play","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":398,"kind":2048,"name":"patchFilters","url":"classes/CoffeePlayer.html#patchFilters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":399,"kind":2048,"name":"setFilters","url":"classes/CoffeePlayer.html#setFilters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":400,"kind":2048,"name":"setVolume","url":"classes/CoffeePlayer.html#setVolume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":401,"kind":2048,"name":"setLoop","url":"classes/CoffeePlayer.html#setLoop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":402,"kind":2048,"name":"stop","url":"classes/CoffeePlayer.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":403,"kind":2048,"name":"pause","url":"classes/CoffeePlayer.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":404,"kind":2048,"name":"seek","url":"classes/CoffeePlayer.html#seek","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":405,"kind":2048,"name":"destroy","url":"classes/CoffeePlayer.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":406,"kind":2048,"name":"set","url":"classes/CoffeePlayer.html#set","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeePlayer"},{"id":407,"kind":2048,"name":"get","url":"classes/CoffeePlayer.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"CoffeePlayer"},{"id":408,"kind":128,"name":"CoffeeQueue","url":"classes/CoffeeQueue.html","classes":"tsd-kind-class"},{"id":409,"kind":512,"name":"constructor","url":"classes/CoffeeQueue.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited","parent":"CoffeeQueue"},{"id":410,"kind":1024,"name":"current","url":"classes/CoffeeQueue.html#current","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeQueue"},{"id":411,"kind":1024,"name":"previous","url":"classes/CoffeeQueue.html#previous","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeQueue"},{"id":412,"kind":262144,"name":"duration","url":"classes/CoffeeQueue.html#duration","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"CoffeeQueue"},{"id":413,"kind":262144,"name":"totalSize","url":"classes/CoffeeQueue.html#totalSize","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"CoffeeQueue"},{"id":414,"kind":262144,"name":"size","url":"classes/CoffeeQueue.html#size","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"CoffeeQueue"},{"id":415,"kind":2048,"name":"add","url":"classes/CoffeeQueue.html#add","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeQueue"},{"id":416,"kind":2048,"name":"remove","url":"classes/CoffeeQueue.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeQueue"},{"id":417,"kind":2048,"name":"clear","url":"classes/CoffeeQueue.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeQueue"},{"id":418,"kind":2048,"name":"shuffle","url":"classes/CoffeeQueue.html#shuffle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeQueue"},{"id":419,"kind":2048,"name":"progress","url":"classes/CoffeeQueue.html#progress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeQueue"},{"id":420,"kind":256,"name":"ITrack","url":"interfaces/ITrack.html","classes":"tsd-kind-interface"},{"id":421,"kind":1024,"name":"title","url":"interfaces/ITrack.html#title","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ITrack"},{"id":422,"kind":1024,"name":"identifier","url":"interfaces/ITrack.html#identifier","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ITrack"},{"id":423,"kind":1024,"name":"author","url":"interfaces/ITrack.html#author","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ITrack"},{"id":424,"kind":1024,"name":"duration","url":"interfaces/ITrack.html#duration","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ITrack"},{"id":425,"kind":1024,"name":"isSeekable","url":"interfaces/ITrack.html#isSeekable","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ITrack"},{"id":426,"kind":1024,"name":"isStream","url":"interfaces/ITrack.html#isStream","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ITrack"},{"id":427,"kind":1024,"name":"url","url":"interfaces/ITrack.html#url","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ITrack"},{"id":428,"kind":1024,"name":"source","url":"interfaces/ITrack.html#source","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ITrack"},{"id":429,"kind":128,"name":"CoffeeTrack","url":"classes/CoffeeTrack.html","classes":"tsd-kind-class"},{"id":430,"kind":2048,"name":"isTrack","url":"classes/CoffeeTrack.html#isTrack","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"CoffeeTrack"},{"id":431,"kind":512,"name":"constructor","url":"classes/CoffeeTrack.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":432,"kind":1024,"name":"base64","url":"classes/CoffeeTrack.html#base64","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":433,"kind":1024,"name":"requester","url":"classes/CoffeeTrack.html#requester","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":434,"kind":1024,"name":"title","url":"classes/CoffeeTrack.html#title","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":435,"kind":1024,"name":"identifier","url":"classes/CoffeeTrack.html#identifier","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":436,"kind":1024,"name":"author","url":"classes/CoffeeTrack.html#author","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":437,"kind":1024,"name":"duration","url":"classes/CoffeeTrack.html#duration","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":438,"kind":1024,"name":"isSeekable","url":"classes/CoffeeTrack.html#isSeekable","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":439,"kind":1024,"name":"isStream","url":"classes/CoffeeTrack.html#isStream","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":440,"kind":1024,"name":"url","url":"classes/CoffeeTrack.html#url","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":441,"kind":1024,"name":"source","url":"classes/CoffeeTrack.html#source","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":442,"kind":2048,"name":"displayThumbnail","url":"classes/CoffeeTrack.html#displayThumbnail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":443,"kind":2048,"name":"build","url":"classes/CoffeeTrack.html#build","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoffeeTrack"},{"id":444,"kind":128,"name":"UnresolvedTrack","url":"classes/UnresolvedTrack.html","classes":"tsd-kind-class"},{"id":445,"kind":2048,"name":"isUnresolved","url":"classes/UnresolvedTrack.html#isUnresolved","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"UnresolvedTrack"},{"id":446,"kind":512,"name":"constructor","url":"classes/UnresolvedTrack.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"UnresolvedTrack"},{"id":447,"kind":1024,"name":"title","url":"classes/UnresolvedTrack.html#title","classes":"tsd-kind-property tsd-parent-kind-class","parent":"UnresolvedTrack"},{"id":448,"kind":1024,"name":"author","url":"classes/UnresolvedTrack.html#author","classes":"tsd-kind-property tsd-parent-kind-class","parent":"UnresolvedTrack"},{"id":449,"kind":1024,"name":"duration","url":"classes/UnresolvedTrack.html#duration","classes":"tsd-kind-property tsd-parent-kind-class","parent":"UnresolvedTrack"},{"id":450,"kind":1024,"name":"requester","url":"classes/UnresolvedTrack.html#requester","classes":"tsd-kind-property tsd-parent-kind-class","parent":"UnresolvedTrack"}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,57.082]],["parent/0",[]],["name/1",[1,20.447]],["parent/1",[]],["name/2",[2,57.082]],["parent/2",[1,2.024]],["name/3",[3,57.082]],["parent/3",[4,3.933]],["name/4",[5,51.974]],["parent/4",[4,3.933]],["name/5",[6,51.974]],["parent/5",[4,3.933]],["name/6",[7,46.096]],["parent/6",[4,3.933]],["name/7",[8,51.974]],["parent/7",[4,3.933]],["name/8",[9,42.419]],["parent/8",[4,3.933]],["name/9",[10,48.609]],["parent/9",[4,3.933]],["name/10",[11,44.089]],["parent/10",[4,3.933]],["name/11",[12,57.082]],["parent/11",[1,2.024]],["name/12",[13,51.974]],["parent/12",[14,4.812]],["name/13",[15,51.974]],["parent/13",[14,4.812]],["name/14",[16,48.609]],["parent/14",[14,4.812]],["name/15",[17,57.082]],["parent/15",[1,2.024]],["name/16",[18,51.974]],["parent/16",[19,4.364]],["name/17",[20,51.974]],["parent/17",[19,4.364]],["name/18",[21,57.082]],["parent/18",[19,4.364]],["name/19",[22,51.974]],["parent/19",[19,4.364]],["name/20",[23,57.082]],["parent/20",[19,4.364]],["name/21",[24,57.082]],["parent/21",[1,2.024]],["name/22",[25,57.082]],["parent/22",[26,4.812]],["name/23",[27,40.988]],["parent/23",[26,4.812]],["name/24",[28,51.974]],["parent/24",[26,4.812]],["name/25",[29,57.082]],["parent/25",[1,2.024]],["name/26",[30,57.082]],["parent/26",[31,4.812]],["name/27",[32,57.082]],["parent/27",[31,4.812]],["name/28",[33,57.082]],["parent/28",[31,4.812]],["name/29",[34,57.082]],["parent/29",[1,2.024]],["name/30",[35,57.082]],["parent/30",[36,4.563]],["name/31",[37,48.609]],["parent/31",[36,4.563]],["name/32",[38,57.082]],["parent/32",[36,4.563]],["name/33",[39,57.082]],["parent/33",[36,4.563]],["name/34",[10,48.609]],["parent/34",[1,2.024]],["name/35",[9,42.419]],["parent/35",[40,3.724]],["name/36",[41,48.609]],["parent/36",[40,3.724]],["name/37",[42,48.609]],["parent/37",[40,3.724]],["name/38",[43,48.609]],["parent/38",[40,3.724]],["name/39",[44,48.609]],["parent/39",[40,3.724]],["name/40",[45,48.609]],["parent/40",[40,3.724]],["name/41",[46,48.609]],["parent/41",[40,3.724]],["name/42",[47,48.609]],["parent/42",[40,3.724]],["name/43",[48,48.609]],["parent/43",[40,3.724]],["name/44",[49,48.609]],["parent/44",[40,3.724]],["name/45",[41,48.609]],["parent/45",[1,2.024]],["name/46",[50,57.082]],["parent/46",[51,5.145]],["name/47",[52,57.082]],["parent/47",[51,5.145]],["name/48",[42,48.609]],["parent/48",[1,2.024]],["name/49",[53,57.082]],["parent/49",[54,4.563]],["name/50",[55,57.082]],["parent/50",[54,4.563]],["name/51",[56,57.082]],["parent/51",[54,4.563]],["name/52",[57,57.082]],["parent/52",[54,4.563]],["name/53",[43,48.609]],["parent/53",[1,2.024]],["name/54",[58,57.082]],["parent/54",[59,4.812]],["name/55",[60,57.082]],["parent/55",[59,4.812]],["name/56",[61,57.082]],["parent/56",[59,4.812]],["name/57",[44,48.609]],["parent/57",[1,2.024]],["name/58",[62,51.974]],["parent/58",[63,5.145]],["name/59",[64,51.974]],["parent/59",[63,5.145]],["name/60",[45,48.609]],["parent/60",[1,2.024]],["name/61",[62,51.974]],["parent/61",[65,5.145]],["name/62",[64,51.974]],["parent/62",[65,5.145]],["name/63",[46,48.609]],["parent/63",[1,2.024]],["name/64",[66,57.082]],["parent/64",[67,5.65]],["name/65",[47,48.609]],["parent/65",[1,2.024]],["name/66",[68,57.082]],["parent/66",[69,3.933]],["name/67",[70,57.082]],["parent/67",[69,3.933]],["name/68",[71,57.082]],["parent/68",[69,3.933]],["name/69",[72,57.082]],["parent/69",[69,3.933]],["name/70",[73,57.082]],["parent/70",[69,3.933]],["name/71",[74,57.082]],["parent/71",[69,3.933]],["name/72",[75,57.082]],["parent/72",[69,3.933]],["name/73",[76,57.082]],["parent/73",[69,3.933]],["name/74",[48,48.609]],["parent/74",[1,2.024]],["name/75",[77,57.082]],["parent/75",[78,4.563]],["name/76",[79,57.082]],["parent/76",[78,4.563]],["name/77",[80,57.082]],["parent/77",[78,4.563]],["name/78",[81,57.082]],["parent/78",[78,4.563]],["name/79",[49,48.609]],["parent/79",[1,2.024]],["name/80",[82,57.082]],["parent/80",[83,5.65]],["name/81",[84,57.082]],["parent/81",[1,2.024]],["name/82",[85,30.456]],["parent/82",[86,4.364]],["name/83",[87,51.974]],["parent/83",[86,4.364]],["name/84",[88,51.974]],["parent/84",[86,4.364]],["name/85",[89,48.609]],["parent/85",[86,4.364]],["name/86",[90,38.624]],["parent/86",[86,4.364]],["name/87",[91,51.974]],["parent/87",[92,4.812]],["name/88",[93,46.096]],["parent/88",[92,4.812]],["name/89",[94,51.974]],["parent/89",[92,4.812]],["name/90",[95,57.082]],["parent/90",[1,2.024]],["name/91",[85,30.456]],["parent/91",[96,4.364]],["name/92",[87,51.974]],["parent/92",[96,4.364]],["name/93",[88,51.974]],["parent/93",[96,4.364]],["name/94",[89,48.609]],["parent/94",[96,4.364]],["name/95",[90,38.624]],["parent/95",[96,4.364]],["name/96",[93,46.096]],["parent/96",[97,3.552]],["name/97",[98,51.974]],["parent/97",[97,3.552]],["name/98",[99,57.082]],["parent/98",[97,3.552]],["name/99",[100,57.082]],["parent/99",[97,3.552]],["name/100",[101,57.082]],["parent/100",[97,3.552]],["name/101",[102,57.082]],["parent/101",[97,3.552]],["name/102",[103,51.974]],["parent/102",[97,3.552]],["name/103",[104,51.974]],["parent/103",[97,3.552]],["name/104",[105,57.082]],["parent/104",[97,3.552]],["name/105",[106,57.082]],["parent/105",[97,3.552]],["name/106",[107,57.082]],["parent/106",[97,3.552]],["name/107",[108,57.082]],["parent/107",[97,3.552]],["name/108",[109,57.082]],["parent/108",[1,2.024]],["name/109",[85,30.456]],["parent/109",[110,5.145]],["name/110",[111,32.515]],["parent/110",[110,5.145]],["name/111",[112,57.082]],["parent/111",[1,2.024]],["name/112",[113,57.082]],["parent/112",[1,2.024]],["name/113",[85,30.456]],["parent/113",[114,4.364]],["name/114",[16,48.609]],["parent/114",[114,4.364]],["name/115",[90,38.624]],["parent/115",[114,4.364]],["name/116",[91,51.974]],["parent/116",[115,4.812]],["name/117",[93,46.096]],["parent/117",[115,4.812]],["name/118",[94,51.974]],["parent/118",[115,4.812]],["name/119",[116,57.082]],["parent/119",[114,4.364]],["name/120",[111,32.515]],["parent/120",[114,4.364]],["name/121",[117,57.082]],["parent/121",[1,2.024]],["name/122",[85,30.456]],["parent/122",[118,3.933]],["name/123",[27,40.988]],["parent/123",[118,3.933]],["name/124",[119,51.974]],["parent/124",[118,3.933]],["name/125",[120,51.974]],["parent/125",[118,3.933]],["name/126",[9,42.419]],["parent/126",[118,3.933]],["name/127",[121,57.082]],["parent/127",[118,3.933]],["name/128",[7,46.096]],["parent/128",[118,3.933]],["name/129",[111,32.515]],["parent/129",[118,3.933]],["name/130",[122,57.082]],["parent/130",[1,2.024]],["name/131",[85,30.456]],["parent/131",[123,5.145]],["name/132",[111,32.515]],["parent/132",[123,5.145]],["name/133",[124,57.082]],["parent/133",[1,2.024]],["name/134",[85,30.456]],["parent/134",[125,4.812]],["name/135",[7,46.096]],["parent/135",[125,4.812]],["name/136",[111,32.515]],["parent/136",[125,4.812]],["name/137",[126,57.082]],["parent/137",[1,2.024]],["name/138",[85,30.456]],["parent/138",[127,4.812]],["name/139",[128,48.609]],["parent/139",[127,4.812]],["name/140",[111,32.515]],["parent/140",[127,4.812]],["name/141",[129,57.082]],["parent/141",[1,2.024]],["name/142",[85,30.456]],["parent/142",[130,4.812]],["name/143",[9,42.419]],["parent/143",[130,4.812]],["name/144",[111,32.515]],["parent/144",[130,4.812]],["name/145",[131,57.082]],["parent/145",[1,2.024]],["name/146",[85,30.456]],["parent/146",[132,3.552]],["name/147",[111,32.515]],["parent/147",[132,3.552]],["name/148",[9,42.419]],["parent/148",[132,3.552]],["name/149",[41,48.609]],["parent/149",[132,3.552]],["name/150",[42,48.609]],["parent/150",[132,3.552]],["name/151",[43,48.609]],["parent/151",[132,3.552]],["name/152",[44,48.609]],["parent/152",[132,3.552]],["name/153",[45,48.609]],["parent/153",[132,3.552]],["name/154",[46,48.609]],["parent/154",[132,3.552]],["name/155",[47,48.609]],["parent/155",[132,3.552]],["name/156",[48,48.609]],["parent/156",[132,3.552]],["name/157",[49,48.609]],["parent/157",[132,3.552]],["name/158",[133,57.082]],["parent/158",[1,2.024]],["name/159",[85,30.456]],["parent/159",[134,5.145]],["name/160",[111,32.515]],["parent/160",[134,5.145]],["name/161",[135,57.082]],["parent/161",[1,2.024]],["name/162",[85,30.456]],["parent/162",[136,5.65]],["name/163",[137,57.082]],["parent/163",[1,2.024]],["name/164",[138,57.082]],["parent/164",[1,2.024]],["name/165",[85,30.456]],["parent/165",[139,4.563]],["name/166",[111,32.515]],["parent/166",[139,4.563]],["name/167",[140,51.974]],["parent/167",[139,4.563]],["name/168",[90,38.624]],["parent/168",[139,4.563]],["name/169",[141,57.082]],["parent/169",[142,4.812]],["name/170",[128,48.609]],["parent/170",[142,4.812]],["name/171",[37,48.609]],["parent/171",[142,4.812]],["name/172",[143,57.082]],["parent/172",[1,2.024]],["name/173",[85,30.456]],["parent/173",[144,3.933]],["name/174",[145,48.609]],["parent/174",[144,3.933]],["name/175",[146,51.974]],["parent/175",[144,3.933]],["name/176",[147,51.974]],["parent/176",[144,3.933]],["name/177",[148,51.974]],["parent/177",[144,3.933]],["name/178",[149,51.974]],["parent/178",[144,3.933]],["name/179",[150,51.974]],["parent/179",[144,3.933]],["name/180",[151,51.974]],["parent/180",[144,3.933]],["name/181",[152,57.082]],["parent/181",[1,2.024]],["name/182",[85,30.456]],["parent/182",[153,4.812]],["name/183",[154,42.419]],["parent/183",[153,4.812]],["name/184",[111,32.515]],["parent/184",[153,4.812]],["name/185",[155,57.082]],["parent/185",[1,2.024]],["name/186",[156,57.082]],["parent/186",[1,2.024]],["name/187",[154,42.419]],["parent/187",[157,4.563]],["name/188",[27,40.988]],["parent/188",[157,4.563]],["name/189",[85,30.456]],["parent/189",[157,4.563]],["name/190",[111,32.515]],["parent/190",[157,4.563]],["name/191",[158,57.082]],["parent/191",[1,2.024]],["name/192",[154,42.419]],["parent/192",[159,4.364]],["name/193",[27,40.988]],["parent/193",[159,4.364]],["name/194",[160,51.974]],["parent/194",[159,4.364]],["name/195",[85,30.456]],["parent/195",[159,4.364]],["name/196",[111,32.515]],["parent/196",[159,4.364]],["name/197",[161,57.082]],["parent/197",[1,2.024]],["name/198",[154,42.419]],["parent/198",[162,4.199]],["name/199",[27,40.988]],["parent/199",[162,4.199]],["name/200",[163,51.974]],["parent/200",[162,4.199]],["name/201",[90,38.624]],["parent/201",[162,4.199]],["name/202",[164,48.609]],["parent/202",[165,4.812]],["name/203",[166,48.609]],["parent/203",[165,4.812]],["name/204",[167,57.082]],["parent/204",[165,4.812]],["name/205",[85,30.456]],["parent/205",[162,4.199]],["name/206",[111,32.515]],["parent/206",[162,4.199]],["name/207",[168,57.082]],["parent/207",[1,2.024]],["name/208",[154,42.419]],["parent/208",[169,4.364]],["name/209",[27,40.988]],["parent/209",[169,4.364]],["name/210",[170,57.082]],["parent/210",[169,4.364]],["name/211",[85,30.456]],["parent/211",[169,4.364]],["name/212",[111,32.515]],["parent/212",[169,4.364]],["name/213",[171,57.082]],["parent/213",[1,2.024]],["name/214",[154,42.419]],["parent/214",[172,4.199]],["name/215",[173,57.082]],["parent/215",[172,4.199]],["name/216",[160,51.974]],["parent/216",[172,4.199]],["name/217",[174,57.082]],["parent/217",[172,4.199]],["name/218",[85,30.456]],["parent/218",[172,4.199]],["name/219",[111,32.515]],["parent/219",[172,4.199]],["name/220",[175,57.082]],["parent/220",[1,2.024]],["name/221",[176,57.082]],["parent/221",[177,4.364]],["name/222",[178,57.082]],["parent/222",[177,4.364]],["name/223",[179,51.974]],["parent/223",[177,4.364]],["name/224",[180,57.082]],["parent/224",[177,4.364]],["name/225",[181,57.082]],["parent/225",[177,4.364]],["name/226",[182,57.082]],["parent/226",[1,2.024]],["name/227",[183,48.609]],["parent/227",[184,3.933]],["name/228",[185,48.609]],["parent/228",[184,3.933]],["name/229",[186,46.096]],["parent/229",[184,3.933]],["name/230",[187,57.082]],["parent/230",[184,3.933]],["name/231",[188,48.609]],["parent/231",[184,3.933]],["name/232",[189,46.096]],["parent/232",[184,3.933]],["name/233",[190,57.082]],["parent/233",[184,3.933]],["name/234",[191,57.082]],["parent/234",[184,3.933]],["name/235",[192,57.082]],["parent/235",[1,2.024]],["name/236",[27,40.988]],["parent/236",[193,5.145]],["name/237",[194,57.082]],["parent/237",[193,5.145]],["name/238",[195,48.609]],["parent/238",[1,2.024]],["name/239",[196,57.082]],["parent/239",[1,2.024]],["name/240",[197,51.974]],["parent/240",[198,4.199]],["name/241",[195,48.609]],["parent/241",[198,4.199]],["name/242",[199,57.082]],["parent/242",[198,4.199]],["name/243",[90,38.624]],["parent/243",[198,4.199]],["name/244",[200,48.609]],["parent/244",[201,4.563]],["name/245",[202,51.974]],["parent/245",[201,4.563]],["name/246",[163,51.974]],["parent/246",[198,4.199]],["name/247",[90,38.624]],["parent/247",[198,4.199]],["name/248",[164,48.609]],["parent/248",[201,4.563]],["name/249",[166,48.609]],["parent/249",[201,4.563]],["name/250",[203,57.082]],["parent/250",[1,2.024]],["name/251",[204,48.609]],["parent/251",[205,3.933]],["name/252",[200,48.609]],["parent/252",[205,3.933]],["name/253",[206,57.082]],["parent/253",[205,3.933]],["name/254",[207,57.082]],["parent/254",[205,3.933]],["name/255",[208,57.082]],["parent/255",[205,3.933]],["name/256",[209,57.082]],["parent/256",[205,3.933]],["name/257",[210,57.082]],["parent/257",[205,3.933]],["name/258",[211,57.082]],["parent/258",[205,3.933]],["name/259",[212,57.082]],["parent/259",[1,2.024]],["name/260",[213,57.082]],["parent/260",[214,4.563]],["name/261",[215,57.082]],["parent/261",[214,4.563]],["name/262",[216,57.082]],["parent/262",[214,4.563]],["name/263",[217,57.082]],["parent/263",[214,4.563]],["name/264",[218,57.082]],["parent/264",[1,2.024]],["name/265",[219,57.082]],["parent/265",[220,4.812]],["name/266",[221,57.082]],["parent/266",[220,4.812]],["name/267",[222,57.082]],["parent/267",[220,4.812]],["name/268",[223,57.082]],["parent/268",[1,2.024]],["name/269",[224,57.082]],["parent/269",[225,4.812]],["name/270",[226,57.082]],["parent/270",[225,4.812]],["name/271",[227,57.082]],["parent/271",[225,4.812]],["name/272",[228,57.082]],["parent/272",[1,2.024]],["name/273",[145,48.609]],["parent/273",[229,4.057]],["name/274",[146,51.974]],["parent/274",[229,4.057]],["name/275",[147,51.974]],["parent/275",[229,4.057]],["name/276",[148,51.974]],["parent/276",[229,4.057]],["name/277",[149,51.974]],["parent/277",[229,4.057]],["name/278",[150,51.974]],["parent/278",[229,4.057]],["name/279",[151,51.974]],["parent/279",[229,4.057]],["name/280",[230,57.082]],["parent/280",[1,2.024]],["name/281",[231,57.082]],["parent/281",[1,2.024]],["name/282",[85,30.456]],["parent/282",[232,4.812]],["name/283",[89,48.609]],["parent/283",[232,4.812]],["name/284",[90,38.624]],["parent/284",[232,4.812]],["name/285",[93,46.096]],["parent/285",[233,4.563]],["name/286",[98,51.974]],["parent/286",[233,4.563]],["name/287",[104,51.974]],["parent/287",[233,4.563]],["name/288",[103,51.974]],["parent/288",[233,4.563]],["name/289",[234,57.082]],["parent/289",[1,2.024]],["name/290",[235,57.082]],["parent/290",[236,4.199]],["name/291",[237,57.082]],["parent/291",[236,4.199]],["name/292",[238,57.082]],["parent/292",[236,4.199]],["name/293",[239,57.082]],["parent/293",[236,4.199]],["name/294",[240,57.082]],["parent/294",[236,4.199]],["name/295",[241,51.974]],["parent/295",[236,4.199]],["name/296",[242,57.082]],["parent/296",[1,2.024]],["name/297",[243,48.609]],["parent/297",[244,5.145]],["name/298",[245,57.082]],["parent/298",[244,5.145]],["name/299",[246,57.082]],["parent/299",[1,2.024]],["name/300",[111,32.515]],["parent/300",[247,4.057]],["name/301",[248,57.082]],["parent/301",[247,4.057]],["name/302",[249,51.974]],["parent/302",[247,4.057]],["name/303",[9,42.419]],["parent/303",[247,4.057]],["name/304",[250,57.082]],["parent/304",[247,4.057]],["name/305",[251,57.082]],["parent/305",[247,4.057]],["name/306",[252,57.082]],["parent/306",[247,4.057]],["name/307",[253,51.974]],["parent/307",[1,2.024]],["name/308",[119,51.974]],["parent/308",[254,5.145]],["name/309",[120,51.974]],["parent/309",[254,5.145]],["name/310",[255,51.974]],["parent/310",[1,2.024]],["name/311",[200,48.609]],["parent/311",[256,4.812]],["name/312",[202,51.974]],["parent/312",[256,4.812]],["name/313",[257,44.089]],["parent/313",[256,4.812]],["name/314",[179,51.974]],["parent/314",[1,2.024]],["name/315",[197,51.974]],["parent/315",[258,4.364]],["name/316",[195,48.609]],["parent/316",[258,4.364]],["name/317",[255,51.974]],["parent/317",[258,4.364]],["name/318",[259,51.974]],["parent/318",[258,4.364]],["name/319",[90,38.624]],["parent/319",[258,4.364]],["name/320",[164,48.609]],["parent/320",[260,5.145]],["name/321",[166,48.609]],["parent/321",[260,5.145]],["name/322",[261,30.933]],["parent/322",[]],["name/323",[262,57.082]],["parent/323",[261,3.062]],["name/324",[263,57.082]],["parent/324",[261,3.062]],["name/325",[264,57.082]],["parent/325",[261,3.062]],["name/326",[265,57.082]],["parent/326",[261,3.062]],["name/327",[266,57.082]],["parent/327",[261,3.062]],["name/328",[267,57.082]],["parent/328",[261,3.062]],["name/329",[268,57.082]],["parent/329",[261,3.062]],["name/330",[269,57.082]],["parent/330",[261,3.062]],["name/331",[270,57.082]],["parent/331",[261,3.062]],["name/332",[271,57.082]],["parent/332",[261,3.062]],["name/333",[272,57.082]],["parent/333",[261,3.062]],["name/334",[273,57.082]],["parent/334",[261,3.062]],["name/335",[274,57.082]],["parent/335",[261,3.062]],["name/336",[275,57.082]],["parent/336",[261,3.062]],["name/337",[18,51.974]],["parent/337",[261,3.062]],["name/338",[20,51.974]],["parent/338",[261,3.062]],["name/339",[22,51.974]],["parent/339",[261,3.062]],["name/340",[276,57.082]],["parent/340",[261,3.062]],["name/341",[277,57.082]],["parent/341",[261,3.062]],["name/342",[278,33.103]],["parent/342",[]],["name/343",[279,42.419]],["parent/343",[278,3.277]],["name/344",[280,57.082]],["parent/344",[278,3.277]],["name/345",[281,48.609]],["parent/345",[278,3.277]],["name/346",[282,57.082]],["parent/346",[278,3.277]],["name/347",[145,48.609]],["parent/347",[278,3.277]],["name/348",[283,57.082]],["parent/348",[278,3.277]],["name/349",[284,57.082]],["parent/349",[278,3.277]],["name/350",[285,57.082]],["parent/350",[278,3.277]],["name/351",[286,57.082]],["parent/351",[278,3.277]],["name/352",[287,57.082]],["parent/352",[278,3.277]],["name/353",[288,57.082]],["parent/353",[278,3.277]],["name/354",[289,57.082]],["parent/354",[278,3.277]],["name/355",[290,51.974]],["parent/355",[278,3.277]],["name/356",[11,44.089]],["parent/356",[278,3.277]],["name/357",[291,51.974]],["parent/357",[278,3.277]],["name/358",[292,38.624]],["parent/358",[]],["name/359",[11,44.089]],["parent/359",[292,3.823]],["name/360",[293,48.609]],["parent/360",[292,3.823]],["name/361",[294,57.082]],["parent/361",[292,3.823]],["name/362",[295,51.974]],["parent/362",[292,3.823]],["name/363",[259,51.974]],["parent/363",[292,3.823]],["name/364",[296,57.082]],["parent/364",[292,3.823]],["name/365",[16,48.609]],["parent/365",[292,3.823]],["name/366",[13,51.974]],["parent/366",[292,3.823]],["name/367",[297,35.11]],["parent/367",[]],["name/368",[279,42.419]],["parent/368",[297,3.475]],["name/369",[281,48.609]],["parent/369",[297,3.475]],["name/370",[15,51.974]],["parent/370",[297,3.475]],["name/371",[298,57.082]],["parent/371",[297,3.475]],["name/372",[299,57.082]],["parent/372",[297,3.475]],["name/373",[37,48.609]],["parent/373",[297,3.475]],["name/374",[300,57.082]],["parent/374",[297,3.475]],["name/375",[301,51.974]],["parent/375",[297,3.475]],["name/376",[302,57.082]],["parent/376",[297,3.475]],["name/377",[293,48.609]],["parent/377",[297,3.475]],["name/378",[11,44.089]],["parent/378",[297,3.475]],["name/379",[241,51.974]],["parent/379",[297,3.475]],["name/380",[303,27.638]],["parent/380",[]],["name/381",[279,42.419]],["parent/381",[303,2.736]],["name/382",[28,51.974]],["parent/382",[303,2.736]],["name/383",[281,48.609]],["parent/383",[303,2.736]],["name/384",[301,51.974]],["parent/384",[303,2.736]],["name/385",[128,48.609]],["parent/385",[303,2.736]],["name/386",[304,57.082]],["parent/386",[303,2.736]],["name/387",[10,48.609]],["parent/387",[303,2.736]],["name/388",[305,57.082]],["parent/388",[303,2.736]],["name/389",[140,51.974]],["parent/389",[303,2.736]],["name/390",[306,57.082]],["parent/390",[303,2.736]],["name/391",[307,57.082]],["parent/391",[303,2.736]],["name/392",[253,51.974]],["parent/392",[303,2.736]],["name/393",[249,51.974]],["parent/393",[303,2.736]],["name/394",[308,57.082]],["parent/394",[303,2.736]],["name/395",[293,48.609]],["parent/395",[303,2.736]],["name/396",[295,51.974]],["parent/396",[303,2.736]],["name/397",[5,51.974]],["parent/397",[303,2.736]],["name/398",[309,57.082]],["parent/398",[303,2.736]],["name/399",[310,57.082]],["parent/399",[303,2.736]],["name/400",[311,57.082]],["parent/400",[303,2.736]],["name/401",[312,57.082]],["parent/401",[303,2.736]],["name/402",[6,51.974]],["parent/402",[303,2.736]],["name/403",[7,46.096]],["parent/403",[303,2.736]],["name/404",[8,51.974]],["parent/404",[303,2.736]],["name/405",[11,44.089]],["parent/405",[303,2.736]],["name/406",[313,57.082]],["parent/406",[303,2.736]],["name/407",[290,51.974]],["parent/407",[303,2.736]],["name/408",[314,35.88]],["parent/408",[]],["name/409",[279,42.419]],["parent/409",[314,3.552]],["name/410",[315,57.082]],["parent/410",[314,3.552]],["name/411",[316,57.082]],["parent/411",[314,3.552]],["name/412",[257,44.089]],["parent/412",[314,3.552]],["name/413",[317,57.082]],["parent/413",[314,3.552]],["name/414",[318,57.082]],["parent/414",[314,3.552]],["name/415",[291,51.974]],["parent/415",[314,3.552]],["name/416",[319,57.082]],["parent/416",[314,3.552]],["name/417",[320,57.082]],["parent/417",[314,3.552]],["name/418",[321,57.082]],["parent/418",[314,3.552]],["name/419",[322,57.082]],["parent/419",[314,3.552]],["name/420",[323,38.624]],["parent/420",[]],["name/421",[189,46.096]],["parent/421",[323,3.823]],["name/422",[183,48.609]],["parent/422",[323,3.823]],["name/423",[186,46.096]],["parent/423",[323,3.823]],["name/424",[257,44.089]],["parent/424",[323,3.823]],["name/425",[185,48.609]],["parent/425",[323,3.823]],["name/426",[188,48.609]],["parent/426",[323,3.823]],["name/427",[204,48.609]],["parent/427",[323,3.823]],["name/428",[243,48.609]],["parent/428",[323,3.823]],["name/429",[324,33.728]],["parent/429",[]],["name/430",[325,57.082]],["parent/430",[324,3.339]],["name/431",[279,42.419]],["parent/431",[324,3.339]],["name/432",[326,57.082]],["parent/432",[324,3.339]],["name/433",[327,51.974]],["parent/433",[324,3.339]],["name/434",[189,46.096]],["parent/434",[324,3.339]],["name/435",[183,48.609]],["parent/435",[324,3.339]],["name/436",[186,46.096]],["parent/436",[324,3.339]],["name/437",[257,44.089]],["parent/437",[324,3.339]],["name/438",[185,48.609]],["parent/438",[324,3.339]],["name/439",[188,48.609]],["parent/439",[324,3.339]],["name/440",[204,48.609]],["parent/440",[324,3.339]],["name/441",[243,48.609]],["parent/441",[324,3.339]],["name/442",[328,57.082]],["parent/442",[324,3.339]],["name/443",[329,57.082]],["parent/443",[324,3.339]],["name/444",[330,40.988]],["parent/444",[]],["name/445",[331,57.082]],["parent/445",[330,4.057]],["name/446",[279,42.419]],["parent/446",[330,4.057]],["name/447",[189,46.096]],["parent/447",[330,4.057]],["name/448",[186,46.096]],["parent/448",[330,4.057]],["name/449",[257,44.089]],["parent/449",[330,4.057]],["name/450",[327,51.974]],["parent/450",[330,4.057]]],"invertedIndex":[["__type",{"_index":90,"name":{"86":{},"95":{},"115":{},"168":{},"201":{},"243":{},"247":{},"284":{},"319":{}},"parent":{}}],["add",{"_index":291,"name":{"357":{},"415":{}},"parent":{}}],["allocated",{"_index":216,"name":{"262":{}},"parent":{}}],["author",{"_index":186,"name":{"229":{},"423":{},"436":{},"448":{}},"parent":{}}],["autoplay",{"_index":238,"name":{"292":{}},"parent":{}}],["autoreplay",{"_index":240,"name":{"294":{}},"parent":{}}],["band",{"_index":50,"name":{"46":{}},"parent":{}}],["base64",{"_index":326,"name":{"432":{}},"parent":{}}],["build",{"_index":329,"name":{"443":{}},"parent":{}}],["byremote",{"_index":174,"name":{"217":{}},"parent":{}}],["calls",{"_index":299,"name":{"372":{}},"parent":{}}],["cause",{"_index":167,"name":{"204":{}},"parent":{}}],["channel_id",{"_index":98,"name":{"97":{},"286":{}},"parent":{}}],["channelmix",{"_index":48,"name":{"43":{},"74":{},"156":{}},"parent":{}}],["clear",{"_index":320,"name":{"417":{}},"parent":{}}],["clientid",{"_index":280,"name":{"344":{}},"parent":{}}],["clientname",{"_index":235,"name":{"290":{}},"parent":{}}],["code",{"_index":173,"name":{"215":{}},"parent":{}}],["coffeelava",{"_index":278,"name":{"342":{}},"parent":{"343":{},"344":{},"345":{},"346":{},"347":{},"348":{},"349":{},"350":{},"351":{},"352":{},"353":{},"354":{},"355":{},"356":{},"357":{}}}],["coffeenode",{"_index":297,"name":{"367":{}},"parent":{"368":{},"369":{},"370":{},"371":{},"372":{},"373":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{}}}],["coffeeplayer",{"_index":303,"name":{"380":{}},"parent":{"381":{},"382":{},"383":{},"384":{},"385":{},"386":{},"387":{},"388":{},"389":{},"390":{},"391":{},"392":{},"393":{},"394":{},"395":{},"396":{},"397":{},"398":{},"399":{},"400":{},"401":{},"402":{},"403":{},"404":{},"405":{},"406":{},"407":{}}}],["coffeequeue",{"_index":314,"name":{"408":{}},"parent":{"409":{},"410":{},"411":{},"412":{},"413":{},"414":{},"415":{},"416":{},"417":{},"418":{},"419":{}}}],["coffeetrack",{"_index":324,"name":{"429":{}},"parent":{"430":{},"431":{},"432":{},"433":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"440":{},"441":{},"442":{},"443":{}}}],["connect",{"_index":293,"name":{"360":{},"377":{},"395":{}},"parent":{}}],["connected",{"_index":37,"name":{"31":{},"171":{},"373":{}},"parent":{}}],["connecting",{"_index":35,"name":{"30":{}},"parent":{}}],["constructor",{"_index":279,"name":{"343":{},"368":{},"381":{},"409":{},"431":{},"446":{}},"parent":{}}],["cores",{"_index":219,"name":{"265":{}},"parent":{}}],["cosoffset",{"_index":71,"name":{"68":{}},"parent":{}}],["cosscale",{"_index":72,"name":{"69":{}},"parent":{}}],["cpu",{"_index":149,"name":{"178":{},"277":{}},"parent":{}}],["create",{"_index":289,"name":{"354":{}},"parent":{}}],["current",{"_index":315,"name":{"410":{}},"parent":{}}],["d",{"_index":89,"name":{"85":{},"94":{},"283":{}},"parent":{}}],["deaf",{"_index":101,"name":{"100":{}},"parent":{}}],["decodetrack",{"_index":287,"name":{"352":{}},"parent":{}}],["defaultsearchplatform",{"_index":239,"name":{"293":{}},"parent":{}}],["deficit",{"_index":227,"name":{"271":{}},"parent":{}}],["depth",{"_index":64,"name":{"59":{},"62":{}},"parent":{}}],["destroy",{"_index":11,"name":{"10":{},"356":{},"359":{},"378":{},"405":{}},"parent":{}}],["destroyed",{"_index":33,"name":{"28":{}},"parent":{}}],["destroypayload",{"_index":133,"name":{"158":{}},"parent":{}}],["disconnect",{"_index":295,"name":{"362":{},"396":{}},"parent":{}}],["disconnected",{"_index":39,"name":{"33":{}},"parent":{}}],["disconnecting",{"_index":38,"name":{"32":{}},"parent":{}}],["displaythumbnail",{"_index":328,"name":{"442":{}},"parent":{}}],["distortion",{"_index":47,"name":{"42":{},"65":{},"155":{}},"parent":{}}],["duration",{"_index":257,"name":{"313":{},"412":{},"424":{},"437":{},"449":{}},"parent":{}}],["endpoint",{"_index":94,"name":{"89":{},"118":{}},"parent":{}}],["endtime",{"_index":120,"name":{"125":{},"309":{}},"parent":{}}],["equalizer",{"_index":41,"name":{"36":{},"45":{},"149":{}},"parent":{}}],["error",{"_index":259,"name":{"318":{},"363":{}},"parent":{}}],["event",{"_index":16,"name":{"14":{},"114":{},"365":{}},"parent":{}}],["eventpayload",{"_index":152,"name":{"181":{}},"parent":{}}],["eventpayloads",{"_index":155,"name":{"185":{}},"parent":{}}],["eventtypes",{"_index":17,"name":{"15":{}},"parent":{}}],["exception",{"_index":163,"name":{"200":{},"246":{}},"parent":{}}],["filterband",{"_index":56,"name":{"51":{}},"parent":{}}],["filters",{"_index":10,"name":{"9":{},"34":{},"387":{}},"parent":{}}],["filterspayload",{"_index":131,"name":{"145":{}},"parent":{}}],["filterwidth",{"_index":57,"name":{"52":{}},"parent":{}}],["framestats",{"_index":151,"name":{"180":{},"279":{}},"parent":{}}],["free",{"_index":213,"name":{"260":{}},"parent":{}}],["frequency",{"_index":62,"name":{"58":{},"61":{}},"parent":{}}],["gain",{"_index":52,"name":{"47":{}},"parent":{}}],["get",{"_index":290,"name":{"355":{},"407":{}},"parent":{}}],["guild_id",{"_index":93,"name":{"88":{},"96":{},"117":{},"285":{}},"parent":{}}],["guildid",{"_index":111,"name":{"110":{},"120":{},"129":{},"132":{},"136":{},"140":{},"144":{},"147":{},"160":{},"166":{},"184":{},"190":{},"196":{},"206":{},"212":{},"219":{},"300":{}},"parent":{}}],["http",{"_index":300,"name":{"374":{}},"parent":{}}],["identifier",{"_index":183,"name":{"227":{},"422":{},"435":{}},"parent":{}}],["incomingpayload",{"_index":135,"name":{"161":{}},"parent":{}}],["incomingpayloads",{"_index":137,"name":{"163":{}},"parent":{}}],["info",{"_index":194,"name":{"237":{}},"parent":{}}],["init",{"_index":285,"name":{"350":{}},"parent":{}}],["isseekable",{"_index":185,"name":{"228":{},"425":{},"438":{}},"parent":{}}],["isstream",{"_index":188,"name":{"231":{},"426":{},"439":{}},"parent":{}}],["istrack",{"_index":325,"name":{"430":{}},"parent":{}}],["isunresolved",{"_index":331,"name":{"445":{}},"parent":{}}],["itrack",{"_index":323,"name":{"420":{}},"parent":{"421":{},"422":{},"423":{},"424":{},"425":{},"426":{},"427":{},"428":{}}}],["karaoke",{"_index":42,"name":{"37":{},"48":{},"150":{}},"parent":{}}],["lastupdated",{"_index":150,"name":{"179":{},"278":{}},"parent":{}}],["lava",{"_index":301,"name":{"375":{},"384":{}},"parent":{}}],["lavaevents",{"_index":261,"name":{"322":{}},"parent":{"323":{},"324":{},"325":{},"326":{},"327":{},"328":{},"329":{},"330":{},"331":{},"332":{},"333":{},"334":{},"335":{},"336":{},"337":{},"338":{},"339":{},"340":{},"341":{}}}],["lavalinkload",{"_index":222,"name":{"267":{}},"parent":{}}],["lavaoptions",{"_index":234,"name":{"289":{}},"parent":{}}],["leastloadnode",{"_index":284,"name":{"349":{}},"parent":{}}],["leastusednode",{"_index":283,"name":{"348":{}},"parent":{}}],["lefttoleft",{"_index":77,"name":{"75":{}},"parent":{}}],["lefttoright",{"_index":79,"name":{"76":{}},"parent":{}}],["length",{"_index":187,"name":{"230":{}},"parent":{}}],["level",{"_index":53,"name":{"49":{}},"parent":{}}],["loadfailed",{"_index":181,"name":{"225":{}},"parent":{}}],["loadtype",{"_index":197,"name":{"240":{},"315":{}},"parent":{}}],["loadtypes",{"_index":175,"name":{"220":{}},"parent":{}}],["loop",{"_index":305,"name":{"388":{}},"parent":{}}],["loopmode",{"_index":24,"name":{"21":{}},"parent":{}}],["lowpass",{"_index":49,"name":{"44":{},"79":{},"157":{}},"parent":{}}],["maxconnections",{"_index":211,"name":{"258":{}},"parent":{}}],["memory",{"_index":148,"name":{"177":{},"276":{}},"parent":{}}],["message",{"_index":164,"name":{"202":{},"248":{},"320":{}},"parent":{}}],["metadata",{"_index":252,"name":{"306":{}},"parent":{}}],["monolevel",{"_index":55,"name":{"50":{}},"parent":{}}],["mute",{"_index":102,"name":{"101":{}},"parent":{}}],["name",{"_index":200,"name":{"244":{},"252":{},"311":{}},"parent":{}}],["node",{"_index":249,"name":{"302":{},"393":{}},"parent":{}}],["nodeconnect",{"_index":264,"name":{"325":{}},"parent":{}}],["nodecpustats",{"_index":218,"name":{"264":{}},"parent":{}}],["nodecreate",{"_index":262,"name":{"323":{}},"parent":{}}],["nodedestroy",{"_index":263,"name":{"324":{}},"parent":{}}],["nodedisconnect",{"_index":266,"name":{"327":{}},"parent":{}}],["nodeerror",{"_index":267,"name":{"328":{}},"parent":{}}],["nodeevents",{"_index":292,"name":{"358":{}},"parent":{"359":{},"360":{},"361":{},"362":{},"363":{},"364":{},"365":{},"366":{}}}],["nodeframestats",{"_index":223,"name":{"268":{}},"parent":{}}],["nodememorystats",{"_index":212,"name":{"259":{}},"parent":{}}],["nodeoptions",{"_index":203,"name":{"250":{}},"parent":{}}],["noderaw",{"_index":268,"name":{"329":{}},"parent":{}}],["nodereconnect",{"_index":265,"name":{"326":{}},"parent":{}}],["nodes",{"_index":282,"name":{"346":{}},"parent":{}}],["nodestats",{"_index":228,"name":{"272":{}},"parent":{}}],["nomatches",{"_index":180,"name":{"224":{}},"parent":{}}],["none",{"_index":25,"name":{"22":{}},"parent":{}}],["noreplace",{"_index":121,"name":{"127":{}},"parent":{}}],["nulled",{"_index":226,"name":{"270":{}},"parent":{}}],["offset",{"_index":75,"name":{"72":{}},"parent":{}}],["op",{"_index":85,"name":{"82":{},"91":{},"109":{},"113":{},"122":{},"131":{},"134":{},"138":{},"142":{},"146":{},"159":{},"162":{},"165":{},"173":{},"182":{},"189":{},"195":{},"205":{},"211":{},"218":{},"282":{}},"parent":{}}],["opcodes",{"_index":2,"name":{"2":{}},"parent":{}}],["opincoming",{"_index":12,"name":{"11":{}},"parent":{}}],["options",{"_index":281,"name":{"345":{},"369":{},"383":{}},"parent":{}}],["outgoingpayload",{"_index":109,"name":{"108":{}},"parent":{}}],["outgoingpayloads",{"_index":112,"name":{"111":{}},"parent":{}}],["password",{"_index":206,"name":{"253":{}},"parent":{}}],["patchfilters",{"_index":309,"name":{"398":{}},"parent":{}}],["pause",{"_index":7,"name":{"6":{},"128":{},"135":{},"403":{}},"parent":{}}],["paused",{"_index":32,"name":{"27":{}},"parent":{}}],["pausepayload",{"_index":124,"name":{"133":{}},"parent":{}}],["pitch",{"_index":60,"name":{"55":{}},"parent":{}}],["play",{"_index":5,"name":{"4":{},"397":{}},"parent":{}}],["playercreate",{"_index":269,"name":{"330":{}},"parent":{}}],["playerdestroy",{"_index":270,"name":{"331":{}},"parent":{}}],["playermove",{"_index":273,"name":{"334":{}},"parent":{}}],["playeroptions",{"_index":246,"name":{"299":{}},"parent":{}}],["playerreplay",{"_index":271,"name":{"332":{}},"parent":{}}],["players",{"_index":145,"name":{"174":{},"273":{},"347":{}},"parent":{}}],["playerstates",{"_index":29,"name":{"25":{}},"parent":{}}],["playerupdate",{"_index":13,"name":{"12":{},"366":{}},"parent":{}}],["playerupdatepayload",{"_index":138,"name":{"164":{}},"parent":{}}],["playervoicestates",{"_index":34,"name":{"29":{}},"parent":{}}],["playing",{"_index":30,"name":{"26":{}},"parent":{}}],["playingplayers",{"_index":146,"name":{"175":{},"274":{}},"parent":{}}],["playlist",{"_index":255,"name":{"310":{},"317":{}},"parent":{}}],["playlistinfo",{"_index":199,"name":{"242":{}},"parent":{}}],["playlistloaded",{"_index":178,"name":{"222":{}},"parent":{}}],["playoptions",{"_index":253,"name":{"307":{},"392":{}},"parent":{}}],["playpayload",{"_index":117,"name":{"121":{}},"parent":{}}],["position",{"_index":128,"name":{"139":{},"170":{},"385":{}},"parent":{}}],["previous",{"_index":316,"name":{"411":{}},"parent":{}}],["progress",{"_index":322,"name":{"419":{}},"parent":{}}],["query",{"_index":245,"name":{"298":{}},"parent":{}}],["queue",{"_index":28,"name":{"24":{},"382":{}},"parent":{}}],["queueend",{"_index":275,"name":{"336":{}},"parent":{}}],["queuestart",{"_index":274,"name":{"335":{}},"parent":{}}],["rate",{"_index":61,"name":{"56":{}},"parent":{}}],["raw",{"_index":296,"name":{"364":{}},"parent":{}}],["reason",{"_index":160,"name":{"194":{},"216":{}},"parent":{}}],["reconnect",{"_index":294,"name":{"361":{}},"parent":{}}],["remove",{"_index":319,"name":{"416":{}},"parent":{}}],["replayerror",{"_index":272,"name":{"333":{}},"parent":{}}],["replaying",{"_index":304,"name":{"386":{}},"parent":{}}],["request",{"_index":302,"name":{"376":{}},"parent":{}}],["request_to_speak_timestamp",{"_index":108,"name":{"107":{}},"parent":{}}],["requester",{"_index":327,"name":{"433":{},"450":{}},"parent":{}}],["requesttimeout",{"_index":210,"name":{"257":{}},"parent":{}}],["reservable",{"_index":217,"name":{"263":{}},"parent":{}}],["retryamount",{"_index":208,"name":{"255":{}},"parent":{}}],["retrydelay",{"_index":209,"name":{"256":{}},"parent":{}}],["righttoleft",{"_index":80,"name":{"77":{}},"parent":{}}],["righttoright",{"_index":81,"name":{"78":{}},"parent":{}}],["rotation",{"_index":46,"name":{"41":{},"63":{},"154":{}},"parent":{}}],["rotationhz",{"_index":66,"name":{"64":{}},"parent":{}}],["s",{"_index":87,"name":{"83":{},"92":{}},"parent":{}}],["scale",{"_index":76,"name":{"73":{}},"parent":{}}],["search",{"_index":286,"name":{"351":{}},"parent":{}}],["searchplatform",{"_index":230,"name":{"280":{}},"parent":{}}],["searchquery",{"_index":242,"name":{"296":{}},"parent":{}}],["searchresult",{"_index":179,"name":{"223":{},"314":{}},"parent":{}}],["secure",{"_index":207,"name":{"254":{}},"parent":{}}],["seek",{"_index":8,"name":{"7":{},"404":{}},"parent":{}}],["seekpayload",{"_index":126,"name":{"137":{}},"parent":{}}],["selectedtrack",{"_index":202,"name":{"245":{},"312":{}},"parent":{}}],["self_deaf",{"_index":103,"name":{"102":{},"288":{}},"parent":{}}],["self_mute",{"_index":104,"name":{"103":{},"287":{}},"parent":{}}],["self_stream",{"_index":105,"name":{"104":{}},"parent":{}}],["self_video",{"_index":106,"name":{"105":{}},"parent":{}}],["selfdeaf",{"_index":251,"name":{"305":{}},"parent":{}}],["selfmute",{"_index":250,"name":{"304":{}},"parent":{}}],["send",{"_index":241,"name":{"295":{},"379":{}},"parent":{}}],["sent",{"_index":224,"name":{"269":{}},"parent":{}}],["session_id",{"_index":100,"name":{"99":{}},"parent":{}}],["sessionid",{"_index":116,"name":{"119":{}},"parent":{}}],["set",{"_index":313,"name":{"406":{}},"parent":{}}],["setfilters",{"_index":310,"name":{"399":{}},"parent":{}}],["setloop",{"_index":312,"name":{"401":{}},"parent":{}}],["setnode",{"_index":308,"name":{"394":{}},"parent":{}}],["setvolume",{"_index":311,"name":{"400":{}},"parent":{}}],["severity",{"_index":166,"name":{"203":{},"249":{},"321":{}},"parent":{}}],["shards",{"_index":237,"name":{"291":{}},"parent":{}}],["shuffle",{"_index":321,"name":{"418":{}},"parent":{}}],["sinoffset",{"_index":68,"name":{"66":{}},"parent":{}}],["sinscale",{"_index":70,"name":{"67":{}},"parent":{}}],["size",{"_index":318,"name":{"414":{}},"parent":{}}],["smoothing",{"_index":82,"name":{"80":{}},"parent":{}}],["socket",{"_index":298,"name":{"371":{}},"parent":{}}],["socketclosed",{"_index":277,"name":{"341":{}},"parent":{}}],["source",{"_index":243,"name":{"297":{},"428":{},"441":{}},"parent":{}}],["sourcename",{"_index":191,"name":{"234":{}},"parent":{}}],["speed",{"_index":58,"name":{"54":{}},"parent":{}}],["starttime",{"_index":119,"name":{"124":{},"308":{}},"parent":{}}],["state",{"_index":140,"name":{"167":{},"389":{}},"parent":{}}],["stats",{"_index":15,"name":{"13":{},"370":{}},"parent":{}}],["statspayload",{"_index":143,"name":{"172":{}},"parent":{}}],["stop",{"_index":6,"name":{"5":{},"402":{}},"parent":{}}],["stoppayload",{"_index":122,"name":{"130":{}},"parent":{}}],["suppress",{"_index":107,"name":{"106":{}},"parent":{}}],["systemload",{"_index":221,"name":{"266":{}},"parent":{}}],["t",{"_index":88,"name":{"84":{},"93":{}},"parent":{}}],["tanoffset",{"_index":73,"name":{"70":{}},"parent":{}}],["tanscale",{"_index":74,"name":{"71":{}},"parent":{}}],["thresholdms",{"_index":170,"name":{"210":{}},"parent":{}}],["time",{"_index":141,"name":{"169":{}},"parent":{}}],["timescale",{"_index":43,"name":{"38":{},"53":{},"151":{}},"parent":{}}],["title",{"_index":189,"name":{"232":{},"421":{},"434":{},"447":{}},"parent":{}}],["token",{"_index":91,"name":{"87":{},"116":{}},"parent":{}}],["totalsize",{"_index":317,"name":{"413":{}},"parent":{}}],["track",{"_index":27,"name":{"23":{},"123":{},"188":{},"193":{},"199":{},"209":{},"236":{}},"parent":{}}],["trackdata",{"_index":192,"name":{"235":{}},"parent":{}}],["trackend",{"_index":20,"name":{"17":{},"338":{}},"parent":{}}],["trackendpayload",{"_index":158,"name":{"191":{}},"parent":{}}],["trackerror",{"_index":276,"name":{"340":{}},"parent":{}}],["trackexception",{"_index":21,"name":{"18":{}},"parent":{}}],["trackexceptionpayload",{"_index":161,"name":{"197":{}},"parent":{}}],["trackinfo",{"_index":182,"name":{"226":{}},"parent":{}}],["trackloaded",{"_index":176,"name":{"221":{}},"parent":{}}],["tracks",{"_index":195,"name":{"238":{},"241":{},"316":{}},"parent":{}}],["tracksdata",{"_index":196,"name":{"239":{}},"parent":{}}],["trackstart",{"_index":18,"name":{"16":{},"337":{}},"parent":{}}],["trackstartpayload",{"_index":156,"name":{"186":{}},"parent":{}}],["trackstuck",{"_index":22,"name":{"19":{},"339":{}},"parent":{}}],["trackstuckpayload",{"_index":168,"name":{"207":{}},"parent":{}}],["tremolo",{"_index":44,"name":{"39":{},"57":{},"152":{}},"parent":{}}],["type",{"_index":154,"name":{"183":{},"187":{},"192":{},"198":{},"208":{},"214":{}},"parent":{}}],["unresolvedtrack",{"_index":330,"name":{"444":{}},"parent":{"445":{},"446":{},"447":{},"448":{},"449":{},"450":{}}}],["updatevoicedata",{"_index":288,"name":{"353":{}},"parent":{}}],["uptime",{"_index":147,"name":{"176":{},"275":{}},"parent":{}}],["uri",{"_index":190,"name":{"233":{}},"parent":{}}],["url",{"_index":204,"name":{"251":{},"427":{},"440":{}},"parent":{}}],["used",{"_index":215,"name":{"261":{}},"parent":{}}],["user_id",{"_index":99,"name":{"98":{}},"parent":{}}],["utils",{"_index":1,"name":{"1":{}},"parent":{"2":{},"11":{},"15":{},"21":{},"25":{},"29":{},"34":{},"45":{},"48":{},"53":{},"57":{},"60":{},"63":{},"65":{},"74":{},"79":{},"81":{},"90":{},"108":{},"111":{},"112":{},"121":{},"130":{},"133":{},"137":{},"141":{},"145":{},"158":{},"161":{},"163":{},"164":{},"172":{},"181":{},"185":{},"186":{},"191":{},"197":{},"207":{},"213":{},"220":{},"226":{},"235":{},"238":{},"239":{},"250":{},"259":{},"264":{},"268":{},"272":{},"280":{},"281":{},"289":{},"296":{},"299":{},"307":{},"310":{},"314":{}}}],["utils.channelmix",{"_index":78,"name":{},"parent":{"75":{},"76":{},"77":{},"78":{}}}],["utils.destroypayload",{"_index":134,"name":{},"parent":{"159":{},"160":{}}}],["utils.distortion",{"_index":69,"name":{},"parent":{"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{}}}],["utils.equalizer",{"_index":51,"name":{},"parent":{"46":{},"47":{}}}],["utils.eventpayload",{"_index":153,"name":{},"parent":{"182":{},"183":{},"184":{}}}],["utils.eventtypes",{"_index":19,"name":{},"parent":{"16":{},"17":{},"18":{},"19":{},"20":{}}}],["utils.filters",{"_index":40,"name":{},"parent":{"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{}}}],["utils.filterspayload",{"_index":132,"name":{},"parent":{"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{}}}],["utils.incomingpayload",{"_index":136,"name":{},"parent":{"162":{}}}],["utils.karaoke",{"_index":54,"name":{},"parent":{"49":{},"50":{},"51":{},"52":{}}}],["utils.lavaoptions",{"_index":236,"name":{},"parent":{"290":{},"291":{},"292":{},"293":{},"294":{},"295":{}}}],["utils.loadtypes",{"_index":177,"name":{},"parent":{"221":{},"222":{},"223":{},"224":{},"225":{}}}],["utils.loopmode",{"_index":26,"name":{},"parent":{"22":{},"23":{},"24":{}}}],["utils.lowpass",{"_index":83,"name":{},"parent":{"80":{}}}],["utils.nodecpustats",{"_index":220,"name":{},"parent":{"265":{},"266":{},"267":{}}}],["utils.nodeframestats",{"_index":225,"name":{},"parent":{"269":{},"270":{},"271":{}}}],["utils.nodememorystats",{"_index":214,"name":{},"parent":{"260":{},"261":{},"262":{},"263":{}}}],["utils.nodeoptions",{"_index":205,"name":{},"parent":{"251":{},"252":{},"253":{},"254":{},"255":{},"256":{},"257":{},"258":{}}}],["utils.nodestats",{"_index":229,"name":{},"parent":{"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{}}}],["utils.opcodes",{"_index":4,"name":{},"parent":{"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{}}}],["utils.opincoming",{"_index":14,"name":{},"parent":{"12":{},"13":{},"14":{}}}],["utils.outgoingpayload",{"_index":110,"name":{},"parent":{"109":{},"110":{}}}],["utils.pausepayload",{"_index":125,"name":{},"parent":{"134":{},"135":{},"136":{}}}],["utils.playeroptions",{"_index":247,"name":{},"parent":{"300":{},"301":{},"302":{},"303":{},"304":{},"305":{},"306":{}}}],["utils.playerstates",{"_index":31,"name":{},"parent":{"26":{},"27":{},"28":{}}}],["utils.playerupdatepayload",{"_index":139,"name":{},"parent":{"165":{},"166":{},"167":{},"168":{}}}],["utils.playerupdatepayload.__type",{"_index":142,"name":{},"parent":{"169":{},"170":{},"171":{}}}],["utils.playervoicestates",{"_index":36,"name":{},"parent":{"30":{},"31":{},"32":{},"33":{}}}],["utils.playlist",{"_index":256,"name":{},"parent":{"311":{},"312":{},"313":{}}}],["utils.playoptions",{"_index":254,"name":{},"parent":{"308":{},"309":{}}}],["utils.playpayload",{"_index":118,"name":{},"parent":{"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{}}}],["utils.rotation",{"_index":67,"name":{},"parent":{"64":{}}}],["utils.searchquery",{"_index":244,"name":{},"parent":{"297":{},"298":{}}}],["utils.searchresult",{"_index":258,"name":{},"parent":{"315":{},"316":{},"317":{},"318":{},"319":{}}}],["utils.searchresult.__type",{"_index":260,"name":{},"parent":{"320":{},"321":{}}}],["utils.seekpayload",{"_index":127,"name":{},"parent":{"138":{},"139":{},"140":{}}}],["utils.statspayload",{"_index":144,"name":{},"parent":{"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{}}}],["utils.stoppayload",{"_index":123,"name":{},"parent":{"131":{},"132":{}}}],["utils.timescale",{"_index":59,"name":{},"parent":{"54":{},"55":{},"56":{}}}],["utils.trackdata",{"_index":193,"name":{},"parent":{"236":{},"237":{}}}],["utils.trackendpayload",{"_index":159,"name":{},"parent":{"192":{},"193":{},"194":{},"195":{},"196":{}}}],["utils.trackexceptionpayload",{"_index":162,"name":{},"parent":{"198":{},"199":{},"200":{},"201":{},"205":{},"206":{}}}],["utils.trackexceptionpayload.__type",{"_index":165,"name":{},"parent":{"202":{},"203":{},"204":{}}}],["utils.trackinfo",{"_index":184,"name":{},"parent":{"227":{},"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{}}}],["utils.tracksdata",{"_index":198,"name":{},"parent":{"240":{},"241":{},"242":{},"243":{},"246":{},"247":{}}}],["utils.tracksdata.__type",{"_index":201,"name":{},"parent":{"244":{},"245":{},"248":{},"249":{}}}],["utils.trackstartpayload",{"_index":157,"name":{},"parent":{"187":{},"188":{},"189":{},"190":{}}}],["utils.trackstuckpayload",{"_index":169,"name":{},"parent":{"208":{},"209":{},"210":{},"211":{},"212":{}}}],["utils.tremolo",{"_index":63,"name":{},"parent":{"58":{},"59":{}}}],["utils.vibrato",{"_index":65,"name":{},"parent":{"61":{},"62":{}}}],["utils.voiceserverupdate",{"_index":86,"name":{},"parent":{"82":{},"83":{},"84":{},"85":{},"86":{}}}],["utils.voiceserverupdate.__type",{"_index":92,"name":{},"parent":{"87":{},"88":{},"89":{}}}],["utils.voicestatepayload",{"_index":232,"name":{},"parent":{"282":{},"283":{},"284":{}}}],["utils.voicestatepayload.__type",{"_index":233,"name":{},"parent":{"285":{},"286":{},"287":{},"288":{}}}],["utils.voicestateupdate",{"_index":96,"name":{},"parent":{"91":{},"92":{},"93":{},"94":{},"95":{}}}],["utils.voicestateupdate.__type",{"_index":97,"name":{},"parent":{"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{}}}],["utils.voiceupdatepayload",{"_index":114,"name":{},"parent":{"113":{},"114":{},"115":{},"119":{},"120":{}}}],["utils.voiceupdatepayload.__type",{"_index":115,"name":{},"parent":{"116":{},"117":{},"118":{}}}],["utils.volumepayload",{"_index":130,"name":{},"parent":{"142":{},"143":{},"144":{}}}],["utils.websocketclosedpayload",{"_index":172,"name":{},"parent":{"214":{},"215":{},"216":{},"217":{},"218":{},"219":{}}}],["version",{"_index":0,"name":{"0":{}},"parent":{}}],["vibrato",{"_index":45,"name":{"40":{},"60":{},"153":{}},"parent":{}}],["voice",{"_index":307,"name":{"391":{}},"parent":{}}],["voiceid",{"_index":248,"name":{"301":{}},"parent":{}}],["voiceserverupdate",{"_index":84,"name":{"81":{}},"parent":{}}],["voicestate",{"_index":306,"name":{"390":{}},"parent":{}}],["voicestatepayload",{"_index":231,"name":{"281":{}},"parent":{}}],["voicestateupdate",{"_index":95,"name":{"90":{}},"parent":{}}],["voiceupdate",{"_index":3,"name":{"3":{}},"parent":{}}],["voiceupdatepayload",{"_index":113,"name":{"112":{}},"parent":{}}],["volume",{"_index":9,"name":{"8":{},"35":{},"126":{},"143":{},"148":{},"303":{}},"parent":{}}],["volumepayload",{"_index":129,"name":{"141":{}},"parent":{}}],["websocketclosed",{"_index":23,"name":{"20":{}},"parent":{}}],["websocketclosedpayload",{"_index":171,"name":{"213":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css new file mode 100644 index 0000000..28f90b6 --- /dev/null +++ b/docs/assets/style.css @@ -0,0 +1,1388 @@ +@import url("./icons.css"); + +:root { + /* Light */ + --light-color-background: #fcfcfc; + --light-color-secondary-background: #fff; + --light-color-text: #222; + --light-color-text-aside: #707070; + --light-color-link: #4da6ff; + --light-color-menu-divider: #eee; + --light-color-menu-divider-focus: #000; + --light-color-menu-label: #707070; + --light-color-panel: var(--light-color-secondary-background); + --light-color-panel-divider: #eee; + --light-color-comment-tag: #707070; + --light-color-comment-tag-text: #fff; + --light-color-ts: #9600ff; + --light-color-ts-interface: #647f1b; + --light-color-ts-enum: #937210; + --light-color-ts-class: #0672de; + --light-color-ts-private: #707070; + --light-color-toolbar: #fff; + --light-color-toolbar-text: #333; + --light-icon-filter: invert(0); + --light-external-icon: url("data:image/svg+xml;utf8,"); + + /* Dark */ + --dark-color-background: #36393f; + --dark-color-secondary-background: #2f3136; + --dark-color-text: #ffffff; + --dark-color-text-aside: #e6e4e4; + --dark-color-link: #00aff4; + --dark-color-menu-divider: #eee; + --dark-color-menu-divider-focus: #000; + --dark-color-menu-label: #707070; + --dark-color-panel: var(--dark-color-secondary-background); + --dark-color-panel-divider: #818181; + --dark-color-comment-tag: #dcddde; + --dark-color-comment-tag-text: #2f3136; + --dark-color-ts: #c97dff; + --dark-color-ts-interface: #9cbe3c; + --dark-color-ts-enum: #d6ab29; + --dark-color-ts-class: #3695f3; + --dark-color-ts-private: #e2e2e2; + --dark-color-toolbar: #34373c; + --dark-color-toolbar-text: #ffffff; + --dark-icon-filter: invert(1); + --dark-external-icon: url("data:image/svg+xml;utf8,"); +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-secondary-background: var(--light-color-secondary-background); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-menu-divider: var(--light-color-menu-divider); + --color-menu-divider-focus: var(--light-color-menu-divider-focus); + --color-menu-label: var(--light-color-menu-label); + --color-panel: var(--light-color-panel); + --color-panel-divider: var(--light-color-panel-divider); + --color-comment-tag: var(--light-color-comment-tag); + --color-comment-tag-text: var(--light-color-comment-tag-text); + --color-ts: var(--light-color-ts); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-class: var(--light-color-ts-class); + --color-ts-private: var(--light-color-ts-private); + --color-toolbar: var(--light-color-toolbar); + --color-toolbar-text: var(--light-color-toolbar-text); + --icon-filter: var(--light-icon-filter); + --external-icon: var(--light-external-icon); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-secondary-background: var(--dark-color-secondary-background); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-menu-divider: var(--dark-color-menu-divider); + --color-menu-divider-focus: var(--dark-color-menu-divider-focus); + --color-menu-label: var(--dark-color-menu-label); + --color-panel: var(--dark-color-panel); + --color-panel-divider: var(--dark-color-panel-divider); + --color-comment-tag: var(--dark-color-comment-tag); + --color-comment-tag-text: var(--dark-color-comment-tag-text); + --color-ts: var(--dark-color-ts); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-private: var(--dark-color-ts-private); + --color-toolbar: var(--dark-color-toolbar); + --color-toolbar-text: var(--dark-color-toolbar-text); + --icon-filter: var(--dark-icon-filter); + --external-icon: var(--dark-external-icon); + } +} + +body { + margin: 0; +} + +body.light { + --color-background: var(--light-color-background); + --color-secondary-background: var(--light-color-secondary-background); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-menu-divider: var(--light-color-menu-divider); + --color-menu-divider-focus: var(--light-color-menu-divider-focus); + --color-menu-label: var(--light-color-menu-label); + --color-panel: var(--light-color-panel); + --color-panel-divider: var(--light-color-panel-divider); + --color-comment-tag: var(--light-color-comment-tag); + --color-comment-tag-text: var(--light-color-comment-tag-text); + --color-ts: var(--light-color-ts); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-class: var(--light-color-ts-class); + --color-ts-private: var(--light-color-ts-private); + --color-toolbar: var(--light-color-toolbar); + --color-toolbar-text: var(--light-color-toolbar-text); + --icon-filter: var(--light-icon-filter); + --external-icon: var(--light-external-icon); +} + +body.dark { + --color-background: var(--dark-color-background); + --color-secondary-background: var(--dark-color-secondary-background); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-menu-divider: var(--dark-color-menu-divider); + --color-menu-divider-focus: var(--dark-color-menu-divider-focus); + --color-menu-label: var(--dark-color-menu-label); + --color-panel: var(--dark-color-panel); + --color-panel-divider: var(--dark-color-panel-divider); + --color-comment-tag: var(--dark-color-comment-tag); + --color-comment-tag-text: var(--dark-color-comment-tag-text); + --color-ts: var(--dark-color-ts); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-private: var(--dark-color-ts-private); + --color-toolbar: var(--dark-color-toolbar); + --color-toolbar-text: var(--dark-color-toolbar-text); + --icon-filter: var(--dark-icon-filter); + --external-icon: var(--dark-external-icon); +} + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +h2 { + font-size: 1.5em; + margin: 0.83em 0; +} + +h3 { + font-size: 1.17em; + margin: 1em 0; +} + +h4, +.tsd-index-panel h3 { + font-size: 1em; + margin: 1.33em 0; +} + +h5 { + font-size: 0.83em; + margin: 1.67em 0; +} + +h6 { + font-size: 0.67em; + margin: 2.33em 0; +} + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 40px; +} +@media (max-width: 640px) { + .container { + padding: 0 20px; + } +} + +.container-main { + padding-bottom: 200px; +} + +.row { + display: flex; + position: relative; + margin: 0 -10px; +} +.row:after { + visibility: hidden; + display: block; + content: ""; + clear: both; + height: 0; +} + +.col-4, +.col-8 { + box-sizing: border-box; + float: left; + padding: 0 10px; +} + +.col-4 { + width: 33.3333333333%; +} +.col-8 { + width: 66.6666666667%; +} + +ul.tsd-descriptions > li > :first-child, +.tsd-panel > :first-child, +.col-8 > :first-child, +.col-4 > :first-child, +ul.tsd-descriptions > li > :first-child > :first-child, +.tsd-panel > :first-child > :first-child, +.col-8 > :first-child > :first-child, +.col-4 > :first-child > :first-child, +ul.tsd-descriptions > li > :first-child > :first-child > :first-child, +.tsd-panel > :first-child > :first-child > :first-child, +.col-8 > :first-child > :first-child > :first-child, +.col-4 > :first-child > :first-child > :first-child { + margin-top: 0; +} +ul.tsd-descriptions > li > :last-child, +.tsd-panel > :last-child, +.col-8 > :last-child, +.col-4 > :last-child, +ul.tsd-descriptions > li > :last-child > :last-child, +.tsd-panel > :last-child > :last-child, +.col-8 > :last-child > :last-child, +.col-4 > :last-child > :last-child, +ul.tsd-descriptions > li > :last-child > :last-child > :last-child, +.tsd-panel > :last-child > :last-child > :last-child, +.col-8 > :last-child > :last-child > :last-child, +.col-4 > :last-child > :last-child > :last-child { + margin-bottom: 0; +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } +} +@keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes shift-to-left { + from { + transform: translate(0, 0); + } + to { + transform: translate(-25%, 0); + } +} +@keyframes unshift-to-left { + from { + transform: translate(-25%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } +} +body { + background: var(--color-background); + font-family: "Segoe UI", sans-serif; + font-size: 16px; + color: var(--color-text); +} + +a { + color: var(--color-link); + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 14px; +} + +pre { + padding: 10px; +} +pre code { + padding: 0; + font-size: 100%; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography h4, +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; + margin: 0; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} + +@media (min-width: 901px) and (max-width: 1024px) { + html .col-content { + width: 72%; + } + html .col-menu { + width: 28%; + } + html .tsd-navigation { + padding-left: 10px; + } +} +@media (max-width: 900px) { + html .col-content { + float: none; + width: 100%; + } + html .col-menu { + position: fixed !important; + overflow: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + width: 100%; + padding: 20px 20px 0 0; + max-width: 450px; + visibility: hidden; + background-color: var(--color-panel); + transform: translate(100%, 0); + } + html .col-menu > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu :is(header, footer, .col-content) { + animation: shift-to-left 0.4s; + } + + .to-has-menu .col-menu { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu :is(header, footer, .col-content) { + animation: unshift-to-left 0.4s; + } + + .from-has-menu .col-menu { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu :is(header, footer, .col-content) { + transform: translate(-25%, 0); + } + .has-menu .col-menu { + visibility: visible; + transform: translate(0, 0); + display: grid; + grid-template-rows: auto 1fr; + max-height: 100vh; + } + .has-menu .tsd-navigation { + max-height: 100%; + } +} + +.tsd-page-title { + padding: 70px 0 20px 0; + margin: 0 0 40px 0; + background: var(--color-panel); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.35); +} +.tsd-page-title h1 { + margin: 0; +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +dl.tsd-comment-tags { + overflow: hidden; +} +dl.tsd-comment-tags dt { + float: left; + padding: 1px 5px; + margin: 0 10px 0 0; + border-radius: 4px; + border: 1px solid var(--color-comment-tag); + color: var(--color-comment-tag); + font-size: 0.8em; + font-weight: normal; +} +dl.tsd-comment-tags dd { + margin: 0 0 10px 0; +} +dl.tsd-comment-tags dd:before, +dl.tsd-comment-tags dd:after { + display: table; + content: " "; +} +dl.tsd-comment-tags dd pre, +dl.tsd-comment-tags dd:after { + clear: both; +} +dl.tsd-comment-tags p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.toggle-protected .tsd-is-private { + display: none; +} + +.toggle-public .tsd-is-private, +.toggle-public .tsd-is-protected, +.toggle-public .tsd-is-private-protected { + display: none; +} + +.toggle-inherited .tsd-is-inherited { + display: none; +} + +.toggle-externals .tsd-is-external { + display: none; +} + +#tsd-filter { + position: relative; + display: inline-block; + height: 40px; + vertical-align: bottom; +} +.no-filter #tsd-filter { + display: none; +} +#tsd-filter .tsd-filter-group { + display: inline-block; + height: 40px; + vertical-align: bottom; + white-space: nowrap; +} +#tsd-filter input { + display: none; +} +@media (max-width: 900px) { + #tsd-filter .tsd-filter-group { + display: block; + position: absolute; + top: 40px; + right: 20px; + height: auto; + background-color: var(--color-panel); + visibility: hidden; + transform: translate(50%, 0); + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); + } + .has-options #tsd-filter .tsd-filter-group { + visibility: visible; + } + .to-has-options #tsd-filter .tsd-filter-group { + animation: fade-in 0.2s; + } + .from-has-options #tsd-filter .tsd-filter-group { + animation: fade-out 0.2s; + } + #tsd-filter label, + #tsd-filter .tsd-select { + display: block; + padding-right: 20px; + } +} + +footer { + border-top: 1px solid var(--color-panel-divider); + background-color: var(--color-panel); +} +footer:after { + content: ""; + display: table; +} +footer.with-border-bottom { + border-bottom: 1px solid var(--color-panel-divider); +} +footer .tsd-legend-group { + font-size: 0; +} +footer .tsd-legend { + display: inline-block; + width: 25%; + padding: 0; + font-size: 16px; + list-style: none; + line-height: 1.333em; + vertical-align: top; +} +@media (max-width: 900px) { + footer .tsd-legend { + width: 50%; + } +} + +.tsd-hierarchy { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-index-panel .tsd-index-content { + margin-bottom: -30px !important; +} +.tsd-index-panel .tsd-index-section { + margin-bottom: 30px !important; +} +.tsd-index-panel h3 { + margin: 0 -20px 10px -20px; + padding: 0 20px 10px 20px; + border-bottom: 1px solid var(--color-panel-divider); +} +.tsd-index-panel ul.tsd-index-list { + -webkit-column-count: 3; + -moz-column-count: 3; + -ms-column-count: 3; + -o-column-count: 3; + column-count: 3; + -webkit-column-gap: 20px; + -moz-column-gap: 20px; + -ms-column-gap: 20px; + -o-column-gap: 20px; + column-gap: 20px; + padding: 0; + list-style: none; + line-height: 1.333em; +} +@media (max-width: 900px) { + .tsd-index-panel ul.tsd-index-list { + -webkit-column-count: 1; + -moz-column-count: 1; + -ms-column-count: 1; + -o-column-count: 1; + column-count: 1; + } +} +@media (min-width: 901px) and (max-width: 1024px) { + .tsd-index-panel ul.tsd-index-list { + -webkit-column-count: 2; + -moz-column-count: 2; + -ms-column-count: 2; + -o-column-count: 2; + column-count: 2; + } +} +.tsd-index-panel ul.tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} +.tsd-index-panel a, +.tsd-index-panel .tsd-parent-kind-module a { + color: var(--color-ts); +} +.tsd-index-panel .tsd-parent-kind-interface a { + color: var(--color-ts-interface); +} +.tsd-index-panel .tsd-parent-kind-enum a { + color: var(--color-ts-enum); +} +.tsd-index-panel .tsd-parent-kind-class a { + color: var(--color-ts-class); +} +.tsd-index-panel .tsd-kind-module a { + color: var(--color-ts); +} +.tsd-index-panel .tsd-kind-interface a { + color: var(--color-ts-interface); +} +.tsd-index-panel .tsd-kind-enum a { + color: var(--color-ts-enum); +} +.tsd-index-panel .tsd-kind-class a { + color: var(--color-ts-class); +} +.tsd-index-panel .tsd-is-private a { + color: var(--color-ts-private); +} + +.tsd-flag { + display: inline-block; + padding: 1px 5px; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 14px; + font-weight: normal; +} + +.tsd-anchor { + position: absolute; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} +.tsd-member [data-tsd-kind] { + color: var(--color-ts); +} +.tsd-member [data-tsd-kind="Interface"] { + color: var(--color-ts-interface); +} +.tsd-member [data-tsd-kind="Enum"] { + color: var(--color-ts-enum); +} +.tsd-member [data-tsd-kind="Class"] { + color: var(--color-ts-class); +} +.tsd-member [data-tsd-kind="Private"] { + color: var(--color-ts-private); +} + +.tsd-navigation { + margin: 0 0 0 40px; +} +.tsd-navigation a { + display: block; + padding-top: 2px; + padding-bottom: 2px; + border-left: 2px solid transparent; + color: var(--color-text); + text-decoration: none; + transition: border-left-color 0.1s; +} +.tsd-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul { + margin: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li { + padding: 0; +} + +.tsd-navigation.primary { + padding-bottom: 40px; +} +.tsd-navigation.primary a { + display: block; + padding-top: 6px; + padding-bottom: 6px; +} +.tsd-navigation.primary ul li a { + padding-left: 5px; +} +.tsd-navigation.primary ul li li a { + padding-left: 25px; +} +.tsd-navigation.primary ul li li li a { + padding-left: 45px; +} +.tsd-navigation.primary ul li li li li a { + padding-left: 65px; +} +.tsd-navigation.primary ul li li li li li a { + padding-left: 85px; +} +.tsd-navigation.primary ul li li li li li li a { + padding-left: 105px; +} +.tsd-navigation.primary > ul { + border-bottom: 1px solid var(--color-panel-divider); +} +.tsd-navigation.primary li { + border-top: 1px solid var(--color-panel-divider); +} +.tsd-navigation.primary li.current > a { + font-weight: bold; +} +.tsd-navigation.primary li.label span { + display: block; + padding: 20px 0 6px 5px; + color: var(--color-menu-label); +} +.tsd-navigation.primary li.globals + li > span, +.tsd-navigation.primary li.globals + li > a { + padding-top: 20px; +} + +.tsd-navigation.secondary { + max-height: calc(100vh - 1rem - 40px); + overflow: auto; + position: sticky; + top: calc(0.5rem + 40px); + transition: 0.3s; +} +.tsd-navigation.secondary.tsd-navigation--toolbar-hide { + max-height: calc(100vh - 1rem); + top: 0.5rem; +} +.tsd-navigation.secondary ul { + transition: opacity 0.2s; +} +.tsd-navigation.secondary ul li a { + padding-left: 25px; +} +.tsd-navigation.secondary ul li li a { + padding-left: 45px; +} +.tsd-navigation.secondary ul li li li a { + padding-left: 65px; +} +.tsd-navigation.secondary ul li li li li a { + padding-left: 85px; +} +.tsd-navigation.secondary ul li li li li li a { + padding-left: 105px; +} +.tsd-navigation.secondary ul li li li li li li a { + padding-left: 125px; +} +.tsd-navigation.secondary ul.current a { + border-left-color: var(--color-panel-divider); +} +.tsd-navigation.secondary li.focus > a, +.tsd-navigation.secondary ul.current li.focus > a { + border-left-color: var(--color-menu-divider-focus); +} +.tsd-navigation.secondary li.current { + margin-top: 20px; + margin-bottom: 20px; + border-left-color: var(--color-panel-divider); +} +.tsd-navigation.secondary li.current > a { + font-weight: bold; +} + +@media (min-width: 901px) { + .menu-sticky-wrap { + position: static; + } +} + +.tsd-panel { + margin: 20px 0; + padding: 20px; + background-color: var(--color-panel); + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5em -20px 10px -20px; + padding: 0 20px 10px 20px; + border-bottom: 1px solid var(--color-panel-divider); +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: 0; +} +.tsd-panel table { + display: block; + width: 100%; + overflow: auto; + margin-top: 10px; + word-break: normal; + word-break: keep-all; + border-collapse: collapse; +} +.tsd-panel table th { + font-weight: bold; +} +.tsd-panel table th, +.tsd-panel table td { + padding: 6px 13px; + border: 1px solid var(--color-panel-divider); +} +.tsd-panel table tr { + background: var(--color-background); +} +.tsd-panel table tr:nth-child(even) { + background: var(--color-secondary-background); +} + +.tsd-panel-group { + margin: 60px 0; +} +.tsd-panel-group > h1, +.tsd-panel-group > h2, +.tsd-panel-group > h3 { + padding-left: 20px; + padding-right: 20px; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 40px; + height: 40px; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + padding: 0 10px; + background-color: var(--color-background); +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-panel); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current, +#tsd-search .results li:hover { + background-color: var(--color-panel-divider); +} +#tsd-search .results a { + display: block; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-panel-divider); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +.tsd-signature { + margin: 0 0 1em 0; + padding: 10px; + border: 1px solid var(--color-panel-divider); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} +.tsd-signature.tsd-kind-icon { + padding-left: 30px; +} +.tsd-signature.tsd-kind-icon:before { + top: 10px; + left: 10px; +} +.tsd-panel > .tsd-signature { + margin-left: -20px; + margin-right: -20px; + border-width: 1px 0; +} +.tsd-panel > .tsd-signature.tsd-kind-icon { + padding-left: 40px; +} +.tsd-panel > .tsd-signature.tsd-kind-icon:before { + left: 20px; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + border: 1px solid var(--color-panel-divider); +} +.tsd-signatures .tsd-signature { + margin: 0; + border-width: 1px 0 0 0; + transition: background-color 0.1s; +} +.tsd-signatures .tsd-signature:first-child { + border-top-width: 0; +} +.tsd-signatures .tsd-signature.current { + background-color: var(--color-panel-divider); +} +.tsd-signatures.active > .tsd-signature { + cursor: pointer; +} +.tsd-panel > .tsd-signatures { + margin-left: -20px; + margin-right: -20px; + border-width: 1px 0; +} +.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon { + padding-left: 40px; +} +.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon:before { + left: 20px; +} +.tsd-panel > a.anchor + .tsd-signatures { + border-top-width: 0; + margin-top: -20px; +} + +ul.tsd-descriptions { + position: relative; + overflow: hidden; + padding: 0; + list-style: none; +} +ul.tsd-descriptions.active > .tsd-description { + display: none; +} +ul.tsd-descriptions.active > .tsd-description.current { + display: block; +} +ul.tsd-descriptions.active > .tsd-description.fade-in { + animation: fade-in-delayed 0.3s; +} +ul.tsd-descriptions.active > .tsd-description.fade-out { + animation: fade-out-delayed 0.3s; + position: absolute; + display: block; + top: 0; + left: 0; + right: 0; + opacity: 0; + visibility: hidden; +} +ul.tsd-descriptions h4, +ul.tsd-descriptions .tsd-index-panel h3, +.tsd-index-panel ul.tsd-descriptions h3 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} + +ul.tsd-parameters, +ul.tsd-type-parameters { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameters > li.tsd-parameter-signature, +ul.tsd-type-parameters > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameters h5, +ul.tsd-type-parameters h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +ul.tsd-parameters .tsd-comment, +ul.tsd-type-parameters .tsd-comment { + margin-top: -0.5em; +} + +.tsd-sources { + font-size: 14px; + color: var(--color-text-aside); + margin: 0 0 1em 0; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul, +.tsd-sources p { + margin: 0 !important; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: fixed; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 40px; + color: var(--color-toolbar-text); + background: var(--color-toolbar); + border-bottom: 1px solid var(--color-panel-divider); + transition: transform 0.3s linear; +} +.tsd-page-toolbar a { + color: var(--color-toolbar-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .table-wrap { + display: table; + width: 100%; + height: 40px; +} +.tsd-page-toolbar .table-cell { + display: table-cell; + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} + +.tsd-page-toolbar--hide { + transform: translateY(-100%); +} + +.tsd-select .tsd-select-list li:before, +.tsd-select .tsd-select-label:before, +.tsd-widget:before { + content: ""; + display: inline-block; + width: 40px; + height: 40px; + margin: 0 -8px 0 0; + background-image: url(./widgets.png); + background-repeat: no-repeat; + text-indent: -1024px; + vertical-align: bottom; + filter: var(--icon-filter); +} +@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { + .tsd-select .tsd-select-list li:before, + .tsd-select .tsd-select-label:before, + .tsd-widget:before { + background-image: url(./widgets@2x.png); + background-size: 320px 40px; + } +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: opacity 0.1s, background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-panel-divider); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} +.tsd-widget.search:before { + background-position: 0 0; +} +.tsd-widget.menu:before { + background-position: -40px 0; +} +.tsd-widget.options:before { + background-position: -80px 0; +} +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +@media (max-width: 900px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +.tsd-select { + position: relative; + display: inline-block; + height: 40px; + transition: opacity 0.1s, background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-select .tsd-select-label { + opacity: 0.6; + transition: opacity 0.2s; +} +.tsd-select .tsd-select-label:before { + background-position: -240px 0; +} +.tsd-select.active .tsd-select-label { + opacity: 0.8; +} +.tsd-select.active .tsd-select-list { + visibility: visible; + opacity: 1; + transition-delay: 0s; +} +.tsd-select .tsd-select-list { + position: absolute; + visibility: hidden; + top: 40px; + left: 0; + margin: 0; + padding: 0; + opacity: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); + transition: visibility 0s 0.2s, opacity 0.2s; +} +.tsd-select .tsd-select-list li { + padding: 0 20px 0 0; + background-color: var(--color-background); +} +.tsd-select .tsd-select-list li:before { + background-position: 40px 0; +} +.tsd-select .tsd-select-list li:nth-child(even) { + background-color: var(--color-panel); +} +.tsd-select .tsd-select-list li:hover { + background-color: var(--color-panel-divider); +} +.tsd-select .tsd-select-list li.selected:before { + background-position: -200px 0; +} +@media (max-width: 900px) { + .tsd-select .tsd-select-list { + top: 0; + left: auto; + right: 100%; + margin-right: -5px; + } + .tsd-select .tsd-select-label:before { + background-position: -280px 0; + } +} + +img { + max-width: 100%; +} diff --git a/docs/assets/widgets.png b/docs/assets/widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..c7380532ac1b45400620011c37c4dcb7aec27a4c GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0y~yU~~YoH8@y+q^jrZML>b&o-U3d6^w6h1+IPUz|;DW zIZ;96kdsD>Qv^q=09&hp0GpEni<1IR%gvP3v%OR9*{MuRTKWHZyIbuBt)Ci`cU_&% z1T+i^Y)o{%281-<3TpPAUTzw5v;RY=>1rvxmPl96#kYc9hX!6V^nB|ad#(S+)}?8C zr_H+lT3B#So$T=?$(w3-{rbQ4R<@nsf$}$hwSO)A$8&`(j+wQf=Jwhb0`CvhR5DCf z^OgI)KQemrUFPH+UynC$Y~QHG%DbTVh-Skz{enNU)cV_hPu~{TD7TPZl>0&K>iuE| z7AYn$7)Jrb9GE&SfQW4q&G*@N|4cHI`VakFa5-C!ov&XD)J(qp$rJJ*9e z-sHv}#g*T7Cv048d1v~BEAzM5FztAse#q78WWC^BUCzQ U&wLp6h6BX&boFyt=akR{0G%$)mH+?% literal 0 HcmV?d00001 diff --git a/docs/assets/widgets@2x.png b/docs/assets/widgets@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4bbbd57272f3b28f47527d4951ad10f950b8ad43 GIT binary patch literal 855 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xe12~w0Jcmn z@(X6T|9^jgLcx21{)7exgY)a>N6m2F0<`Rqr;B4q1>>88jUdw-7W`c)zLE*mq8W2H z-<&Jl_Hco5BuC5n@AbF5GD82~-e8-v=#zCyUX0F-o}8pPfAv`!GN$ff+TL<~@kgt} z62eO?_|&+>xBmM$@p|z`tIKEdpPf8%qI>4r7@jn<=eta*{3~?g(zz{Ke9zc-G^gr? z-7foa?LcS!hmbwzru}ICvbWLlW8;+l-}!^=c32!^nV`+`C*;0-*Y%l94pC;Cb3GXz zzSf%a!{gVr{Y_lVuUj+a)*Ca+!-Hu%xmP&&X-2CuANY8^i{D7Kg6qzP zXz_ps9+lN8ESH{K4`yu&b~I>N9xGlE&;2u*b?+Go!AhN?m-bxlLvtC#MzDF2kFzfHJ1W7ybqdefSqVhbOykd*Yi%EDuhs z4wF{ft^bv2+DDnKb8gj1FuvcV`M}luS>lO<^)8x>y1#R;a=-ZKwWTQQb)ioBbi;zh zD!f5V)8581to1LL7c9!l^PSC$NBPYif!_vAZhmL4)v4U)4UsrLYiH_9rmQDd?)(e5 z^pcH>qvBg*i0dus2r*mp4;zKvu=P#s-ti;2obl`NjjwoYd>e(oo#j_uyRb<7Pv^If zzZ|mGHmV)8^tbO%^>eqMw(@7(&3g{jEp-Najo7V75xI_ZHK*FA`elF{r5}E*d7+j_R literal 0 HcmV?d00001 diff --git a/docs/classes/CoffeeLava.html b/docs/classes/CoffeeLava.html new file mode 100644 index 0000000..e97bf09 --- /dev/null +++ b/docs/classes/CoffeeLava.html @@ -0,0 +1,19 @@ +CoffeeLava | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class CoffeeLava

+

The main hub for interacting with Lavalink and using LavaCoffee

+

Hierarchy

Index

Constructors

constructor

  • Parameters

    Returns CoffeeLava

Properties

Optional clientID

clientID?: string

Readonly nodes

nodes: Map<string, CoffeeNode> = ...

options

options: LavaOptions

Readonly players

players: Map<string, CoffeePlayer> = ...

Accessors

leastLoadNode

  • Returns undefined | CoffeeNode

leastUsedNode

  • Returns undefined | CoffeeNode

Methods

add

  • +

    Add a node

    +

    Parameters

    Returns void

create

  • +

    Create a player or return one if it already exists

    +

    Parameters

    Returns CoffeePlayer

decodeTrack

  • decodeTrack(track: string): Promise<TrackData>
  • +

    Decode the base64 track into TrackData

    +

    Parameters

    • track: string

    Returns Promise<TrackData>

destroy

  • destroy(guildID: string): void
  • +

    Destroy a player if it exist

    +

    Parameters

    • guildID: string

    Returns void

get

  • +

    Return a player or undefined if it doesn't exist

    +

    Parameters

    • guildID: string

    Returns undefined | CoffeePlayer

init

  • init(clientID: string): void
  • +

    Initiate the Lavalink client

    +

    Parameters

    • clientID: string

    Returns void

search

  • +

    Searches some tracks based off the URL or the source property

    +

    Parameters

    Returns Promise<SearchResult>

updateVoiceData

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/classes/CoffeeNode.html b/docs/classes/CoffeeNode.html new file mode 100644 index 0000000..5e55742 --- /dev/null +++ b/docs/classes/CoffeeNode.html @@ -0,0 +1,21 @@ +CoffeeNode | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class CoffeeNode

Hierarchy

Index

Constructors

constructor

Properties

calls

calls: number = 0
+

Sums of http request calls since created

+

connected

connected: boolean = false
+

Whether the node already connected via websocket

+

Readonly http

http: Pool
+

The http clients pool for http calls

+

Readonly lava

options

options: NodeOptions
+

The node options

+

Optional socket

socket?: WebSocket
+

The node websocket if connected

+

stats

stats: NodeStats
+

The node stats

+

Methods

connect

  • connect(): void
  • +

    Connect to the node via socket

    +

    Returns void

destroy

  • destroy(): void
  • +

    Destroy the node connection

    +

    Returns void

request

  • request<T>(endpoint: string): Promise<T>
  • +

    Do http(s) request to the node

    +

    Type parameters

    • T

    Parameters

    • endpoint: string

    Returns Promise<T>

send

  • +

    Send data to the node

    +

    Parameters

    Returns Promise<boolean>

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/classes/CoffeePlayer.html b/docs/classes/CoffeePlayer.html new file mode 100644 index 0000000..8812f9d --- /dev/null +++ b/docs/classes/CoffeePlayer.html @@ -0,0 +1,53 @@ +CoffeePlayer | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class CoffeePlayer

Hierarchy

  • CoffeePlayer

Index

Constructors

constructor

Properties

filters

filters: Filters = {}
+

The player filters

+

Readonly lava

+

The player manager

+

loop

loop: LoopMode = LoopMode.None
+

The player loop mode

+

Readonly options

options: PlayerOptions
+

The player options

+

Optional playOptions

playOptions?: PlayOptions
+

The player play options if its currently playing

+

position

position: number = 0
+

The player position in milliseconds

+

Readonly queue

queue: CoffeeQueue = ...
+

The queue for the player

+

replaying

replaying: boolean = false
+

Wether the player is currently replaying

+

state

state: PlayerStates = PlayerStates.Paused
+

The player state

+

voice

voice: VoiceUpdatePayload = ...
+

The player voice payload

+

voiceState

voiceState: PlayerVoiceStates = PlayerVoiceStates.Disconnected
+

The player voice state

+

Accessors

node

  • +

    The node used by player

    +

    Returns CoffeeNode

Methods

connect

  • connect(): void
  • +

    Connect to the voice channel

    +

    Returns void

destroy

  • destroy(): void
  • +

    Destroy the player

    +

    Returns void

disconnect

  • disconnect(): void
  • +

    Disconenct from the voice channel

    +

    Returns void

get

  • get<T>(key: string): undefined | T
  • +

    Get a property from metadata

    +

    Type parameters

    • T

    Parameters

    • key: string

    Returns undefined | T

patchFilters

  • patchFilters(): void
  • +

    Patch the player filters

    +

    Returns void

pause

  • pause(pause: boolean): void
  • +

    Pause the current track

    +

    Parameters

    • pause: boolean

    Returns void

play

  • +

    Play the next track in queue

    +

    Parameters

    Returns Promise<void>

seek

  • seek(position: number): void
  • +

    Seek to the position in current track

    +

    Parameters

    • position: number

    Returns void

set

  • set(key: string, value: unknown): void
  • +

    Set a property into metadata

    +

    Parameters

    • key: string
    • value: unknown

    Returns void

setFilters

  • +

    Set the player filters

    +

    Parameters

    Returns void

setLoop

  • +

    Set the player loop mode

    +

    Parameters

    Returns void

setNode

  • setNode(node: string): void
  • +

    Move the player to another node

    +

    Parameters

    • node: string

    Returns void

setVolume

  • setVolume(volume?: number): void
  • +

    Set the player volume

    +

    Parameters

    • Optional volume: number

    Returns void

stop

  • stop(amount?: number): void
  • +

    Stops the current track, optionally give an amount to skip to, e.g 5 would play the 5th song

    +

    Parameters

    • Optional amount: number

    Returns void

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/classes/CoffeeQueue.html b/docs/classes/CoffeeQueue.html new file mode 100644 index 0000000..d1cb808 --- /dev/null +++ b/docs/classes/CoffeeQueue.html @@ -0,0 +1,23 @@ +CoffeeQueue | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class CoffeeQueue

+

The player's queue, the current property is the currently playing track, think of the rest as the up-coming tracks

+

Hierarchy

Index

Constructors

constructor

  • Parameters

    • arrayLength: number

    Returns CoffeeQueue

  • Parameters

    Returns CoffeeQueue

Properties

Optional current

+

The current track

+

Optional previous

+

The previous track

+

Accessors

duration

  • get duration(): number
  • +

    The total duration of the queue

    +

    Returns number

size

  • get size(): number
  • +

    The size of the tracks in the queue

    +

    Returns number

totalSize

  • get totalSize(): number
  • +

    The total size of tracks in the queue including the current track

    +

    Returns number

Methods

add

clear

  • clear(): void
  • +

    Clear the queue

    +

    Returns void

progress

remove

  • +

    Removes an amount of tracks using a exclusive start and end exclusive index, returning the removed tracks, EXCLUDING THE current TRACK

    +

    Parameters

    • start: number
    • Optional end: number

    Returns (CoffeeTrack | UnresolvedTrack)[]

shuffle

  • shuffle(): void
  • +

    Shuffle the queue

    +

    Returns void

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/classes/CoffeeTrack.html b/docs/classes/CoffeeTrack.html new file mode 100644 index 0000000..7fb2973 --- /dev/null +++ b/docs/classes/CoffeeTrack.html @@ -0,0 +1,27 @@ +CoffeeTrack | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class CoffeeTrack

Hierarchy

  • CoffeeTrack

Implements

Index

Constructors

constructor

  • Parameters

    Returns CoffeeTrack

Properties

author

author: string
+

The author of the track

+

Readonly base64

base64: string
+

The base 64 encoded of track

+

duration

duration: number
+

The duration of the track

+

identifier

identifier: string
+

The identifier of the track

+

isSeekable

isSeekable: boolean
+

Whether the track is seekable

+

isStream

isStream: boolean
+

Whether the track is a stream

+

Optional Readonly requester

requester?: unknown
+

The requester of the track if any

+

source

source: string
+

The source of the track

+

title

title: string
+

The title of the track

+

url

url: string
+

The url of the track

+

Methods

build

  • +

    Build TrackInfo into ITrack

    +

    Parameters

    Returns void

displayThumbnail

  • displayThumbnail(size?: string): undefined | string
  • +

    Display thumbnail url if source is youtube

    +

    Parameters

    • size: string = "default"

    Returns undefined | string

Static isTrack

  • +

    Check if obj is a valid Track

    +

    Parameters

    • obj: unknown

    Returns obj is CoffeeTrack

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/classes/UnresolvedTrack.html b/docs/classes/UnresolvedTrack.html new file mode 100644 index 0000000..6651e7c --- /dev/null +++ b/docs/classes/UnresolvedTrack.html @@ -0,0 +1 @@ +UnresolvedTrack | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class UnresolvedTrack

Hierarchy

  • UnresolvedTrack

Index

Constructors

constructor

  • new UnresolvedTrack(title: string, author?: string, duration?: number, requester?: unknown): UnresolvedTrack
  • Parameters

    • title: string
    • Optional author: string
    • Optional duration: number
    • Optional requester: unknown

    Returns UnresolvedTrack

Properties

Optional Readonly author

author?: string

Optional Readonly duration

duration?: number

Optional Readonly requester

requester?: unknown

Readonly title

title: string

Methods

Static isUnresolved

  • Parameters

    • obj: unknown

    Returns obj is UnresolvedTrack

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/enums/Utils.EventTypes.html b/docs/enums/Utils.EventTypes.html new file mode 100644 index 0000000..14d071b --- /dev/null +++ b/docs/enums/Utils.EventTypes.html @@ -0,0 +1 @@ +EventTypes | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Enumeration EventTypes

Index

Enumeration members

TrackEnd

TrackEnd = "TrackEndEvent"

TrackException

TrackException = "TrackExceptionEvent"

TrackStart

TrackStart = "TrackStartEvent"

TrackStuck

TrackStuck = "TrackStuckEvent"

WebSocketClosed

WebSocketClosed = "WebSocketClosedEvent"

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/enums/Utils.LoadTypes.html b/docs/enums/Utils.LoadTypes.html new file mode 100644 index 0000000..b427201 --- /dev/null +++ b/docs/enums/Utils.LoadTypes.html @@ -0,0 +1 @@ +LoadTypes | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Enumeration LoadTypes

Index

Enumeration members

LoadFailed

LoadFailed = "LOAD_FAILED"

NoMatches

NoMatches = "NO_MATCHES"

PlaylistLoaded

PlaylistLoaded = "PLAYLIST_LOADED"

SearchResult

SearchResult = "SEARCH_RESULT"

TrackLoaded

TrackLoaded = "TRACK_LOADED"

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/enums/Utils.LoopMode.html b/docs/enums/Utils.LoopMode.html new file mode 100644 index 0000000..320b890 --- /dev/null +++ b/docs/enums/Utils.LoopMode.html @@ -0,0 +1 @@ +LoopMode | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Enumeration LoopMode

Index

Enumeration members

Enumeration members

None

None = 0

Queue

Queue = 2

Track

Track = 1

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/enums/Utils.OpCodes.html b/docs/enums/Utils.OpCodes.html new file mode 100644 index 0000000..1b2d707 --- /dev/null +++ b/docs/enums/Utils.OpCodes.html @@ -0,0 +1 @@ +OpCodes | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Enumeration OpCodes

Index

Enumeration members

Destroy

Destroy = "destroy"

Filters

Filters = "filters"

Pause

Pause = "pause"

Play

Play = "play"

Seek

Seek = "seek"

Stop

Stop = "stop"

VoiceUpdate

VoiceUpdate = "voiceUpdate"

Volume

Volume = "volume"

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/enums/Utils.OpIncoming.html b/docs/enums/Utils.OpIncoming.html new file mode 100644 index 0000000..e2402d3 --- /dev/null +++ b/docs/enums/Utils.OpIncoming.html @@ -0,0 +1 @@ +OpIncoming | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Enumeration OpIncoming

Index

Enumeration members

Enumeration members

Event

Event = "event"

PlayerUpdate

PlayerUpdate = "playerUpdate"

Stats

Stats = "stats"

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/enums/Utils.PlayerStates.html b/docs/enums/Utils.PlayerStates.html new file mode 100644 index 0000000..2969361 --- /dev/null +++ b/docs/enums/Utils.PlayerStates.html @@ -0,0 +1 @@ +PlayerStates | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Enumeration PlayerStates

Index

Enumeration members

Enumeration members

Destroyed

Destroyed = 2

Paused

Paused = 1

Playing

Playing = 0

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/enums/Utils.PlayerVoiceStates.html b/docs/enums/Utils.PlayerVoiceStates.html new file mode 100644 index 0000000..eb85273 --- /dev/null +++ b/docs/enums/Utils.PlayerVoiceStates.html @@ -0,0 +1 @@ +PlayerVoiceStates | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Enumeration PlayerVoiceStates

Index

Enumeration members

Connected

Connected = 1

Connecting

Connecting = 0

Disconnected

Disconnected = 3

Disconnecting

Disconnecting = 2

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..4af2972 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,129 @@ +lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

lavacoffee

+ +

lavacoffee

+
+
+

A lightweight and rich-featured lavalink wrapper for node.js

+
+
+

Install and grab some coffee ☕

+
+

NPM Version +NPM Downloads

+ + +

Table Of Contents

+
+ + + +

Features

+
+
    +
  • Easy-to-use
  • +
  • Lightweight and performant
  • +
+ + +

Installation

+
+
+

NPM (Stable) => npm install lavacoffee

+
+
+

Github (Dev) => npm install XzFirzal/lavacoffee#main

+
+ + +

Documentation

+
+
+

https://xzfirzal.github.io/lavacoffee

+
+ + +

Getting Lavalink

+
+

Download the latest binaries from the CI Server (Dev)

+

Put an application.yml in your working directory.

+

Run with java -jar Lavalink.jar

+

Docker images are available on the Docker hub.

+ + +

Test

+
+

Test Bot

+
+

npm run test

+
+ + +

Examples

+
+ + +

Init

+
+
// Importing lava instance constructor
import { CoffeeLava } from "lavacoffee"

// Construct the lava instance
const lava = new CoffeeLava(lavaOptions)

// Init the lava instance
lava.init(clientID) +
+ + +

Nodes

+
+
// Adding a node
lava.add(nodeOptions)

// More nodes
lava.add(nodeOptions1)
lava.add(nodeOptions2)
... +
+ + +

Voice Updates

+
+
// Payload can be voice state update payload or voice server update payload
lava.updateVoiceData(payload) +
+ + +

Events

+
+
+

LavaEvents

+
+ + +

Players

+
+ + +

Creating

+
+
// THis will create a new player or get an existing if exist
const player = lava.create(playerOptions)

// Connect to voice channel
player.options.voiceID = voiceChannelID
player.connect()

// Adding tracks
player.queue.add(tracks)

// Play
player.play()
... +
+ + +

Getting

+
+
// Use this if you only want to get a player without creating it
const player = lava.get(guildID)

if (!player) return

// Getting queue
const queue = player.queue

// Getting current track
const track = player.queue.current
... +
+ + +

Replaying

+
+
/**
* When player is disconnected from node
* it will automatically move to another node
* then replay the track on current position
* you can disable this behaviour with setting
* `autoReplay` to false in LavaOptions
*/

// Replay events

// When successfully replayed
lava.on("playerReplay", player => { ... })

// When there's an error while replaying
lava.on("replayError", (player, error) => { ... })
... +
+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/ITrack.html b/docs/interfaces/ITrack.html new file mode 100644 index 0000000..159fd06 --- /dev/null +++ b/docs/interfaces/ITrack.html @@ -0,0 +1,17 @@ +ITrack | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface ITrack

Hierarchy

  • ITrack

Implemented by

Index

Properties

author

author: string
+

The author of the track

+

duration

duration: number
+

The duration of the track

+

identifier

identifier: string
+

The identifier of the track

+

isSeekable

isSeekable: boolean
+

Whether the track is seekable

+

isStream

isStream: boolean
+

Whether the track is a stream

+

source

source: string
+

The source of the track

+

title

title: string
+

The title of the track

+

url

url: string
+

The url of the track

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/LavaEvents.html b/docs/interfaces/LavaEvents.html new file mode 100644 index 0000000..2b1422a --- /dev/null +++ b/docs/interfaces/LavaEvents.html @@ -0,0 +1,39 @@ +LavaEvents | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface LavaEvents

Hierarchy

  • LavaEvents

Index

Methods

nodeConnect

  • +

    Emitted when a node connects

    +

    Parameters

    Returns void

nodeCreate

  • +

    Emitted when a node is created

    +

    Parameters

    Returns void

nodeDestroy

  • +

    Emitted when a node is destroyed

    +

    Parameters

    Returns void

nodeDisconnect

  • nodeDisconnect(node: CoffeeNode, reason: { code: number; reason: string }): void
  • +

    Emitted when a Node disconnects

    +

    Parameters

    • node: CoffeeNode
    • reason: { code: number; reason: string }
      • code: number
      • reason: string

    Returns void

nodeError

  • +

    Emitted when a Node has an error

    +

    Parameters

    Returns void

nodeRaw

  • +

    Emitted whenever any Lavalink event is received

    +

    Parameters

    Returns void

nodeReconnect

  • +

    Emitted when a Node reconnects

    +

    Parameters

    Returns void

playerCreate

  • +

    Emitted whenever a Player is created

    +

    Parameters

    Returns void

playerDestroy

  • +

    Emitted whenever a Player is destroyed

    +

    Parameters

    Returns void

playerMove

  • playerMove(player: CoffeePlayer, oldChannel: undefined | string, newChannel: undefined | string): void
  • +

    Emitted whenever a Player is moved to other channel

    +

    Parameters

    • player: CoffeePlayer
    • oldChannel: undefined | string
    • newChannel: undefined | string

    Returns void

playerReplay

  • +

    Emitted whenever a Player is replaying after moving node

    +

    Parameters

    Returns void

queueEnd

queueStart

replayError

  • +

    Emitted whenever an error occured when replaying track

    +

    Parameters

    Returns void

socketClosed

trackEnd

trackError

trackStart

trackStuck

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/NodeEvents.html b/docs/interfaces/NodeEvents.html new file mode 100644 index 0000000..b7f63f9 --- /dev/null +++ b/docs/interfaces/NodeEvents.html @@ -0,0 +1,17 @@ +NodeEvents | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface NodeEvents

Hierarchy

  • NodeEvents

Index

Methods

connect

  • connect(): void
  • +

    Emitted when node connects

    +

    Returns void

destroy

  • destroy(): void
  • +

    Emitted when node is destroyed

    +

    Returns void

disconnect

  • disconnect(reason: { code: number; reason: string }): void
  • +

    Emitted when node disconnects

    +

    Parameters

    • reason: { code: number; reason: string }
      • code: number
      • reason: string

    Returns void

error

  • error(error: Error): void
  • +

    Emitted when node has an error

    +

    Parameters

    • error: Error

    Returns void

event

  • +

    Emitted whenever any Lavalink event is received

    +

    Parameters

    Returns void

playerUpdate

  • playerUpdate(guildID: string, state: { connected: boolean; position: number; time: number }): void
  • +

    Emitted whenever playerUpdate is received

    +

    Parameters

    • guildID: string
    • state: { connected: boolean; position: number; time: number }
      • connected: boolean
      • position: number
      • time: number

    Returns void

raw

  • +

    Emitted whenever any Lavalink incoming message is received

    +

    Parameters

    Returns void

reconnect

  • reconnect(): void
  • +

    Emitted when node reconnects

    +

    Returns void

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.ChannelMix.html b/docs/interfaces/Utils.ChannelMix.html new file mode 100644 index 0000000..6b45b94 --- /dev/null +++ b/docs/interfaces/Utils.ChannelMix.html @@ -0,0 +1 @@ +ChannelMix | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface ChannelMix

Hierarchy

  • ChannelMix

Index

Properties

leftToLeft

leftToLeft: number

leftToRight

leftToRight: number

rightToLeft

rightToLeft: number

rightToRight

rightToRight: number

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.DestroyPayload.html b/docs/interfaces/Utils.DestroyPayload.html new file mode 100644 index 0000000..edbe34e --- /dev/null +++ b/docs/interfaces/Utils.DestroyPayload.html @@ -0,0 +1 @@ +DestroyPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface DestroyPayload

Hierarchy

Index

Properties

Properties

guildId

guildId: string

op

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.Distortion.html b/docs/interfaces/Utils.Distortion.html new file mode 100644 index 0000000..f302af3 --- /dev/null +++ b/docs/interfaces/Utils.Distortion.html @@ -0,0 +1 @@ +Distortion | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Distortion

Hierarchy

  • Distortion

Index

Properties

cosOffset

cosOffset: number

cosScale

cosScale: number

offset

offset: number

scale

scale: number

sinOffset

sinOffset: number

sinScale

sinScale: number

tanOffset

tanOffset: number

tanScale

tanScale: number

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.Equalizer.html b/docs/interfaces/Utils.Equalizer.html new file mode 100644 index 0000000..cfbdb31 --- /dev/null +++ b/docs/interfaces/Utils.Equalizer.html @@ -0,0 +1,5 @@ +Equalizer | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Equalizer

Hierarchy

  • Equalizer

Index

Properties

Properties

band

band: number
+

The equalizer band, can be 0-14

+

gain

gain: number
+

Multipler for the given band, can be 0.25 to 1.0

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.EventPayload.html b/docs/interfaces/Utils.EventPayload.html new file mode 100644 index 0000000..6d9ed8f --- /dev/null +++ b/docs/interfaces/Utils.EventPayload.html @@ -0,0 +1 @@ +EventPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface EventPayload

Hierarchy

Index

Properties

Properties

guildId

guildId: string

op

op: Event

type

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.Filters.html b/docs/interfaces/Utils.Filters.html new file mode 100644 index 0000000..296b2a5 --- /dev/null +++ b/docs/interfaces/Utils.Filters.html @@ -0,0 +1,21 @@ +Filters | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Filters

Hierarchy

Index

Properties

Optional channelMix

channelMix?: ChannelMix
+

Mixes both channels (left and right), with a configurable factor on how much each channel affects the other

+

Optional distortion

distortion?: Distortion
+

Distortion effect. It can generate some pretty unique audio effects

+

Optional equalizer

equalizer?: Equalizer[]
+

The equalizer filters

+

Optional karaoke

karaoke?: Karaoke
+

Uses equalization to eliminate part of a band, usually targeting vocals

+

Optional lowPass

lowPass?: LowPass
+

Higher frequencies get suppressed, while lower frequencies pass through this filter, thus the name low pass

+

Optional rotation

rotation?: Rotation
+

Rotates the sound around the stereo channels/user headphones aka Audio Panning

+

Optional timescale

timescale?: TimeScale
+

Changes the speed, pitch, and rate. All default to 1

+

Optional tremolo

tremolo?: Tremolo
+

Uses amplification to create a shuddering effect, where the volume quickly oscillates

+

Optional vibrato

vibrato?: Vibrato
+

Similar to tremolo. While tremolo oscillates the volume, vibrato oscillates the pitch

+

Optional volume

volume?: number
+

The volume filter

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.FiltersPayload.html b/docs/interfaces/Utils.FiltersPayload.html new file mode 100644 index 0000000..7791713 --- /dev/null +++ b/docs/interfaces/Utils.FiltersPayload.html @@ -0,0 +1,21 @@ +FiltersPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface FiltersPayload

Hierarchy

Index

Properties

Optional channelMix

channelMix?: ChannelMix
+

Mixes both channels (left and right), with a configurable factor on how much each channel affects the other

+

Optional distortion

distortion?: Distortion
+

Distortion effect. It can generate some pretty unique audio effects

+

Optional equalizer

equalizer?: Equalizer[]
+

The equalizer filters

+

guildId

guildId: string

Optional karaoke

karaoke?: Karaoke
+

Uses equalization to eliminate part of a band, usually targeting vocals

+

Optional lowPass

lowPass?: LowPass
+

Higher frequencies get suppressed, while lower frequencies pass through this filter, thus the name low pass

+

op

Optional rotation

rotation?: Rotation
+

Rotates the sound around the stereo channels/user headphones aka Audio Panning

+

Optional timescale

timescale?: TimeScale
+

Changes the speed, pitch, and rate. All default to 1

+

Optional tremolo

tremolo?: Tremolo
+

Uses amplification to create a shuddering effect, where the volume quickly oscillates

+

Optional vibrato

vibrato?: Vibrato
+

Similar to tremolo. While tremolo oscillates the volume, vibrato oscillates the pitch

+

Optional volume

volume?: number
+

The volume filter

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.IncomingPayload.html b/docs/interfaces/Utils.IncomingPayload.html new file mode 100644 index 0000000..a0b2efb --- /dev/null +++ b/docs/interfaces/Utils.IncomingPayload.html @@ -0,0 +1 @@ +IncomingPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface IncomingPayload

Hierarchy

Index

Properties

Properties

op

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.Karaoke.html b/docs/interfaces/Utils.Karaoke.html new file mode 100644 index 0000000..9677f39 --- /dev/null +++ b/docs/interfaces/Utils.Karaoke.html @@ -0,0 +1 @@ +Karaoke | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Karaoke

Hierarchy

  • Karaoke

Index

Properties

filterBand

filterBand: number

filterWidth

filterWidth: number

level

level: number

monoLevel

monoLevel: number

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.LavaOptions.html b/docs/interfaces/Utils.LavaOptions.html new file mode 100644 index 0000000..1df2694 --- /dev/null +++ b/docs/interfaces/Utils.LavaOptions.html @@ -0,0 +1,13 @@ +LavaOptions | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface LavaOptions

Hierarchy

  • LavaOptions

Index

Properties

Optional autoPlay

autoPlay?: boolean
+

Wether players should autmotically play next song

+

Optional autoReplay

autoReplay?: boolean
+

Whether to replay track automatically when node used on player is disconnected

+

Optional clientName

clientName?: string
+

The value to use for 'Client-Name' header

+

Optional defaultSearchPlatform

defaultSearchPlatform?: SearchPlatform
+

The default search platform to use, can be "yt" for youtube, "ytm" for youtube music, and "sc" for soundcloud

+

Optional shards

shards?: number
+

The shards count

+

Methods

send

  • +

    Function to send voice state to the websocket

    +

    Parameters

    Returns any

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.LowPass.html b/docs/interfaces/Utils.LowPass.html new file mode 100644 index 0000000..4992496 --- /dev/null +++ b/docs/interfaces/Utils.LowPass.html @@ -0,0 +1 @@ +LowPass | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface LowPass

Hierarchy

  • LowPass

Index

Properties

Properties

smoothing

smoothing: number

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.NodeCPUStats.html b/docs/interfaces/Utils.NodeCPUStats.html new file mode 100644 index 0000000..d7f1465 --- /dev/null +++ b/docs/interfaces/Utils.NodeCPUStats.html @@ -0,0 +1,7 @@ +NodeCPUStats | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface NodeCPUStats

Hierarchy

  • NodeCPUStats

Index

Properties

cores

cores: number
+

The core amount the host machine has.

+

lavalinkLoad

lavalinkLoad: number
+

The lavalink load.

+

systemLoad

systemLoad: number
+

The system load.

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.NodeFrameStats.html b/docs/interfaces/Utils.NodeFrameStats.html new file mode 100644 index 0000000..843d69a --- /dev/null +++ b/docs/interfaces/Utils.NodeFrameStats.html @@ -0,0 +1,7 @@ +NodeFrameStats | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface NodeFrameStats

Hierarchy

  • NodeFrameStats

Index

Properties

deficit

deficit: number
+

The amount of deficit frames.

+

nulled

nulled: number
+

The amount of nulled frames.

+

sent

sent: number
+

The amount of sent frames.

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.NodeMemoryStats.html b/docs/interfaces/Utils.NodeMemoryStats.html new file mode 100644 index 0000000..a9d077a --- /dev/null +++ b/docs/interfaces/Utils.NodeMemoryStats.html @@ -0,0 +1,9 @@ +NodeMemoryStats | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface NodeMemoryStats

Hierarchy

  • NodeMemoryStats

Index

Properties

allocated

allocated: number
+

The total allocated memory.

+

free

free: number
+

The free memory of the allocated amount.

+

reservable

reservable: number
+

The reservable memory.

+

used

used: number
+

The used memory of the allocated amount.

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.NodeOptions.html b/docs/interfaces/Utils.NodeOptions.html new file mode 100644 index 0000000..2197c4e --- /dev/null +++ b/docs/interfaces/Utils.NodeOptions.html @@ -0,0 +1,17 @@ +NodeOptions | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface NodeOptions

Hierarchy

  • NodeOptions

Index

Properties

Optional maxConnections

maxConnections?: null | number
+

The max http connections that can be opened at once, null for unlimited

+

name

name: string
+

The name for the node.

+

Optional password

password?: string
+

The password for the node

+

Optional requestTimeout

requestTimeout?: number
+

The timeout used for api calls

+

Optional retryAmount

retryAmount?: number
+

The retryAmount for the node.

+

Optional retryDelay

retryDelay?: number
+

The retryDelay for the node.

+

Optional secure

secure?: boolean
+

Whether the host uses SSL.

+

url

url: string
+

The url for the node

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.NodeStats.html b/docs/interfaces/Utils.NodeStats.html new file mode 100644 index 0000000..6337597 --- /dev/null +++ b/docs/interfaces/Utils.NodeStats.html @@ -0,0 +1,15 @@ +NodeStats | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface NodeStats

Hierarchy

Index

Properties

cpu

+

The cpu stats for the node.

+

Optional frameStats

frameStats?: NodeFrameStats
+

The frame stats for the node.

+

lastUpdated

lastUpdated: number
+

Timestamp of the time the stats was updated

+

memory

+

The memory stats for the node.

+

players

players: number
+

The amount of players on the node.

+

playingPlayers

playingPlayers: number
+

The amount of playing players on the node.

+

uptime

uptime: number
+

The uptime for the node.

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.OutgoingPayload.html b/docs/interfaces/Utils.OutgoingPayload.html new file mode 100644 index 0000000..a3de5dd --- /dev/null +++ b/docs/interfaces/Utils.OutgoingPayload.html @@ -0,0 +1 @@ +OutgoingPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface OutgoingPayload

Hierarchy

Index

Properties

Properties

guildId

guildId: string

op

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.PausePayload.html b/docs/interfaces/Utils.PausePayload.html new file mode 100644 index 0000000..5393e23 --- /dev/null +++ b/docs/interfaces/Utils.PausePayload.html @@ -0,0 +1 @@ +PausePayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface PausePayload

Hierarchy

Index

Properties

Properties

guildId

guildId: string

op

op: Pause

pause

pause: boolean

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.PlayOptions.html b/docs/interfaces/Utils.PlayOptions.html new file mode 100644 index 0000000..3a4adc5 --- /dev/null +++ b/docs/interfaces/Utils.PlayOptions.html @@ -0,0 +1,5 @@ +PlayOptions | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface PlayOptions

Hierarchy

  • PlayOptions

Index

Properties

Optional endTime

endTime?: number
+

The position to end the track

+

Optional startTime

startTime?: number
+

The position to start the track

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.PlayPayload.html b/docs/interfaces/Utils.PlayPayload.html new file mode 100644 index 0000000..7745d60 --- /dev/null +++ b/docs/interfaces/Utils.PlayPayload.html @@ -0,0 +1 @@ +PlayPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface PlayPayload

Hierarchy

Index

Properties

Optional endTime

endTime?: number

guildId

guildId: string

Optional noReplace

noReplace?: boolean

op

op: Play

Optional pause

pause?: boolean

Optional startTime

startTime?: number

track

track: string

Optional volume

volume?: number

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.PlayerOptions.html b/docs/interfaces/Utils.PlayerOptions.html new file mode 100644 index 0000000..ea38287 --- /dev/null +++ b/docs/interfaces/Utils.PlayerOptions.html @@ -0,0 +1,15 @@ +PlayerOptions | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface PlayerOptions

Hierarchy

  • PlayerOptions

Index

Properties

guildID

guildID: string
+

The guild the Player belongs to

+

Optional metadata

metadata?: Record<string, unknown>
+

Additional metadata for player, if any

+

Optional node

node?: string
+

The node the Player use

+

Optional selfDeaf

selfDeaf?: boolean
+

If the player should deaf itself

+

Optional selfMute

selfMute?: boolean
+

If the player should mute itself

+

Optional voiceID

voiceID?: string
+

The voice channel the Player belongs to

+

Optional volume

volume?: number
+

The initial volume the Player will use

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.PlayerUpdatePayload.html b/docs/interfaces/Utils.PlayerUpdatePayload.html new file mode 100644 index 0000000..505d9aa --- /dev/null +++ b/docs/interfaces/Utils.PlayerUpdatePayload.html @@ -0,0 +1 @@ +PlayerUpdatePayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface PlayerUpdatePayload

Hierarchy

Index

Properties

Properties

guildId

guildId: string

op

state

state: { connected: boolean; position: number; time: number }

Type declaration

  • connected: boolean
  • position: number
  • time: number

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.Playlist.html b/docs/interfaces/Utils.Playlist.html new file mode 100644 index 0000000..65871bd --- /dev/null +++ b/docs/interfaces/Utils.Playlist.html @@ -0,0 +1,7 @@ +Playlist | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Playlist

Hierarchy

  • Playlist

Index

Properties

duration

duration: number
+

Playlist total duration

+

name

name: string
+

The playlist name

+

selectedTrack

selectedTrack: null | CoffeeTrack
+

The selected track, if any

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.Rotation.html b/docs/interfaces/Utils.Rotation.html new file mode 100644 index 0000000..994cf54 --- /dev/null +++ b/docs/interfaces/Utils.Rotation.html @@ -0,0 +1,3 @@ +Rotation | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Rotation

Hierarchy

  • Rotation

Index

Properties

Properties

rotationHz

rotationHz: number
+

The frequency of the audio rotating around the listener in Hz. 0.2 is similar to the example video above

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.SearchQuery.html b/docs/interfaces/Utils.SearchQuery.html new file mode 100644 index 0000000..2012d68 --- /dev/null +++ b/docs/interfaces/Utils.SearchQuery.html @@ -0,0 +1,5 @@ +SearchQuery | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface SearchQuery

Hierarchy

  • SearchQuery

Index

Properties

Properties

query

query: string
+

The query to search for

+

Optional source

+

The source to search from

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.SearchResult.html b/docs/interfaces/Utils.SearchResult.html new file mode 100644 index 0000000..b88ab02 --- /dev/null +++ b/docs/interfaces/Utils.SearchResult.html @@ -0,0 +1,9 @@ +SearchResult | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface SearchResult

Hierarchy

  • SearchResult

Index

Properties

Optional error

error?: { message: string; severity: string }
+

Error from searching, if failed

+

Type declaration

  • message: string
  • severity: string

loadType

loadType: LoadTypes
+

Load type from searching

+

Optional playlist

playlist?: Playlist
+

The playlist info if load type is playlist

+

tracks

tracks: CoffeeTrack[]
+

The tracks from searching

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.SeekPayload.html b/docs/interfaces/Utils.SeekPayload.html new file mode 100644 index 0000000..a4860f9 --- /dev/null +++ b/docs/interfaces/Utils.SeekPayload.html @@ -0,0 +1 @@ +SeekPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface SeekPayload

Hierarchy

Index

Properties

guildId

guildId: string

op

op: Seek

position

position: number

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.StatsPayload.html b/docs/interfaces/Utils.StatsPayload.html new file mode 100644 index 0000000..38c244b --- /dev/null +++ b/docs/interfaces/Utils.StatsPayload.html @@ -0,0 +1,15 @@ +StatsPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface StatsPayload

Hierarchy

Index

Properties

cpu

+

The cpu stats for the node.

+

Optional frameStats

frameStats?: NodeFrameStats
+

The frame stats for the node.

+

lastUpdated

lastUpdated: number
+

Timestamp of the time the stats was updated

+

memory

+

The memory stats for the node.

+

op

op: Stats

players

players: number
+

The amount of players on the node.

+

playingPlayers

playingPlayers: number
+

The amount of playing players on the node.

+

uptime

uptime: number
+

The uptime for the node.

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.StopPayload.html b/docs/interfaces/Utils.StopPayload.html new file mode 100644 index 0000000..9e216bf --- /dev/null +++ b/docs/interfaces/Utils.StopPayload.html @@ -0,0 +1 @@ +StopPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface StopPayload

Hierarchy

Index

Properties

Properties

guildId

guildId: string

op

op: Stop

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.TimeScale.html b/docs/interfaces/Utils.TimeScale.html new file mode 100644 index 0000000..0bbf6af --- /dev/null +++ b/docs/interfaces/Utils.TimeScale.html @@ -0,0 +1 @@ +TimeScale | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface TimeScale

Hierarchy

  • TimeScale

Index

Properties

Properties

pitch

pitch: number

rate

rate: number

speed

speed: number

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.TrackData.html b/docs/interfaces/Utils.TrackData.html new file mode 100644 index 0000000..245ab8e --- /dev/null +++ b/docs/interfaces/Utils.TrackData.html @@ -0,0 +1 @@ +TrackData | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface TrackData

Hierarchy

  • TrackData

Index

Properties

Properties

info

info: TrackInfo

track

track: string

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.TrackEndPayload.html b/docs/interfaces/Utils.TrackEndPayload.html new file mode 100644 index 0000000..fe9f1dc --- /dev/null +++ b/docs/interfaces/Utils.TrackEndPayload.html @@ -0,0 +1 @@ +TrackEndPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface TrackEndPayload

Hierarchy

Index

Properties

guildId

guildId: string

op

op: Event

reason

reason: string

track

track: string

type

type: TrackEnd

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.TrackExceptionPayload.html b/docs/interfaces/Utils.TrackExceptionPayload.html new file mode 100644 index 0000000..0afcff4 --- /dev/null +++ b/docs/interfaces/Utils.TrackExceptionPayload.html @@ -0,0 +1 @@ +TrackExceptionPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface TrackExceptionPayload

Hierarchy

Index

Properties

exception

exception: { cause: string; message: string; severity: string }

Type declaration

  • cause: string
  • message: string
  • severity: string

guildId

guildId: string

op

op: Event

track

track: string

type

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.TrackInfo.html b/docs/interfaces/Utils.TrackInfo.html new file mode 100644 index 0000000..5ab3656 --- /dev/null +++ b/docs/interfaces/Utils.TrackInfo.html @@ -0,0 +1 @@ +TrackInfo | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface TrackInfo

Hierarchy

  • TrackInfo

Index

Properties

author

author: string

identifier

identifier: string

isSeekable

isSeekable: boolean

isStream

isStream: boolean

length

length: number

sourceName

sourceName: string

title

title: string

uri

uri: string

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.TrackStartPayload.html b/docs/interfaces/Utils.TrackStartPayload.html new file mode 100644 index 0000000..95de010 --- /dev/null +++ b/docs/interfaces/Utils.TrackStartPayload.html @@ -0,0 +1 @@ +TrackStartPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface TrackStartPayload

Hierarchy

Index

Properties

guildId

guildId: string

op

op: Event

track

track: string

type

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.TrackStuckPayload.html b/docs/interfaces/Utils.TrackStuckPayload.html new file mode 100644 index 0000000..76c575e --- /dev/null +++ b/docs/interfaces/Utils.TrackStuckPayload.html @@ -0,0 +1 @@ +TrackStuckPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface TrackStuckPayload

Hierarchy

Index

Properties

guildId

guildId: string

op

op: Event

thresholdMs

thresholdMs: number

track

track: string

type

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.TracksData.html b/docs/interfaces/Utils.TracksData.html new file mode 100644 index 0000000..bd6bf8c --- /dev/null +++ b/docs/interfaces/Utils.TracksData.html @@ -0,0 +1 @@ +TracksData | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface TracksData

Hierarchy

  • TracksData

Index

Properties

Optional exception

exception?: { message: string; severity: string }

Type declaration

  • message: string
  • severity: string

loadType

loadType: LoadTypes

Optional playlistInfo

playlistInfo?: { name: string; selectedTrack: number }

Type declaration

  • name: string
  • selectedTrack: number

tracks

tracks: Tracks

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.Tremolo.html b/docs/interfaces/Utils.Tremolo.html new file mode 100644 index 0000000..84a9a85 --- /dev/null +++ b/docs/interfaces/Utils.Tremolo.html @@ -0,0 +1,5 @@ +Tremolo | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Tremolo

Hierarchy

  • Tremolo

Index

Properties

Properties

depth

depth: number
+

0 < x <= 1

+

frequency

frequency: number
+

0 < x

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.Vibrato.html b/docs/interfaces/Utils.Vibrato.html new file mode 100644 index 0000000..acdcf4c --- /dev/null +++ b/docs/interfaces/Utils.Vibrato.html @@ -0,0 +1,5 @@ +Vibrato | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Vibrato

Hierarchy

  • Vibrato

Index

Properties

Properties

depth

depth: number
+

0 < x <= 1

+

frequency

frequency: number
+

0 < x <= 14

+

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.VoiceServerUpdate.html b/docs/interfaces/Utils.VoiceServerUpdate.html new file mode 100644 index 0000000..e369aae --- /dev/null +++ b/docs/interfaces/Utils.VoiceServerUpdate.html @@ -0,0 +1 @@ +VoiceServerUpdate | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface VoiceServerUpdate

Hierarchy

  • VoiceServerUpdate

Index

Properties

Properties

d

d: { endpoint: string; guild_id: string; token: string }

Type declaration

  • endpoint: string
  • guild_id: string
  • token: string

op

op: 0

s

s: number

t

t: "VOICE_SERVER_UPDATE"

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.VoiceStatePayload.html b/docs/interfaces/Utils.VoiceStatePayload.html new file mode 100644 index 0000000..d1770e1 --- /dev/null +++ b/docs/interfaces/Utils.VoiceStatePayload.html @@ -0,0 +1 @@ +VoiceStatePayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface VoiceStatePayload

Hierarchy

  • VoiceStatePayload

Index

Properties

Properties

d

d: { channel_id: null | string; guild_id: string; self_deaf: boolean; self_mute: boolean }

Type declaration

  • channel_id: null | string
  • guild_id: string
  • self_deaf: boolean
  • self_mute: boolean

op

op: number

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.VoiceStateUpdate.html b/docs/interfaces/Utils.VoiceStateUpdate.html new file mode 100644 index 0000000..8279150 --- /dev/null +++ b/docs/interfaces/Utils.VoiceStateUpdate.html @@ -0,0 +1 @@ +VoiceStateUpdate | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface VoiceStateUpdate

Hierarchy

  • VoiceStateUpdate

Index

Properties

Properties

d

d: { channel_id?: string; deaf: boolean; guild_id: string; mute: boolean; request_to_speak_timestamp?: number; self_deaf: boolean; self_mute: boolean; self_stream?: boolean; self_video: boolean; session_id: string; suppress: boolean; user_id: string }

Type declaration

  • Optional channel_id?: string
  • deaf: boolean
  • guild_id: string
  • mute: boolean
  • Optional request_to_speak_timestamp?: number
  • self_deaf: boolean
  • self_mute: boolean
  • Optional self_stream?: boolean
  • self_video: boolean
  • session_id: string
  • suppress: boolean
  • user_id: string

op

op: 0

s

s: number

t

t: "VOICE_STATE_UPDATE"

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.VoiceUpdatePayload.html b/docs/interfaces/Utils.VoiceUpdatePayload.html new file mode 100644 index 0000000..f92046f --- /dev/null +++ b/docs/interfaces/Utils.VoiceUpdatePayload.html @@ -0,0 +1 @@ +VoiceUpdatePayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface VoiceUpdatePayload

Hierarchy

Index

Properties

event

event: { endpoint: string; guild_id: string; token: string }

Type declaration

  • endpoint: string
  • guild_id: string
  • token: string

guildId

guildId: string

op

sessionId

sessionId: string

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.VolumePayload.html b/docs/interfaces/Utils.VolumePayload.html new file mode 100644 index 0000000..0b5ab55 --- /dev/null +++ b/docs/interfaces/Utils.VolumePayload.html @@ -0,0 +1 @@ +VolumePayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface VolumePayload

Hierarchy

Index

Properties

Properties

guildId

guildId: string

op

op: Volume

volume

volume: number

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Utils.WebSocketClosedPayload.html b/docs/interfaces/Utils.WebSocketClosedPayload.html new file mode 100644 index 0000000..919528f --- /dev/null +++ b/docs/interfaces/Utils.WebSocketClosedPayload.html @@ -0,0 +1 @@ +WebSocketClosedPayload | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface WebSocketClosedPayload

Hierarchy

Index

Properties

byRemote

byRemote: boolean

code

code: number

guildId

guildId: string

op

op: Event

reason

reason: string

type

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/modules.html b/docs/modules.html new file mode 100644 index 0000000..b4cc4d5 --- /dev/null +++ b/docs/modules.html @@ -0,0 +1 @@ +lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

lavacoffee

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/modules/Utils.html b/docs/modules/Utils.html new file mode 100644 index 0000000..e4ca495 --- /dev/null +++ b/docs/modules/Utils.html @@ -0,0 +1 @@ +Utils | lavacoffee
Options
All
  • Public
  • Public/Protected
  • All
Menu

Namespace Utils

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Static method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..bb708bb --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9168 @@ +{ + "name": "lavacoffee", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "lavacoffee", + "version": "1.0.0", + "license": "BSD-3-Clause", + "dependencies": { + "tiny-typed-emitter": "^2.1.0", + "undici": "^4.8.2", + "ws": "^8.2.3" + }, + "devDependencies": { + "@types/debug": "^4.1.7", + "@types/node": "^16.7.2", + "@types/ws": "^8.2.0", + "@typescript-eslint/eslint-plugin": "^4.29.3", + "@typescript-eslint/parser": "^4.29.3", + "@zhycorp/eslint-config": "^3.1.0", + "cpy-cli": "^3.1.1", + "debug": "^4.3.2", + "del-cli": "^4.0.1", + "discord.js": "^13.2.0", + "dts-bundle": "^0.7.3", + "eslint": "^7.32.0", + "ms": "^2.1.3", + "typedoc": "^0.22.7", + "typescript": "^4.3.5" + } + }, + "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==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true + }, + "node_modules/@babel/highlight/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=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "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=", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@discordjs/builders": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.6.0.tgz", + "integrity": "sha512-mH3Gx61LKk2CD05laCI9K5wp+a3NyASHDUGx83DGJFkqJlRlSV5WMJNY6RS37A5SjqDtGMF4wVR9jzFaqShe6Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.1", + "discord-api-types": "^0.22.0", + "ow": "^0.27.0", + "ts-mixer": "^6.0.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@discordjs/builders/node_modules/discord-api-types": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz", + "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@discordjs/builders/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/@discordjs/collection": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.4.tgz", + "integrity": "sha512-PVrEJH+V6Ob0OwfagYQ/57kwt/HNEJxt5jqY4P+S3st9y29t9iokdnGMQoJXG5VEMAQIPbzu9Snw1F6yE8PdLA==", + "dev": true, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/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/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, + "node_modules/@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "dependencies": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.8.tgz", + "integrity": "sha512-Oi4EEi8vOne8RM1tCdQ3kYAtl/J6ztak3Th6wwGFqA2SVNJtedw196LjsLX0bK8Li8cwaljbFf08N+0zeqhkWQ==", + "dev": true, + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/detect-indent": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/detect-indent/-/detect-indent-0.1.30.tgz", + "integrity": "sha1-3GgrtBK05lugmOcO2tc7SDP7kQ0=", + "dev": true + }, + "node_modules/@types/glob": { + "version": "5.0.30", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.30.tgz", + "integrity": "sha1-ECZAnFYlqGiQdGAoCNCCsoZ7ilE=", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/mkdirp": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.3.29.tgz", + "integrity": "sha1-fyrX7FX5FEgvybHsS7GuYCjUYGY=", + "dev": true + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", + "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.0.tgz", + "integrity": "sha512-cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@zhycorp/eslint-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@zhycorp/eslint-config/-/eslint-config-3.1.0.tgz", + "integrity": "sha512-nG2S09tFtTY6E2zQN6TK6+L125qLSa9sLJ9dAT5SXzFktDTcY1TIxzFfyh0rA5lPb4nl8Z2lVmIUTjLRWZ5LLA==", + "dev": true, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": ">=4.25.0", + "@typescript-eslint/parser": ">=4.25.0", + "eslint": ">=7.27.0", + "typescript": ">=3.3.1 <4.4.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "@typescript-eslint/parser": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "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-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-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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=", + "dev": true, + "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/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "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==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "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=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.1.tgz", + "integrity": "sha512-P331lEls98pW8JLyodNWfzuz91BEDVA4VpW2/SwXnyv2K495tq1N777xzDbFgnEigfA7UIY0xa6PwR/H9jijjA==", + "dev": true, + "dependencies": { + "camelcase": "^6.2.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "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==", + "dev": true + }, + "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=", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cp-file": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", + "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", + "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", + "dev": true, + "dependencies": { + "arrify": "^2.0.1", + "cp-file": "^7.0.0", + "globby": "^9.2.0", + "has-glob": "^1.0.0", + "junk": "^3.1.0", + "nested-error-stacks": "^2.1.0", + "p-all": "^2.1.0", + "p-filter": "^2.1.0", + "p-map": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-3.1.1.tgz", + "integrity": "sha512-HCpNdBkQy3rw+uARLuIf0YurqsMXYzBa9ihhSAuxYJcNIrqrSq3BstPfr0cQN38AdMrQiO9Dp4hYy7GtGJsLPg==", + "dev": true, + "dependencies": { + "cpy": "^8.0.0", + "meow": "^6.1.1" + }, + "bin": { + "cpy": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cpy-cli/node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy-cli/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==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy-cli/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/cpy-cli/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==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy-cli/node_modules/meow": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", + "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/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==", + "dev": true, + "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/cpy-cli/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==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/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==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy-cli/node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy-cli/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==", + "dev": true, + "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/cpy-cli/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==", + "dev": true, + "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/cpy-cli/node_modules/read-pkg-up/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy-cli/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy-cli/node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy-cli/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/cpy-cli/node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy-cli/node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy-cli/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy-cli/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==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cpy/node_modules/@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cpy/node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/cpy/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "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/cpy/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=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "dependencies": { + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cpy/node_modules/fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "dependencies": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cpy/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "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/cpy/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=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "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/cpy/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/cpy/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cpy/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/cpy/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/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=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "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/cpy/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cpy/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cpy/node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cpy/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cpy/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=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/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==", + "dev": true + }, + "node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "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==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del-cli": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-4.0.1.tgz", + "integrity": "sha512-KtR/6cBfZkGDAP2NA7z+bP4p1OMob3wjN9mq13+SWvExx6jT9gFWfLgXEeX8J2B47OKeNCq9yTONmtryQ+m+6g==", + "dev": true, + "dependencies": { + "del": "^6.0.0", + "meow": "^10.1.0" + }, + "bin": { + "del": "cli.js", + "del-cli": "cli.js" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-indent": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-0.2.0.tgz", + "integrity": "sha1-BCkUSYl5rC2fPHPk/z5od9O8krY=", + "dev": true, + "dependencies": { + "get-stdin": "^0.1.0", + "minimist": "^0.1.0" + }, + "bin": { + "detect-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/discord-api-types": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.23.1.tgz", + "integrity": "sha512-igWmn+45mzXRWNEPU25I/pr8MwxHb767wAr51oy3VRLRcTlp5ADBbrBR0lq3SA1Rfw3MtM4TQu1xo3kxscfVdQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/discord.js": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.2.0.tgz", + "integrity": "sha512-nyxUvL8wuQG38zx13wUMkpcA8koFszyiXdkSLwwM9opKW2LC2H5gD0cTZxImeJ6GtEnKPWT8xBiE8lLBmbNIhw==", + "dev": true, + "dependencies": { + "@discordjs/builders": "^0.6.0", + "@discordjs/collection": "^0.2.1", + "@discordjs/form-data": "^3.0.1", + "@sapphire/async-queue": "^1.1.5", + "@types/ws": "^8.2.0", + "discord-api-types": "^0.23.1", + "node-fetch": "^2.6.1", + "ws": "^8.2.3" + }, + "engines": { + "node": ">=16.6.0", + "npm": ">=7.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/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dts-bundle": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/dts-bundle/-/dts-bundle-0.7.3.tgz", + "integrity": "sha1-Nyt7tpyCB4LmOC9ABzmmnc7T1Zo=", + "dev": true, + "dependencies": { + "@types/detect-indent": "0.1.30", + "@types/glob": "5.0.30", + "@types/mkdirp": "0.3.29", + "@types/node": "8.0.0", + "commander": "^2.9.0", + "detect-indent": "^0.2.0", + "glob": "^6.0.4", + "mkdirp": "^0.5.0" + }, + "bin": { + "dts-bundle": "lib/dts-bundle.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/dts-bundle/node_modules/@types/node": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.0.tgz", + "integrity": "sha512-j2tekvJCO7j22cs+LO6i0kRPhmQ9MXaPZ55TzOc1lzkN5b6BWqq4AFjl04s1oRRQ1v5rSe+KEvnLUSTonuls/A==", + "dev": true + }, + "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/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/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==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "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", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.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.merge": "^4.6.2", + "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.9", + "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.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/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/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==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "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.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "engines": { + "node": ">=0.10.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==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true + }, + "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=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "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/get-stdin": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz", + "integrity": "sha1-WZivJKr8gC0VyCxoVlfuuLENSpE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "node_modules/globals": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", + "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", + "dev": true, + "dependencies": { + "is-glob": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-glob/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 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/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "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": "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/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "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-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "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/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "node_modules/junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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=", + "dev": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", + "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/meow": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.1.tgz", + "integrity": "sha512-uzOAEBTGujHAD6bVzIQQk5kDTgatxmpVmr1pj9QhwsHLEG2AiB+9F08/wmjrZIk4h5pWxERd7+jqGZywYx3ZFw==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "engines": { + "node": ">=12.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", + "dev": true, + "dependencies": { + "mime-db": "1.50.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", + "dev": true + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "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=", + "dev": true + }, + "node_modules/nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onigasm": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", + "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", + "dev": true, + "dependencies": { + "lru-cache": "^5.1.1" + } + }, + "node_modules/onigasm/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/onigasm/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "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/ow": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz", + "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.1", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "type-fest": "^1.2.1", + "vali-date": "^1.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ow/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-all": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", + "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", + "dev": true, + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-all/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-filter/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "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/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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=", + "dev": true, + "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/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/redent/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "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=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "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/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shiki": { + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.12.tgz", + "integrity": "sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0", + "onigasm": "^2.2.5", + "vscode-textmate": "5.2.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "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/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "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==", + "dev": true, + "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-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/table": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", + "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", + "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "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/tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, + "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=", + "dev": true, + "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=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "node_modules/trim-newlines": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", + "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ts-mixer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", + "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==", + "dev": true + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "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-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedoc": { + "version": "0.22.7", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.7.tgz", + "integrity": "sha512-ndxxp+tU1Wczvdxp4u2/PvT1qjD6hdFdSdehpORHjE+JXmMkl2bftXCR0upHmsnesBG7VCcr8vfgloGHIH8glQ==", + "dev": true, + "dependencies": { + "glob": "^7.2.0", + "lunr": "^2.3.9", + "marked": "^3.0.8", + "minimatch": "^3.0.4", + "shiki": "^0.9.12" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 12.10.0" + }, + "peerDependencies": { + "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x" + } + }, + "node_modules/typedoc/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "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/typescript": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undici": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-4.8.2.tgz", + "integrity": "sha512-wSQI+QbuPZ8ZRCGZ9fs+h2+J4tLaaM5j/28Xq/Q/zAOSy8/QGkHpszpVGSwpgb4ZyQ34rAIEd5fMKf8PGQaiUg==", + "engines": { + "node": ">=12.18" + } + }, + "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==", + "dev": true, + "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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "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", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@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==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "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==", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true + }, + "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 + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "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" + } + } + } + }, + "@discordjs/builders": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.6.0.tgz", + "integrity": "sha512-mH3Gx61LKk2CD05laCI9K5wp+a3NyASHDUGx83DGJFkqJlRlSV5WMJNY6RS37A5SjqDtGMF4wVR9jzFaqShe6Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.1", + "discord-api-types": "^0.22.0", + "ow": "^0.27.0", + "ts-mixer": "^6.0.0", + "tslib": "^2.3.1" + }, + "dependencies": { + "discord-api-types": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz", + "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==", + "dev": true + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } + } + }, + "@discordjs/collection": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.4.tgz", + "integrity": "sha512-PVrEJH+V6Ob0OwfagYQ/57kwt/HNEJxt5jqY4P+S3st9y29t9iokdnGMQoJXG5VEMAQIPbzu9Snw1F6yE8PdLA==", + "dev": true + }, + "@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==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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 + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sapphire/async-queue": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.8.tgz", + "integrity": "sha512-Oi4EEi8vOne8RM1tCdQ3kYAtl/J6ztak3Th6wwGFqA2SVNJtedw196LjsLX0bK8Li8cwaljbFf08N+0zeqhkWQ==", + "dev": true + }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "dev": true + }, + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dev": true, + "requires": { + "@types/ms": "*" + } + }, + "@types/detect-indent": { + "version": "0.1.30", + "resolved": "https://registry.npmjs.org/@types/detect-indent/-/detect-indent-0.1.30.tgz", + "integrity": "sha1-3GgrtBK05lugmOcO2tc7SDP7kQ0=", + "dev": true + }, + "@types/glob": { + "version": "5.0.30", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.30.tgz", + "integrity": "sha1-ECZAnFYlqGiQdGAoCNCCsoZ7ilE=", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/mkdirp": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.3.29.tgz", + "integrity": "sha1-fyrX7FX5FEgvybHsS7GuYCjUYGY=", + "dev": true + }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, + "@types/node": { + "version": "16.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", + "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/ws": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.0.tgz", + "integrity": "sha512-cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + } + }, + "@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "@zhycorp/eslint-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@zhycorp/eslint-config/-/eslint-config-3.1.0.tgz", + "integrity": "sha512-nG2S09tFtTY6E2zQN6TK6+L125qLSa9sLJ9dAT5SXzFktDTcY1TIxzFfyh0rA5lPb4nl8Z2lVmIUTjLRWZ5LLA==", + "dev": true, + "requires": {} + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "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", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "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" + } + }, + "argparse": { + "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" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "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==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "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 + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "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" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "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" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "camelcase-keys": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.1.tgz", + "integrity": "sha512-P331lEls98pW8JLyodNWfzuz91BEDVA4VpW2/SwXnyv2K495tq1N777xzDbFgnEigfA7UIY0xa6PwR/H9jijjA==", + "dev": true, + "requires": { + "camelcase": "^6.2.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.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 + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "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==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "cp-file": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", + "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + } + }, + "cpy": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", + "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "cp-file": "^7.0.0", + "globby": "^9.2.0", + "has-glob": "^1.0.0", + "junk": "^3.1.0", + "nested-error-stacks": "^2.1.0", + "p-all": "^2.1.0", + "p-filter": "^2.1.0", + "p-map": "^3.0.0" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + } + }, + "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 + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "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" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "cpy-cli": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-3.1.1.tgz", + "integrity": "sha512-HCpNdBkQy3rw+uARLuIf0YurqsMXYzBa9ihhSAuxYJcNIrqrSq3BstPfr0cQN38AdMrQiO9Dp4hYy7GtGJsLPg==", + "dev": true, + "requires": { + "cpy": "^8.0.0", + "meow": "^6.1.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "meow": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", + "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + } + }, + "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==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "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==", + "dev": true + } + } + }, + "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==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "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 + } + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "cross-spawn": { + "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", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "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=", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "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==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "del-cli": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-4.0.1.tgz", + "integrity": "sha512-KtR/6cBfZkGDAP2NA7z+bP4p1OMob3wjN9mq13+SWvExx6jT9gFWfLgXEeX8J2B47OKeNCq9yTONmtryQ+m+6g==", + "dev": true, + "requires": { + "del": "^6.0.0", + "meow": "^10.1.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "detect-indent": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-0.2.0.tgz", + "integrity": "sha1-BCkUSYl5rC2fPHPk/z5od9O8krY=", + "dev": true, + "requires": { + "get-stdin": "^0.1.0", + "minimist": "^0.1.0" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "discord-api-types": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.23.1.tgz", + "integrity": "sha512-igWmn+45mzXRWNEPU25I/pr8MwxHb767wAr51oy3VRLRcTlp5ADBbrBR0lq3SA1Rfw3MtM4TQu1xo3kxscfVdQ==", + "dev": true + }, + "discord.js": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.2.0.tgz", + "integrity": "sha512-nyxUvL8wuQG38zx13wUMkpcA8koFszyiXdkSLwwM9opKW2LC2H5gD0cTZxImeJ6GtEnKPWT8xBiE8lLBmbNIhw==", + "dev": true, + "requires": { + "@discordjs/builders": "^0.6.0", + "@discordjs/collection": "^0.2.1", + "@discordjs/form-data": "^3.0.1", + "@sapphire/async-queue": "^1.1.5", + "@types/ws": "^8.2.0", + "discord-api-types": "^0.23.1", + "node-fetch": "^2.6.1", + "ws": "^8.2.3" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dts-bundle": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/dts-bundle/-/dts-bundle-0.7.3.tgz", + "integrity": "sha1-Nyt7tpyCB4LmOC9ABzmmnc7T1Zo=", + "dev": true, + "requires": { + "@types/detect-indent": "0.1.30", + "@types/glob": "5.0.30", + "@types/mkdirp": "0.3.29", + "@types/node": "8.0.0", + "commander": "^2.9.0", + "detect-indent": "^0.2.0", + "glob": "^6.0.4", + "mkdirp": "^0.5.0" + }, + "dependencies": { + "@types/node": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.0.tgz", + "integrity": "sha512-j2tekvJCO7j22cs+LO6i0kRPhmQ9MXaPZ55TzOc1lzkN5b6BWqq4AFjl04s1oRRQ1v5rSe+KEvnLUSTonuls/A==", + "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 + }, + "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, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "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", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.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.merge": "^4.6.2", + "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.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "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 + } + } + }, + "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, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "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, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "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 + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "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, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "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 + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "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, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true + }, + "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==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + } + } + }, + "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 + }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "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 + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "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==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "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 + }, + "get-stdin": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz", + "integrity": "sha1-WZivJKr8gC0VyCxoVlfuuLENSpE=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "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==", + "dev": true + }, + "has-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", + "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", + "dev": true, + "requires": { + "is-glob": "^3.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "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, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "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==", + "dev": true, + "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", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "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", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "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 + }, + "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 + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "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==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "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==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "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 + }, + "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==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "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==", + "dev": true + }, + "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 + }, + "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 + }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true + }, + "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==", + "dev": true + }, + "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, + "requires": { + "prelude-ls": "^1.2.1", + "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=", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true + }, + "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==", + "dev": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "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==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "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" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", + "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", + "dev": true + }, + "meow": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.1.tgz", + "integrity": "sha512-uzOAEBTGujHAD6bVzIQQk5kDTgatxmpVmr1pj9QhwsHLEG2AiB+9F08/wmjrZIk4h5pWxERd7+jqGZywYx3ZFw==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime-db": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", + "dev": true + }, + "mime-types": { + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", + "dev": true, + "requires": { + "mime-db": "1.50.0" + } + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "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", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "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 + }, + "nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "dev": true + }, + "node-fetch": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onigasm": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", + "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", + "dev": true, + "requires": { + "lru-cache": "^5.1.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "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" + } + }, + "ow": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz", + "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.1", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "type-fest": "^1.2.1", + "vali-date": "^1.0.0" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "p-all": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", + "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", + "dev": true, + "requires": { + "p-map": "^2.0.0" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, + "p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } + }, + "p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "requires": { + "p-map": "^2.0.0" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.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==", + "dev": true + }, + "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, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "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" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "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==", + "dev": true + }, + "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=", + "dev": true + }, + "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 + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "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=", + "dev": true + }, + "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 + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "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 + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true + }, + "read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "requires": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "requires": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + } + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "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 + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "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" + } + } + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + } + } + }, + "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==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "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 + }, + "shiki": { + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.12.tgz", + "integrity": "sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw==", + "dev": true, + "requires": { + "jsonc-parser": "^3.0.0", + "onigasm": "^2.2.5", + "vscode-textmate": "5.2.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "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, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true + }, + "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==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "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==", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": 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==", + "dev": true, + "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-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "dev": true + }, + "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==", + "dev": true, + "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 + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + } + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "requires": { + "min-indent": "^1.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "table": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", + "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", + "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "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 + }, + "tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, + "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=", + "dev": true, + "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=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "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" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "trim-newlines": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", + "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", + "dev": true + }, + "ts-mixer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", + "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "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, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typedoc": { + "version": "0.22.7", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.7.tgz", + "integrity": "sha512-ndxxp+tU1Wczvdxp4u2/PvT1qjD6hdFdSdehpORHjE+JXmMkl2bftXCR0upHmsnesBG7VCcr8vfgloGHIH8glQ==", + "dev": true, + "requires": { + "glob": "^7.2.0", + "lunr": "^2.3.9", + "marked": "^3.0.8", + "minimatch": "^3.0.4", + "shiki": "^0.9.12" + }, + "dependencies": { + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "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" + } + } + } + }, + "typescript": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "dev": true + }, + "undici": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-4.8.2.tgz", + "integrity": "sha512-wSQI+QbuPZ8ZRCGZ9fs+h2+J4tLaaM5j/28Xq/Q/zAOSy8/QGkHpszpVGSwpgb4ZyQ34rAIEd5fMKf8PGQaiUg==" + }, + "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==", + "dev": true, + "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=", + "dev": true + } + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true, + "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=", + "dev": true + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "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=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.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" + } + }, + "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==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "requires": {} + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..17863da --- /dev/null +++ b/package.json @@ -0,0 +1,55 @@ +{ + "name": "lavacoffee", + "version": "1.0.0", + "description": "A lightweight and rich-featured lavalink wrapper", + "main": "dist/index.js", + "types": "index.d.ts", + "scripts": { + "docs": "typedoc src/index.ts --excludePrivate --excludeInternal --excludeExternals", + "test": "tsc -p test.tsconfig.json && cpy package.json test/compiled && node test/compiled/test/index", + "build": "tsc && dts-bundle --name \"lavacoffee\" --main dist --out index.d.ts && del-cli -f \"dist/**/*.d.ts\"" + }, + "keywords": [ + "bot", + "music", + "lavalink", + "api", + "voice", + "discord", + "lavalink.js", + "discord.js", + "eris", + "lavalink-api", + "lavalink-wrapper", + "lavalink-client" + ], + "author": "xzusfin", + "license": "BSD-3-Clause", + "devDependencies": { + "@types/debug": "^4.1.7", + "@types/node": "^16.7.2", + "@types/ws": "^8.2.0", + "@typescript-eslint/eslint-plugin": "^4.29.3", + "@typescript-eslint/parser": "^4.29.3", + "@zhycorp/eslint-config": "^3.1.0", + "cpy-cli": "^3.1.1", + "debug": "^4.3.2", + "del-cli": "^4.0.1", + "discord.js": "^13.2.0", + "dts-bundle": "^0.7.3", + "eslint": "^7.32.0", + "ms": "^2.1.3", + "typedoc": "^0.22.7", + "typescript": "^4.3.5" + }, + "dependencies": { + "tiny-typed-emitter": "^2.1.0", + "undici": "^4.8.2", + "ws": "^8.2.3" + }, + "files": [ + "LICENSE", + "dist", + "index.d.ts" + ] +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..11f54a8 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,5 @@ +import { readFileSync } from "fs" + +export * from "./structures" +export * as Utils from "./utils" +export const version: string = JSON.parse(readFileSync(require.resolve("../package.json"), "utf-8")).version diff --git a/src/structures/CoffeeLava.ts b/src/structures/CoffeeLava.ts new file mode 100644 index 0000000..c005efb --- /dev/null +++ b/src/structures/CoffeeLava.ts @@ -0,0 +1,333 @@ +/* eslint-disable func-names */ +/* eslint-disable prefer-arrow-callback */ +import { CoffeeNode } from "./CoffeeNode" +import { CoffeePlayer } from "./CoffeePlayer" +import { LavaOptions, NodeOptions, PlayerOptions, SearchQuery, SearchResult } from "../utils/typings" +import { TypedEmitter } from "tiny-typed-emitter" +import { EventPayloads, TrackEndPayload, TrackExceptionPayload, TrackStartPayload, TrackStuckPayload, VoiceServerUpdate, VoiceStateUpdate, WebSocketClosedPayload } from "../utils/payloads" +import { check } from "../utils/decorators/validators" +import { EventTypes, LoopMode, OpCodes, PlayerStates } from "../utils/constants" +import { constructCoffee } from "../utils/decorators/constructs" +import { CoffeeTrack, UnresolvedTrack } from "./CoffeeTrack" +import { LoadTypes, TrackData, TrackInfo, TracksData } from "../utils/rest" + +export interface LavaEvents { + /** Emitted when a node is created */ + nodeCreate(node: CoffeeNode): void + /** Emitted when a node is destroyed */ + nodeDestroy(node: CoffeeNode): void + /** Emitted when a node connects */ + nodeConnect(node: CoffeeNode): void + /** Emitted when a Node reconnects */ + nodeReconnect(node: CoffeeNode): void + /** Emitted when a Node disconnects */ + nodeDisconnect(node: CoffeeNode, reason: { code: number, reason: string }): void + /** Emitted when a Node has an error */ + nodeError(node: CoffeeNode, error: Error): void + /** Emitted whenever any Lavalink event is received */ + nodeRaw(node: CoffeeNode, payload: unknown): void + /** Emitted whenever a Player is created */ + playerCreate(player: CoffeePlayer): void + /** Emitted whenever a Player is destroyed */ + playerDestroy(player: CoffeePlayer): void + /** Emitted whenever a Player is replaying after moving node */ + playerReplay(player: CoffeePlayer): void + /** Emitted whenever an error occured when replaying track */ + replayError(player: CoffeePlayer, error: Error): void + /** Emitted whenever a Player is moved to other channel */ + playerMove(player: CoffeePlayer, oldChannel: string | undefined, newChannel: string | undefined): void + /** Emitted whenever queue is started */ + queueStart(player: CoffeePlayer, track: CoffeeTrack | UnresolvedTrack, payload: TrackStartPayload): void + /** Emitted whenever queue is ended */ + queueEnd(player: CoffeePlayer, track: CoffeeTrack | UnresolvedTrack, payload: TrackEndPayload): void + /** Emitted whenever a track start */ + trackStart(player: CoffeePlayer, track: CoffeeTrack | UnresolvedTrack, payload: TrackStartPayload): void + /** Emitted whenever a track end */ + trackEnd(player: CoffeePlayer, track: CoffeeTrack | UnresolvedTrack, payload: TrackEndPayload): void + /** Emitted whenever a track stuck during playback */ + trackStuck(player: CoffeePlayer, track: CoffeeTrack | UnresolvedTrack, payload: TrackStuckPayload): void + /** Emitted whenever a track occur an error during playback */ + trackError(player: CoffeePlayer, track: CoffeeTrack | UnresolvedTrack, payload: TrackExceptionPayload): void + /** Emitted whenever a voice connection is closed */ + socketClosed(player: CoffeePlayer, payload: WebSocketClosedPayload): void +} + +/** + * The main hub for interacting with Lavalink and using LavaCoffee + */ +@constructCoffee() +export class CoffeeLava extends TypedEmitter { + public clientID?: string + public options: LavaOptions + public readonly nodes = new Map() + public readonly players = new Map() + + public constructor(options: LavaOptions) { + super() + this.options = { + clientName: "node-lavacoffee", + shards: 1, + autoPlay: true, + defaultSearchPlatform: "yt", + autoReplay: true, + ...options + } + } + + public get leastUsedNode(): CoffeeNode | undefined { + return this.sortAndGetFirstNode((l, r) => l.calls - r.calls) + } + + public get leastLoadNode(): CoffeeNode | undefined { + return this.sortAndGetFirstNode((l, r) => { + const lLoad = l.stats.cpu + ? (l.stats.cpu.systemLoad / l.stats.cpu.cores) * 100 + : 0 + const rLoad = r.stats.cpu + ? (r.stats.cpu.systemLoad / r.stats.cpu.cores) * 100 + : 0 + return lLoad - rLoad + }) + } + + /** Initiate the Lavalink client */ + @check(function (this: CoffeeLava, method, clientID: string) { + if (this.clientID) return + if ( + typeof clientID !== "string" || !clientID + ) throw new TypeError("Parameter 'clientID' must be present and be a non-empty string") + return method(clientID) + }) + public init(clientID: string): void { + this.clientID = clientID + for (const node of this.nodes.values()) node.connect() + } + + /** Searches some tracks based off the URL or the `source` property */ + @check(function (this: CoffeeLava, method, query: SearchQuery, requester?: unknown) { + if ( + typeof query !== "object" || + query === null + ) throw new TypeError("Parameter 'query' must be present and be an object") + const node = this.leastUsedNode + if (!node || !node.connected) throw new Error("No node is available currently") + return method(query, requester) + }) + public async search(query: SearchQuery, requester?: unknown): Promise { + const node = this.leastUsedNode! + const source = query.source ?? this.options.defaultSearchPlatform! + let search = query.query + + if (!/^(?:http|https):\/\//.test(search)) search = `${source}search:${search}` + + const res = await node.request(`/loadtracks?identifier=${encodeURIComponent(search)}`) + + if (!res) throw new Error("Query not found") + + const result: SearchResult = { + loadType: res.loadType, + error: res.exception, + tracks: res.tracks.map(track => new CoffeeTrack(track, requester)) + } + + if (res.loadType === LoadTypes.PlaylistLoaded) { + result.playlist = { + name: res.playlistInfo!.name, + selectedTrack: res.playlistInfo!.selectedTrack === -1 + ? null + : result.tracks[res.playlistInfo!.selectedTrack], + duration: result.tracks.reduce((acc, tr) => acc + (tr.duration || 0), 0) + } + } + + return result + } + + /** Decode the base64 track into TrackData */ + @check(function (this: CoffeeLava, method, track: string) { + if ( + typeof track !== "string" || !track + ) throw new TypeError("Parameter 'track' must be present and be a non-empty string") + const node = this.leastUsedNode + if (!node || !node.connected) throw new Error("No node is available currently") + return method(track) + }) + public async decodeTrack(track: string): Promise { + const node = this.leastUsedNode! + const res = await node.request(`/decodetrack?track=${track}`) + + if (!res) throw new Error("No decoded data returned") + + const data: TrackData = { + track, + info: res + } + + return data + } + + /** Send voice data to the Lavalink server */ + @check(function (this: CoffeeLava, method, p: VoiceServerUpdate | VoiceStateUpdate) { + if ( + !p || + !["VOICE_SERVER_UPDATE", "VOICE_STATE_UPDATE"].includes(p.t || "") + ) return + if (!this.players.has(p.d.guild_id)) return + if ( + p.t === "VOICE_STATE_UPDATE" && + p.d.user_id !== this.clientID + ) return + + return method(p) + }) + public updateVoiceData(p: VoiceServerUpdate | VoiceStateUpdate): void { + const player = this.players.get(p.d.guild_id)! + const voice = player.voice + + if (p.t === "VOICE_SERVER_UPDATE") { + voice.op = OpCodes.VoiceUpdate + voice.guildId = p.d.guild_id + voice.event = p.d + } else { + voice.sessionId = p.d.session_id + if (player.options.voiceID !== p.d.channel_id) { + this.emit("playerMove", player, player.options.voiceID, p.d.channel_id) + player.options.voiceID = p.d.channel_id + if (!p.d.channel_id) player.pause(true) + } + } + + if ( + ["op", "guildId", "event", "sessionId"].every(prop => prop in voice) + ) void player.node.send(voice) + } + + /** Create a player or return one if it already exists */ + public create(options: PlayerOptions): CoffeePlayer { + return new CoffeePlayer(this, options) + } + + /** Return a player or undefined if it doesn't exist */ + public get(guildID: string): CoffeePlayer | undefined { + return this.players.get(guildID) + } + + /** Destroy a player if it exist */ + public destroy(guildID: string): void { + const player = this.get(guildID) + if (player) player.destroy() + } + + /** Add a node */ + public add(nodeOptions: NodeOptions): void { + const node = new CoffeeNode(this, nodeOptions) + + node.on("event", payload => this.handleEvent(node, payload)) + node.on("connect", () => this.emit("nodeConnect", node)) + node.on("reconnect", () => this.emit("nodeReconnect", node)) + node.on("raw", payload => this.emit("nodeRaw", node, payload)) + node.on("error", error => this.emit("nodeError", node, error)) + node.on("destroy", () => { + this.emit("nodeDestroy", node) + this.nodes.delete(node.options.name) + }) + node.on("disconnect", reason => { + this.emit("nodeDisconnect", node, reason) + if (this.options.autoReplay) { + for (const player of this.players.values()) { + if (player.options.node === node.options.name) { + try { + player.setNode(this.leastLoadNode!.options.name) + } catch (error) { + this.emit("replayError", player, error) + } + } + } + } + }) + node.on("playerUpdate", (guildID, state) => { + const player = this.players.get(guildID) + if (!player) return + player.position = state.position + }) + + if (this.clientID) node.connect() + } + + private handleEvent(node: CoffeeNode, event: EventPayloads): void { + if (!event.guildId) return + + const player = this.get(event.guildId) + if (!player) return + + const track = player.queue.current! + const type = event.type + + switch (type) { + case EventTypes.TrackStart: + { + player.state = PlayerStates.Playing + if (player.replaying) { + player.replaying = false + return + } + this.emit("trackStart", player, track, event as TrackStartPayload) + if (!player.queue.previous) this.emit("queueStart", player, track, event as TrackStartPayload) + } + break + case EventTypes.TrackEnd: + { + this.emit("trackEnd", player, track, event as TrackEndPayload) + if (!player.queue.length && player.loop !== LoopMode.Track) { + this.emit("queueEnd", player, track, event as TrackEndPayload) + } + if (this.options.autoPlay) void player.play({}) + } + break + case EventTypes.TrackStuck: + { + this.emit("trackStuck", player, track, event as TrackStuckPayload) + if (!player.queue.length && player.loop !== LoopMode.Track) { + this.emit("queueEnd", player, track, event as TrackEndPayload) + } + if (this.options.autoPlay) void player.play({}) + } + break + case EventTypes.TrackException: + { + // Replay + if ((event as TrackExceptionPayload).exception.message === "The track was unexpectedly terminated.") return + this.emit("trackError", player, track, event as TrackExceptionPayload) + if (!player.queue.length && player.loop !== LoopMode.Track) { + this.emit("queueEnd", player, track, event as TrackEndPayload) + } + if (this.options.autoPlay) void player.play({}) + } + break + case EventTypes.WebSocketClosed: + this.emit("socketClosed", player, event as WebSocketClosedPayload) + break + default: + this.emit("nodeError", node, new Error(`Node#event unknown event type '${type as string}'`)) + } + } + + private sortAndGetFirstNode(sortFunc: (left: CoffeeNode, right: CoffeeNode) => number): CoffeeNode | undefined { + const nodes = new Map() + + for (const [id, node] of this.nodes.entries()) { + if (node.connected) nodes.set(id, node) + } + + const entries = [...nodes.entries()] + entries.sort(([,a], [,b]) => sortFunc(a, b)) + + nodes.clear() + + for (const [id, node] of entries) { + nodes.set(id, node) + } + + return nodes.values().next().value + } +} diff --git a/src/structures/CoffeeNode.ts b/src/structures/CoffeeNode.ts new file mode 100644 index 0000000..c46dd02 --- /dev/null +++ b/src/structures/CoffeeNode.ts @@ -0,0 +1,238 @@ +import WebSocket from "ws" +import { Pool } from "undici" +import { Writable } from "stream" +import { CoffeeLava } from "./CoffeeLava" +import { TypedEmitter } from "tiny-typed-emitter" +import { NodeOptions, NodeStats } from "../utils/typings" +import { constructNode } from "../utils/decorators/constructs" +import { IncomingPayloads, EventPayloads, PlayerUpdatePayload, OutgoingPayloads } from "../utils/payloads" + +export interface NodeEvents { + /** Emitted when node is destroyed */ + destroy(): void + /** Emitted when node connects */ + connect(): void + /** Emitted when node reconnects */ + reconnect(): void + /** Emitted when node disconnects */ + disconnect(reason: { code: number, reason: string }): void + /** Emitted when node has an error */ + error(error: Error): void + /** Emitted whenever any Lavalink incoming message is received */ + raw(payload: IncomingPayloads): void + /** Emitted whenever any Lavalink event is received */ + event(payload: EventPayloads): void + /** Emitted whenever playerUpdate is received */ + playerUpdate(guildID: string, state: PlayerUpdatePayload["state"]): void +} + +@constructNode() +export class CoffeeNode extends TypedEmitter { + /** The node options */ + public options: NodeOptions + /** The node stats */ + public stats: NodeStats + /** The node websocket if connected */ + public socket?: WebSocket + /** Sums of http request calls since created */ + public calls = 0 + /** Whether the node already connected via websocket */ + public connected = false + /** The http clients pool for http calls */ + public readonly http: Pool + private reconnectTimeout?: NodeJS.Timeout + private reconnectAttempts = 1 + + public constructor( + public readonly lava: CoffeeLava, + options: NodeOptions + ) { + super() + + this.options = { + password: "youshallnotpass", + secure: false, + retryAmount: 5, + retryDelay: 30e3, + maxConnections: null, + ...options + } + + this.stats = { + players: 0, + playingPlayers: 0, + uptime: 0, + memory: { + free: 0, + used: 0, + allocated: 0, + reservable: 0 + }, + cpu: { + cores: 0, + systemLoad: 0, + lavalinkLoad: 0 + }, + lastUpdated: Date.now() + } + + this.http = new Pool(`http${this.options.secure ? "s" : ""}://${this.options.url}`, { + connections: this.options.maxConnections + }) + + this.lava.emit("nodeCreate", this) + this.lava.nodes.set(this.options.name, this) + } + + /** + * Do http(s) request to the node + */ + public async request(endpoint: string): Promise { + endpoint = endpoint.replace(/^\//gm, "") + + const partials: string[] = [] + + await this.http.stream({ + path: `/${endpoint}`, + method: "GET", + opaque: partials, + bodyTimeout: this.options.requestTimeout, + headersTimeout: this.options.requestTimeout, + headers: { + Authorization: this.options.password + } + }, ({ opaque }) => new Writable({ + defaultEncoding: "utf-8", + write(partial: string, _, cb) { + (opaque as string[]).push(partial) + cb() + } + })) + + this.calls++ + return JSON.parse(partials.join("")) + } + + /** + * Connect to the node via socket + */ + public connect(): void { + if (this.connected) return + + const headers = { + Authorization: this.options.password, + "Num-Shards": String(this.lava.options.shards), + "User-Id": this.lava.clientID, + "Client-Name": this.lava.options.clientName + } + + this.socket = new WebSocket( + `ws${this.options.secure ? "s" : ""}://${this.options.url}/`, + { headers } + ) + + this.socket.once("open", this.open.bind(this)) + this.socket.once("close", this.close.bind(this)) + this.socket.on("error", this.error.bind(this)) + this.socket.on("message", this.message.bind(this)) + } + + /** + * Destroy the node connection + */ + public destroy(): void { + if (!this.connected) return + + this.socket!.close(1000, "destroy") + this.socket!.removeAllListeners() + delete this.socket + + this.reconnectAttempts = 1 + if (this.reconnectTimeout) clearTimeout(this.reconnectTimeout) + + this.emit("destroy") + } + + /** + * Send data to the node + */ + public send(data: OutgoingPayloads): Promise { + return new Promise((resolve, reject) => { + if (!this.connected) return resolve(false) + + const json = JSON.stringify(data) + + if (!data || !json.startsWith("{")) return resolve(false) + + this.socket?.send(json, err => { + if (err) reject(err) + else resolve(true) + }) + }) + } + + private reconnect(): void { + this.reconnectTimeout = setTimeout(() => { + if (this.reconnectAttempts >= this.options.retryAmount!) { + this.error(new Error(`Unable to reconnect after ${this.options.retryAmount!} attempts`)) + return this.destroy() + } + + this.socket?.removeAllListeners() + delete this.socket + + this.emit("reconnect") + this.connect() + + this.reconnectAttempts++ + }, this.options.retryDelay) + } + + private open(): void { + if (this.reconnectTimeout) clearTimeout(this.reconnectTimeout) + this.connected = true + this.emit("connect") + } + + private close(code: number, reason: string): void { + this.connected = false + this.emit("disconnect", { code, reason }) + if (code !== 1000 || reason !== "destroy") this.reconnect() + } + + private error(error: Error): void { + this.emit("error", error) + } + + private message(d: Buffer | string): void { + if (Array.isArray(d)) d = Buffer.concat(d) + else if (d instanceof ArrayBuffer) d = Buffer.from(d) + + const payload: IncomingPayloads = JSON.parse(d.toString()) + + if (!payload.op) return + this.emit("raw", payload) + + switch (payload.op) { + case "stats": + this.stats = { + players: payload.players, + playingPlayers: payload.playingPlayers, + uptime: payload.uptime, + memory: payload.memory, + cpu: payload.cpu, + lastUpdated: Date.now(), + frameStats: payload.frameStats + } + break + case "playerUpdate": + this.emit("playerUpdate", payload.guildId, payload.state) + break + case "event": + this.emit("event", payload) + break + default: + this.error(new Error(`Unexpected op '${payload.op}' with data: ${d.toString()}`)) + } + } +} diff --git a/src/structures/CoffeePlayer.ts b/src/structures/CoffeePlayer.ts new file mode 100644 index 0000000..076cb29 --- /dev/null +++ b/src/structures/CoffeePlayer.ts @@ -0,0 +1,336 @@ +/* eslint-disable func-names */ +/* eslint-disable prefer-arrow-callback */ +import { CoffeeNode } from "./CoffeeNode" +import { CoffeeLava } from "./CoffeeLava" +import { Filters } from "../utils/filters" +import { CoffeeQueue } from "./CoffeeQueue" +import { PlayerOptions, PlayOptions } from "../utils/typings" +import { check } from "../utils/decorators/validators" +import { constructPlayer } from "../utils/decorators/constructs" +import { VoiceUpdatePayload, PausePayload, SeekPayload, StopPayload, VolumePayload, FiltersPayload, PlayPayload } from "../utils/payloads" +import { LoopMode, PlayerStates, PlayerVoiceStates, OpCodes } from "../utils/constants" +import { CoffeeTrack, UnresolvedTrack } from "./CoffeeTrack" +import { LoadTypes } from "../utils/rest" + +@constructPlayer() +export class CoffeePlayer { + /** The queue for the player */ + public readonly queue = new CoffeeQueue() + /** The player options */ + public readonly options: PlayerOptions + /** The player manager */ + public readonly lava: CoffeeLava + /** The player position in milliseconds */ + public position = 0 + /** Wether the player is currently replaying */ + public replaying = false + /** The player filters */ + public filters: Filters = {} + /** The player loop mode */ + public loop: LoopMode = LoopMode.None + /** The player state */ + public state: PlayerStates = PlayerStates.Paused + /** The player voice state */ + public voiceState: PlayerVoiceStates = PlayerVoiceStates.Disconnected + /** The player voice payload */ + public voice: VoiceUpdatePayload = Object.create(null) + /** The player play options if its currently playing */ + public playOptions?: PlayOptions + + public constructor(lava: CoffeeLava, options: PlayerOptions) { + this.lava = lava + this.options = { + volume: 100, + selfMute: false, + selfDeaf: true, + node: this.lava.leastLoadNode?.options.name, + ...options + } + + this.lava.players.set(this.options.guildID, this) + this.lava.emit("playerCreate", this) + this.setVolume() + } + + /** The node used by player */ + public get node(): CoffeeNode { + const node = this.lava.nodes.get(this.options.node!) + if (!node || !node.connected) throw new Error("No node is available currently") + return node + } + + /** Move the player to another node */ + @check(function (this: CoffeePlayer, method, node: string) { + if (this.options.node === node) return + return method(node) + }) + public setNode(node: string): void { + this.options.node = node + + if ( + ["op", "guildId", "event", "sessionId"].every(prop => prop in this.voice) + ) void this.node.send(this.voice) + + if (this.queue.current) { + void this.resolveCurrent().then(() => { + const payload: PlayPayload = { + op: OpCodes.Play, + ...this.playOptions, + guildId: this.options.guildID, + track: (this.queue.current as CoffeeTrack).base64, + startTime: this.position + } + this.lava.emit("playerReplay", this) + void this.node.send(payload) + this.replaying = true + }) + } + } + + /** Connect to the voice channel */ + @check(function (this: CoffeePlayer, method) { + if (!this.options.voiceID) throw new Error("No voice channel has been set") + return method() + }) + public connect(): void { + this.voiceState = PlayerVoiceStates.Connecting + this.lava.options.send(this.options.guildID, { + op: 4, + d: { + guild_id: this.options.guildID, + channel_id: this.options.voiceID!, + self_mute: this.options.selfMute!, + self_deaf: this.options.selfDeaf! + } + }) + this.voiceState = PlayerVoiceStates.Connected + } + + /** Disconenct from the voice channel */ + @check(function (this: CoffeePlayer, method) { + if (this.voiceState !== PlayerVoiceStates.Connected) return + return method() + }) + public disconnect(): void { + this.voiceState = PlayerVoiceStates.Disconnecting + this.pause(true) + this.lava.options.send(this.options.guildID, { + op: 4, + d: { + guild_id: this.options.guildID, + channel_id: null, + self_mute: false, + self_deaf: false + } + }) + this.voiceState = PlayerVoiceStates.Disconnected + } + + /** Play the next track in queue */ + @check(function (this: CoffeePlayer, method, options: PlayOptions) { + if ( + typeof options !== "object" || options === null + ) throw new TypeError("Parameter 'options' must be present and be an object") + return method(options) + }) + public async play(options: PlayOptions): Promise { + const prevOfPrevious = this.queue.previous + + if (this.loop === LoopMode.Track) this.queue.previous = this.queue.current + else this.queue.progress() + + if (!this.queue.current) return + + if (this.loop === LoopMode.Queue) this.queue.add(this.queue.previous!) + + try { + await this.resolveCurrent() + } catch (error) { + this.lava.emit("trackError", this, this.queue.current, error) + this.queue.current = this.queue.previous + this.queue.previous = prevOfPrevious + if (this.queue.length) await this.play(options) + return + } + + const payload: PlayPayload = { + op: OpCodes.Play, + guildId: this.options.guildID, + track: (this.queue.current as CoffeeTrack).base64, + startTime: options.startTime, + endTime: options.endTime + } + + await this.node.send(payload) + } + + /** Patch the player filters */ + @check(function (this: CoffeePlayer, method) { + if (!this.queue.current) return + return method() + }) + public patchFilters(): void { + const payload: FiltersPayload = { + op: OpCodes.Filters, + guildId: this.options.guildID, + ...this.filters + } + void this.node.send(payload) + } + + /** Set the player filters */ + @check(function (this: CoffeePlayer, method, filters: Filters) { + if ( + typeof filters !== "object" || filters === null + ) throw new TypeError("Parameter 'filters' must be present and be an object") + return method(filters) + }) + public setFilters(filters: Filters): void { + this.filters = filters + } + + /** Set the player volume */ + @check(function (this: CoffeePlayer, method, volume?: number) { + volume = Number(volume) + if (isNaN(volume)) volume = this.options.volume + return method(volume) + }) + public setVolume(volume?: number): void { + this.options.volume = Math.max(Math.min(volume!, 1000), 0) + const payload: VolumePayload = { + op: OpCodes.Volume, + guildId: this.options.guildID, + volume: this.options.volume + } + void this.node.send(payload) + } + + /** Set the player loop mode */ + @check(function (this: CoffeePlayer, method, loopMode: LoopMode) { + if (loopMode < LoopMode.None || loopMode > LoopMode.Queue) loopMode = LoopMode.None + return method(loopMode) + }) + public setLoop(loopMode: LoopMode): void { + this.loop = loopMode + } + + /** Stops the current track, optionally give an amount to skip to, e.g 5 would play the 5th song */ + @check(function (this: CoffeePlayer, method, amount?: number) { + if (typeof amount === "number" && amount > 1) { + if (amount > this.queue.length) throw new RangeError("Cannot skip more than the queue length.") + } + return method(amount) + }) + public stop(amount?: number): void { + if (typeof amount === "number" && amount > 1) this.queue.splice(0, amount - 1) + const payload: StopPayload = { + op: OpCodes.Stop, + guildId: this.options.guildID + } + void this.node.send(payload) + } + + /** Pause the current track */ + @check(function (this: CoffeePlayer, method, pause: boolean) { + if (typeof pause !== "boolean") throw new TypeError("Parameter 'pause' must be present and be a boolean") + if (this.state === PlayerStates.Paused || !this.queue.totalSize) return + return method(pause) + }) + public pause(pause: boolean): void { + this.state = pause ? PlayerStates.Paused : PlayerStates.Playing + const payload: PausePayload = { + op: OpCodes.Pause, + guildId: this.options.guildID, + pause + } + void this.node.send(payload) + } + + /** Seek to the position in current track */ + @check(function (this: CoffeePlayer, method, position: number) { + if (!this.queue.current) return + position = Number(position) + if (isNaN(position)) throw new TypeError("Parameter 'position' must be present and be a number") + if (position < 0 || position > this.queue.current.duration!) { + position = Math.max(Math.min(position, this.queue.current.duration!), 0) + } + return method(position) + }) + public seek(position: number): void { + this.position = position + const payload: SeekPayload = { + op: OpCodes.Seek, + guildId: this.options.guildID, + position + } + void this.node.send(payload) + } + + /** Destroy the player */ + public destroy(): void { + this.state = PlayerStates.Destroyed + this.disconnect() + + void this.node.send({ + op: OpCodes.Destroy, + guildId: this.options.guildID + }) + + this.lava.players.delete(this.options.guildID) + this.lava.emit("playerDestroy", this) + } + + /** Set a property into metadata */ + public set(key: string, value: unknown): void { + if (this.options.metadata) this.options.metadata[key] = value + } + + /** Get a property from metadata */ + public get(key: string): T | undefined { + return this.options.metadata?.[key] as T + } + + private async resolveCurrent(): Promise { + const track = this.queue.current! + if (UnresolvedTrack.isUnresolved(track)) { + const query = [track.author, track.title].filter(str => str).join(" - ") + const res = await this.lava.search({ query }, track.requester) + + if (res.loadType !== LoadTypes.SearchResult) { + // eslint-disable-next-line @typescript-eslint/no-throw-literal + throw res.error ?? { + message: "No tracks found.", + severity: "COMMON" + } + } + + if (track.author) { + const channelNames = [track.author, `${track.author} - Topic`] + const originalAudio = res.tracks.find( + cTrack => channelNames.some( + name => name === cTrack.author || name === cTrack.title + ) + ) + + if (originalAudio) { + this.queue.current = originalAudio + return + } + } + + if (track.duration) { + const sameDuration = res.tracks.find( + cTrack => (cTrack.duration >= (track.duration! - 1500)) && + (cTrack.duration <= (track.duration! + 1500)) + ) + + if (sameDuration) { + this.queue.current = sameDuration + return + } + } + + this.queue.current = res.tracks[0] + } + } +} diff --git a/src/structures/CoffeeQueue.ts b/src/structures/CoffeeQueue.ts new file mode 100644 index 0000000..c6e087f --- /dev/null +++ b/src/structures/CoffeeQueue.ts @@ -0,0 +1,69 @@ +import { CoffeeTrack, UnresolvedTrack } from "./CoffeeTrack" +import { Queue } from "../utils/decorators/validators" + +/** The player's queue, the `current` property is the currently playing track, think of the rest as the up-coming tracks */ +export class CoffeeQueue extends Array { + /** The current track */ + public current?: CoffeeTrack | UnresolvedTrack + /** The previous track */ + public previous?: CoffeeTrack | UnresolvedTrack + + /** The total duration of the queue */ + public get duration(): number { + const current = this.current?.duration ?? 0 + return this.reduce((acc, tr) => acc + (tr.duration ?? 0), current) + } + + /** The total size of tracks in the queue including the current track */ + public get totalSize(): number { + return this.length + (this.current ? 1 : 0) + } + + /** The size of the tracks in the queue */ + public get size(): number { + return this.length + } + + /** Add some track to the queue */ + @Queue.validateTracks() + public add( + tracks: (CoffeeTrack | UnresolvedTrack) | (CoffeeTrack | UnresolvedTrack)[], + offset?: number + ): void { + if (typeof offset === "undefined" && typeof offset !== "number") { + if (Array.isArray(tracks)) this.push(...tracks); + else this.push(tracks); + } else if (Array.isArray(tracks)) { + this.splice(offset, 0, ...tracks) + } else { + this.splice(offset, 0, tracks) + } + } + + /** Removes an amount of tracks using a exclusive start and end exclusive index, returning the removed tracks, EXCLUDING THE `current` TRACK */ + @Queue.validatePosition() + public remove(start: number, end?: number): (CoffeeTrack | UnresolvedTrack)[] { + if (typeof end !== "undefined") return this.splice(start, end - start) + return this.splice(start, 1) + } + + /** Clear the queue */ + public clear(): void { + this.length = 0 + } + + /** Shuffle the queue */ + public shuffle(): void { + for (let i = this.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [this[i], this[j]] = [this[j], this[i]]; + } + } + + /** Progress to next song */ + public progress(): CoffeeTrack | UnresolvedTrack | undefined { + this.previous = this.current + this.current = this.shift() as CoffeeTrack + return this.current + } +} diff --git a/src/structures/CoffeeTrack.ts b/src/structures/CoffeeTrack.ts new file mode 100644 index 0000000..a538a0e --- /dev/null +++ b/src/structures/CoffeeTrack.ts @@ -0,0 +1,85 @@ +import { TrackData, TrackInfo } from "../utils/rest" +import { constructTrack, constructUnresolved } from "../utils/decorators/constructs" + +export interface ITrack { + /** The title of the track */ + title: string + /** The identifier of the track */ + identifier: string + /** The author of the track */ + author: string + /** The duration of the track */ + duration: number + /** Whether the track is seekable */ + isSeekable: boolean + /** Whether the track is a stream */ + isStream: boolean + /** The url of the track */ + url: string + /** The source of the track */ + source: string +} + +@constructTrack() +export class CoffeeTrack implements ITrack { + /** The base 64 encoded of track */ + public readonly base64: string + /** The requester of the track if any */ + public readonly requester?: unknown + public title: string + public identifier: string + public author: string + public duration: number + public isSeekable: boolean + public isStream: boolean + public url: string + public source: string + + public constructor(track: TrackData, requester?: unknown) { + this.base64 = track.track + this.requester = requester + this.build(track.info) + } + + /** Check if obj is a valid Track */ + public static isTrack(obj: unknown): obj is CoffeeTrack { + return typeof obj === "object" && obj ? obj instanceof CoffeeTrack : false + } + + /** Display thumbnail url if source is youtube */ + public displayThumbnail(size = "default"): string | undefined { + if (this.source !== "youtube") return + + return `https://img.youtube.com/vi/${this.identifier}/${size}.jpg` + } + + /** Build TrackInfo into ITrack */ + public build(info: TrackInfo): void { + this.title = info.title + this.identifier = info.identifier + this.author = info.author + this.duration = info.length + this.isSeekable = info.isSeekable + this.isStream = info.isStream + this.url = info.uri + this.source = info.sourceName + } +} + +@constructUnresolved() +export class UnresolvedTrack { + public constructor( + /** Supposely the title of the track */ + public readonly title: string, + /** Supposably the author of the track */ + public readonly author?: string, + /** Supposably the duration of the track */ + public readonly duration?: number, + /** The requester of the track if any */ + public readonly requester?: unknown + ) {} + + public static isUnresolved(obj: unknown): obj is UnresolvedTrack { + return typeof obj === "object" && obj ? obj instanceof UnresolvedTrack : false + } +} diff --git a/src/structures/index.ts b/src/structures/index.ts new file mode 100644 index 0000000..f28d959 --- /dev/null +++ b/src/structures/index.ts @@ -0,0 +1,5 @@ +export * from "./CoffeeLava" +export * from "./CoffeeNode" +export * from "./CoffeePlayer" +export * from "./CoffeeQueue" +export * from "./CoffeeTrack" diff --git a/src/utils/constants.ts b/src/utils/constants.ts new file mode 100644 index 0000000..18245dc --- /dev/null +++ b/src/utils/constants.ts @@ -0,0 +1,43 @@ +export enum OpCodes { + VoiceUpdate = "voiceUpdate", + Play = "play", + Stop = "stop", + Pause = "pause", + Seek = "seek", + Volume = "volume", + Filters = "filters", + Destroy = "destroy" +} + +export enum OpIncoming { + PlayerUpdate = "playerUpdate", + Stats = "stats", + Event = "event" +} + +export enum EventTypes { + TrackStart = "TrackStartEvent", + TrackEnd = "TrackEndEvent", + TrackException = "TrackExceptionEvent", + TrackStuck = "TrackStuckEvent", + WebSocketClosed = "WebSocketClosedEvent" +} + +export enum LoopMode { + None, + Track, + Queue +} + +export enum PlayerStates { + Playing, + Paused, + Destroyed +} + +export enum PlayerVoiceStates { + Connecting, + Connected, + Disconnecting, + Disconnected +} diff --git a/src/utils/decorators/constructs.ts b/src/utils/decorators/constructs.ts new file mode 100644 index 0000000..b1566a4 --- /dev/null +++ b/src/utils/decorators/constructs.ts @@ -0,0 +1,221 @@ +import { NodeOptions, PlayerOptions, LavaOptions } from "../typings" +import { CoffeeLava } from "../../structures/CoffeeLava" +import { TrackData } from "../rest" + +export function decorateConstructor(func: (target, args: any[]) => any) { + return function decorate(target) { + return new Proxy(target, { + construct(constructor, args) { + return func(constructor, args) + } + }) + } +} + +export function constructCoffee(): (target: any) => any { + return decorateConstructor((coffee, args) => { + const options = args[0] as LavaOptions + + if (!options) throw new TypeError("LavaOptions must not be empty") + if (typeof options.send !== "function") throw new TypeError("Lava option 'send' must be present and be a function") + + if ( + typeof options.clientName !== "undefined" && + (typeof options.clientName !== "string" || !options.clientName) + ) throw new TypeError("Lava option 'clientName' must be a non-empty string") + + if ( + typeof options.shards !== "undefined" && + (typeof options.shards !== "number" || isNaN(options.shards)) + ) throw new TypeError("Lava option 'shards' must be a number") + + if ( + typeof options.autoPlay !== "undefined" && + typeof options.autoPlay !== "boolean" + ) throw new TypeError("Lava option 'autoPlay' must be a boolean") + + if ( + typeof options.defaultSearchPlatform !== "undefined" && + (typeof options.defaultSearchPlatform !== "string" || !options.defaultSearchPlatform) + ) throw new TypeError("Lava option 'defaultSearchPlatform' must be a non-empty string") + + if ( + typeof options.autoReplay !== "undefined" && + typeof options.autoReplay !== "boolean" + ) throw new TypeError("Lava option 'autoReplay' must be a boolean") + + return new coffee(options) + }) +} + +export function constructPlayer(): (target: any) => any { + return decorateConstructor((player, args) => { + const lava = args[0] as CoffeeLava + const options = args[1] as PlayerOptions + + if (!(lava instanceof CoffeeLava)) throw new TypeError("Lava must be instanceof CoffeeLava") + if (!options) throw new TypeError("PlayerOptions must not be empty") + + if ( + typeof options.guildID !== "string" || !options.guildID + ) throw new TypeError("Player option 'guildID' must be present and be a non-empty string") + + if (lava.players.has(options.guildID)) return lava.players.get(options.guildID) + + if ( + typeof options.voiceID !== "undefined" && + (typeof options.voiceID !== "string" || !options.voiceID) + ) throw new TypeError("Player option 'voiceID' must be a non-empty string") + + if ( + typeof options.node !== "undefined" && + (typeof options.node !== "string" || !options.node) + ) throw new TypeError("Player option 'node' must be a non-empty string") + + if ( + typeof options.volume !== "undefined" && + (typeof options.volume !== "number" || isNaN(options.volume)) + ) throw new TypeError("Player option 'volume' must be a number") + + if ( + typeof options.selfMute !== "undefined" && + typeof options.selfMute !== "boolean" + ) throw new TypeError("Player option 'selfMute' must be a boolean") + + if ( + typeof options.selfDeaf !== "undefined" && + typeof options.selfDeaf !== "boolean" + ) throw new TypeError("Player option 'selfDeaf' must be a boolean") + + if ( + typeof options.metadata !== "undefined" && + (typeof options.metadata !== "object" || options.metadata === null) + ) throw new TypeError("Player option 'metadata' must be an object") + + return new player(lava, options) + }) +} + +export function constructNode(): (target: any) => any { + return decorateConstructor((node, args) => { + const lava = args[0] as CoffeeLava + const options = args[1] as NodeOptions + + if (!(lava instanceof CoffeeLava)) throw new TypeError("Lava must be instanceof CoffeeLava") + if (!options) throw new TypeError("NodeOptions must not be empty") + + if ( + typeof options.name !== "string" || !options.name + ) throw new TypeError("Node option 'name' must be present and be a non-empty string") + + if (lava.nodes.has(options.name)) return lava.nodes.get(options.name)! + + if ( + typeof options.url !== "string" || !options.url + ) throw new TypeError("Node option 'url' must be present and be a non-empty string") + + if ( + typeof options.password !== "undefined" && + (typeof options.password !== "string" || !options.password) + ) throw new TypeError("Node option 'password' must be a non-empty string") + + if ( + typeof options.secure !== "undefined" && + typeof options.secure !== "boolean" + ) throw new TypeError("Node option 'secure' must be a boolean") + + if ( + typeof options.retryAmount !== "undefined" && + typeof options.retryAmount !== "number" + ) throw new TypeError("Node option 'retryAmount' must be a number") + + if ( + typeof options.retryDelay !== "undefined" && + typeof options.retryDelay !== "number" + ) throw new TypeError("Node option 'retryDelay' must be a number") + + if ( + typeof options.requestTimeout !== "undefined" && + typeof options.requestTimeout !== "number" + ) throw new TypeError("Node option 'requestTimeout' must be a number.") + + if ( + options.maxConnections === null + ? false + : (typeof options.maxConnections !== "undefined" && + (typeof options.maxConnections !== "number" || + isNaN(options.maxConnections) || options.maxConnections < 1 + ) + ) + ) throw new TypeError("Node option 'maxConnections' must be null or more-than-zero number") + + return new node(lava, options) + }) +} + +export function constructTrack(): (target: any) => any { + return decorateConstructor((trackClass, args) => { + const track: TrackData = args[0] + const requester = args[1] + + if (!track) throw new TypeError("TrackData must not be empty") + + if ( + typeof track.track !== "string" || !track.track + ) throw new TypeError("TrackData property 'track' must be present and be a non-empty string") + + if (!track.info) throw new TypeError("TrackData#info must not be empty") + + if ( + typeof track.info.identifier !== "string" || !track.info.identifier + ) throw new TypeError("TrackData#info property 'identifier' must be present and be a non-empty string") + + if (typeof track.info.isSeekable !== "boolean") throw new TypeError("TrackData#info property 'isSeekable' must be present and be a boolean") + + if ( + typeof track.info.author !== "string" || !track.info.author + ) throw new TypeError("TrackData#info property 'author' must be present and be a non-empty string") + + if (typeof track.info.length !== "number") throw new TypeError("TrackData#info property 'length' must be present and be a number") + if (typeof track.info.isStream !== "boolean") throw new TypeError("TrackData#info property 'isStream' must be present and be a boolean") + + if ( + typeof track.info.title !== "string" || !track.info.title + ) throw new TypeError("TrackData#info property 'title' must be present and be a non-empty string") + + if ( + typeof track.info.uri !== "string" || !track.info.uri + ) throw new TypeError("TrackData#info property 'uri' must be present and be a non-empty string") + + if ( + typeof track.info.sourceName !== "string" || !track.info.sourceName + ) throw new TypeError("TrackData#info property 'sourceName' must be present and be a non-empty string") + + return new trackClass(track, requester) + }) +} + +export function constructUnresolved(): (target: any) => any { + return decorateConstructor((unresolvedClass, args) => { + const title: string = args[0] + const author: string = args[1] + const duration: number = args[2] + const requester = args[3] + + if ( + typeof title !== "string" || !title + ) throw new TypeError("Parameter 'title' must be present and be a non-empty string") + + if ( + typeof author !== "undefined" && + (typeof author !== "string" || !author) + ) throw new TypeError("Parameter 'author' must be a non-empty string") + + if ( + typeof duration !== "undefined" && + typeof duration !== "number" + ) throw new TypeError("Parameter 'duration' must be a number") + + return new unresolvedClass(title, author, duration, requester) + }) +} diff --git a/src/utils/decorators/validators.ts b/src/utils/decorators/validators.ts new file mode 100644 index 0000000..3ad08aa --- /dev/null +++ b/src/utils/decorators/validators.ts @@ -0,0 +1,58 @@ +/* eslint-disable func-names */ +import { CoffeeQueue } from "../../structures/CoffeeQueue" +import { CoffeeTrack, UnresolvedTrack } from "../../structures/CoffeeTrack" + +export function decorateMethod(func: (method, ...args: any[]) => any) { + return function decorate(_0, _1, descriptor: PropertyDescriptor) { + const method = descriptor.value + descriptor.value = function (...args: any[]) { + return func.apply(this, [method.bind(this), ...args]) + } + return descriptor + } +} + +export namespace Queue { + export function validateTracks(): (...args: any[]) => any { + return decorateMethod(function (this: CoffeeQueue, func, trackOrTracks, offset) { + const error = new TypeError("Parameter 'trackOrTracks' must be present and be a CoffeeTrack or UnresolvedTrack") + + if (Array.isArray(trackOrTracks) && trackOrTracks.length) { + for (const track of trackOrTracks) { + if (!(CoffeeTrack.isTrack(track) || UnresolvedTrack.isUnresolved(track))) throw error + } + } else if (!(CoffeeTrack.isTrack(trackOrTracks) || UnresolvedTrack.isUnresolved(trackOrTracks))) { + throw error + } + + if (typeof offset !== "undefined" && typeof offset === "number") { + if (Number.isNaN(offset)) throw new TypeError("Parameter 'offset' must be a number") + if (offset < 0 || offset > this.length) throw new RangeError(`Offset must be or between 0 and ${this.length}`) + } + + return func(trackOrTracks) + }) + } + + export function validatePosition(): (...args: any[]) => any { + return decorateMethod(function (this: CoffeeQueue, func, start: number, end?: number) { + if ( + typeof start !== "number" || + isNaN(start) + ) throw new TypeError("Parameter 'start' must be present and be a number") + + if (start >= this.length) throw new RangeError(`Parameter 'start' can not be bigger than ${this.length}`) + + if (typeof end !== "undefined") { + if (typeof end !== "number" || isNaN(end)) throw new TypeError("Parameter 'end' must be a number") + if (start >= end) throw new RangeError("Parameter 'start' can not be bigger than end") + } + + return func(start, end) + }) + } +} + +export function check(func: (method, ...args: any[]) => any): (...args: any[]) => any { + return decorateMethod(func) +} diff --git a/src/utils/filters.ts b/src/utils/filters.ts new file mode 100644 index 0000000..f8483b5 --- /dev/null +++ b/src/utils/filters.ts @@ -0,0 +1,83 @@ +export interface Filters { + /** The volume filter */ + volume?: number + /** The equalizer filters */ + equalizer?: Equalizer[] + /** Uses equalization to eliminate part of a band, usually targeting vocals */ + karaoke?: Karaoke + /** Changes the speed, pitch, and rate. All default to 1 */ + timescale?: TimeScale + /** Uses amplification to create a shuddering effect, where the volume quickly oscillates */ + tremolo?: Tremolo + /** Similar to tremolo. While tremolo oscillates the volume, vibrato oscillates the pitch */ + vibrato?: Vibrato + /** Rotates the sound around the stereo channels/user headphones aka Audio Panning */ + rotation?: Rotation + /** Distortion effect. It can generate some pretty unique audio effects */ + distortion?: Distortion + /** Mixes both channels (left and right), with a configurable factor on how much each channel affects the other */ + channelMix?: ChannelMix + /** Higher frequencies get suppressed, while lower frequencies pass through this filter, thus the name low pass */ + lowPass?: LowPass +} + +export interface Equalizer { + /** The equalizer band, can be 0-14 */ + band: number + /** Multipler for the given band, can be 0.25 to 1.0 */ + gain: number +} + +export interface Karaoke { + level: number + monoLevel: number + filterBand: number + filterWidth: number +} + +export interface TimeScale { + speed: number + pitch: number + rate: number +} + +export interface Tremolo { + /** 0 < x */ + frequency: number + /** 0 < x <= 1 */ + depth: number +} + +export interface Vibrato { + /** 0 < x <= 14 */ + frequency: number + /** 0 < x <= 1 */ + depth: number +} + +export interface Rotation { + /** The frequency of the audio rotating around the listener in Hz. 0.2 is similar to the example video above */ + rotationHz: number +} + +export interface Distortion { + sinOffset: number + sinScale: number + cosOffset: number + cosScale: number + tanOffset: number + tanScale: number + offset: number + scale: number +} + +export interface ChannelMix { + leftToLeft: number + leftToRight: number + rightToLeft: number + rightToRight: number +} + +export interface LowPass { + smoothing: number +} diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..9056fd6 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,5 @@ +export * from "./constants" +export * from "./filters" +export * from "./payloads" +export * from "./rest" +export * from "./typings" diff --git a/src/utils/payloads.ts b/src/utils/payloads.ts new file mode 100644 index 0000000..fd1d981 --- /dev/null +++ b/src/utils/payloads.ts @@ -0,0 +1,162 @@ +import { Filters } from "./filters" +import { NodeStats } from "./typings" +import { OpCodes, OpIncoming, EventTypes } from "./constants" + +export interface VoiceServerUpdate { + op: 0 + s: number + t: "VOICE_SERVER_UPDATE" + d: { + token: string + guild_id: string + endpoint: string + } +} + +export interface VoiceStateUpdate { + op: 0 + s: number + t: "VOICE_STATE_UPDATE" + d: { + guild_id: string + channel_id?: string + user_id: string + session_id: string + deaf: boolean + mute: boolean + self_deaf: boolean + self_mute: boolean + self_stream?: boolean + self_video: boolean + suppress: boolean + request_to_speak_timestamp?: number + } +} + +export interface OutgoingPayload { + op: OpCodes + guildId: string +} + +export type OutgoingPayloads = + | VoiceUpdatePayload + | PlayPayload + | StopPayload + | PausePayload + | SeekPayload + | VolumePayload + | FiltersPayload + | DestroyPayload + +export interface VoiceUpdatePayload extends OutgoingPayload { + op: OpCodes.VoiceUpdate + event: VoiceServerUpdate["d"] + sessionId: string +} + +export interface PlayPayload extends OutgoingPayload { + op: OpCodes.Play + track: string + startTime?: number + endTime?: number + volume?: number + noReplace?: boolean + pause?: boolean +} + +export interface StopPayload extends OutgoingPayload { + op: OpCodes.Stop +} + +export interface PausePayload extends OutgoingPayload { + op: OpCodes.Pause + pause: boolean +} + +export interface SeekPayload extends OutgoingPayload { + op: OpCodes.Seek + position: number +} + +export interface VolumePayload extends OutgoingPayload { + op: OpCodes.Volume + volume: number +} + +export interface FiltersPayload extends OutgoingPayload, Filters { + op: OpCodes.Filters +} + +export interface DestroyPayload extends OutgoingPayload { + op: OpCodes.Destroy +} + +export interface IncomingPayload { + op: OpIncoming +} + +export type IncomingPayloads = + | PlayerUpdatePayload + | StatsPayload + | EventPayloads + +export interface PlayerUpdatePayload extends IncomingPayload { + op: OpIncoming.PlayerUpdate + guildId: string + state: { + time: number + position: number + connected: boolean + } +} + +export interface StatsPayload extends IncomingPayload, NodeStats { + op: OpIncoming.Stats +} + +export interface EventPayload extends IncomingPayload { + op: OpIncoming.Event + type: EventTypes + guildId: string +} + +export type EventPayloads = + | TrackStartPayload + | TrackEndPayload + | TrackExceptionPayload + | TrackStuckPayload + | WebSocketClosedPayload + +export interface TrackStartPayload extends EventPayload { + type: EventTypes.TrackStart + track: string +} + +export interface TrackEndPayload extends EventPayload { + type: EventTypes.TrackEnd + track: string + reason: string +} + +export interface TrackExceptionPayload extends EventPayload { + type: EventTypes.TrackException + track: string + exception: { + message: string + severity: string + cause: string + } +} + +export interface TrackStuckPayload extends EventPayload { + type: EventTypes.TrackStuck + track: string + thresholdMs: number +} + +export interface WebSocketClosedPayload extends EventPayload { + type: EventTypes.WebSocketClosed + code: number + reason: string + byRemote: boolean +} diff --git a/src/utils/rest.ts b/src/utils/rest.ts new file mode 100644 index 0000000..48581e3 --- /dev/null +++ b/src/utils/rest.ts @@ -0,0 +1,38 @@ +export enum LoadTypes { + TrackLoaded = "TRACK_LOADED", + PlaylistLoaded = "PLAYLIST_LOADED", + SearchResult = "SEARCH_RESULT", + NoMatches = "NO_MATCHES", + LoadFailed = "LOAD_FAILED" +} + +export interface TrackInfo { + identifier: string + isSeekable: boolean + author: string + length: number + isStream: boolean + title: string + uri: string + sourceName: string +} + +export interface TrackData { + track: string + info: TrackInfo +} + +export type Tracks = TrackData[] + +export interface TracksData { + loadType: LoadTypes + tracks: Tracks + playlistInfo?: { + name: string + selectedTrack: number + } + exception?: { + message: string + severity: string + } +} diff --git a/src/utils/typings.ts b/src/utils/typings.ts new file mode 100644 index 0000000..f1dfb83 --- /dev/null +++ b/src/utils/typings.ts @@ -0,0 +1,148 @@ +import { CoffeeTrack } from "../structures/CoffeeTrack"; +import { LoadTypes } from "./rest"; + +export interface NodeOptions { + /** The url for the node */ + url: string + /** The name for the node. */ + name: string + /** The password for the node */ + password?: string + /** Whether the host uses SSL. */ + secure?: boolean + /** The retryAmount for the node. */ + retryAmount?: number + /** The retryDelay for the node. */ + retryDelay?: number + /** The timeout used for api calls */ + requestTimeout?: number + /** The max http connections that can be opened at once, null for unlimited */ + maxConnections?: number | null +} + +export interface NodeMemoryStats { + /** The free memory of the allocated amount. */ + free: number + /** The used memory of the allocated amount. */ + used: number + /** The total allocated memory. */ + allocated: number + /** The reservable memory. */ + reservable: number +} + +export interface NodeCPUStats { + /** The core amount the host machine has. */ + cores: number + /** The system load. */ + systemLoad: number + /** The lavalink load. */ + lavalinkLoad: number +} + +export interface NodeFrameStats { + /** The amount of sent frames. */ + sent: number + /** The amount of nulled frames. */ + nulled: number + /** The amount of deficit frames. */ + deficit: number +} + +export interface NodeStats { + /** The amount of players on the node. */ + players: number + /** The amount of playing players on the node. */ + playingPlayers: number + /** The uptime for the node. */ + uptime: number + /** The memory stats for the node. */ + memory: NodeMemoryStats + /** The cpu stats for the node. */ + cpu: NodeCPUStats + /** Timestamp of the time the stats was updated */ + lastUpdated: number + /** The frame stats for the node. */ + frameStats?: NodeFrameStats +} + +export type SearchPlatform = "yt" | "ytm" | "sc" + +export interface VoiceStatePayload { + op: number + d: { + guild_id: string + channel_id: string | null + self_mute: boolean + self_deaf: boolean + } +} + +export interface LavaOptions { + /** The value to use for 'Client-Name' header */ + clientName?: string + /** The shards count */ + shards?: number + /** Wether players should autmotically play next song */ + autoPlay?: boolean + /** The default search platform to use, can be "yt" for youtube, "ytm" for youtube music, and "sc" for soundcloud */ + defaultSearchPlatform?: SearchPlatform + /** Whether to replay track automatically when node used on player is disconnected */ + autoReplay?: boolean + /** Function to send voice state to the websocket */ + send(guildID: string, voiceState: VoiceStatePayload) +} + +export interface SearchQuery { + /** The source to search from */ + source?: SearchPlatform + /** The query to search for */ + query: string +} + +export interface PlayerOptions { + /** The guild the Player belongs to */ + guildID: string + /** The voice channel the Player belongs to */ + voiceID?: string + /** The node the Player use */ + node?: string + /** The initial volume the Player will use */ + volume?: number + /** If the player should mute itself */ + selfMute?: boolean + /** If the player should deaf itself */ + selfDeaf?: boolean + /** Additional metadata for player, if any */ + metadata?: Record +} + +export interface PlayOptions { + /** The position to start the track */ + startTime?: number + /** The position to end the track */ + endTime?: number +} + +export interface Playlist { + /** The playlist name */ + name: string + /** The selected track, if any */ + selectedTrack: CoffeeTrack | null + /** Playlist total duration */ + duration: number +} + +export interface SearchResult { + /** Load type from searching */ + loadType: LoadTypes + /** The tracks from searching */ + tracks: CoffeeTrack[] + /** The playlist info if load type is playlist */ + playlist?: Playlist + /** Error from searching, if failed */ + error?: { + message: string + severity: string + } +} diff --git a/test.tsconfig.json b/test.tsconfig.json new file mode 100644 index 0000000..f915f8c --- /dev/null +++ b/test.tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "commonjs", + "moduleResolution": "node", + "outDir": "./test/compiled", + "esModuleInterop": true, + "strictNullChecks": true, + "resolveJsonModule": true, + "experimentalDecorators": true, + "forceConsistentCasingInFileNames": true + }, + "include": [ + "./test/index.ts" + ] +} \ No newline at end of file diff --git a/test/index.ts b/test/index.ts new file mode 100644 index 0000000..e482296 --- /dev/null +++ b/test/index.ts @@ -0,0 +1,732 @@ +if (!process.env.DEBUG) process.env.DEBUG = "lavacoffee" + +import ms from "ms" +import debugFactory from "debug" +import config from "./config.json" +import { CoffeeLava, CoffeeNode, CoffeeTrack, UnresolvedTrack, version as coffeeVersion } from "../src" +import { Client, Intents, Message, MessageEmbed, MessageSelectMenu, TextChannel, version as djsVersion } from "discord.js" +import { LoadTypes, LoopMode, PlayerVoiceStates } from "../src/utils" + +const debug = debugFactory("lavacoffee") + +class LavalinkClient extends Client { + public prefix: string + public lava: CoffeeLava + + constructor(onMessage: (this: LavalinkClient, msg: Message) => any) { + super({ + intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_VOICE_STATES] + }) + + this.prefix = config.prefix + this.lava = new CoffeeLava({ + send: (guildID, p) => { + const guild = this.guilds.cache.get(guildID) + guild?.shard.send(p) + } + }) + + this.once("ready", () => { + this.lava.init(this.user!.id) + debug(`Logged in as ${this.user!.tag}`) + }) + + this.on("raw", p => this.lava.updateVoiceData(p)) + this.on("messageCreate", onMessage.bind(this)) + + this.lava.on("nodeCreate", node => debug("Node Created: %s", node.options.name)) + this.lava.on("nodeDestroy", node => debug("Node Destroyed: %s", node.options.name)) + this.lava.on("nodeConnect", node => debug("Node Connected: %s", node.options.name)) + this.lava.on("nodeReconnect", node => debug("Node Reconnecting: %s", node.options.name)) + this.lava.on("nodeDisconnect", (node, reason) => debug("Node Disconnected: %s, Code: %d, Reason: %s", node.options.name, reason.code, reason.reason)) + this.lava.on("nodeError", (node, error) => debug("Node Error: %s, Error: %O", node.options.name, error)) + this.lava.on("playerCreate", player => debug("Player Created: %s", player.options.guildID)) + this.lava.on("playerDestroy", player => debug("Player Destroyed: %s", player.options.guildID)) + this.lava.on("socketClosed", (player, payload) => debug("Socket Closed: %s, Reason: %s", player.options.guildID, payload.reason)) + + this.lava.on("playerReplay", player => { + const embed = new MessageEmbed() + .setTitle("Replaying Track") + .setDescription("Replaying track because of reason: \`Disconnected from node\`") + .setColor("ORANGE") + + const text = player.get("text")! + + text.send({ embeds: [embed] }) + }) + + this.lava.on("replayError", player => { + const embed = new MessageEmbed() + .setTitle("Replay Error") + .setDescription("Error while replaying track after disconnected from node") + .setColor("RED") + + const text = player.get("text")! + + text.send({ embeds: [embed] }) + }) + + this.lava.on("queueStart", player => { + const embed = new MessageEmbed() + .setTitle("Queue Starting") + .setColor("GREEN") + + const text = player.get("text")! + + text.send({ embeds: [embed] }) + }) + + this.lava.on("queueEnd", player => { + const embed = new MessageEmbed() + .setTitle("Queue Ended") + .setColor("YELLOW") + + const text = player.get("text")! + + text.send({ embeds: [embed] }) + }) + + this.lava.on("trackStart", (player, track) => { + const embed = new MessageEmbed() + .setTitle("Track Starting") + .setDescription(`[${track.title}](${(track as CoffeeTrack).url})`) + .setColor("GREEN") + + const text = player.get("text")! + + text.send({ embeds: [embed] }) + }) + + this.lava.on("trackEnd", (player, track) => { + const embed = new MessageEmbed() + .setTitle("Track Ended") + .setDescription(`[${track.title}](${(track as CoffeeTrack).url})`) + .setColor("YELLOW") + + const text = player.get("text")! + + text.send({ embeds: [embed] }) + }) + + this.lava.on("trackStuck", (player, track) => { + const embed = new MessageEmbed() + .setTitle("Track Stuck") + .setDescription(`[${track.title}](${(track as CoffeeTrack).url})`) + .setColor("ORANGE") + + const text = player.get("text")! + + text.send({ embeds: [embed] }) + }) + + this.lava.on("trackError", (player, track, payload) => { + const embed = new MessageEmbed() + .setTitle("Track Error") + .setDescription(`[${track.title}](${(track as CoffeeTrack).url})`) + .addField("Cause", payload.exception.cause) + .addField("Severity", payload.exception.severity) + .addField("Error", `\`\`\`\n${payload.exception.message}\`\`\``) + .setColor("RED") + + const text = player.get("text")! + + text.send({ embeds: [embed] }) + }) + + for (const node of config.nodes) { + this.lava.add({ + ...node, + retryAmount: Infinity + }) + } + } +} + +new LavalinkClient(async function (msg) { + if (!msg.content.startsWith(this.prefix)) return + + const args = msg.content.substring(this.prefix.length).trim().split(" ") + const command = args.shift() + + switch (command) { + case "stats": + { + const client = this.user!.tag + const memory = process.memoryUsage() + const osMem = (memory.rss / 1024 / 1024).toFixed(2) + const jsTotal = (memory.heapTotal / 1024 / 1024).toFixed(2) + const jsUsed = (memory.heapUsed / 1024 / 1024).toFixed(2) + const cpp = (memory.external / 1024 / 1024).toFixed(2) + const arrayBuffer = (memory.arrayBuffers / 1024 / 1024).toFixed(2) + + const embed = new MessageEmbed() + .setTitle("Client Stats") + .setDescription(`\`\`\`\nClient: ${client}\nUptime: ${ms(Date.now() - this.readyTimestamp!, { long: true })}\nDiscord.js: ${djsVersion}\nLavacoffee: ${coffeeVersion}\`\`\``) + .addField("Memory Usage", `\`\`\`\nOS: ${osMem}MB\nJSTotal: ${jsTotal}MB\nJSUsed: ${jsUsed}MB\nC++: ${cpp}MB\nArrayBuffers: ${arrayBuffer}MB\`\`\``) + .setColor("FUCHSIA") + + const nodes: CoffeeNode[] = [] + + const iterator = this.lava.nodes.values() + for (let i = 0; i < Math.min(24, this.lava.nodes.size); i++) { + nodes.push(iterator.next().value) + } + + for (const node of nodes) { + const stats = node.stats + embed.addField(`${node.options.name} Stats`, `\`\`\`\nPlayers: ${stats.players}\nPlaying: ${stats.playingPlayers}\nUptime: ${ + ms(stats.uptime, { long: true }) + }\nMemory: ${(stats.memory.used / 1024 / 1024).toFixed(2)}MB\nLast Updated: ${ms(Date.now() - node.stats.lastUpdated, { long: true })} ago\`\`\``) + } + + msg.reply({ embeds: [embed] }) + } + break + case "join": + { + if (!msg.member!.voice.channel) { + msg.reply({ embeds: [error("You must be connected to voice channel") ]}) + return + } + + const player = this.lava.create({ + guildID: msg.guildId!, + metadata: { + text: msg.channel + } + }) + + player.options.voiceID = msg.member!.voice.channelId! + player.connect() + + const embed = new MessageEmbed() + .setTitle("Joined Voice") + .setDescription(`Joined to ${msg.member!.voice.channel.name}`) + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } + break + case "leave": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + player.disconnect() + + const embed = new MessageEmbed() + .setTitle("Disconnected from voice channel") + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } + break + case "play": + { + if (!args.length) { + msg.reply({ embeds: [error("No query is provided!")] }) + return + } + + const res = await this.lava.search({ query: args.join(" ") }, msg.author) + + if (res.loadType === LoadTypes.NoMatches) { + msg.reply({ embeds: [error("No result found from query!")] }) + return + } + + if (res.loadType === LoadTypes.LoadFailed) { + msg.reply({ embeds: [error(`Search Failed, Reason: \`\`\`\n${res.error!.severity}: ${res.error!.message}\`\`\``)] }) + return + } + + if (res.loadType === LoadTypes.SearchResult) { + const tracks = Math.min(10, res.tracks.length) + const selectMenu = new MessageSelectMenu() + .setMinValues(1) + .setMaxValues(tracks) + .setCustomId("tracks") + .setPlaceholder("Choose a track") + + for (let i = 0; i < tracks; i++) { + const track = res.tracks[i] + + selectMenu.addOptions({ + label: track.url, + value: i.toString(), + description: track.title.substring(0, 100) + }) + } + + const embed = new MessageEmbed() + .setTitle("Search Results") + .setDescription("Multiple tracks found, please select atleast one within 15 seconds") + .setColor("ORANGE") + + const message = await msg.reply({ embeds: [embed], components: [{ + type: "ACTION_ROW", + components: [selectMenu] + }]}) + + let success = false + + try { + const interaction = await message.awaitMessageComponent({ + time: 15_000, + componentType: "SELECT_MENU" + }) + + const tracks: CoffeeTrack[] = [] + + for (const value of interaction.values) { + const index = Number(value) + tracks.push(res.tracks[index]) + } + + res.tracks = tracks + success = true + } catch { + msg.reply({ embeds: [error("The prompt has timed out!")] }) + } finally { + message.delete() + if (!success) return + } + } + + const player = this.lava.create({ + guildID: msg.guildId!, + metadata: { + text: msg.channel + } + }) + + player.queue.add(res.tracks) + + const embed = new MessageEmbed() + .setTitle("Loaded Tracks") + .setColor("GREEN") + + if (res.loadType === LoadTypes.TrackLoaded || res.tracks.length === 1) { + embed.setDescription(`Added [${res.tracks[0].title}](${res.tracks[0].url})`) + } else if (res.loadType === LoadTypes.PlaylistLoaded) { + embed.setDescription(`Loaded playlist \`${res.playlist!.name}\``) + } else { + embed.setDescription("Added the selected tracks") + } + + msg.reply({ embeds: [embed] }) + + if (player.voiceState !== PlayerVoiceStates.Connected) { + if (!msg.member!.voice.channel) { + msg.reply({ embeds: [error("Cannot play the tracks because not connected to voice channel yet")] }) + return + } + + player.options.voiceID = msg.member!.voice.channelId! + player.connect() + + const embed1 = new MessageEmbed() + .setTitle("Joined Voice") + .setDescription(`Joined to ${msg.member!.voice.channel!.name}`) + .setColor("GREEN") + + msg.reply({ embeds: [embed1] }) + } + + if (!player.queue.current) await player.play({}) + } + break + case "play-custom": + { + const title = args[0] + + if (!title) { + msg.reply({ embeds: [error("Title must be provided")] }) + return + } + + const author = args[1] + const duration = Number(args[2]) + + if (args.length >= 3 && isNaN(duration)) { + msg.reply({ embeds: [error("Duration must be a number")] }) + return + } + + const track = new UnresolvedTrack(title, author, duration ? duration : undefined, msg.author) + + const player = this.lava.create({ + guildID: msg.guildId!, + metadata: { + text: msg.channel + } + }) + + player.queue.add(track) + + const embed = new MessageEmbed() + .setTitle(`Added ${title}`) + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + + if (player.voiceState !== PlayerVoiceStates.Connected) { + if (!msg.member!.voice.channel) { + msg.reply({ embeds: [error("Cannot play the tracks because not connected to voice channel yet")] }) + return + } + + player.options.voiceID = msg.member!.voice.channelId! + player.connect() + + const embed1 = new MessageEmbed() + .setTitle("Joined Voice") + .setDescription(`Joined to ${msg.member!.voice.channel!.name}`) + .setColor("GREEN") + + msg.reply({ embeds: [embed1] }) + } + + if (!player.queue.current) await player.play({}) + } + break + case "current": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + const track = player.queue.current as CoffeeTrack + + if (!track) { + msg.reply({ embeds: [error("No track is currently playing")] }) + return + } + + const embed = new MessageEmbed() + .setTitle(track.title) + .setURL(track.url) + .setDescription(`\`\`\`\nAuthor: ${track.author}\nDuration: ${ms(track.duration, { long: true })}\nPlayed since ${ms(player.position, { long: true })} ago\`\`\``) + .setColor("FUCHSIA") + + if (track.source === "youtube") embed.setThumbnail(track.displayThumbnail()!) + + msg.reply({ embeds: [embed] }) + } + break + case "queue": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + if (!player.queue.length) { + msg.reply({ embeds: [error("Queue is empty")] }) + return + } + + const embed = new MessageEmbed() + .setTitle("Queue") + .setColor("FUCHSIA") + .setDescription(player.queue.map((track, index) => `${index + 1}. ${CoffeeTrack.isTrack(track) ? `[${track.title}](${track.url})` : track.title}`).join("\n").substring(0, 2000)) + + msg.reply({ embeds: [embed] }) + } + break + case "remove": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + if (!player.queue.length) { + msg.reply({ embeds: [error("Queue is empty")] }) + return + } + + const start = Number(args[0]) + + if (isNaN(start)) { + msg.reply({ embeds: [error("Start position must be a valid number")] }) + return + } + + const end = Number(args[1]) + + if (isNaN(end)) { + msg.reply({ embeds: [error("End position must be a valid number")] }) + return + } + + try { + player.queue.remove(start, end) + + const embed = new MessageEmbed() + .setTitle("Successfully removed the tracks") + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } catch { + msg.reply({ embeds: [error("Error while removing the tracks")] }) + } + } + break + case "loop": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + const loop = player.loop === LoopMode.None + ? LoopMode.Queue + : player.loop === LoopMode.Queue + ? LoopMode.Track + : LoopMode.None + + player.setLoop(loop) + + const embed = new MessageEmbed() + .setTitle(`Set loop mode to ${ + loop === LoopMode.None + ? "none" + : loop === LoopMode.Queue + ? "queue" + : "track" + }`) + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } + break + case "volume": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + const volume = Number(args[0]) + + if (isNaN(volume)) { + msg.reply({ embeds: [error("Volume must be a number")] }) + return + } + + player.setVolume(volume) + + const embed = new MessageEmbed() + .setTitle(`Set the volume to ${player.options.volume}`) + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } + break + case "skip": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + if (!player.queue.current) { + msg.reply({ embeds: [error("No track is currently playing")] }) + return + } + + player.stop() + + const embed = new MessageEmbed() + .setTitle("Skipped current track") + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } + break + case "stop": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + if (!player.queue.current) { + msg.reply({ embeds: [error("No track is currently playing")] }) + return + } + + player.setLoop(LoopMode.None) + player.queue.clear() + player.stop() + + const embed = new MessageEmbed() + .setTitle("Stopped the queue") + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } + break + case "clear": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + if (!player.queue.length) { + msg.reply({ embeds: [error("Queue is empty")] }) + return + } + + player.queue.clear() + + const embed = new MessageEmbed() + .setTitle("Cleared the queue") + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } + break + case "seek": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + if (!player.queue.current) { + msg.reply({ embeds: [error("No track is currently playing")] }) + return + } + + const position = Number(args[0]) + + if (isNaN(position)) { + msg.reply({ embeds: [error("Seek position must be a number")] }) + return + } + + player.seek(position) + + const embed = new MessageEmbed() + .setTitle("Seekened to the specified position") + .setColor("GREEN") + } + break + case "filter-speed": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + const speed = Number(args[0]) + + if (isNaN(speed)) { + msg.reply({ embeds: [error("Speed must be a number")] }) + return + } + + const filters = player.filters + + if (!filters.timescale) filters.timescale = { speed, pitch: 1, rate: 1 } + else filters.timescale.speed = speed + + player.setFilters(filters) + player.patchFilters() + + const embed = new MessageEmbed() + .setTitle("Successfully set the speed filter") + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } + break + case "filter-pitch": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + const pitch = Number(args[0]) + + if (isNaN(pitch)) { + msg.reply({ embeds: [error("Pitch must be a number")] }) + return + } + + const filters = player.filters + + if (!filters.timescale) filters.timescale = { speed: 1, pitch, rate: 1 } + else filters.timescale.pitch = pitch + + player.setFilters(filters) + player.patchFilters() + + const embed = new MessageEmbed() + .setTitle("Successfully set the pitch filter") + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } + break + case "reset-filters": + { + const player = this.lava.get(msg.guildId!) + + if (!player) { + msg.reply({ embeds: [error("No player was found")] }) + return + } + + player.setFilters({}) + player.patchFilters() + + const embed = new MessageEmbed() + .setTitle("Resetted the filters") + .setColor("GREEN") + + msg.reply({ embeds: [embed] }) + } + break + default: + msg.reply({ embeds: [error(`Invalid command \`${command}\``)] }) + } +}).login(config.token) + +function error(err: string): MessageEmbed { + return new MessageEmbed() + .setTitle("Error") + .setDescription(err) + .setColor("RED") +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..400c36f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "commonjs", + "declaration": true, + "outDir": "./dist", + "moduleResolution": "node", + "esModuleInterop": true, + "strictNullChecks": true, + "experimentalDecorators": true, + "forceConsistentCasingInFileNames": true + }, + "include": [ + "./src/**/*" + ] +} \ No newline at end of file