├── .gitignore ├── LICENSE ├── README.md ├── config.json ├── events ├── interactionCreate.js ├── messageReactionAdd.js └── ready.js ├── exports ├── checkValid.js └── createTicket.js ├── handler ├── loadEvents.js └── loadSlashCommands.js ├── index.js ├── models ├── channel.js ├── guild.js └── ticket.js ├── package-lock.json ├── package.json └── slashCommands ├── Owner └── eval.js └── Tickets └── ticket.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .eslintrc.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |

Tickets Bot

3 | 4 |

5 | GitHub License 6 | Buy Me A Coffee 7 | GitHub Stars 8 | GitHub Forks 9 | Support Server 10 | 11 |

An easy to use Tickets bot made with Discord.js and MongoDB

12 | 13 | ## Requirements 14 | - Discord.js v13 (`npm install discord.js@latest`) 15 | - `application.commands` scope enabled for your bot in Developer Portal (For Slash Cmds) 16 | - NodeJS v16.6 or higher 17 | - Basic knowledge of JavaScript or Discord.js 18 | 19 | ## Getting Started 20 | #### Create a fork: 21 | - [Click Here](https://github.com/Simpleboy353/Tickets-Bot) or open your terminal and type `git clone https://github.com/Simpleboy353/Tickets-Bot.git` 22 | 23 | #### Installing all the neccessary dependencies 24 | - `npm install` 25 | 26 | #### Configuration 27 | - Fill the required values in the `config.json` file 28 | ```json 29 | { 30 | "ownerID": "bot owner's id", 31 | "token": "bot token", 32 | "dburl": "mongo db url" 33 | } 34 | ``` 35 | - Enter your ID in the `ownerID` field 36 | - Enter your bot token in `token` field 37 | - Enter the MongoDB url in `dburl` field 38 | 39 | #### Starting the bot 40 | ###### Do any one: 41 | - `npm start` 42 | - `node .` 43 | - `node index.js` 44 | 45 | ### Every fork and star is appreciated! 46 | -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "ownerID": "", 3 | "token": "", 4 | "dburl": "" 5 | } -------------------------------------------------------------------------------- /events/interactionCreate.js: -------------------------------------------------------------------------------- 1 | const { ownerID } = require("../config.json") 2 | 3 | module.exports = async(interaction, client) => { 4 | 5 | if (!interaction.isCommand()) return; 6 | 7 | const command = client.slash.get(interaction.commandName); 8 | if (!command) return interaction.reply({ content: 'an Error' }); 9 | 10 | if (command.ownerOnly === true) { 11 | if (!interaction.member.id == ownerID) { 12 | return interaction.reply("This command can only be used by the bot owner!") 13 | } 14 | } 15 | 16 | if (command.userPerms) { 17 | if (!client.guilds.cache.get(interaction.guild.id).members.cache.get(interaction.member.id).permissions.has(command.userPerms || [])) { 18 | if (command.noUserPermsMessage) { 19 | return interaction.reply(command.noUserPermsMessage) 20 | } else if (!command.noUserPermsMessage) { 21 | return interaction.reply(`You need the \`${command.userPerms}\` permission to use this command!`) 22 | } 23 | } 24 | } 25 | 26 | if (command.botPerms) { 27 | if (!client.guilds.cache.get(interaction.guild.id).members.cache.get(client.user.id).permissions.has(command.botPerms || [])) { 28 | if (command.noBotPermsMessage) { 29 | return interaction.reply(command.noBotPermsMessage) 30 | } else if (!command.noBotPermsMessage) { 31 | return interaction.reply(`I need the \`${command.userPerms}\` permission to execute this command!`) 32 | } 33 | } 34 | } 35 | 36 | const args = []; 37 | 38 | for (let option of interaction.options.data) { 39 | if (option.type === 'SUB_COMMAND') { 40 | if (option.name) args.push(option.name); 41 | option.options?.forEach(x => { 42 | if (x.value) args.push(x.value); 43 | }); 44 | } else if (option.value) args.push(option.value); 45 | } 46 | 47 | try { 48 | command.run(client, interaction, args) 49 | } catch (e) { 50 | interaction.reply({ content: e.message }); 51 | } 52 | } -------------------------------------------------------------------------------- /events/messageReactionAdd.js: -------------------------------------------------------------------------------- 1 | const ticketChannelData = require('../models/channel'); 2 | const createTicket = require('../exports/createTicket'); 3 | const guildModel = require('../models/guild'); 4 | const ticketModel = require('../models/ticket'); 5 | const fetchAll = require('discord-fetch-all'); 6 | const fs = require('fs'); 7 | const { MessageEmbed } = require('discord.js'); 8 | 9 | module.exports = async(reaction, user, client) => { 10 | const { message } = reaction; 11 | const IdData = await ticketChannelData.findOne({ 12 | ticketGuildID: message.guild.id 13 | }).catch(err => console.log(err)) 14 | 15 | const ticketchannel = IdData.ticketChannelID 16 | 17 | var guildDoc = await guildModel.findOne({ 18 | guildID: message.guild.id 19 | }); 20 | 21 | if (!guildDoc) { 22 | guildDoc = new guildModel({ 23 | guildID: message.guild.id, 24 | ticketCount: 0 25 | }); 26 | 27 | await guildDoc.save(); 28 | } 29 | 30 | const ticketDoc = await ticketModel.findOne({ 31 | guildID: message.guild.id, 32 | userID: user.id 33 | }); 34 | 35 | if (message.channel.id == ticketchannel && reaction.emoji.name == '🎫') { 36 | reaction.users.remove(user).catch(console.error); 37 | if (ticketDoc) { 38 | const channel = message.guild 39 | .channels.cache.get(ticketDoc.ticketID); 40 | 41 | if (!channel) { 42 | await ticketDoc.deleteOne(); 43 | createTicket(message, user, guildDoc); 44 | console.log("New Ticket Created!") 45 | } 46 | } else { 47 | createTicket(message, user, guildDoc); 48 | console.log("New Ticket Created!") 49 | } 50 | } else if (message.id == (ticketDoc ? ticketDoc.msgID : null)) { 51 | if (reaction.emoji.name == '🔒') { 52 | reaction.users.remove(user).catch(console.error); 53 | 54 | const closeEmbed = new MessageEmbed() 55 | .setColor("YELLOW") 56 | .setDescription(`Ticket closed by ${user}`) 57 | 58 | if (!ticketDoc.ticketStatus) { 59 | message.channel.send({ 60 | embeds: [closeEmbed] 61 | }); 62 | 63 | message.channel.permissionOverwrites.edit( 64 | client.users.cache.get(ticketDoc.userID), { 65 | SEND_MESSAGES: false, 66 | VIEW_CHANNEL: false 67 | } 68 | ); 69 | 70 | const closingEmbed = new MessageEmbed() 71 | .setColor("RED") 72 | .setDescription(`📰 Ticket Transcript \n🔓 Reopen Ticket \n⛔ Close Ticket`) 73 | const msg = await message.channel.send({ 74 | embeds: [closingEmbed] 75 | }); 76 | 77 | await msg.react('📰'); 78 | await msg.react('🔓'); 79 | await msg.react('⛔'); 80 | 81 | ticketDoc.msgPannelID = msg.id; 82 | ticketDoc.ticketStatus = true; 83 | 84 | await ticketDoc.save(); 85 | } 86 | } 87 | } else if (message.id == (ticketDoc ? ticketDoc.msgPannelID : null)) { 88 | if (reaction.emoji.name == '📰') { 89 | const msgsArray = await fetchAll.messages(message.channel, { 90 | reverseArray: true 91 | }); 92 | 93 | const content = msgsArray.map(m => `${m.author.tag} - ${m.embeds.length ? m.embeds[0].description : m.content}`); 94 | 95 | fs.writeFileSync('transcript.txt', content.join('\n')); 96 | 97 | message.channel.send({ files: [{ attachment: "transcript.txt", name: "transcript.txt" }] }); 98 | } else if (reaction.emoji.name == '🔓') { 99 | message.channel.permissionOverwrites.edit( 100 | client.users.cache.get(ticketDoc.userID), { 101 | SEND_MESSAGES: true, 102 | VIEW_CHANNEL: true 103 | } 104 | ); 105 | 106 | const msg = await message.channel 107 | .messages.fetch(ticketDoc.msgPannelID); 108 | 109 | msg.delete(); 110 | 111 | ticketDoc.msgPannelID = null; 112 | ticketDoc.ticketStatus = false; 113 | 114 | await ticketDoc.save(); 115 | 116 | const openEmbed = new MessageEmbed() 117 | .setColor("GREEN") 118 | .setDescription(`Ticket opened by ${user}`) 119 | message.channel.send({ 120 | embeds: [openEmbed] 121 | }); 122 | } else if (reaction.emoji.name == '⛔') { 123 | message.channel.delete(); 124 | await ticketDoc.deleteOne(); 125 | } 126 | } 127 | }; -------------------------------------------------------------------------------- /events/ready.js: -------------------------------------------------------------------------------- 1 | const { connect } = require('mongoose'); 2 | const { dburl } = require('../config.json'); 3 | 4 | module.exports = (client) => { // eslint-disable-line no-unused-vars 5 | console.log('Yo. This is ready!'); 6 | connect(dburl, { 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }).then(console.log('Connected to MongoDB')); 11 | }; -------------------------------------------------------------------------------- /exports/checkValid.js: -------------------------------------------------------------------------------- 1 | const { ownerID, token, dburl } = require("../config.json") 2 | 3 | function checkValid() { 4 | if (!ownerID) { 5 | throw ReferenceError("[OWNER_ID_MISSING] Couldn't find the Owner ID") 6 | } 7 | if (!token) { 8 | throw ReferenceError("[BOT_TOKEN_MISSING] Couldn't find the Bot Token") 9 | } 10 | if (!dburl) { 11 | throw ReferenceError("[CONNECTION_URL_MISSING] Couldn't find the MongoDB Connection URL") 12 | } 13 | } 14 | 15 | module.exports = { 16 | checkValid, 17 | } -------------------------------------------------------------------------------- /exports/createTicket.js: -------------------------------------------------------------------------------- 1 | const ticketModel = require('../models/ticket'); 2 | const { MessageEmbed } = require("discord.js") 3 | 4 | module.exports = async(message, user, guildDoc) => { 5 | const ticketData = require('../models/channel') 6 | const IdData = await ticketData.findOne({ 7 | ticketGuildID: message.guild.id 8 | }).catch(err => console.log(err)) 9 | 10 | guildDoc.ticketCount += 1; 11 | 12 | await guildDoc.save(); 13 | 14 | const ticketChannel = await message.guild 15 | .channels.create(`ticket-${guildDoc.ticketCount}`, { 16 | permissionOverwrites: [{ 17 | allow: ['VIEW_CHANNEL', 'SEND_MESSAGES'], 18 | id: user.id 19 | }, 20 | { 21 | deny: ['VIEW_CHANNEL', 'SEND_MESSAGES'], 22 | id: message.guild.id 23 | } 24 | ] 25 | }); 26 | const embed = new MessageEmbed() 27 | .setColor('BLUE') 28 | .setDescription('React with 🔒 to close this ticket.') 29 | 30 | const msg = await ticketChannel.send({ embeds: [embed] }); 31 | 32 | msg.react('🔒'); 33 | 34 | const ticketDoc = new ticketModel({ 35 | guildID: message.guild.id, 36 | userID: user.id, 37 | ticketID: ticketChannel.id, 38 | ticketStatus: false, 39 | msgID: msg.id 40 | }); 41 | 42 | await ticketDoc.save(); 43 | }; -------------------------------------------------------------------------------- /handler/loadEvents.js: -------------------------------------------------------------------------------- 1 | const { Client } = require("discord.js") 2 | const clientEvent = (event) => require(`../events/${event}`) 3 | 4 | /** 5 | * Loads the used by the client 6 | * @param {Client} client 7 | */ 8 | function loadEvents(client) { 9 | client.on("ready", () => clientEvent("ready")(client)); 10 | client.on("interactionCreate", (m) => clientEvent("interactionCreate")(m, client)); 11 | client.on("messageReactionAdd", (m, n) => clientEvent("messageReactionAdd")(m, n, client)); 12 | } 13 | 14 | module.exports = { 15 | loadEvents 16 | }; -------------------------------------------------------------------------------- /handler/loadSlashCommands.js: -------------------------------------------------------------------------------- 1 | const { Client } = require("discord.js") 2 | /** 3 | * Loads all the slash commands available for the client 4 | * @param {Client} client 5 | */ 6 | 7 | function loadSlashCommands(client) { 8 | const fs = require("fs"); 9 | const ascii = require("ascii-table"); 10 | 11 | let slash = [] 12 | 13 | const table = new ascii().setHeading(" Slash Commands", "Load Status"); 14 | 15 | const commandFolders = fs.readdirSync("./slashCommands"); 16 | for (const folder of commandFolders) { 17 | const commandFiles = fs 18 | .readdirSync(`./slashCommands/${folder}`) 19 | .filter((file) => file.endsWith(".js")); 20 | for (const file of commandFiles) { 21 | const command = require(`../slashCommands/${folder}/${file}`); 22 | if (command.name) { 23 | client.slash.set(command.name, command); 24 | slash.push(command) 25 | table.addRow(file, "✔️"); 26 | } else { 27 | table.addRow( 28 | file, 29 | "❌ => Missing a help.name or help.name is not in string" 30 | ); 31 | continue; 32 | } 33 | } 34 | console.log(table.toString()); 35 | } 36 | client.on("ready", async() => { 37 | await client.application.commands.set(slash) 38 | }) 39 | } 40 | 41 | module.exports = { 42 | loadSlashCommands, 43 | }; -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const { Client, MessageEmbed, Intents, Collection } = require('discord.js'); 2 | const { token } = require('./config.json') 3 | const { loadEvents } = require("./handler/loadEvents") 4 | const { loadSlashCommands } = require("./handler/loadSlashCommands") 5 | const { checkValid } = require("./exports/checkValid") 6 | const client = new Client({ 7 | partials: ['MESSAGE', 'CHANNEL', 'REACTION' ], 8 | allowedMentions: { parse: ["users", "roles"] }, 9 | intents: [ 10 | Intents.FLAGS.GUILDS, 11 | Intents.FLAGS.GUILD_MESSAGES, 12 | Intents.FLAGS.GUILD_MEMBERS, 13 | Intents.FLAGS.GUILD_MESSAGE_REACTIONS, 14 | Intents.FLAGS.GUILD_WEBHOOKS, 15 | Intents.FLAGS.GUILD_INVITES, 16 | Intents.FLAGS.GUILD_PRESENCES, 17 | ], 18 | }); 19 | client.slash = new Collection() 20 | loadEvents(client); 21 | loadSlashCommands(client); 22 | checkValid(); 23 | 24 | process.on("uncaughtException", (err) => { 25 | console.log("Uncaught Exception: " + err); 26 | }); 27 | 28 | process.on("unhandledRejection", (reason, promise) => { 29 | console.log( 30 | "[FATAL] Possibly Unhandled Rejection at: Promise ", 31 | promise, 32 | " reason: ", 33 | reason.message 34 | ); 35 | }); 36 | 37 | client.login(token); -------------------------------------------------------------------------------- /models/channel.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const channelSchema = new mongoose.Schema({ 4 | ticketGuildID: String, 5 | ticketChannelID: String, 6 | }); 7 | 8 | const channelModel = module.exports = new mongoose.model('channels', channelSchema) -------------------------------------------------------------------------------- /models/guild.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require('mongoose'); 2 | 3 | const guild = Schema({ 4 | guildID: String, 5 | ticketCount: Number 6 | }); 7 | 8 | module.exports = model('guild', guild); -------------------------------------------------------------------------------- /models/ticket.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require('mongoose'); 2 | 3 | const ticket = Schema({ 4 | guildID: String, 5 | userID: String, 6 | ticketID: String, 7 | ticketStatus: Boolean, 8 | msgID: String, 9 | msgPannelID: String 10 | }); 11 | 12 | module.exports = model('ticket', ticket); -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ticket-bot", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "ticket-bot", 9 | "version": "1.0.0", 10 | "license": "GPL-3.0", 11 | "dependencies": { 12 | "ascii-table": "^0.0.9", 13 | "discord-fetch-all": "^3.0.2", 14 | "discord.js": "^13.3.0", 15 | "fs": "^0.0.1-security", 16 | "mongoose": "^5.10.5" 17 | }, 18 | "devDependencies": { 19 | "eslint": "^7.9.0" 20 | } 21 | }, 22 | "node_modules/@babel/code-frame": { 23 | "version": "7.10.4", 24 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 25 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 26 | "dev": true, 27 | "dependencies": { 28 | "@babel/highlight": "^7.10.4" 29 | } 30 | }, 31 | "node_modules/@babel/helper-validator-identifier": { 32 | "version": "7.10.4", 33 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 34 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", 35 | "dev": true 36 | }, 37 | "node_modules/@babel/highlight": { 38 | "version": "7.10.4", 39 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 40 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 41 | "dev": true, 42 | "dependencies": { 43 | "@babel/helper-validator-identifier": "^7.10.4", 44 | "chalk": "^2.0.0", 45 | "js-tokens": "^4.0.0" 46 | } 47 | }, 48 | "node_modules/@babel/highlight/node_modules/chalk": { 49 | "version": "2.4.2", 50 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 51 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 52 | "dev": true, 53 | "dependencies": { 54 | "ansi-styles": "^3.2.1", 55 | "escape-string-regexp": "^1.0.5", 56 | "supports-color": "^5.3.0" 57 | }, 58 | "engines": { 59 | "node": ">=4" 60 | } 61 | }, 62 | "node_modules/@discordjs/builders": { 63 | "version": "0.8.1", 64 | "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.8.1.tgz", 65 | "integrity": "sha512-kYJMvZ/BjRD1/6G2t1pQop2yoJNUmYvvKeG4mOBUCHFmfb7WIeBFmN/eSiP3cVSfRx3lbNiyxkdd5JzhjQnGbg==", 66 | "dependencies": { 67 | "@sindresorhus/is": "^4.2.0", 68 | "discord-api-types": "^0.24.0", 69 | "ow": "^0.28.1", 70 | "ts-mixer": "^6.0.0", 71 | "tslib": "^2.3.1" 72 | }, 73 | "engines": { 74 | "node": ">=16.0.0", 75 | "npm": ">=7.0.0" 76 | } 77 | }, 78 | "node_modules/@discordjs/collection": { 79 | "version": "0.1.6", 80 | "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", 81 | "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" 82 | }, 83 | "node_modules/@discordjs/form-data": { 84 | "version": "3.0.1", 85 | "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", 86 | "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", 87 | "dependencies": { 88 | "asynckit": "^0.4.0", 89 | "combined-stream": "^1.0.8", 90 | "mime-types": "^2.1.12" 91 | }, 92 | "engines": { 93 | "node": ">= 6" 94 | } 95 | }, 96 | "node_modules/@eslint/eslintrc": { 97 | "version": "0.1.3", 98 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", 99 | "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==", 100 | "dev": true, 101 | "dependencies": { 102 | "ajv": "^6.12.4", 103 | "debug": "^4.1.1", 104 | "espree": "^7.3.0", 105 | "globals": "^12.1.0", 106 | "ignore": "^4.0.6", 107 | "import-fresh": "^3.2.1", 108 | "js-yaml": "^3.13.1", 109 | "lodash": "^4.17.19", 110 | "minimatch": "^3.0.4", 111 | "strip-json-comments": "^3.1.1" 112 | }, 113 | "engines": { 114 | "node": "^10.12.0 || >=12.0.0" 115 | } 116 | }, 117 | "node_modules/@eslint/eslintrc/node_modules/debug": { 118 | "version": "4.1.1", 119 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 120 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 121 | "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", 122 | "dev": true, 123 | "dependencies": { 124 | "ms": "^2.1.1" 125 | } 126 | }, 127 | "node_modules/@sapphire/async-queue": { 128 | "version": "1.1.8", 129 | "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.8.tgz", 130 | "integrity": "sha512-Oi4EEi8vOne8RM1tCdQ3kYAtl/J6ztak3Th6wwGFqA2SVNJtedw196LjsLX0bK8Li8cwaljbFf08N+0zeqhkWQ==", 131 | "engines": { 132 | "node": ">=v14.0.0", 133 | "npm": ">=7.0.0" 134 | } 135 | }, 136 | "node_modules/@sindresorhus/is": { 137 | "version": "4.2.0", 138 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", 139 | "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", 140 | "engines": { 141 | "node": ">=10" 142 | }, 143 | "funding": { 144 | "url": "https://github.com/sindresorhus/is?sponsor=1" 145 | } 146 | }, 147 | "node_modules/@types/bson": { 148 | "version": "4.0.3", 149 | "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz", 150 | "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==", 151 | "dependencies": { 152 | "@types/node": "*" 153 | } 154 | }, 155 | "node_modules/@types/color-name": { 156 | "version": "1.1.1", 157 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 158 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", 159 | "dev": true 160 | }, 161 | "node_modules/@types/mongodb": { 162 | "version": "3.6.18", 163 | "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.18.tgz", 164 | "integrity": "sha512-JSVFt9p0rTfZ4EgzXmVHUB3ue00xe3CRbQho8nXfImzEDDM4O7I3po1bwbWl/EIbLENxUreZxqLOc8lvcnLVPA==", 165 | "dependencies": { 166 | "@types/bson": "*", 167 | "@types/node": "*" 168 | } 169 | }, 170 | "node_modules/@types/node": { 171 | "version": "15.12.4", 172 | "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz", 173 | "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==" 174 | }, 175 | "node_modules/@types/node-fetch": { 176 | "version": "2.5.12", 177 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", 178 | "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", 179 | "dependencies": { 180 | "@types/node": "*", 181 | "form-data": "^3.0.0" 182 | } 183 | }, 184 | "node_modules/@types/ws": { 185 | "version": "8.2.0", 186 | "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.0.tgz", 187 | "integrity": "sha512-cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg==", 188 | "dependencies": { 189 | "@types/node": "*" 190 | } 191 | }, 192 | "node_modules/abort-controller": { 193 | "version": "3.0.0", 194 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 195 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 196 | "dependencies": { 197 | "event-target-shim": "^5.0.0" 198 | }, 199 | "engines": { 200 | "node": ">=6.5" 201 | } 202 | }, 203 | "node_modules/acorn": { 204 | "version": "7.4.0", 205 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", 206 | "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", 207 | "dev": true, 208 | "bin": { 209 | "acorn": "bin/acorn" 210 | }, 211 | "engines": { 212 | "node": ">=0.4.0" 213 | } 214 | }, 215 | "node_modules/acorn-jsx": { 216 | "version": "5.3.1", 217 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", 218 | "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", 219 | "dev": true, 220 | "peerDependencies": { 221 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 222 | } 223 | }, 224 | "node_modules/ajv": { 225 | "version": "6.12.5", 226 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", 227 | "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", 228 | "dev": true, 229 | "dependencies": { 230 | "fast-deep-equal": "^3.1.1", 231 | "fast-json-stable-stringify": "^2.0.0", 232 | "json-schema-traverse": "^0.4.1", 233 | "uri-js": "^4.2.2" 234 | }, 235 | "funding": { 236 | "type": "github", 237 | "url": "https://github.com/sponsors/epoberezkin" 238 | } 239 | }, 240 | "node_modules/ansi-colors": { 241 | "version": "4.1.1", 242 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 243 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 244 | "dev": true, 245 | "engines": { 246 | "node": ">=6" 247 | } 248 | }, 249 | "node_modules/ansi-regex": { 250 | "version": "5.0.0", 251 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 252 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 253 | "dev": true, 254 | "engines": { 255 | "node": ">=8" 256 | } 257 | }, 258 | "node_modules/ansi-styles": { 259 | "version": "3.2.1", 260 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 261 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 262 | "dev": true, 263 | "dependencies": { 264 | "color-convert": "^1.9.0" 265 | }, 266 | "engines": { 267 | "node": ">=4" 268 | } 269 | }, 270 | "node_modules/argparse": { 271 | "version": "1.0.10", 272 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 273 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 274 | "dev": true, 275 | "dependencies": { 276 | "sprintf-js": "~1.0.2" 277 | } 278 | }, 279 | "node_modules/ascii-table": { 280 | "version": "0.0.9", 281 | "resolved": "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz", 282 | "integrity": "sha1-BqZgTWpV1L9BqaR9mHLXp42jHnM=" 283 | }, 284 | "node_modules/astral-regex": { 285 | "version": "1.0.0", 286 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 287 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 288 | "dev": true, 289 | "engines": { 290 | "node": ">=4" 291 | } 292 | }, 293 | "node_modules/asynckit": { 294 | "version": "0.4.0", 295 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 296 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 297 | }, 298 | "node_modules/balanced-match": { 299 | "version": "1.0.0", 300 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 301 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 302 | "dev": true 303 | }, 304 | "node_modules/bl": { 305 | "version": "2.2.1", 306 | "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", 307 | "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", 308 | "dependencies": { 309 | "readable-stream": "^2.3.5", 310 | "safe-buffer": "^5.1.1" 311 | } 312 | }, 313 | "node_modules/bluebird": { 314 | "version": "3.5.1", 315 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 316 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 317 | }, 318 | "node_modules/brace-expansion": { 319 | "version": "1.1.11", 320 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 321 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 322 | "dev": true, 323 | "dependencies": { 324 | "balanced-match": "^1.0.0", 325 | "concat-map": "0.0.1" 326 | } 327 | }, 328 | "node_modules/bson": { 329 | "version": "1.1.6", 330 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", 331 | "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", 332 | "engines": { 333 | "node": ">=0.6.19" 334 | } 335 | }, 336 | "node_modules/callsites": { 337 | "version": "3.1.0", 338 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 339 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 340 | "engines": { 341 | "node": ">=6" 342 | } 343 | }, 344 | "node_modules/chalk": { 345 | "version": "4.1.0", 346 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 347 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 348 | "dev": true, 349 | "dependencies": { 350 | "ansi-styles": "^4.1.0", 351 | "supports-color": "^7.1.0" 352 | }, 353 | "engines": { 354 | "node": ">=10" 355 | }, 356 | "funding": { 357 | "url": "https://github.com/chalk/chalk?sponsor=1" 358 | } 359 | }, 360 | "node_modules/chalk/node_modules/ansi-styles": { 361 | "version": "4.2.1", 362 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 363 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 364 | "dev": true, 365 | "dependencies": { 366 | "@types/color-name": "^1.1.1", 367 | "color-convert": "^2.0.1" 368 | }, 369 | "engines": { 370 | "node": ">=8" 371 | }, 372 | "funding": { 373 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 374 | } 375 | }, 376 | "node_modules/chalk/node_modules/color-convert": { 377 | "version": "2.0.1", 378 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 379 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 380 | "dev": true, 381 | "dependencies": { 382 | "color-name": "~1.1.4" 383 | }, 384 | "engines": { 385 | "node": ">=7.0.0" 386 | } 387 | }, 388 | "node_modules/chalk/node_modules/color-name": { 389 | "version": "1.1.4", 390 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 391 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 392 | "dev": true 393 | }, 394 | "node_modules/chalk/node_modules/has-flag": { 395 | "version": "4.0.0", 396 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 397 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 398 | "dev": true, 399 | "engines": { 400 | "node": ">=8" 401 | } 402 | }, 403 | "node_modules/chalk/node_modules/supports-color": { 404 | "version": "7.2.0", 405 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 406 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 407 | "dev": true, 408 | "dependencies": { 409 | "has-flag": "^4.0.0" 410 | }, 411 | "engines": { 412 | "node": ">=8" 413 | } 414 | }, 415 | "node_modules/color-convert": { 416 | "version": "1.9.3", 417 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 418 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 419 | "dev": true, 420 | "dependencies": { 421 | "color-name": "1.1.3" 422 | } 423 | }, 424 | "node_modules/color-name": { 425 | "version": "1.1.3", 426 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 427 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 428 | "dev": true 429 | }, 430 | "node_modules/combined-stream": { 431 | "version": "1.0.8", 432 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 433 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 434 | "dependencies": { 435 | "delayed-stream": "~1.0.0" 436 | }, 437 | "engines": { 438 | "node": ">= 0.8" 439 | } 440 | }, 441 | "node_modules/concat-map": { 442 | "version": "0.0.1", 443 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 444 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 445 | "dev": true 446 | }, 447 | "node_modules/core-util-is": { 448 | "version": "1.0.2", 449 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 450 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 451 | }, 452 | "node_modules/cross-spawn": { 453 | "version": "7.0.3", 454 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 455 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 456 | "dev": true, 457 | "dependencies": { 458 | "path-key": "^3.1.0", 459 | "shebang-command": "^2.0.0", 460 | "which": "^2.0.1" 461 | }, 462 | "engines": { 463 | "node": ">= 8" 464 | } 465 | }, 466 | "node_modules/debug": { 467 | "version": "3.1.0", 468 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 469 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 470 | "dependencies": { 471 | "ms": "2.0.0" 472 | } 473 | }, 474 | "node_modules/debug/node_modules/ms": { 475 | "version": "2.0.0", 476 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 477 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 478 | }, 479 | "node_modules/deep-is": { 480 | "version": "0.1.3", 481 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 482 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 483 | "dev": true 484 | }, 485 | "node_modules/delayed-stream": { 486 | "version": "1.0.0", 487 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 488 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 489 | "engines": { 490 | "node": ">=0.4.0" 491 | } 492 | }, 493 | "node_modules/denque": { 494 | "version": "1.5.0", 495 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", 496 | "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==", 497 | "engines": { 498 | "node": ">=0.10" 499 | } 500 | }, 501 | "node_modules/discord-api-types": { 502 | "version": "0.24.0", 503 | "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", 504 | "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==", 505 | "engines": { 506 | "node": ">=12" 507 | } 508 | }, 509 | "node_modules/discord-fetch-all": { 510 | "version": "3.0.2", 511 | "resolved": "https://registry.npmjs.org/discord-fetch-all/-/discord-fetch-all-3.0.2.tgz", 512 | "integrity": "sha512-O/25ReQgWGqv0AJ3dtf94BPdvfPx4QwXP1LoTms9st6xWiIvwSEjatcxji39/n0pDZr2BKNOfEW0zFVfELoKuA==", 513 | "dependencies": { 514 | "discord.js": "^12.4.1" 515 | } 516 | }, 517 | "node_modules/discord-fetch-all/node_modules/discord.js": { 518 | "version": "12.5.3", 519 | "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz", 520 | "integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==", 521 | "deprecated": "no longer supported", 522 | "dependencies": { 523 | "@discordjs/collection": "^0.1.6", 524 | "@discordjs/form-data": "^3.0.1", 525 | "abort-controller": "^3.0.0", 526 | "node-fetch": "^2.6.1", 527 | "prism-media": "^1.2.9", 528 | "setimmediate": "^1.0.5", 529 | "tweetnacl": "^1.0.3", 530 | "ws": "^7.4.4" 531 | }, 532 | "engines": { 533 | "node": ">=12.0.0" 534 | } 535 | }, 536 | "node_modules/discord-fetch-all/node_modules/prism-media": { 537 | "version": "1.3.1", 538 | "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.1.tgz", 539 | "integrity": "sha512-nyYAa3KB4qteJIqdguKmwxTJgy55xxUtkJ3uRnOvO5jO+frci+9zpRXw6QZVcfDeva3S654fU9+26P2OSTzjHw==", 540 | "peerDependencies": { 541 | "@discordjs/opus": "^0.5.0", 542 | "ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0", 543 | "node-opus": "^0.3.3", 544 | "opusscript": "^0.0.8" 545 | }, 546 | "peerDependenciesMeta": { 547 | "@discordjs/opus": { 548 | "optional": true 549 | }, 550 | "ffmpeg-static": { 551 | "optional": true 552 | }, 553 | "node-opus": { 554 | "optional": true 555 | }, 556 | "opusscript": { 557 | "optional": true 558 | } 559 | } 560 | }, 561 | "node_modules/discord-fetch-all/node_modules/ws": { 562 | "version": "7.5.0", 563 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", 564 | "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", 565 | "engines": { 566 | "node": ">=8.3.0" 567 | }, 568 | "peerDependencies": { 569 | "bufferutil": "^4.0.1", 570 | "utf-8-validate": "^5.0.2" 571 | }, 572 | "peerDependenciesMeta": { 573 | "bufferutil": { 574 | "optional": true 575 | }, 576 | "utf-8-validate": { 577 | "optional": true 578 | } 579 | } 580 | }, 581 | "node_modules/discord.js": { 582 | "version": "13.3.0", 583 | "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.3.0.tgz", 584 | "integrity": "sha512-kZcDVrQRTuzjRx99/Xl9HF1Kt7xNkiN4Gwvk1hNmLRAn+7Syzw9XTkQZdOPXLpijhbTNsZcdAaMxgvTmtyNdyA==", 585 | "dependencies": { 586 | "@discordjs/builders": "^0.8.1", 587 | "@discordjs/collection": "^0.3.2", 588 | "@discordjs/form-data": "^3.0.1", 589 | "@sapphire/async-queue": "^1.1.8", 590 | "@types/node-fetch": "^2.5.12", 591 | "@types/ws": "^8.2.0", 592 | "discord-api-types": "^0.24.0", 593 | "node-fetch": "^2.6.1", 594 | "ws": "^8.2.3" 595 | }, 596 | "engines": { 597 | "node": ">=16.6.0", 598 | "npm": ">=7.0.0" 599 | } 600 | }, 601 | "node_modules/discord.js/node_modules/@discordjs/collection": { 602 | "version": "0.3.2", 603 | "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.3.2.tgz", 604 | "integrity": "sha512-dMjLl60b2DMqObbH1MQZKePgWhsNe49XkKBZ0W5Acl5uVV43SN414i2QfZwRI7dXAqIn8pEWD2+XXQFn9KWxqg==", 605 | "engines": { 606 | "node": ">=16.0.0", 607 | "npm": ">=7.0.0" 608 | } 609 | }, 610 | "node_modules/doctrine": { 611 | "version": "3.0.0", 612 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 613 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 614 | "dev": true, 615 | "dependencies": { 616 | "esutils": "^2.0.2" 617 | }, 618 | "engines": { 619 | "node": ">=6.0.0" 620 | } 621 | }, 622 | "node_modules/dot-prop": { 623 | "version": "6.0.1", 624 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", 625 | "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", 626 | "dependencies": { 627 | "is-obj": "^2.0.0" 628 | }, 629 | "engines": { 630 | "node": ">=10" 631 | }, 632 | "funding": { 633 | "url": "https://github.com/sponsors/sindresorhus" 634 | } 635 | }, 636 | "node_modules/emoji-regex": { 637 | "version": "7.0.3", 638 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 639 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 640 | "dev": true 641 | }, 642 | "node_modules/enquirer": { 643 | "version": "2.3.6", 644 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", 645 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", 646 | "dev": true, 647 | "dependencies": { 648 | "ansi-colors": "^4.1.1" 649 | }, 650 | "engines": { 651 | "node": ">=8.6" 652 | } 653 | }, 654 | "node_modules/escape-string-regexp": { 655 | "version": "1.0.5", 656 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 657 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 658 | "dev": true, 659 | "engines": { 660 | "node": ">=0.8.0" 661 | } 662 | }, 663 | "node_modules/eslint": { 664 | "version": "7.9.0", 665 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.9.0.tgz", 666 | "integrity": "sha512-V6QyhX21+uXp4T+3nrNfI3hQNBDa/P8ga7LoQOenwrlEFXrEnUEE+ok1dMtaS3b6rmLXhT1TkTIsG75HMLbknA==", 667 | "dev": true, 668 | "dependencies": { 669 | "@babel/code-frame": "^7.0.0", 670 | "@eslint/eslintrc": "^0.1.3", 671 | "ajv": "^6.10.0", 672 | "chalk": "^4.0.0", 673 | "cross-spawn": "^7.0.2", 674 | "debug": "^4.0.1", 675 | "doctrine": "^3.0.0", 676 | "enquirer": "^2.3.5", 677 | "eslint-scope": "^5.1.0", 678 | "eslint-utils": "^2.1.0", 679 | "eslint-visitor-keys": "^1.3.0", 680 | "espree": "^7.3.0", 681 | "esquery": "^1.2.0", 682 | "esutils": "^2.0.2", 683 | "file-entry-cache": "^5.0.1", 684 | "functional-red-black-tree": "^1.0.1", 685 | "glob-parent": "^5.0.0", 686 | "globals": "^12.1.0", 687 | "ignore": "^4.0.6", 688 | "import-fresh": "^3.0.0", 689 | "imurmurhash": "^0.1.4", 690 | "is-glob": "^4.0.0", 691 | "js-yaml": "^3.13.1", 692 | "json-stable-stringify-without-jsonify": "^1.0.1", 693 | "levn": "^0.4.1", 694 | "lodash": "^4.17.19", 695 | "minimatch": "^3.0.4", 696 | "natural-compare": "^1.4.0", 697 | "optionator": "^0.9.1", 698 | "progress": "^2.0.0", 699 | "regexpp": "^3.1.0", 700 | "semver": "^7.2.1", 701 | "strip-ansi": "^6.0.0", 702 | "strip-json-comments": "^3.1.0", 703 | "table": "^5.2.3", 704 | "text-table": "^0.2.0", 705 | "v8-compile-cache": "^2.0.3" 706 | }, 707 | "bin": { 708 | "eslint": "bin/eslint.js" 709 | }, 710 | "engines": { 711 | "node": "^10.12.0 || >=12.0.0" 712 | }, 713 | "funding": { 714 | "url": "https://opencollective.com/eslint" 715 | } 716 | }, 717 | "node_modules/eslint-scope": { 718 | "version": "5.1.1", 719 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 720 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 721 | "dev": true, 722 | "dependencies": { 723 | "esrecurse": "^4.3.0", 724 | "estraverse": "^4.1.1" 725 | }, 726 | "engines": { 727 | "node": ">=8.0.0" 728 | } 729 | }, 730 | "node_modules/eslint-utils": { 731 | "version": "2.1.0", 732 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", 733 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", 734 | "dev": true, 735 | "dependencies": { 736 | "eslint-visitor-keys": "^1.1.0" 737 | }, 738 | "engines": { 739 | "node": ">=6" 740 | }, 741 | "funding": { 742 | "url": "https://github.com/sponsors/mysticatea" 743 | } 744 | }, 745 | "node_modules/eslint-visitor-keys": { 746 | "version": "1.3.0", 747 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", 748 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", 749 | "dev": true, 750 | "engines": { 751 | "node": ">=4" 752 | } 753 | }, 754 | "node_modules/eslint/node_modules/debug": { 755 | "version": "4.1.1", 756 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 757 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 758 | "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", 759 | "dev": true, 760 | "dependencies": { 761 | "ms": "^2.1.1" 762 | } 763 | }, 764 | "node_modules/eslint/node_modules/semver": { 765 | "version": "7.3.2", 766 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", 767 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", 768 | "dev": true, 769 | "bin": { 770 | "semver": "bin/semver.js" 771 | }, 772 | "engines": { 773 | "node": ">=10" 774 | } 775 | }, 776 | "node_modules/espree": { 777 | "version": "7.3.0", 778 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", 779 | "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", 780 | "dev": true, 781 | "dependencies": { 782 | "acorn": "^7.4.0", 783 | "acorn-jsx": "^5.2.0", 784 | "eslint-visitor-keys": "^1.3.0" 785 | }, 786 | "engines": { 787 | "node": "^10.12.0 || >=12.0.0" 788 | } 789 | }, 790 | "node_modules/esprima": { 791 | "version": "4.0.1", 792 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 793 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 794 | "dev": true, 795 | "bin": { 796 | "esparse": "bin/esparse.js", 797 | "esvalidate": "bin/esvalidate.js" 798 | }, 799 | "engines": { 800 | "node": ">=4" 801 | } 802 | }, 803 | "node_modules/esquery": { 804 | "version": "1.3.1", 805 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", 806 | "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", 807 | "dev": true, 808 | "dependencies": { 809 | "estraverse": "^5.1.0" 810 | }, 811 | "engines": { 812 | "node": ">=0.10" 813 | } 814 | }, 815 | "node_modules/esquery/node_modules/estraverse": { 816 | "version": "5.2.0", 817 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 818 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 819 | "dev": true, 820 | "engines": { 821 | "node": ">=4.0" 822 | } 823 | }, 824 | "node_modules/esrecurse": { 825 | "version": "4.3.0", 826 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 827 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 828 | "dev": true, 829 | "dependencies": { 830 | "estraverse": "^5.2.0" 831 | }, 832 | "engines": { 833 | "node": ">=4.0" 834 | } 835 | }, 836 | "node_modules/esrecurse/node_modules/estraverse": { 837 | "version": "5.2.0", 838 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 839 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 840 | "dev": true, 841 | "engines": { 842 | "node": ">=4.0" 843 | } 844 | }, 845 | "node_modules/estraverse": { 846 | "version": "4.3.0", 847 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 848 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 849 | "dev": true, 850 | "engines": { 851 | "node": ">=4.0" 852 | } 853 | }, 854 | "node_modules/esutils": { 855 | "version": "2.0.3", 856 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 857 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 858 | "dev": true, 859 | "engines": { 860 | "node": ">=0.10.0" 861 | } 862 | }, 863 | "node_modules/event-target-shim": { 864 | "version": "5.0.1", 865 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 866 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", 867 | "engines": { 868 | "node": ">=6" 869 | } 870 | }, 871 | "node_modules/fast-deep-equal": { 872 | "version": "3.1.3", 873 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 874 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 875 | "dev": true 876 | }, 877 | "node_modules/fast-json-stable-stringify": { 878 | "version": "2.1.0", 879 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 880 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 881 | "dev": true 882 | }, 883 | "node_modules/fast-levenshtein": { 884 | "version": "2.0.6", 885 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 886 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 887 | "dev": true 888 | }, 889 | "node_modules/file-entry-cache": { 890 | "version": "5.0.1", 891 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", 892 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", 893 | "dev": true, 894 | "dependencies": { 895 | "flat-cache": "^2.0.1" 896 | }, 897 | "engines": { 898 | "node": ">=4" 899 | } 900 | }, 901 | "node_modules/flat-cache": { 902 | "version": "2.0.1", 903 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 904 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", 905 | "dev": true, 906 | "dependencies": { 907 | "flatted": "^2.0.0", 908 | "rimraf": "2.6.3", 909 | "write": "1.0.3" 910 | }, 911 | "engines": { 912 | "node": ">=4" 913 | } 914 | }, 915 | "node_modules/flatted": { 916 | "version": "2.0.2", 917 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", 918 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", 919 | "dev": true 920 | }, 921 | "node_modules/form-data": { 922 | "version": "3.0.1", 923 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", 924 | "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", 925 | "dependencies": { 926 | "asynckit": "^0.4.0", 927 | "combined-stream": "^1.0.8", 928 | "mime-types": "^2.1.12" 929 | }, 930 | "engines": { 931 | "node": ">= 6" 932 | } 933 | }, 934 | "node_modules/fs": { 935 | "version": "0.0.1-security", 936 | "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", 937 | "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=" 938 | }, 939 | "node_modules/fs.realpath": { 940 | "version": "1.0.0", 941 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 942 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 943 | "dev": true 944 | }, 945 | "node_modules/functional-red-black-tree": { 946 | "version": "1.0.1", 947 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 948 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 949 | "dev": true 950 | }, 951 | "node_modules/glob": { 952 | "version": "7.1.6", 953 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 954 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 955 | "dev": true, 956 | "dependencies": { 957 | "fs.realpath": "^1.0.0", 958 | "inflight": "^1.0.4", 959 | "inherits": "2", 960 | "minimatch": "^3.0.4", 961 | "once": "^1.3.0", 962 | "path-is-absolute": "^1.0.0" 963 | }, 964 | "engines": { 965 | "node": "*" 966 | }, 967 | "funding": { 968 | "url": "https://github.com/sponsors/isaacs" 969 | } 970 | }, 971 | "node_modules/glob-parent": { 972 | "version": "5.1.2", 973 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 974 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 975 | "dev": true, 976 | "dependencies": { 977 | "is-glob": "^4.0.1" 978 | }, 979 | "engines": { 980 | "node": ">= 6" 981 | } 982 | }, 983 | "node_modules/globals": { 984 | "version": "12.4.0", 985 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", 986 | "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", 987 | "dev": true, 988 | "dependencies": { 989 | "type-fest": "^0.8.1" 990 | }, 991 | "engines": { 992 | "node": ">=8" 993 | }, 994 | "funding": { 995 | "url": "https://github.com/sponsors/sindresorhus" 996 | } 997 | }, 998 | "node_modules/has-flag": { 999 | "version": "3.0.0", 1000 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1001 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1002 | "dev": true, 1003 | "engines": { 1004 | "node": ">=4" 1005 | } 1006 | }, 1007 | "node_modules/ignore": { 1008 | "version": "4.0.6", 1009 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 1010 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 1011 | "dev": true, 1012 | "engines": { 1013 | "node": ">= 4" 1014 | } 1015 | }, 1016 | "node_modules/import-fresh": { 1017 | "version": "3.2.1", 1018 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", 1019 | "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", 1020 | "dev": true, 1021 | "dependencies": { 1022 | "parent-module": "^1.0.0", 1023 | "resolve-from": "^4.0.0" 1024 | }, 1025 | "engines": { 1026 | "node": ">=6" 1027 | } 1028 | }, 1029 | "node_modules/import-fresh/node_modules/resolve-from": { 1030 | "version": "4.0.0", 1031 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1032 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1033 | "dev": true, 1034 | "engines": { 1035 | "node": ">=4" 1036 | } 1037 | }, 1038 | "node_modules/imurmurhash": { 1039 | "version": "0.1.4", 1040 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1041 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1042 | "dev": true, 1043 | "engines": { 1044 | "node": ">=0.8.19" 1045 | } 1046 | }, 1047 | "node_modules/inflight": { 1048 | "version": "1.0.6", 1049 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1050 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1051 | "dev": true, 1052 | "dependencies": { 1053 | "once": "^1.3.0", 1054 | "wrappy": "1" 1055 | } 1056 | }, 1057 | "node_modules/inherits": { 1058 | "version": "2.0.4", 1059 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1060 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1061 | }, 1062 | "node_modules/is-extglob": { 1063 | "version": "2.1.1", 1064 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1065 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1066 | "dev": true, 1067 | "engines": { 1068 | "node": ">=0.10.0" 1069 | } 1070 | }, 1071 | "node_modules/is-fullwidth-code-point": { 1072 | "version": "2.0.0", 1073 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1074 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1075 | "dev": true, 1076 | "engines": { 1077 | "node": ">=4" 1078 | } 1079 | }, 1080 | "node_modules/is-glob": { 1081 | "version": "4.0.1", 1082 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 1083 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 1084 | "dev": true, 1085 | "dependencies": { 1086 | "is-extglob": "^2.1.1" 1087 | }, 1088 | "engines": { 1089 | "node": ">=0.10.0" 1090 | } 1091 | }, 1092 | "node_modules/is-obj": { 1093 | "version": "2.0.0", 1094 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", 1095 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", 1096 | "engines": { 1097 | "node": ">=8" 1098 | } 1099 | }, 1100 | "node_modules/isarray": { 1101 | "version": "1.0.0", 1102 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1103 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1104 | }, 1105 | "node_modules/isexe": { 1106 | "version": "2.0.0", 1107 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1108 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1109 | "dev": true 1110 | }, 1111 | "node_modules/js-tokens": { 1112 | "version": "4.0.0", 1113 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1114 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1115 | "dev": true 1116 | }, 1117 | "node_modules/js-yaml": { 1118 | "version": "3.14.0", 1119 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", 1120 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", 1121 | "dev": true, 1122 | "dependencies": { 1123 | "argparse": "^1.0.7", 1124 | "esprima": "^4.0.0" 1125 | }, 1126 | "bin": { 1127 | "js-yaml": "bin/js-yaml.js" 1128 | } 1129 | }, 1130 | "node_modules/json-schema-traverse": { 1131 | "version": "0.4.1", 1132 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1133 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1134 | "dev": true 1135 | }, 1136 | "node_modules/json-stable-stringify-without-jsonify": { 1137 | "version": "1.0.1", 1138 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1139 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 1140 | "dev": true 1141 | }, 1142 | "node_modules/kareem": { 1143 | "version": "2.3.2", 1144 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", 1145 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" 1146 | }, 1147 | "node_modules/levn": { 1148 | "version": "0.4.1", 1149 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 1150 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 1151 | "dev": true, 1152 | "dependencies": { 1153 | "prelude-ls": "^1.2.1", 1154 | "type-check": "~0.4.0" 1155 | }, 1156 | "engines": { 1157 | "node": ">= 0.8.0" 1158 | } 1159 | }, 1160 | "node_modules/lodash": { 1161 | "version": "4.17.21", 1162 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1163 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 1164 | "dev": true 1165 | }, 1166 | "node_modules/lodash.isequal": { 1167 | "version": "4.5.0", 1168 | "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", 1169 | "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" 1170 | }, 1171 | "node_modules/memory-pager": { 1172 | "version": "1.5.0", 1173 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", 1174 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 1175 | "optional": true 1176 | }, 1177 | "node_modules/mime-db": { 1178 | "version": "1.44.0", 1179 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 1180 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", 1181 | "engines": { 1182 | "node": ">= 0.6" 1183 | } 1184 | }, 1185 | "node_modules/mime-types": { 1186 | "version": "2.1.27", 1187 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 1188 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 1189 | "dependencies": { 1190 | "mime-db": "1.44.0" 1191 | }, 1192 | "engines": { 1193 | "node": ">= 0.6" 1194 | } 1195 | }, 1196 | "node_modules/minimatch": { 1197 | "version": "3.0.4", 1198 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1199 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1200 | "dev": true, 1201 | "dependencies": { 1202 | "brace-expansion": "^1.1.7" 1203 | }, 1204 | "engines": { 1205 | "node": "*" 1206 | } 1207 | }, 1208 | "node_modules/minimist": { 1209 | "version": "1.2.5", 1210 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1211 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 1212 | "dev": true 1213 | }, 1214 | "node_modules/mkdirp": { 1215 | "version": "0.5.5", 1216 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 1217 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 1218 | "dev": true, 1219 | "dependencies": { 1220 | "minimist": "^1.2.5" 1221 | }, 1222 | "bin": { 1223 | "mkdirp": "bin/cmd.js" 1224 | } 1225 | }, 1226 | "node_modules/mongodb": { 1227 | "version": "3.6.8", 1228 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.8.tgz", 1229 | "integrity": "sha512-sDjJvI73WjON1vapcbyBD3Ao9/VN3TKYY8/QX9EPbs22KaCSrQ5rXo5ZZd44tWJ3wl3FlnrFZ+KyUtNH6+1ZPQ==", 1230 | "dependencies": { 1231 | "bl": "^2.2.1", 1232 | "bson": "^1.1.4", 1233 | "denque": "^1.4.1", 1234 | "optional-require": "^1.0.3", 1235 | "safe-buffer": "^5.1.2" 1236 | }, 1237 | "engines": { 1238 | "node": ">=4" 1239 | }, 1240 | "optionalDependencies": { 1241 | "saslprep": "^1.0.0" 1242 | }, 1243 | "peerDependenciesMeta": { 1244 | "aws4": { 1245 | "optional": true 1246 | }, 1247 | "bson-ext": { 1248 | "optional": true 1249 | }, 1250 | "kerberos": { 1251 | "optional": true 1252 | }, 1253 | "mongodb-client-encryption": { 1254 | "optional": true 1255 | }, 1256 | "mongodb-extjson": { 1257 | "optional": true 1258 | }, 1259 | "snappy": { 1260 | "optional": true 1261 | } 1262 | } 1263 | }, 1264 | "node_modules/mongoose": { 1265 | "version": "5.12.11", 1266 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.12.11.tgz", 1267 | "integrity": "sha512-16TVqYhHQdZNR8RTis/8iiTPy+nJPq0UhKyBFTucLLU3PWcDLY2gAGv6aOk0LygTNhEfgNnENgUUHhjVqTuh8w==", 1268 | "dependencies": { 1269 | "@types/mongodb": "^3.5.27", 1270 | "bson": "^1.1.4", 1271 | "kareem": "2.3.2", 1272 | "mongodb": "3.6.8", 1273 | "mongoose-legacy-pluralize": "1.0.2", 1274 | "mpath": "0.8.3", 1275 | "mquery": "3.2.5", 1276 | "ms": "2.1.2", 1277 | "regexp-clone": "1.0.0", 1278 | "safe-buffer": "5.2.1", 1279 | "sift": "13.5.2", 1280 | "sliced": "1.0.1" 1281 | }, 1282 | "engines": { 1283 | "node": ">=4.0.0" 1284 | }, 1285 | "funding": { 1286 | "type": "opencollective", 1287 | "url": "https://opencollective.com/mongoose" 1288 | } 1289 | }, 1290 | "node_modules/mongoose-legacy-pluralize": { 1291 | "version": "1.0.2", 1292 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", 1293 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", 1294 | "peerDependencies": { 1295 | "mongoose": "*" 1296 | } 1297 | }, 1298 | "node_modules/mpath": { 1299 | "version": "0.8.3", 1300 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz", 1301 | "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==", 1302 | "engines": { 1303 | "node": ">=4.0.0" 1304 | } 1305 | }, 1306 | "node_modules/mquery": { 1307 | "version": "3.2.5", 1308 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz", 1309 | "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==", 1310 | "dependencies": { 1311 | "bluebird": "3.5.1", 1312 | "debug": "3.1.0", 1313 | "regexp-clone": "^1.0.0", 1314 | "safe-buffer": "5.1.2", 1315 | "sliced": "1.0.1" 1316 | }, 1317 | "engines": { 1318 | "node": ">=4.0.0" 1319 | } 1320 | }, 1321 | "node_modules/mquery/node_modules/safe-buffer": { 1322 | "version": "5.1.2", 1323 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1324 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1325 | }, 1326 | "node_modules/ms": { 1327 | "version": "2.1.2", 1328 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1329 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1330 | }, 1331 | "node_modules/natural-compare": { 1332 | "version": "1.4.0", 1333 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1334 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1335 | "dev": true 1336 | }, 1337 | "node_modules/node-fetch": { 1338 | "version": "2.6.1", 1339 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 1340 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", 1341 | "engines": { 1342 | "node": "4.x || >=6.0.0" 1343 | } 1344 | }, 1345 | "node_modules/once": { 1346 | "version": "1.4.0", 1347 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1348 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1349 | "dev": true, 1350 | "dependencies": { 1351 | "wrappy": "1" 1352 | } 1353 | }, 1354 | "node_modules/optional-require": { 1355 | "version": "1.0.3", 1356 | "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz", 1357 | "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==", 1358 | "engines": { 1359 | "node": ">=4" 1360 | } 1361 | }, 1362 | "node_modules/optionator": { 1363 | "version": "0.9.1", 1364 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 1365 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 1366 | "dev": true, 1367 | "dependencies": { 1368 | "deep-is": "^0.1.3", 1369 | "fast-levenshtein": "^2.0.6", 1370 | "levn": "^0.4.1", 1371 | "prelude-ls": "^1.2.1", 1372 | "type-check": "^0.4.0", 1373 | "word-wrap": "^1.2.3" 1374 | }, 1375 | "engines": { 1376 | "node": ">= 0.8.0" 1377 | } 1378 | }, 1379 | "node_modules/ow": { 1380 | "version": "0.28.1", 1381 | "resolved": "https://registry.npmjs.org/ow/-/ow-0.28.1.tgz", 1382 | "integrity": "sha512-1EZTywPZeUKac9gD7q8np3Aj+V54kvfIcjNEVNDSbG2Ys5xA5foW2HquvMMqgyWGLqIFMlc0Iq/HmyMHqN48sA==", 1383 | "dependencies": { 1384 | "@sindresorhus/is": "^4.2.0", 1385 | "callsites": "^3.1.0", 1386 | "dot-prop": "^6.0.1", 1387 | "lodash.isequal": "^4.5.0", 1388 | "type-fest": "^2.3.4", 1389 | "vali-date": "^1.0.0" 1390 | }, 1391 | "engines": { 1392 | "node": ">=12" 1393 | }, 1394 | "funding": { 1395 | "url": "https://github.com/sponsors/sindresorhus" 1396 | } 1397 | }, 1398 | "node_modules/ow/node_modules/type-fest": { 1399 | "version": "2.5.2", 1400 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.5.2.tgz", 1401 | "integrity": "sha512-WMbytmAs5PUTqwGJRE+WoRrD2S0bYFtHX8k4Y/1l18CG5kqA3keJud9pPQ/r30FE9n8XRFCXF9BbccHIZzRYJw==", 1402 | "engines": { 1403 | "node": ">=12.20" 1404 | }, 1405 | "funding": { 1406 | "url": "https://github.com/sponsors/sindresorhus" 1407 | } 1408 | }, 1409 | "node_modules/parent-module": { 1410 | "version": "1.0.1", 1411 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1412 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1413 | "dev": true, 1414 | "dependencies": { 1415 | "callsites": "^3.0.0" 1416 | }, 1417 | "engines": { 1418 | "node": ">=6" 1419 | } 1420 | }, 1421 | "node_modules/path-is-absolute": { 1422 | "version": "1.0.1", 1423 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1424 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1425 | "dev": true, 1426 | "engines": { 1427 | "node": ">=0.10.0" 1428 | } 1429 | }, 1430 | "node_modules/path-key": { 1431 | "version": "3.1.1", 1432 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1433 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1434 | "dev": true, 1435 | "engines": { 1436 | "node": ">=8" 1437 | } 1438 | }, 1439 | "node_modules/prelude-ls": { 1440 | "version": "1.2.1", 1441 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 1442 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 1443 | "dev": true, 1444 | "engines": { 1445 | "node": ">= 0.8.0" 1446 | } 1447 | }, 1448 | "node_modules/process-nextick-args": { 1449 | "version": "2.0.1", 1450 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1451 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 1452 | }, 1453 | "node_modules/progress": { 1454 | "version": "2.0.3", 1455 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1456 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 1457 | "dev": true, 1458 | "engines": { 1459 | "node": ">=0.4.0" 1460 | } 1461 | }, 1462 | "node_modules/punycode": { 1463 | "version": "2.1.1", 1464 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1465 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1466 | "dev": true, 1467 | "engines": { 1468 | "node": ">=6" 1469 | } 1470 | }, 1471 | "node_modules/readable-stream": { 1472 | "version": "2.3.7", 1473 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1474 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1475 | "dependencies": { 1476 | "core-util-is": "~1.0.0", 1477 | "inherits": "~2.0.3", 1478 | "isarray": "~1.0.0", 1479 | "process-nextick-args": "~2.0.0", 1480 | "safe-buffer": "~5.1.1", 1481 | "string_decoder": "~1.1.1", 1482 | "util-deprecate": "~1.0.1" 1483 | } 1484 | }, 1485 | "node_modules/readable-stream/node_modules/safe-buffer": { 1486 | "version": "5.1.2", 1487 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1488 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1489 | }, 1490 | "node_modules/regexp-clone": { 1491 | "version": "1.0.0", 1492 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", 1493 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 1494 | }, 1495 | "node_modules/regexpp": { 1496 | "version": "3.1.0", 1497 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", 1498 | "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", 1499 | "dev": true, 1500 | "engines": { 1501 | "node": ">=8" 1502 | }, 1503 | "funding": { 1504 | "url": "https://github.com/sponsors/mysticatea" 1505 | } 1506 | }, 1507 | "node_modules/rimraf": { 1508 | "version": "2.6.3", 1509 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 1510 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 1511 | "dev": true, 1512 | "dependencies": { 1513 | "glob": "^7.1.3" 1514 | }, 1515 | "bin": { 1516 | "rimraf": "bin.js" 1517 | } 1518 | }, 1519 | "node_modules/safe-buffer": { 1520 | "version": "5.2.1", 1521 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1522 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1523 | "funding": [ 1524 | { 1525 | "type": "github", 1526 | "url": "https://github.com/sponsors/feross" 1527 | }, 1528 | { 1529 | "type": "patreon", 1530 | "url": "https://www.patreon.com/feross" 1531 | }, 1532 | { 1533 | "type": "consulting", 1534 | "url": "https://feross.org/support" 1535 | } 1536 | ] 1537 | }, 1538 | "node_modules/saslprep": { 1539 | "version": "1.0.3", 1540 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 1541 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 1542 | "optional": true, 1543 | "dependencies": { 1544 | "sparse-bitfield": "^3.0.3" 1545 | }, 1546 | "engines": { 1547 | "node": ">=6" 1548 | } 1549 | }, 1550 | "node_modules/setimmediate": { 1551 | "version": "1.0.5", 1552 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 1553 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" 1554 | }, 1555 | "node_modules/shebang-command": { 1556 | "version": "2.0.0", 1557 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1558 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1559 | "dev": true, 1560 | "dependencies": { 1561 | "shebang-regex": "^3.0.0" 1562 | }, 1563 | "engines": { 1564 | "node": ">=8" 1565 | } 1566 | }, 1567 | "node_modules/shebang-regex": { 1568 | "version": "3.0.0", 1569 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1570 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1571 | "dev": true, 1572 | "engines": { 1573 | "node": ">=8" 1574 | } 1575 | }, 1576 | "node_modules/sift": { 1577 | "version": "13.5.2", 1578 | "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", 1579 | "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" 1580 | }, 1581 | "node_modules/slice-ansi": { 1582 | "version": "2.1.0", 1583 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 1584 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 1585 | "dev": true, 1586 | "dependencies": { 1587 | "ansi-styles": "^3.2.0", 1588 | "astral-regex": "^1.0.0", 1589 | "is-fullwidth-code-point": "^2.0.0" 1590 | }, 1591 | "engines": { 1592 | "node": ">=6" 1593 | } 1594 | }, 1595 | "node_modules/sliced": { 1596 | "version": "1.0.1", 1597 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 1598 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 1599 | }, 1600 | "node_modules/sparse-bitfield": { 1601 | "version": "3.0.3", 1602 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 1603 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 1604 | "optional": true, 1605 | "dependencies": { 1606 | "memory-pager": "^1.0.2" 1607 | } 1608 | }, 1609 | "node_modules/sprintf-js": { 1610 | "version": "1.0.3", 1611 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1612 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 1613 | "dev": true 1614 | }, 1615 | "node_modules/string_decoder": { 1616 | "version": "1.1.1", 1617 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1618 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1619 | "dependencies": { 1620 | "safe-buffer": "~5.1.0" 1621 | } 1622 | }, 1623 | "node_modules/string_decoder/node_modules/safe-buffer": { 1624 | "version": "5.1.2", 1625 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1626 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1627 | }, 1628 | "node_modules/string-width": { 1629 | "version": "3.1.0", 1630 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1631 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1632 | "dev": true, 1633 | "dependencies": { 1634 | "emoji-regex": "^7.0.1", 1635 | "is-fullwidth-code-point": "^2.0.0", 1636 | "strip-ansi": "^5.1.0" 1637 | }, 1638 | "engines": { 1639 | "node": ">=6" 1640 | } 1641 | }, 1642 | "node_modules/string-width/node_modules/ansi-regex": { 1643 | "version": "4.1.0", 1644 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 1645 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 1646 | "dev": true, 1647 | "engines": { 1648 | "node": ">=6" 1649 | } 1650 | }, 1651 | "node_modules/string-width/node_modules/strip-ansi": { 1652 | "version": "5.2.0", 1653 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1654 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1655 | "dev": true, 1656 | "dependencies": { 1657 | "ansi-regex": "^4.1.0" 1658 | }, 1659 | "engines": { 1660 | "node": ">=6" 1661 | } 1662 | }, 1663 | "node_modules/strip-ansi": { 1664 | "version": "6.0.0", 1665 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1666 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1667 | "dev": true, 1668 | "dependencies": { 1669 | "ansi-regex": "^5.0.0" 1670 | }, 1671 | "engines": { 1672 | "node": ">=8" 1673 | } 1674 | }, 1675 | "node_modules/strip-json-comments": { 1676 | "version": "3.1.1", 1677 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 1678 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 1679 | "dev": true, 1680 | "engines": { 1681 | "node": ">=8" 1682 | }, 1683 | "funding": { 1684 | "url": "https://github.com/sponsors/sindresorhus" 1685 | } 1686 | }, 1687 | "node_modules/supports-color": { 1688 | "version": "5.5.0", 1689 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1690 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1691 | "dev": true, 1692 | "dependencies": { 1693 | "has-flag": "^3.0.0" 1694 | }, 1695 | "engines": { 1696 | "node": ">=4" 1697 | } 1698 | }, 1699 | "node_modules/table": { 1700 | "version": "5.4.6", 1701 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", 1702 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", 1703 | "dev": true, 1704 | "dependencies": { 1705 | "ajv": "^6.10.2", 1706 | "lodash": "^4.17.14", 1707 | "slice-ansi": "^2.1.0", 1708 | "string-width": "^3.0.0" 1709 | }, 1710 | "engines": { 1711 | "node": ">=6.0.0" 1712 | } 1713 | }, 1714 | "node_modules/text-table": { 1715 | "version": "0.2.0", 1716 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 1717 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 1718 | "dev": true 1719 | }, 1720 | "node_modules/ts-mixer": { 1721 | "version": "6.0.0", 1722 | "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", 1723 | "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" 1724 | }, 1725 | "node_modules/tslib": { 1726 | "version": "2.3.1", 1727 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", 1728 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" 1729 | }, 1730 | "node_modules/tweetnacl": { 1731 | "version": "1.0.3", 1732 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", 1733 | "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" 1734 | }, 1735 | "node_modules/type-check": { 1736 | "version": "0.4.0", 1737 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 1738 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 1739 | "dev": true, 1740 | "dependencies": { 1741 | "prelude-ls": "^1.2.1" 1742 | }, 1743 | "engines": { 1744 | "node": ">= 0.8.0" 1745 | } 1746 | }, 1747 | "node_modules/type-fest": { 1748 | "version": "0.8.1", 1749 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 1750 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 1751 | "dev": true, 1752 | "engines": { 1753 | "node": ">=8" 1754 | } 1755 | }, 1756 | "node_modules/uri-js": { 1757 | "version": "4.4.0", 1758 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", 1759 | "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", 1760 | "dev": true, 1761 | "dependencies": { 1762 | "punycode": "^2.1.0" 1763 | } 1764 | }, 1765 | "node_modules/util-deprecate": { 1766 | "version": "1.0.2", 1767 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1768 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1769 | }, 1770 | "node_modules/v8-compile-cache": { 1771 | "version": "2.1.1", 1772 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", 1773 | "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", 1774 | "dev": true 1775 | }, 1776 | "node_modules/vali-date": { 1777 | "version": "1.0.0", 1778 | "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", 1779 | "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", 1780 | "engines": { 1781 | "node": ">=0.10.0" 1782 | } 1783 | }, 1784 | "node_modules/which": { 1785 | "version": "2.0.2", 1786 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1787 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1788 | "dev": true, 1789 | "dependencies": { 1790 | "isexe": "^2.0.0" 1791 | }, 1792 | "bin": { 1793 | "node-which": "bin/node-which" 1794 | }, 1795 | "engines": { 1796 | "node": ">= 8" 1797 | } 1798 | }, 1799 | "node_modules/word-wrap": { 1800 | "version": "1.2.3", 1801 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 1802 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 1803 | "dev": true, 1804 | "engines": { 1805 | "node": ">=0.10.0" 1806 | } 1807 | }, 1808 | "node_modules/wrappy": { 1809 | "version": "1.0.2", 1810 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1811 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1812 | "dev": true 1813 | }, 1814 | "node_modules/write": { 1815 | "version": "1.0.3", 1816 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", 1817 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", 1818 | "dev": true, 1819 | "dependencies": { 1820 | "mkdirp": "^0.5.1" 1821 | }, 1822 | "engines": { 1823 | "node": ">=4" 1824 | } 1825 | }, 1826 | "node_modules/ws": { 1827 | "version": "8.2.3", 1828 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", 1829 | "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", 1830 | "engines": { 1831 | "node": ">=10.0.0" 1832 | }, 1833 | "peerDependencies": { 1834 | "bufferutil": "^4.0.1", 1835 | "utf-8-validate": "^5.0.2" 1836 | }, 1837 | "peerDependenciesMeta": { 1838 | "bufferutil": { 1839 | "optional": true 1840 | }, 1841 | "utf-8-validate": { 1842 | "optional": true 1843 | } 1844 | } 1845 | } 1846 | }, 1847 | "dependencies": { 1848 | "@babel/code-frame": { 1849 | "version": "7.10.4", 1850 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 1851 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 1852 | "dev": true, 1853 | "requires": { 1854 | "@babel/highlight": "^7.10.4" 1855 | } 1856 | }, 1857 | "@babel/helper-validator-identifier": { 1858 | "version": "7.10.4", 1859 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 1860 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", 1861 | "dev": true 1862 | }, 1863 | "@babel/highlight": { 1864 | "version": "7.10.4", 1865 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 1866 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 1867 | "dev": true, 1868 | "requires": { 1869 | "@babel/helper-validator-identifier": "^7.10.4", 1870 | "chalk": "^2.0.0", 1871 | "js-tokens": "^4.0.0" 1872 | }, 1873 | "dependencies": { 1874 | "chalk": { 1875 | "version": "2.4.2", 1876 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1877 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1878 | "dev": true, 1879 | "requires": { 1880 | "ansi-styles": "^3.2.1", 1881 | "escape-string-regexp": "^1.0.5", 1882 | "supports-color": "^5.3.0" 1883 | } 1884 | } 1885 | } 1886 | }, 1887 | "@discordjs/builders": { 1888 | "version": "0.8.1", 1889 | "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.8.1.tgz", 1890 | "integrity": "sha512-kYJMvZ/BjRD1/6G2t1pQop2yoJNUmYvvKeG4mOBUCHFmfb7WIeBFmN/eSiP3cVSfRx3lbNiyxkdd5JzhjQnGbg==", 1891 | "requires": { 1892 | "@sindresorhus/is": "^4.2.0", 1893 | "discord-api-types": "^0.24.0", 1894 | "ow": "^0.28.1", 1895 | "ts-mixer": "^6.0.0", 1896 | "tslib": "^2.3.1" 1897 | } 1898 | }, 1899 | "@discordjs/collection": { 1900 | "version": "0.1.6", 1901 | "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", 1902 | "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" 1903 | }, 1904 | "@discordjs/form-data": { 1905 | "version": "3.0.1", 1906 | "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", 1907 | "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", 1908 | "requires": { 1909 | "asynckit": "^0.4.0", 1910 | "combined-stream": "^1.0.8", 1911 | "mime-types": "^2.1.12" 1912 | } 1913 | }, 1914 | "@eslint/eslintrc": { 1915 | "version": "0.1.3", 1916 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", 1917 | "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==", 1918 | "dev": true, 1919 | "requires": { 1920 | "ajv": "^6.12.4", 1921 | "debug": "^4.1.1", 1922 | "espree": "^7.3.0", 1923 | "globals": "^12.1.0", 1924 | "ignore": "^4.0.6", 1925 | "import-fresh": "^3.2.1", 1926 | "js-yaml": "^3.13.1", 1927 | "lodash": "^4.17.19", 1928 | "minimatch": "^3.0.4", 1929 | "strip-json-comments": "^3.1.1" 1930 | }, 1931 | "dependencies": { 1932 | "debug": { 1933 | "version": "4.1.1", 1934 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 1935 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 1936 | "dev": true, 1937 | "requires": { 1938 | "ms": "^2.1.1" 1939 | } 1940 | } 1941 | } 1942 | }, 1943 | "@sapphire/async-queue": { 1944 | "version": "1.1.8", 1945 | "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.8.tgz", 1946 | "integrity": "sha512-Oi4EEi8vOne8RM1tCdQ3kYAtl/J6ztak3Th6wwGFqA2SVNJtedw196LjsLX0bK8Li8cwaljbFf08N+0zeqhkWQ==" 1947 | }, 1948 | "@sindresorhus/is": { 1949 | "version": "4.2.0", 1950 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", 1951 | "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" 1952 | }, 1953 | "@types/bson": { 1954 | "version": "4.0.3", 1955 | "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz", 1956 | "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==", 1957 | "requires": { 1958 | "@types/node": "*" 1959 | } 1960 | }, 1961 | "@types/color-name": { 1962 | "version": "1.1.1", 1963 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 1964 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", 1965 | "dev": true 1966 | }, 1967 | "@types/mongodb": { 1968 | "version": "3.6.18", 1969 | "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.18.tgz", 1970 | "integrity": "sha512-JSVFt9p0rTfZ4EgzXmVHUB3ue00xe3CRbQho8nXfImzEDDM4O7I3po1bwbWl/EIbLENxUreZxqLOc8lvcnLVPA==", 1971 | "requires": { 1972 | "@types/bson": "*", 1973 | "@types/node": "*" 1974 | } 1975 | }, 1976 | "@types/node": { 1977 | "version": "15.12.4", 1978 | "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz", 1979 | "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==" 1980 | }, 1981 | "@types/node-fetch": { 1982 | "version": "2.5.12", 1983 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", 1984 | "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", 1985 | "requires": { 1986 | "@types/node": "*", 1987 | "form-data": "^3.0.0" 1988 | } 1989 | }, 1990 | "@types/ws": { 1991 | "version": "8.2.0", 1992 | "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.0.tgz", 1993 | "integrity": "sha512-cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg==", 1994 | "requires": { 1995 | "@types/node": "*" 1996 | } 1997 | }, 1998 | "abort-controller": { 1999 | "version": "3.0.0", 2000 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 2001 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 2002 | "requires": { 2003 | "event-target-shim": "^5.0.0" 2004 | } 2005 | }, 2006 | "acorn": { 2007 | "version": "7.4.0", 2008 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", 2009 | "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", 2010 | "dev": true 2011 | }, 2012 | "acorn-jsx": { 2013 | "version": "5.3.1", 2014 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", 2015 | "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", 2016 | "dev": true, 2017 | "requires": {} 2018 | }, 2019 | "ajv": { 2020 | "version": "6.12.5", 2021 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", 2022 | "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", 2023 | "dev": true, 2024 | "requires": { 2025 | "fast-deep-equal": "^3.1.1", 2026 | "fast-json-stable-stringify": "^2.0.0", 2027 | "json-schema-traverse": "^0.4.1", 2028 | "uri-js": "^4.2.2" 2029 | } 2030 | }, 2031 | "ansi-colors": { 2032 | "version": "4.1.1", 2033 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 2034 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 2035 | "dev": true 2036 | }, 2037 | "ansi-regex": { 2038 | "version": "5.0.0", 2039 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 2040 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 2041 | "dev": true 2042 | }, 2043 | "ansi-styles": { 2044 | "version": "3.2.1", 2045 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 2046 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 2047 | "dev": true, 2048 | "requires": { 2049 | "color-convert": "^1.9.0" 2050 | } 2051 | }, 2052 | "argparse": { 2053 | "version": "1.0.10", 2054 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 2055 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 2056 | "dev": true, 2057 | "requires": { 2058 | "sprintf-js": "~1.0.2" 2059 | } 2060 | }, 2061 | "ascii-table": { 2062 | "version": "0.0.9", 2063 | "resolved": "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz", 2064 | "integrity": "sha1-BqZgTWpV1L9BqaR9mHLXp42jHnM=" 2065 | }, 2066 | "astral-regex": { 2067 | "version": "1.0.0", 2068 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 2069 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 2070 | "dev": true 2071 | }, 2072 | "asynckit": { 2073 | "version": "0.4.0", 2074 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 2075 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 2076 | }, 2077 | "balanced-match": { 2078 | "version": "1.0.0", 2079 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 2080 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 2081 | "dev": true 2082 | }, 2083 | "bl": { 2084 | "version": "2.2.1", 2085 | "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", 2086 | "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", 2087 | "requires": { 2088 | "readable-stream": "^2.3.5", 2089 | "safe-buffer": "^5.1.1" 2090 | } 2091 | }, 2092 | "bluebird": { 2093 | "version": "3.5.1", 2094 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 2095 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 2096 | }, 2097 | "brace-expansion": { 2098 | "version": "1.1.11", 2099 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 2100 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 2101 | "dev": true, 2102 | "requires": { 2103 | "balanced-match": "^1.0.0", 2104 | "concat-map": "0.0.1" 2105 | } 2106 | }, 2107 | "bson": { 2108 | "version": "1.1.6", 2109 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", 2110 | "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" 2111 | }, 2112 | "callsites": { 2113 | "version": "3.1.0", 2114 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2115 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" 2116 | }, 2117 | "chalk": { 2118 | "version": "4.1.0", 2119 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 2120 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 2121 | "dev": true, 2122 | "requires": { 2123 | "ansi-styles": "^4.1.0", 2124 | "supports-color": "^7.1.0" 2125 | }, 2126 | "dependencies": { 2127 | "ansi-styles": { 2128 | "version": "4.2.1", 2129 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 2130 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 2131 | "dev": true, 2132 | "requires": { 2133 | "@types/color-name": "^1.1.1", 2134 | "color-convert": "^2.0.1" 2135 | } 2136 | }, 2137 | "color-convert": { 2138 | "version": "2.0.1", 2139 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2140 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2141 | "dev": true, 2142 | "requires": { 2143 | "color-name": "~1.1.4" 2144 | } 2145 | }, 2146 | "color-name": { 2147 | "version": "1.1.4", 2148 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2149 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2150 | "dev": true 2151 | }, 2152 | "has-flag": { 2153 | "version": "4.0.0", 2154 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2155 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2156 | "dev": true 2157 | }, 2158 | "supports-color": { 2159 | "version": "7.2.0", 2160 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2161 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2162 | "dev": true, 2163 | "requires": { 2164 | "has-flag": "^4.0.0" 2165 | } 2166 | } 2167 | } 2168 | }, 2169 | "color-convert": { 2170 | "version": "1.9.3", 2171 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 2172 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 2173 | "dev": true, 2174 | "requires": { 2175 | "color-name": "1.1.3" 2176 | } 2177 | }, 2178 | "color-name": { 2179 | "version": "1.1.3", 2180 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 2181 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 2182 | "dev": true 2183 | }, 2184 | "combined-stream": { 2185 | "version": "1.0.8", 2186 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 2187 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 2188 | "requires": { 2189 | "delayed-stream": "~1.0.0" 2190 | } 2191 | }, 2192 | "concat-map": { 2193 | "version": "0.0.1", 2194 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2195 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 2196 | "dev": true 2197 | }, 2198 | "core-util-is": { 2199 | "version": "1.0.2", 2200 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 2201 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 2202 | }, 2203 | "cross-spawn": { 2204 | "version": "7.0.3", 2205 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 2206 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 2207 | "dev": true, 2208 | "requires": { 2209 | "path-key": "^3.1.0", 2210 | "shebang-command": "^2.0.0", 2211 | "which": "^2.0.1" 2212 | } 2213 | }, 2214 | "debug": { 2215 | "version": "3.1.0", 2216 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 2217 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 2218 | "requires": { 2219 | "ms": "2.0.0" 2220 | }, 2221 | "dependencies": { 2222 | "ms": { 2223 | "version": "2.0.0", 2224 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2225 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 2226 | } 2227 | } 2228 | }, 2229 | "deep-is": { 2230 | "version": "0.1.3", 2231 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 2232 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 2233 | "dev": true 2234 | }, 2235 | "delayed-stream": { 2236 | "version": "1.0.0", 2237 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 2238 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 2239 | }, 2240 | "denque": { 2241 | "version": "1.5.0", 2242 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", 2243 | "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==" 2244 | }, 2245 | "discord-api-types": { 2246 | "version": "0.24.0", 2247 | "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", 2248 | "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==" 2249 | }, 2250 | "discord-fetch-all": { 2251 | "version": "3.0.2", 2252 | "resolved": "https://registry.npmjs.org/discord-fetch-all/-/discord-fetch-all-3.0.2.tgz", 2253 | "integrity": "sha512-O/25ReQgWGqv0AJ3dtf94BPdvfPx4QwXP1LoTms9st6xWiIvwSEjatcxji39/n0pDZr2BKNOfEW0zFVfELoKuA==", 2254 | "requires": { 2255 | "discord.js": "^12.4.1" 2256 | }, 2257 | "dependencies": { 2258 | "discord.js": { 2259 | "version": "12.5.3", 2260 | "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz", 2261 | "integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==", 2262 | "requires": { 2263 | "@discordjs/collection": "^0.1.6", 2264 | "@discordjs/form-data": "^3.0.1", 2265 | "abort-controller": "^3.0.0", 2266 | "node-fetch": "^2.6.1", 2267 | "prism-media": "^1.2.9", 2268 | "setimmediate": "^1.0.5", 2269 | "tweetnacl": "^1.0.3", 2270 | "ws": "^7.4.4" 2271 | } 2272 | }, 2273 | "prism-media": { 2274 | "version": "1.3.1", 2275 | "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.1.tgz", 2276 | "integrity": "sha512-nyYAa3KB4qteJIqdguKmwxTJgy55xxUtkJ3uRnOvO5jO+frci+9zpRXw6QZVcfDeva3S654fU9+26P2OSTzjHw==", 2277 | "requires": {} 2278 | }, 2279 | "ws": { 2280 | "version": "7.5.0", 2281 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", 2282 | "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", 2283 | "requires": {} 2284 | } 2285 | } 2286 | }, 2287 | "discord.js": { 2288 | "version": "13.3.0", 2289 | "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.3.0.tgz", 2290 | "integrity": "sha512-kZcDVrQRTuzjRx99/Xl9HF1Kt7xNkiN4Gwvk1hNmLRAn+7Syzw9XTkQZdOPXLpijhbTNsZcdAaMxgvTmtyNdyA==", 2291 | "requires": { 2292 | "@discordjs/builders": "^0.8.1", 2293 | "@discordjs/collection": "^0.3.2", 2294 | "@discordjs/form-data": "^3.0.1", 2295 | "@sapphire/async-queue": "^1.1.8", 2296 | "@types/node-fetch": "^2.5.12", 2297 | "@types/ws": "^8.2.0", 2298 | "discord-api-types": "^0.24.0", 2299 | "node-fetch": "^2.6.1", 2300 | "ws": "^8.2.3" 2301 | }, 2302 | "dependencies": { 2303 | "@discordjs/collection": { 2304 | "version": "0.3.2", 2305 | "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.3.2.tgz", 2306 | "integrity": "sha512-dMjLl60b2DMqObbH1MQZKePgWhsNe49XkKBZ0W5Acl5uVV43SN414i2QfZwRI7dXAqIn8pEWD2+XXQFn9KWxqg==" 2307 | } 2308 | } 2309 | }, 2310 | "doctrine": { 2311 | "version": "3.0.0", 2312 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 2313 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 2314 | "dev": true, 2315 | "requires": { 2316 | "esutils": "^2.0.2" 2317 | } 2318 | }, 2319 | "dot-prop": { 2320 | "version": "6.0.1", 2321 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", 2322 | "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", 2323 | "requires": { 2324 | "is-obj": "^2.0.0" 2325 | } 2326 | }, 2327 | "emoji-regex": { 2328 | "version": "7.0.3", 2329 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 2330 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 2331 | "dev": true 2332 | }, 2333 | "enquirer": { 2334 | "version": "2.3.6", 2335 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", 2336 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", 2337 | "dev": true, 2338 | "requires": { 2339 | "ansi-colors": "^4.1.1" 2340 | } 2341 | }, 2342 | "escape-string-regexp": { 2343 | "version": "1.0.5", 2344 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 2345 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 2346 | "dev": true 2347 | }, 2348 | "eslint": { 2349 | "version": "7.9.0", 2350 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.9.0.tgz", 2351 | "integrity": "sha512-V6QyhX21+uXp4T+3nrNfI3hQNBDa/P8ga7LoQOenwrlEFXrEnUEE+ok1dMtaS3b6rmLXhT1TkTIsG75HMLbknA==", 2352 | "dev": true, 2353 | "requires": { 2354 | "@babel/code-frame": "^7.0.0", 2355 | "@eslint/eslintrc": "^0.1.3", 2356 | "ajv": "^6.10.0", 2357 | "chalk": "^4.0.0", 2358 | "cross-spawn": "^7.0.2", 2359 | "debug": "^4.0.1", 2360 | "doctrine": "^3.0.0", 2361 | "enquirer": "^2.3.5", 2362 | "eslint-scope": "^5.1.0", 2363 | "eslint-utils": "^2.1.0", 2364 | "eslint-visitor-keys": "^1.3.0", 2365 | "espree": "^7.3.0", 2366 | "esquery": "^1.2.0", 2367 | "esutils": "^2.0.2", 2368 | "file-entry-cache": "^5.0.1", 2369 | "functional-red-black-tree": "^1.0.1", 2370 | "glob-parent": "^5.0.0", 2371 | "globals": "^12.1.0", 2372 | "ignore": "^4.0.6", 2373 | "import-fresh": "^3.0.0", 2374 | "imurmurhash": "^0.1.4", 2375 | "is-glob": "^4.0.0", 2376 | "js-yaml": "^3.13.1", 2377 | "json-stable-stringify-without-jsonify": "^1.0.1", 2378 | "levn": "^0.4.1", 2379 | "lodash": "^4.17.19", 2380 | "minimatch": "^3.0.4", 2381 | "natural-compare": "^1.4.0", 2382 | "optionator": "^0.9.1", 2383 | "progress": "^2.0.0", 2384 | "regexpp": "^3.1.0", 2385 | "semver": "^7.2.1", 2386 | "strip-ansi": "^6.0.0", 2387 | "strip-json-comments": "^3.1.0", 2388 | "table": "^5.2.3", 2389 | "text-table": "^0.2.0", 2390 | "v8-compile-cache": "^2.0.3" 2391 | }, 2392 | "dependencies": { 2393 | "debug": { 2394 | "version": "4.1.1", 2395 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 2396 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 2397 | "dev": true, 2398 | "requires": { 2399 | "ms": "^2.1.1" 2400 | } 2401 | }, 2402 | "semver": { 2403 | "version": "7.3.2", 2404 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", 2405 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", 2406 | "dev": true 2407 | } 2408 | } 2409 | }, 2410 | "eslint-scope": { 2411 | "version": "5.1.1", 2412 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 2413 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 2414 | "dev": true, 2415 | "requires": { 2416 | "esrecurse": "^4.3.0", 2417 | "estraverse": "^4.1.1" 2418 | } 2419 | }, 2420 | "eslint-utils": { 2421 | "version": "2.1.0", 2422 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", 2423 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", 2424 | "dev": true, 2425 | "requires": { 2426 | "eslint-visitor-keys": "^1.1.0" 2427 | } 2428 | }, 2429 | "eslint-visitor-keys": { 2430 | "version": "1.3.0", 2431 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", 2432 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", 2433 | "dev": true 2434 | }, 2435 | "espree": { 2436 | "version": "7.3.0", 2437 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", 2438 | "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", 2439 | "dev": true, 2440 | "requires": { 2441 | "acorn": "^7.4.0", 2442 | "acorn-jsx": "^5.2.0", 2443 | "eslint-visitor-keys": "^1.3.0" 2444 | } 2445 | }, 2446 | "esprima": { 2447 | "version": "4.0.1", 2448 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 2449 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 2450 | "dev": true 2451 | }, 2452 | "esquery": { 2453 | "version": "1.3.1", 2454 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", 2455 | "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", 2456 | "dev": true, 2457 | "requires": { 2458 | "estraverse": "^5.1.0" 2459 | }, 2460 | "dependencies": { 2461 | "estraverse": { 2462 | "version": "5.2.0", 2463 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 2464 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 2465 | "dev": true 2466 | } 2467 | } 2468 | }, 2469 | "esrecurse": { 2470 | "version": "4.3.0", 2471 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 2472 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 2473 | "dev": true, 2474 | "requires": { 2475 | "estraverse": "^5.2.0" 2476 | }, 2477 | "dependencies": { 2478 | "estraverse": { 2479 | "version": "5.2.0", 2480 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 2481 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 2482 | "dev": true 2483 | } 2484 | } 2485 | }, 2486 | "estraverse": { 2487 | "version": "4.3.0", 2488 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 2489 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 2490 | "dev": true 2491 | }, 2492 | "esutils": { 2493 | "version": "2.0.3", 2494 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 2495 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 2496 | "dev": true 2497 | }, 2498 | "event-target-shim": { 2499 | "version": "5.0.1", 2500 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 2501 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 2502 | }, 2503 | "fast-deep-equal": { 2504 | "version": "3.1.3", 2505 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 2506 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 2507 | "dev": true 2508 | }, 2509 | "fast-json-stable-stringify": { 2510 | "version": "2.1.0", 2511 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 2512 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 2513 | "dev": true 2514 | }, 2515 | "fast-levenshtein": { 2516 | "version": "2.0.6", 2517 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 2518 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 2519 | "dev": true 2520 | }, 2521 | "file-entry-cache": { 2522 | "version": "5.0.1", 2523 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", 2524 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", 2525 | "dev": true, 2526 | "requires": { 2527 | "flat-cache": "^2.0.1" 2528 | } 2529 | }, 2530 | "flat-cache": { 2531 | "version": "2.0.1", 2532 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 2533 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", 2534 | "dev": true, 2535 | "requires": { 2536 | "flatted": "^2.0.0", 2537 | "rimraf": "2.6.3", 2538 | "write": "1.0.3" 2539 | } 2540 | }, 2541 | "flatted": { 2542 | "version": "2.0.2", 2543 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", 2544 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", 2545 | "dev": true 2546 | }, 2547 | "form-data": { 2548 | "version": "3.0.1", 2549 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", 2550 | "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", 2551 | "requires": { 2552 | "asynckit": "^0.4.0", 2553 | "combined-stream": "^1.0.8", 2554 | "mime-types": "^2.1.12" 2555 | } 2556 | }, 2557 | "fs": { 2558 | "version": "0.0.1-security", 2559 | "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", 2560 | "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=" 2561 | }, 2562 | "fs.realpath": { 2563 | "version": "1.0.0", 2564 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2565 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 2566 | "dev": true 2567 | }, 2568 | "functional-red-black-tree": { 2569 | "version": "1.0.1", 2570 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 2571 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 2572 | "dev": true 2573 | }, 2574 | "glob": { 2575 | "version": "7.1.6", 2576 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 2577 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 2578 | "dev": true, 2579 | "requires": { 2580 | "fs.realpath": "^1.0.0", 2581 | "inflight": "^1.0.4", 2582 | "inherits": "2", 2583 | "minimatch": "^3.0.4", 2584 | "once": "^1.3.0", 2585 | "path-is-absolute": "^1.0.0" 2586 | } 2587 | }, 2588 | "glob-parent": { 2589 | "version": "5.1.2", 2590 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2591 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2592 | "dev": true, 2593 | "requires": { 2594 | "is-glob": "^4.0.1" 2595 | } 2596 | }, 2597 | "globals": { 2598 | "version": "12.4.0", 2599 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", 2600 | "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", 2601 | "dev": true, 2602 | "requires": { 2603 | "type-fest": "^0.8.1" 2604 | } 2605 | }, 2606 | "has-flag": { 2607 | "version": "3.0.0", 2608 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2609 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 2610 | "dev": true 2611 | }, 2612 | "ignore": { 2613 | "version": "4.0.6", 2614 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 2615 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 2616 | "dev": true 2617 | }, 2618 | "import-fresh": { 2619 | "version": "3.2.1", 2620 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", 2621 | "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", 2622 | "dev": true, 2623 | "requires": { 2624 | "parent-module": "^1.0.0", 2625 | "resolve-from": "^4.0.0" 2626 | }, 2627 | "dependencies": { 2628 | "resolve-from": { 2629 | "version": "4.0.0", 2630 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 2631 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 2632 | "dev": true 2633 | } 2634 | } 2635 | }, 2636 | "imurmurhash": { 2637 | "version": "0.1.4", 2638 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2639 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 2640 | "dev": true 2641 | }, 2642 | "inflight": { 2643 | "version": "1.0.6", 2644 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2645 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2646 | "dev": true, 2647 | "requires": { 2648 | "once": "^1.3.0", 2649 | "wrappy": "1" 2650 | } 2651 | }, 2652 | "inherits": { 2653 | "version": "2.0.4", 2654 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2655 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 2656 | }, 2657 | "is-extglob": { 2658 | "version": "2.1.1", 2659 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2660 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 2661 | "dev": true 2662 | }, 2663 | "is-fullwidth-code-point": { 2664 | "version": "2.0.0", 2665 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2666 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2667 | "dev": true 2668 | }, 2669 | "is-glob": { 2670 | "version": "4.0.1", 2671 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 2672 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 2673 | "dev": true, 2674 | "requires": { 2675 | "is-extglob": "^2.1.1" 2676 | } 2677 | }, 2678 | "is-obj": { 2679 | "version": "2.0.0", 2680 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", 2681 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" 2682 | }, 2683 | "isarray": { 2684 | "version": "1.0.0", 2685 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2686 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 2687 | }, 2688 | "isexe": { 2689 | "version": "2.0.0", 2690 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2691 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2692 | "dev": true 2693 | }, 2694 | "js-tokens": { 2695 | "version": "4.0.0", 2696 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2697 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 2698 | "dev": true 2699 | }, 2700 | "js-yaml": { 2701 | "version": "3.14.0", 2702 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", 2703 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", 2704 | "dev": true, 2705 | "requires": { 2706 | "argparse": "^1.0.7", 2707 | "esprima": "^4.0.0" 2708 | } 2709 | }, 2710 | "json-schema-traverse": { 2711 | "version": "0.4.1", 2712 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2713 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2714 | "dev": true 2715 | }, 2716 | "json-stable-stringify-without-jsonify": { 2717 | "version": "1.0.1", 2718 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2719 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 2720 | "dev": true 2721 | }, 2722 | "kareem": { 2723 | "version": "2.3.2", 2724 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", 2725 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" 2726 | }, 2727 | "levn": { 2728 | "version": "0.4.1", 2729 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 2730 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 2731 | "dev": true, 2732 | "requires": { 2733 | "prelude-ls": "^1.2.1", 2734 | "type-check": "~0.4.0" 2735 | } 2736 | }, 2737 | "lodash": { 2738 | "version": "4.17.21", 2739 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 2740 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 2741 | "dev": true 2742 | }, 2743 | "lodash.isequal": { 2744 | "version": "4.5.0", 2745 | "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", 2746 | "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" 2747 | }, 2748 | "memory-pager": { 2749 | "version": "1.5.0", 2750 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", 2751 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 2752 | "optional": true 2753 | }, 2754 | "mime-db": { 2755 | "version": "1.44.0", 2756 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 2757 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" 2758 | }, 2759 | "mime-types": { 2760 | "version": "2.1.27", 2761 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 2762 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 2763 | "requires": { 2764 | "mime-db": "1.44.0" 2765 | } 2766 | }, 2767 | "minimatch": { 2768 | "version": "3.0.4", 2769 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2770 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2771 | "dev": true, 2772 | "requires": { 2773 | "brace-expansion": "^1.1.7" 2774 | } 2775 | }, 2776 | "minimist": { 2777 | "version": "1.2.5", 2778 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 2779 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 2780 | "dev": true 2781 | }, 2782 | "mkdirp": { 2783 | "version": "0.5.5", 2784 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 2785 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 2786 | "dev": true, 2787 | "requires": { 2788 | "minimist": "^1.2.5" 2789 | } 2790 | }, 2791 | "mongodb": { 2792 | "version": "3.6.8", 2793 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.8.tgz", 2794 | "integrity": "sha512-sDjJvI73WjON1vapcbyBD3Ao9/VN3TKYY8/QX9EPbs22KaCSrQ5rXo5ZZd44tWJ3wl3FlnrFZ+KyUtNH6+1ZPQ==", 2795 | "requires": { 2796 | "bl": "^2.2.1", 2797 | "bson": "^1.1.4", 2798 | "denque": "^1.4.1", 2799 | "optional-require": "^1.0.3", 2800 | "safe-buffer": "^5.1.2", 2801 | "saslprep": "^1.0.0" 2802 | } 2803 | }, 2804 | "mongoose": { 2805 | "version": "5.12.11", 2806 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.12.11.tgz", 2807 | "integrity": "sha512-16TVqYhHQdZNR8RTis/8iiTPy+nJPq0UhKyBFTucLLU3PWcDLY2gAGv6aOk0LygTNhEfgNnENgUUHhjVqTuh8w==", 2808 | "requires": { 2809 | "@types/mongodb": "^3.5.27", 2810 | "bson": "^1.1.4", 2811 | "kareem": "2.3.2", 2812 | "mongodb": "3.6.8", 2813 | "mongoose-legacy-pluralize": "1.0.2", 2814 | "mpath": "0.8.3", 2815 | "mquery": "3.2.5", 2816 | "ms": "2.1.2", 2817 | "regexp-clone": "1.0.0", 2818 | "safe-buffer": "5.2.1", 2819 | "sift": "13.5.2", 2820 | "sliced": "1.0.1" 2821 | } 2822 | }, 2823 | "mongoose-legacy-pluralize": { 2824 | "version": "1.0.2", 2825 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", 2826 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", 2827 | "requires": {} 2828 | }, 2829 | "mpath": { 2830 | "version": "0.8.3", 2831 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz", 2832 | "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==" 2833 | }, 2834 | "mquery": { 2835 | "version": "3.2.5", 2836 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz", 2837 | "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==", 2838 | "requires": { 2839 | "bluebird": "3.5.1", 2840 | "debug": "3.1.0", 2841 | "regexp-clone": "^1.0.0", 2842 | "safe-buffer": "5.1.2", 2843 | "sliced": "1.0.1" 2844 | }, 2845 | "dependencies": { 2846 | "safe-buffer": { 2847 | "version": "5.1.2", 2848 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2849 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 2850 | } 2851 | } 2852 | }, 2853 | "ms": { 2854 | "version": "2.1.2", 2855 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2856 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 2857 | }, 2858 | "natural-compare": { 2859 | "version": "1.4.0", 2860 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2861 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 2862 | "dev": true 2863 | }, 2864 | "node-fetch": { 2865 | "version": "2.6.1", 2866 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 2867 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 2868 | }, 2869 | "once": { 2870 | "version": "1.4.0", 2871 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2872 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2873 | "dev": true, 2874 | "requires": { 2875 | "wrappy": "1" 2876 | } 2877 | }, 2878 | "optional-require": { 2879 | "version": "1.0.3", 2880 | "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz", 2881 | "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==" 2882 | }, 2883 | "optionator": { 2884 | "version": "0.9.1", 2885 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 2886 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 2887 | "dev": true, 2888 | "requires": { 2889 | "deep-is": "^0.1.3", 2890 | "fast-levenshtein": "^2.0.6", 2891 | "levn": "^0.4.1", 2892 | "prelude-ls": "^1.2.1", 2893 | "type-check": "^0.4.0", 2894 | "word-wrap": "^1.2.3" 2895 | } 2896 | }, 2897 | "ow": { 2898 | "version": "0.28.1", 2899 | "resolved": "https://registry.npmjs.org/ow/-/ow-0.28.1.tgz", 2900 | "integrity": "sha512-1EZTywPZeUKac9gD7q8np3Aj+V54kvfIcjNEVNDSbG2Ys5xA5foW2HquvMMqgyWGLqIFMlc0Iq/HmyMHqN48sA==", 2901 | "requires": { 2902 | "@sindresorhus/is": "^4.2.0", 2903 | "callsites": "^3.1.0", 2904 | "dot-prop": "^6.0.1", 2905 | "lodash.isequal": "^4.5.0", 2906 | "type-fest": "^2.3.4", 2907 | "vali-date": "^1.0.0" 2908 | }, 2909 | "dependencies": { 2910 | "type-fest": { 2911 | "version": "2.5.2", 2912 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.5.2.tgz", 2913 | "integrity": "sha512-WMbytmAs5PUTqwGJRE+WoRrD2S0bYFtHX8k4Y/1l18CG5kqA3keJud9pPQ/r30FE9n8XRFCXF9BbccHIZzRYJw==" 2914 | } 2915 | } 2916 | }, 2917 | "parent-module": { 2918 | "version": "1.0.1", 2919 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 2920 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 2921 | "dev": true, 2922 | "requires": { 2923 | "callsites": "^3.0.0" 2924 | } 2925 | }, 2926 | "path-is-absolute": { 2927 | "version": "1.0.1", 2928 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2929 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2930 | "dev": true 2931 | }, 2932 | "path-key": { 2933 | "version": "3.1.1", 2934 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2935 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2936 | "dev": true 2937 | }, 2938 | "prelude-ls": { 2939 | "version": "1.2.1", 2940 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 2941 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 2942 | "dev": true 2943 | }, 2944 | "process-nextick-args": { 2945 | "version": "2.0.1", 2946 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 2947 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 2948 | }, 2949 | "progress": { 2950 | "version": "2.0.3", 2951 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 2952 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 2953 | "dev": true 2954 | }, 2955 | "punycode": { 2956 | "version": "2.1.1", 2957 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 2958 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 2959 | "dev": true 2960 | }, 2961 | "readable-stream": { 2962 | "version": "2.3.7", 2963 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 2964 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 2965 | "requires": { 2966 | "core-util-is": "~1.0.0", 2967 | "inherits": "~2.0.3", 2968 | "isarray": "~1.0.0", 2969 | "process-nextick-args": "~2.0.0", 2970 | "safe-buffer": "~5.1.1", 2971 | "string_decoder": "~1.1.1", 2972 | "util-deprecate": "~1.0.1" 2973 | }, 2974 | "dependencies": { 2975 | "safe-buffer": { 2976 | "version": "5.1.2", 2977 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2978 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 2979 | } 2980 | } 2981 | }, 2982 | "regexp-clone": { 2983 | "version": "1.0.0", 2984 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", 2985 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 2986 | }, 2987 | "regexpp": { 2988 | "version": "3.1.0", 2989 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", 2990 | "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", 2991 | "dev": true 2992 | }, 2993 | "rimraf": { 2994 | "version": "2.6.3", 2995 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 2996 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 2997 | "dev": true, 2998 | "requires": { 2999 | "glob": "^7.1.3" 3000 | } 3001 | }, 3002 | "safe-buffer": { 3003 | "version": "5.2.1", 3004 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 3005 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 3006 | }, 3007 | "saslprep": { 3008 | "version": "1.0.3", 3009 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 3010 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 3011 | "optional": true, 3012 | "requires": { 3013 | "sparse-bitfield": "^3.0.3" 3014 | } 3015 | }, 3016 | "setimmediate": { 3017 | "version": "1.0.5", 3018 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 3019 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" 3020 | }, 3021 | "shebang-command": { 3022 | "version": "2.0.0", 3023 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 3024 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 3025 | "dev": true, 3026 | "requires": { 3027 | "shebang-regex": "^3.0.0" 3028 | } 3029 | }, 3030 | "shebang-regex": { 3031 | "version": "3.0.0", 3032 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 3033 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 3034 | "dev": true 3035 | }, 3036 | "sift": { 3037 | "version": "13.5.2", 3038 | "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", 3039 | "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" 3040 | }, 3041 | "slice-ansi": { 3042 | "version": "2.1.0", 3043 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 3044 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 3045 | "dev": true, 3046 | "requires": { 3047 | "ansi-styles": "^3.2.0", 3048 | "astral-regex": "^1.0.0", 3049 | "is-fullwidth-code-point": "^2.0.0" 3050 | } 3051 | }, 3052 | "sliced": { 3053 | "version": "1.0.1", 3054 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 3055 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 3056 | }, 3057 | "sparse-bitfield": { 3058 | "version": "3.0.3", 3059 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 3060 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 3061 | "optional": true, 3062 | "requires": { 3063 | "memory-pager": "^1.0.2" 3064 | } 3065 | }, 3066 | "sprintf-js": { 3067 | "version": "1.0.3", 3068 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 3069 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 3070 | "dev": true 3071 | }, 3072 | "string_decoder": { 3073 | "version": "1.1.1", 3074 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 3075 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 3076 | "requires": { 3077 | "safe-buffer": "~5.1.0" 3078 | }, 3079 | "dependencies": { 3080 | "safe-buffer": { 3081 | "version": "5.1.2", 3082 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3083 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 3084 | } 3085 | } 3086 | }, 3087 | "string-width": { 3088 | "version": "3.1.0", 3089 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 3090 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 3091 | "dev": true, 3092 | "requires": { 3093 | "emoji-regex": "^7.0.1", 3094 | "is-fullwidth-code-point": "^2.0.0", 3095 | "strip-ansi": "^5.1.0" 3096 | }, 3097 | "dependencies": { 3098 | "ansi-regex": { 3099 | "version": "4.1.0", 3100 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 3101 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 3102 | "dev": true 3103 | }, 3104 | "strip-ansi": { 3105 | "version": "5.2.0", 3106 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 3107 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 3108 | "dev": true, 3109 | "requires": { 3110 | "ansi-regex": "^4.1.0" 3111 | } 3112 | } 3113 | } 3114 | }, 3115 | "strip-ansi": { 3116 | "version": "6.0.0", 3117 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 3118 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 3119 | "dev": true, 3120 | "requires": { 3121 | "ansi-regex": "^5.0.0" 3122 | } 3123 | }, 3124 | "strip-json-comments": { 3125 | "version": "3.1.1", 3126 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 3127 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 3128 | "dev": true 3129 | }, 3130 | "supports-color": { 3131 | "version": "5.5.0", 3132 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3133 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3134 | "dev": true, 3135 | "requires": { 3136 | "has-flag": "^3.0.0" 3137 | } 3138 | }, 3139 | "table": { 3140 | "version": "5.4.6", 3141 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", 3142 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", 3143 | "dev": true, 3144 | "requires": { 3145 | "ajv": "^6.10.2", 3146 | "lodash": "^4.17.14", 3147 | "slice-ansi": "^2.1.0", 3148 | "string-width": "^3.0.0" 3149 | } 3150 | }, 3151 | "text-table": { 3152 | "version": "0.2.0", 3153 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 3154 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 3155 | "dev": true 3156 | }, 3157 | "ts-mixer": { 3158 | "version": "6.0.0", 3159 | "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", 3160 | "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" 3161 | }, 3162 | "tslib": { 3163 | "version": "2.3.1", 3164 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", 3165 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" 3166 | }, 3167 | "tweetnacl": { 3168 | "version": "1.0.3", 3169 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", 3170 | "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" 3171 | }, 3172 | "type-check": { 3173 | "version": "0.4.0", 3174 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 3175 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 3176 | "dev": true, 3177 | "requires": { 3178 | "prelude-ls": "^1.2.1" 3179 | } 3180 | }, 3181 | "type-fest": { 3182 | "version": "0.8.1", 3183 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 3184 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 3185 | "dev": true 3186 | }, 3187 | "uri-js": { 3188 | "version": "4.4.0", 3189 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", 3190 | "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", 3191 | "dev": true, 3192 | "requires": { 3193 | "punycode": "^2.1.0" 3194 | } 3195 | }, 3196 | "util-deprecate": { 3197 | "version": "1.0.2", 3198 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3199 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 3200 | }, 3201 | "v8-compile-cache": { 3202 | "version": "2.1.1", 3203 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", 3204 | "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", 3205 | "dev": true 3206 | }, 3207 | "vali-date": { 3208 | "version": "1.0.0", 3209 | "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", 3210 | "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=" 3211 | }, 3212 | "which": { 3213 | "version": "2.0.2", 3214 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 3215 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 3216 | "dev": true, 3217 | "requires": { 3218 | "isexe": "^2.0.0" 3219 | } 3220 | }, 3221 | "word-wrap": { 3222 | "version": "1.2.3", 3223 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 3224 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 3225 | "dev": true 3226 | }, 3227 | "wrappy": { 3228 | "version": "1.0.2", 3229 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3230 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 3231 | "dev": true 3232 | }, 3233 | "write": { 3234 | "version": "1.0.3", 3235 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", 3236 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", 3237 | "dev": true, 3238 | "requires": { 3239 | "mkdirp": "^0.5.1" 3240 | } 3241 | }, 3242 | "ws": { 3243 | "version": "8.2.3", 3244 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", 3245 | "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", 3246 | "requires": {} 3247 | } 3248 | } 3249 | } 3250 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ticket-bot", 3 | "version": "1.0.0", 4 | "description": "Open source ticket bot using discord.js v13.", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "dev": "nodemon index.js", 9 | "start": "node index.js" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/Simpleboy353/Tickets-Bot.git" 14 | }, 15 | "keywords": [ 16 | "discord", 17 | "ticket bot" 18 | ], 19 | "author": "Coltz", 20 | "license": "GPL-3.0", 21 | "bugs": { 22 | "url": "https://github.com/Simpleboy353/Tickets-Bot/issues" 23 | }, 24 | "homepage": "https://github.com/Simpleboy353/Tickets-Bot#readme", 25 | "dependencies": { 26 | "ascii-table": "^0.0.9", 27 | "discord-fetch-all": "^3.0.2", 28 | "discord.js": "^13.3.0", 29 | "fs": "^0.0.1-security", 30 | "mongoose": "^5.10.5" 31 | }, 32 | "devDependencies": { 33 | "eslint": "^7.9.0" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /slashCommands/Owner/eval.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "eval", 5 | description: "Run a whole fuckin' code with this!", 6 | options: [ 7 | { 8 | name: "code", 9 | description: "The code to evaluate", 10 | type: "STRING", 11 | required: true 12 | } 13 | ], 14 | ownerOnly: true, 15 | run: async(client, interaction, args) => { 16 | try { 17 | const code = await interaction.options.getString("code") 18 | let evaled = eval(code); 19 | 20 | if (typeof evaled !== "string") 21 | evaled = require("util").inspect(evaled); 22 | 23 | let embed = new MessageEmbed() 24 | .setAuthor("Eval") 25 | .setColor("GREEN") 26 | .addField("Input", `\`\`\`js\n${code}\n\`\`\``) 27 | .addField("Output", `\`\`\`js\n${evaled}\n\`\`\``) 28 | 29 | interaction.reply({ embeds: [embed] }).catch(console.error); 30 | } catch (err) { 31 | interaction.followUp(`\`ERROR\` \`\`\`xl\n${err}\n\`\`\``); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /slashCommands/Tickets/ticket.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | const channelData = require("../../models/channel") 3 | 4 | module.exports = { 5 | name: "ticket", 6 | description: "Setup or stop the tickets system in your server!", 7 | options: [{ 8 | name: "setup", 9 | description: "Setp the tickets system for your server!", 10 | type: "SUB_COMMAND", 11 | options: [{ 12 | name: "channel", 13 | description: "Set the channel for the tickets!", 14 | type: "CHANNEL", 15 | required: true, 16 | }, ], 17 | }, 18 | { 19 | name: "stop", 20 | description: "Stop the tickets system for your server!", 21 | type: "SUB_COMMAND", 22 | }, 23 | ], 24 | botPerms: ["EMBED_LINKS", "ADD_REACTIONS"], 25 | userPerms: ['ADMINISTRATOR'], 26 | run: async(client, interaction, args) => { 27 | if (interaction.options.getSubcommand() === "setup") { 28 | const channel = await interaction.options.getChannel("channel"); 29 | const data = await channelData.findOne({ 30 | ticketGuildID: interaction.guild.id, 31 | }) 32 | 33 | if (data) { 34 | return interaction.reply({ content: "Ticket system is already enabled for your server!", ephemeral: true }) 35 | } else if (!data) { 36 | let newData = new channelData({ 37 | ticketGuildID: interaction.guild.id, 38 | ticketChannelID: channel.id, 39 | }); 40 | await newData.save(); 41 | 42 | let embed = new MessageEmbed() 43 | .setTitle('Support') 44 | .setDescription('React here to create a ticket!') 45 | .setColor('BLURPLE') 46 | 47 | channel.send({ embeds: [embed] }).then(async(msg) => { 48 | msg.react("🎫") 49 | }) 50 | 51 | return interaction.reply({ content: "Ticket system has been enabled for your server!" }) 52 | } 53 | } else if (interaction.options.getSubcommand() === "stop") { 54 | 55 | const data = await channelData.findOne({ 56 | ticketGuildID: interaction.guild.id 57 | }).catch(console.error) 58 | 59 | if (data) { 60 | await channelData.findOneAndRemove({ 61 | ticketGuildID: interaction.guild.id 62 | }); 63 | 64 | return interaction.reply({ content: "Ticket system has been disabled for your server!", ephemeral: true }) 65 | } else if (!data) { 66 | return interaction.reply({ content: "Ticket system isn't enabled for your server!", ephemeral: true }) 67 | } 68 | } 69 | } 70 | } --------------------------------------------------------------------------------