From e9b28d56489953cb513fc24b1f15a0c8c22b180d Mon Sep 17 00:00:00 2001 From: Bauke Date: Mon, 14 Mar 2022 10:58:47 +0100 Subject: [PATCH] =?UTF-8?q?Initial=200.1.0=20commit!=20=F0=9F=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 112 + .stylelintrc.json | 9 + LICENSE | 674 ++ README.md | 48 + package.json | 72 + pnpm-lock.yaml | 6569 +++++++++++++++++ screenshots/fangs-version-0-1-0.png | Bin 0 -> 123143 bytes source/assets/fangs-128-opaque.png | Bin 0 -> 11018 bytes source/assets/fangs-128.png | Bin 0 -> 14886 bytes source/background-scripts/initialize.ts | 38 + source/bang/bang.ts | 69 + source/manifest.json | 33 + source/options/components/link.ts | 20 + source/options/components/page-footer.ts | 36 + source/options/components/page-header.ts | 15 + source/options/components/page-main.ts | 247 + source/options/index.html | 21 + source/options/index.scss | 31 + source/options/index.ts | 31 + .../options/scss/components/page-footer.scss | 9 + .../options/scss/components/page-header.scss | 22 + source/options/scss/components/page-main.scss | 146 + source/options/scss/love.scss | 45 + source/options/scss/mixins.scss | 11 + source/options/scss/reset.scss | 12 + source/options/scss/variables.scss | 4 + source/types.d.ts | 19 + tests/bang.test.ts | 105 + tsconfig.json | 24 + vite.config.ts | 42 + 30 files changed, 8464 insertions(+) create mode 100644 .gitignore create mode 100644 .stylelintrc.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 screenshots/fangs-version-0-1-0.png create mode 100644 source/assets/fangs-128-opaque.png create mode 100644 source/assets/fangs-128.png create mode 100644 source/background-scripts/initialize.ts create mode 100644 source/bang/bang.ts create mode 100644 source/manifest.json create mode 100644 source/options/components/link.ts create mode 100644 source/options/components/page-footer.ts create mode 100644 source/options/components/page-header.ts create mode 100644 source/options/components/page-main.ts create mode 100644 source/options/index.html create mode 100644 source/options/index.scss create mode 100644 source/options/index.ts create mode 100644 source/options/scss/components/page-footer.scss create mode 100644 source/options/scss/components/page-header.scss create mode 100644 source/options/scss/components/page-main.scss create mode 100644 source/options/scss/love.scss create mode 100644 source/options/scss/mixins.scss create mode 100644 source/options/scss/reset.scss create mode 100644 source/options/scss/variables.scss create mode 100644 source/types.d.ts create mode 100644 tests/bang.test.ts create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d56ab38 --- /dev/null +++ b/.gitignore @@ -0,0 +1,112 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Browser profile directories +chromium/ +firefox/ + +# Build output directories +build/ +web-ext-artifacts/ diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000..764c62c --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,9 @@ +{ + "extends": [ + "stylelint-config-standard-scss" + ], + "rules": { + "no-descending-specificity": null, + "string-quotes": "single" + } +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..a26b9b5 --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# Fangs + +> Inject custom DuckDuckGo Bangs into your browsing experience. + +[![Fangs on AMO](https://img.shields.io/amo/v/holllo-fangs)](https://addons.mozilla.org/firefox/addon/holllo-fangs) + +![Fangs 0.1.0](./screenshots/fangs-version-0-1-0.png) + +## Installation + +You can install Fangs through [Mozilla Addons], [installing from a file] (see [the Releases page] for a prebuilt version) or building [from source](#development). + +[installing from a file]: https://support.mozilla.org/en-US/kb/find-and-install-add-ons-add-features-to-firefox#w_how-do-i-find-and-install-add-ons +[Mozilla Addons]: https://addons.mozilla.org/firefox/addon/holllo-fangs/ +[the Releases page]: https://github.com/Holllo/fangs/releases + +## Development + +To build Fangs you will need [git], [NodeJS] and [pnpm]. Then from a terminal, run the following commands. + +[git]: https://git-scm.com +[NodeJS]: https://nodejs.org +[pnpm]: https://pnpm.io + +```sh +# Step 1. Download the repository with Git. +git clone https://github.com/Holllo/fangs +cd fangs + +# Step 2. Install the dependencies. +pnpm install + +# Step 3. Start an auto-reloading browser instance for development. +pnpm start + +# Step 4. Lint the code and run tests. +pnpm test + +# Step 5. Build the WebExtension for production. +# See the web-ext-artifacts directory for output. +pnpm build +``` + +## License + +Fangs is open-sourced with the [GPL-3.0-or-later] license. + +[GPL-3.0-or-later]: https://github.com/Holllo/fangs/blob/main/LICENSE diff --git a/package.json b/package.json new file mode 100644 index 0000000..2d54bfa --- /dev/null +++ b/package.json @@ -0,0 +1,72 @@ +{ + "name": "fangs", + "license": "GPL-3.0-or-later", + "repository": "https://github.com/Holllo/fangs", + "private": true, + "scripts": { + "start": "vite build -m development --watch", + "clean": "trash build web-ext-artifacts", + "build": "pnpm clean && vite build && web-ext build --source-dir build && pnpm zip-source", + "zip-source": "git archive --format zip --output web-ext-artifacts/fangs-source.zip HEAD", + "test": "xo && stylelint 'source/**/*.scss' && tsc && c8 ava" + }, + "dependencies": { + "htm": "^3.1.0", + "modern-normalize": "^1.1.0", + "preact": "^10.6.6", + "webextension-polyfill": "^0.8.0" + }, + "devDependencies": { + "@preact/preset-vite": "^2.1.7", + "@types/webextension-polyfill": "^0.8.2", + "ava": "^4.1.0", + "c8": "^7.11.0", + "postcss": "^8.4.8", + "sass": "^1.49.9", + "stylelint": "^14.5.3", + "stylelint-config-standard-scss": "^3.0.0", + "trash-cli": "^5.0.0", + "ts-node": "^10.7.0", + "typescript": "^4.6.2", + "vite": "^2.8.6", + "vite-plugin-web-extension": "^1.1.3", + "web-ext": "^6.7.0", + "xo": "^0.48.0" + }, + "ava": { + "extensions": [ + "ts" + ], + "files": [ + "tests/**/*.test.ts" + ], + "require": [ + "ts-node/register" + ], + "snapshotDir": "tests/snapshots" + }, + "c8": { + "include": [ + "source", + "tests" + ], + "reportDir": "coverage", + "reporter": [ + "text", + "html" + ] + }, + "xo": { + "overrides": [ + { + "files": "tests/**/*.test.ts", + "rules": { + "import/extensions": "off", + "no-await-in-loop": "off" + } + } + ], + "prettier": true, + "space": true + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..522fe17 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,6569 @@ +lockfileVersion: 5.3 + +specifiers: + '@preact/preset-vite': ^2.1.7 + '@types/webextension-polyfill': ^0.8.2 + ava: ^4.1.0 + c8: ^7.11.0 + htm: ^3.1.0 + modern-normalize: ^1.1.0 + postcss: ^8.4.8 + preact: ^10.6.6 + sass: ^1.49.9 + stylelint: ^14.5.3 + stylelint-config-standard-scss: ^3.0.0 + trash-cli: ^5.0.0 + ts-node: ^10.7.0 + typescript: ^4.6.2 + vite: ^2.8.6 + vite-plugin-web-extension: ^1.1.3 + web-ext: ^6.7.0 + webextension-polyfill: ^0.8.0 + xo: ^0.48.0 + +dependencies: + htm: 3.1.0 + modern-normalize: 1.1.0 + preact: 10.6.6 + webextension-polyfill: 0.8.0 + +devDependencies: + '@preact/preset-vite': 2.1.7_preact@10.6.6+vite@2.8.6 + '@types/webextension-polyfill': 0.8.2 + ava: 4.1.0 + c8: 7.11.0 + postcss: 8.4.8 + sass: 1.49.9 + stylelint: 14.5.3 + stylelint-config-standard-scss: 3.0.0_postcss@8.4.8+stylelint@14.5.3 + trash-cli: 5.0.0 + ts-node: 10.7.0_typescript@4.6.2 + typescript: 4.6.2 + vite: 2.8.6_sass@1.49.9 + vite-plugin-web-extension: 1.1.3_vite@2.8.6 + web-ext: 6.7.0 + xo: 0.48.0 + +packages: + + /@ampproject/remapping/2.1.2: + resolution: {integrity: sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.4 + dev: true + + /@babel/code-frame/7.16.7: + resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.16.10 + dev: true + + /@babel/compat-data/7.17.0: + resolution: {integrity: sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core/7.17.5: + resolution: {integrity: sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.1.2 + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.17.3 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.5 + '@babel/helper-module-transforms': 7.17.6 + '@babel/helpers': 7.17.2 + '@babel/parser': 7.17.3 + '@babel/template': 7.16.7 + '@babel/traverse': 7.17.3 + '@babel/types': 7.17.0 + convert-source-map: 1.8.0 + debug: 4.3.3 + gensync: 1.0.0-beta.2 + json5: 2.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator/7.17.3: + resolution: {integrity: sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + jsesc: 2.5.2 + source-map: 0.5.7 + dev: true + + /@babel/helper-annotate-as-pure/7.16.7: + resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + dev: true + + /@babel/helper-compilation-targets/7.16.7_@babel+core@7.17.5: + resolution: {integrity: sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.17.0 + '@babel/core': 7.17.5 + '@babel/helper-validator-option': 7.16.7 + browserslist: 4.20.0 + semver: 6.3.0 + dev: true + + /@babel/helper-environment-visitor/7.16.7: + resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + dev: true + + /@babel/helper-function-name/7.16.7: + resolution: {integrity: sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-get-function-arity': 7.16.7 + '@babel/template': 7.16.7 + '@babel/types': 7.17.0 + dev: true + + /@babel/helper-get-function-arity/7.16.7: + resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + dev: true + + /@babel/helper-hoist-variables/7.16.7: + resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + dev: true + + /@babel/helper-module-imports/7.16.7: + resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + dev: true + + /@babel/helper-module-transforms/7.17.6: + resolution: {integrity: sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.16.7 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-simple-access': 7.16.7 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 + '@babel/template': 7.16.7 + '@babel/traverse': 7.17.3 + '@babel/types': 7.17.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-plugin-utils/7.16.7: + resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access/7.16.7: + resolution: {integrity: sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + dev: true + + /@babel/helper-split-export-declaration/7.16.7: + resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.0 + dev: true + + /@babel/helper-validator-identifier/7.16.7: + resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option/7.16.7: + resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers/7.17.2: + resolution: {integrity: sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.16.7 + '@babel/traverse': 7.17.3 + '@babel/types': 7.17.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.16.10: + resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.16.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.17.3: + resolution: {integrity: sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==} + engines: {node: '>=6.0.0'} + hasBin: true + dev: true + + /@babel/plugin-syntax-jsx/7.16.7: + resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/helper-plugin-utils': 7.16.7 + dev: true + + /@babel/plugin-transform-react-jsx/7.17.3: + resolution: {integrity: sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-plugin-utils': 7.16.7 + '@babel/plugin-syntax-jsx': 7.16.7 + '@babel/types': 7.17.0 + dev: true + + /@babel/runtime/7.13.9: + resolution: {integrity: sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==} + dependencies: + regenerator-runtime: 0.13.9 + dev: true + + /@babel/template/7.16.7: + resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/parser': 7.17.3 + '@babel/types': 7.17.0 + dev: true + + /@babel/traverse/7.17.3: + resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.17.3 + '@babel/helper-environment-visitor': 7.16.7 + '@babel/helper-function-name': 7.16.7 + '@babel/helper-hoist-variables': 7.16.7 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/parser': 7.17.3 + '@babel/types': 7.17.0 + debug: 4.3.3 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.17.0: + resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.16.7 + to-fast-properties: 2.0.0 + dev: true + + /@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@cspotcode/source-map-consumer/0.8.0: + resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} + engines: {node: '>= 12'} + dev: true + + /@cspotcode/source-map-support/0.7.0: + resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==} + engines: {node: '>=12'} + dependencies: + '@cspotcode/source-map-consumer': 0.8.0 + dev: true + + /@devicefarmer/adbkit-logcat/1.1.0: + resolution: {integrity: sha512-K90P5gUXM/w+yzLvJIRQ+tJooNU6ipUPPQkljtPJ0laR66TGtpt4Gqsjm0n9dPHK1W5KGgU1R5wnCd6RTSlPNA==} + engines: {node: '>= 0.10.4'} + dev: true + + /@devicefarmer/adbkit-monkey/1.0.1: + resolution: {integrity: sha512-HilPrVrCosYWqSyjfpDtaaN1kJwdlBpS+IAflP3z+e7nsEgk3JGJf1Vg0NgHJooTf5HDfXSyZqMVg+5jvXCK0g==} + engines: {node: '>= 0.10.4'} + dependencies: + async: 0.2.10 + dev: true + + /@devicefarmer/adbkit/2.11.3: + resolution: {integrity: sha512-rsgWREAvSRQjdP9/3GoAV6Tq+o97haywgbTfCgt5yUqiDpaaq3hlH9FTo9XsdG8x+Jd0VQ9nTC2IXsDu8JGRSA==} + engines: {node: '>= 0.10.4'} + hasBin: true + dependencies: + '@devicefarmer/adbkit-logcat': 1.1.0 + '@devicefarmer/adbkit-monkey': 1.0.1 + bluebird: 2.9.34 + commander: 2.20.3 + debug: 2.6.9 + node-forge: 0.10.0 + split: 0.3.3 + dev: true + + /@eslint/eslintrc/1.2.1: + resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.3 + espree: 9.3.1 + globals: 13.12.1 + ignore: 5.2.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/config-array/0.9.5: + resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.3 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@istanbuljs/schema/0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jridgewell/resolve-uri/3.0.5: + resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec/1.4.11: + resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==} + dev: true + + /@jridgewell/trace-mapping/0.3.4: + resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==} + dependencies: + '@jridgewell/resolve-uri': 3.0.5 + '@jridgewell/sourcemap-codec': 1.4.11 + dev: true + + /@mdn/browser-compat-data/4.1.6: + resolution: {integrity: sha512-JbtcHGODAlkOT6eDV2rCyOguW3+o34ExMD9DOki6kxzeyN3IBtZ9PI0FlbKeD77Bm5U0UG5Heo4qnNbSajXUnw==} + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.13.0 + dev: true + + /@preact/preset-vite/2.1.7_preact@10.6.6+vite@2.8.6: + resolution: {integrity: sha512-/Ii+aN1Jm8TK5YzDVrj5UOVRZ91F2Nik1P3FbmZyQ5VJAg1ZCkOBBkmLrz9YhiMbbGl+U35yaZNUDMcO8Xlp2g==} + peerDependencies: + '@babel/core': 7.x + vite: 2.x + dependencies: + '@babel/plugin-transform-react-jsx': 7.17.3 + '@prefresh/vite': 2.2.8_preact@10.6.6+vite@2.8.6 + '@rollup/pluginutils': 4.2.0 + babel-plugin-transform-hook-names: 1.0.2 + debug: 4.3.3 + kolorist: 1.5.1 + resolve: 1.22.0 + vite: 2.8.6_sass@1.49.9 + transitivePeerDependencies: + - preact + - supports-color + dev: true + + /@prefresh/babel-plugin/0.4.3: + resolution: {integrity: sha512-fYAWbU1WDSLn108kKY4eDaaeUcnszFqXjgaGKYXNZ5NLulpRTpsrY+Sbfo9q8LDpWrBpqIgzjrwNnvglWI1xNQ==} + dev: true + + /@prefresh/core/1.3.4_preact@10.6.6: + resolution: {integrity: sha512-s7iNsnyJ3lZEUrYIgmVIB/hKtp4U6mdD91a31Zg7Q8M49O0x2KThrbrMQYraoDDrs4STdFB8Zv6bceUguOoX1A==} + peerDependencies: + preact: ^10.0.0 + dependencies: + preact: 10.6.6 + dev: true + + /@prefresh/utils/1.1.3: + resolution: {integrity: sha512-Mb9abhJTOV4yCfkXrMrcgFiFT7MfNOw8sDa+XyZBdq/Ai2p4Zyxqsb3EgHLOEdHpMj6J9aiZ54W8H6FTam1u+A==} + dev: true + + /@prefresh/vite/2.2.8_preact@10.6.6+vite@2.8.6: + resolution: {integrity: sha512-yGGa+PKPYPTzMlxgQ8aBgxw9K69I8X4iQ0E6KOcIvls96WKqKLLOYZW9SUgCve446jpUXvc9udviPBZjCeZIIQ==} + peerDependencies: + preact: ^10.4.0 + vite: '>=2.0.0-beta.3' + dependencies: + '@babel/core': 7.17.5 + '@prefresh/babel-plugin': 0.4.3 + '@prefresh/core': 1.3.4_preact@10.6.6 + '@prefresh/utils': 1.1.3 + '@rollup/pluginutils': 4.2.0 + preact: 10.6.6 + vite: 2.8.6_sass@1.49.9 + transitivePeerDependencies: + - supports-color + dev: true + + /@rollup/pluginutils/4.2.0: + resolution: {integrity: sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@sindresorhus/chunkify/0.2.0: + resolution: {integrity: sha512-mOAiwqu+bIIkNFDCXFJxZEmF9p9WHfSBbpLLmgysYnNkEs7aA0/AvU9+6zLHFqI7JnqdqwAuWu8CbGwGIszRdw==} + engines: {node: '>=12'} + dev: true + + /@sindresorhus/df/1.0.1: + resolution: {integrity: sha1-xptm9S9vzdKHyAffIQMF2694UA0=} + engines: {node: '>=0.10.0'} + dev: true + + /@sindresorhus/df/3.1.1: + resolution: {integrity: sha512-SME/vtXaJcnQ/HpeV6P82Egy+jThn11IKfwW8+/XVoRD0rmPHVTeKMtww1oWdVnMykzVPjmrDN9S8NBndPEHCQ==} + engines: {node: '>=8'} + dependencies: + execa: 2.1.0 + dev: true + + /@sindresorhus/is/0.14.0: + resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} + engines: {node: '>=6'} + dev: true + + /@stroncium/procfs/1.2.1: + resolution: {integrity: sha512-X1Iui3FUNZP18EUvysTHxt+Avu2nlVzyf90YM8OYgP6SGzTzzX/0JgObfO1AQQDzuZtNNz29bVh8h5R97JrjxA==} + engines: {node: '>=8'} + dev: true + + /@szmarczak/http-timer/1.1.2: + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} + engines: {node: '>=6'} + dependencies: + defer-to-connect: 1.1.3 + dev: true + + /@tsconfig/node10/1.0.8: + resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} + dev: true + + /@tsconfig/node12/1.0.9: + resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==} + dev: true + + /@tsconfig/node14/1.0.1: + resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==} + dev: true + + /@tsconfig/node16/1.0.2: + resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} + dev: true + + /@types/eslint/7.29.0: + resolution: {integrity: sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==} + dependencies: + '@types/estree': 0.0.51 + '@types/json-schema': 7.0.9 + dev: true + + /@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + dev: true + + /@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/json-schema/7.0.9: + resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==} + dev: true + + /@types/json5/0.0.29: + resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} + dev: true + + /@types/minimatch/3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + dev: true + + /@types/minimist/1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/node/17.0.21: + resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==} + dev: true + + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true + + /@types/webextension-polyfill/0.8.2: + resolution: {integrity: sha512-Pd+p5AQx6s78jr4gDC2p3vbw+uxP2DLLqE9iAJJpZ+OUqDm3txr6uN2wUBEwjVgZTNdBHPsxawGvPCTipF2s6w==} + dev: true + + /@types/yauzl/2.9.2: + resolution: {integrity: sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==} + dependencies: + '@types/node': 17.0.21 + dev: true + + /@typescript-eslint/eslint-plugin/5.14.0_ace6f9e7722b813e21eaf2dc993bc413: + resolution: {integrity: sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.14.0_eslint@8.11.0+typescript@4.6.2 + '@typescript-eslint/scope-manager': 5.14.0 + '@typescript-eslint/type-utils': 5.14.0_eslint@8.11.0+typescript@4.6.2 + '@typescript-eslint/utils': 5.14.0_eslint@8.11.0+typescript@4.6.2 + debug: 4.3.3 + eslint: 8.11.0 + functional-red-black-tree: 1.0.1 + ignore: 5.2.0 + regexpp: 3.2.0 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.6.2 + typescript: 4.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser/5.14.0_eslint@8.11.0+typescript@4.6.2: + resolution: {integrity: sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.14.0 + '@typescript-eslint/types': 5.14.0 + '@typescript-eslint/typescript-estree': 5.14.0_typescript@4.6.2 + debug: 4.3.3 + eslint: 8.11.0 + typescript: 4.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/5.14.0: + resolution: {integrity: sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.14.0 + '@typescript-eslint/visitor-keys': 5.14.0 + dev: true + + /@typescript-eslint/type-utils/5.14.0_eslint@8.11.0+typescript@4.6.2: + resolution: {integrity: sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/utils': 5.14.0_eslint@8.11.0+typescript@4.6.2 + debug: 4.3.3 + eslint: 8.11.0 + tsutils: 3.21.0_typescript@4.6.2 + typescript: 4.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types/5.14.0: + resolution: {integrity: sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree/5.14.0_typescript@4.6.2: + resolution: {integrity: sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.14.0 + '@typescript-eslint/visitor-keys': 5.14.0 + debug: 4.3.3 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.6.2 + typescript: 4.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.14.0_eslint@8.11.0+typescript@4.6.2: + resolution: {integrity: sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.9 + '@typescript-eslint/scope-manager': 5.14.0 + '@typescript-eslint/types': 5.14.0 + '@typescript-eslint/typescript-estree': 5.14.0_typescript@4.6.2 + eslint: 8.11.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.11.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys/5.14.0: + resolution: {integrity: sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.14.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /acorn-jsx/5.3.2_acorn@8.7.0: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.7.0 + dev: true + + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn/8.7.0: + resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /addons-linter/4.9.0: + resolution: {integrity: sha512-dknaL2zU9faJHpObJSFhh7RKM7S2uUImQL0I/tIny862wp8u6O7EhFu1ktdFRLO3NirHOTdn0366EcRrbAt1yg==} + engines: {node: '>=12.21.0'} + hasBin: true + dependencies: + '@mdn/browser-compat-data': 4.1.6 + addons-moz-compare: 1.2.0 + addons-scanner-utils: 6.3.0 + ajv: 6.12.6 + ajv-merge-patch: 4.1.0_ajv@6.12.6 + chalk: 4.1.2 + cheerio: 1.0.0-rc.10 + columnify: 1.6.0 + common-tags: 1.8.2 + deepmerge: 4.2.2 + eslint: 8.8.0 + eslint-plugin-no-unsanitized: 4.0.1_eslint@8.8.0 + eslint-visitor-keys: 3.2.0 + espree: 9.3.0 + esprima: 4.0.1 + fluent-syntax: 0.13.0 + glob: 7.2.0 + image-size: 1.0.1 + is-mergeable-object: 1.1.1 + jed: 1.1.1 + os-locale: 5.0.0 + pino: 7.6.5 + postcss: 8.4.6 + relaxed-json: 1.0.3 + semver: 7.3.5 + sha.js: 2.4.11 + source-map-support: 0.5.21 + tosource: 1.0.0 + upath: 2.0.1 + yargs: 17.3.1 + yauzl: 2.10.0 + transitivePeerDependencies: + - '@types/download' + - body-parser + - download + - express + - safe-compare + - supports-color + dev: true + + /addons-moz-compare/1.2.0: + resolution: {integrity: sha512-COG8qk2/dubPqabfcoJW4E7pm2EQDI43iMrHnhlobvq/uRMEzx/PYJ1KaUZ97Vgg44R3QdRG5CvDsTRbMUHcDw==} + dev: true + + /addons-scanner-utils/6.3.0: + resolution: {integrity: sha512-sD4U7TX/NFDUYVheydrcpHH9xG3E0eVBFDn1RuUkGpqRyay3SsOU75Pl2lWAbCmeE0Mh9inU1Fwl7Mm1VRWkZw==} + peerDependencies: + '@types/download': 8.0.1 + body-parser: 1.19.1 + download: 8.0.0 + express: 4.17.2 + safe-compare: 1.1.4 + dependencies: + '@types/yauzl': 2.9.2 + common-tags: 1.8.2 + first-chunk-stream: 3.0.0 + strip-bom-stream: 4.0.0 + upath: 2.0.1 + yauzl: 2.10.0 + dev: true + + /adm-zip/0.5.9: + resolution: {integrity: sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==} + engines: {node: '>=6.0'} + dev: true + + /aggregate-error/3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /aggregate-error/4.0.0: + resolution: {integrity: sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==} + engines: {node: '>=12'} + dependencies: + clean-stack: 4.1.0 + indent-string: 5.0.0 + dev: true + + /ajv-merge-patch/4.1.0_ajv@6.12.6: + resolution: {integrity: sha512-0mAYXMSauA8RZ7r+B4+EAOYcZEcO9OK5EiQCR7W7Cv4E44pJj56ZnkKLJ9/PAcOc0dT+LlV9fdDcq2TxVJfOYw==} + peerDependencies: + ajv: '>=6.0.0' + dependencies: + ajv: 6.12.6 + fast-json-patch: 2.2.1 + json-merge-patch: 0.2.3 + dev: true + + /ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv/8.10.0: + resolution: {integrity: sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-align/3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + dependencies: + string-width: 4.2.3 + dev: true + + /ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex/6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles/6.1.0: + resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} + engines: {node: '>=12'} + dev: true + + /any-promise/1.3.0: + resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} + dev: true + + /anymatch/3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /array-differ/3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + dev: true + + /array-find-index/1.0.2: + resolution: {integrity: sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=} + engines: {node: '>=0.10.0'} + dev: true + + /array-find/1.0.0: + resolution: {integrity: sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=} + dev: true + + /array-includes/3.1.4: + resolution: {integrity: sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.19.1 + get-intrinsic: 1.1.1 + is-string: 1.0.7 + dev: true + + /array-union/1.0.2: + resolution: {integrity: sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=} + engines: {node: '>=0.10.0'} + dependencies: + array-uniq: 1.0.3 + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-uniq/1.0.3: + resolution: {integrity: sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=} + engines: {node: '>=0.10.0'} + dev: true + + /array.prototype.flat/1.2.5: + resolution: {integrity: sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.19.1 + dev: true + + /arrgv/1.0.2: + resolution: {integrity: sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==} + engines: {node: '>=8.0.0'} + dev: true + + /arrify/1.0.1: + resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=} + engines: {node: '>=0.10.0'} + dev: true + + /arrify/2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + dev: true + + /arrify/3.0.0: + resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} + engines: {node: '>=12'} + dev: true + + /asn1/0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assert-plus/1.0.0: + resolution: {integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=} + engines: {node: '>=0.8'} + dev: true + + /astral-regex/2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async/0.2.10: + resolution: {integrity: sha1-trvgsGdLnXGXCMo43owjfLUmw9E=} + dev: true + + /async/3.2.3: + resolution: {integrity: sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==} + dev: true + + /asynckit/0.4.0: + resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} + dev: true + + /at-least-node/1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /atomic-sleep/1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + dev: true + + /ava/4.1.0: + resolution: {integrity: sha512-QD6MBWHzagAwb9vxduXzVWx6Q77DUHLxvIebSY6+enL+Ri6KzSZYj0IBOFifA26wfpJPZnWKLUh3vwx1LyVh/g==} + engines: {node: '>=12.22 <13 || >=14.17 <15 || >=16.4 <17 || >=17'} + hasBin: true + peerDependencies: + '@ava/typescript': '*' + peerDependenciesMeta: + '@ava/typescript': + optional: true + dependencies: + acorn: 8.7.0 + acorn-walk: 8.2.0 + ansi-styles: 6.1.0 + arrgv: 1.0.2 + arrify: 3.0.0 + callsites: 4.0.0 + cbor: 8.1.0 + chalk: 5.0.1 + chokidar: 3.5.3 + chunkd: 2.0.1 + ci-info: 3.3.0 + ci-parallel-vars: 1.0.1 + clean-yaml-object: 0.1.0 + cli-truncate: 3.1.0 + code-excerpt: 4.0.0 + common-path-prefix: 3.0.0 + concordance: 5.0.4 + currently-unhandled: 0.4.1 + debug: 4.3.3 + del: 6.0.0 + emittery: 0.10.1 + figures: 4.0.0 + globby: 13.1.1 + ignore-by-default: 2.0.0 + indent-string: 5.0.0 + is-error: 2.2.2 + is-plain-object: 5.0.0 + is-promise: 4.0.0 + matcher: 5.0.0 + mem: 9.0.2 + ms: 2.1.3 + p-event: 5.0.1 + p-map: 5.3.0 + picomatch: 2.3.1 + pkg-conf: 4.0.0 + plur: 5.1.0 + pretty-ms: 7.0.1 + resolve-cwd: 3.0.0 + slash: 3.0.0 + stack-utils: 2.0.5 + strip-ansi: 7.0.1 + supertap: 3.0.1 + temp-dir: 2.0.0 + write-file-atomic: 4.0.1 + yargs: 17.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /aws-sign2/0.7.0: + resolution: {integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=} + dev: true + + /aws4/1.11.0: + resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==} + dev: true + + /babel-plugin-transform-hook-names/1.0.2: + resolution: {integrity: sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==} + peerDependencies: + '@babel/core': ^7.12.10 + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /balanced-match/2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + dev: true + + /bcrypt-pbkdf/1.0.2: + resolution: {integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=} + dependencies: + tweetnacl: 0.14.5 + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bluebird/2.9.34: + resolution: {integrity: sha1-L3tOyAIWMoqf3evfacjUlC/v99g=} + dev: true + + /blueimp-md5/2.19.0: + resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} + dev: true + + /boolbase/1.0.0: + resolution: {integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24=} + dev: true + + /boxen/5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} + dependencies: + ansi-align: 3.0.1 + camelcase: 6.2.0 + chalk: 4.1.2 + cli-boxes: 2.2.1 + string-width: 4.2.3 + type-fest: 0.20.2 + widest-line: 3.1.0 + wrap-ansi: 7.0.0 + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist/4.20.0: + resolution: {integrity: sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001315 + electron-to-chromium: 1.4.82 + escalade: 3.1.1 + node-releases: 2.0.2 + picocolors: 1.0.0 + dev: true + + /buffer-crc32/0.2.13: + resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} + dev: true + + /buffer-equal-constant-time/1.0.1: + resolution: {integrity: sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=} + dev: true + + /buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /builtin-modules/3.2.0: + resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==} + engines: {node: '>=6'} + dev: true + + /bunyan/1.8.15: + resolution: {integrity: sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==} + engines: {'0': node >=0.10.0} + hasBin: true + optionalDependencies: + dtrace-provider: 0.8.8 + moment: 2.29.1 + mv: 2.1.1 + safe-json-stringify: 1.2.0 + dev: true + + /c8/7.11.0: + resolution: {integrity: sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.0 + istanbul-reports: 3.1.4 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 8.1.1 + yargs: 16.2.0 + yargs-parser: 20.2.9 + dev: true + + /cacheable-request/6.1.0: + resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.2 + get-stream: 5.2.0 + http-cache-semantics: 4.1.0 + keyv: 3.1.0 + lowercase-keys: 2.0.0 + normalize-url: 4.5.1 + responselike: 1.0.2 + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /callsites/4.0.0: + resolution: {integrity: sha512-y3jRROutgpKdz5vzEhWM34TidDU8vkJppF8dszITeb1PQmSqV3DTxyV8G/lyO/DNvtE1YTedehmw9MPZsCBHxQ==} + engines: {node: '>=12.20'} + dev: true + + /camelcase-keys/6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase-keys/7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + dependencies: + camelcase: 6.3.0 + map-obj: 4.3.0 + quick-lru: 5.1.1 + type-fest: 1.4.0 + dev: true + + /camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase/6.2.0: + resolution: {integrity: sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==} + engines: {node: '>=10'} + dev: true + + /camelcase/6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-lite/1.0.30001315: + resolution: {integrity: sha512-5v7LFQU4Sb/qvkz7JcZkvtSH1Ko+1x2kgo3ocdBeMGZSOFpuE1kkm0kpTwLtWeFrw5qw08ulLxJjVIXIS8MkiQ==} + dev: true + + /caseless/0.12.0: + resolution: {integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=} + dev: true + + /cbor/8.1.0: + resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} + engines: {node: '>=12.19'} + dependencies: + nofilter: 3.1.0 + dev: true + + /chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk/5.0.1: + resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /cheerio-select/1.5.0: + resolution: {integrity: sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==} + dependencies: + css-select: 4.2.1 + css-what: 5.1.0 + domelementtype: 2.2.0 + domhandler: 4.3.0 + domutils: 2.8.0 + dev: true + + /cheerio/1.0.0-rc.10: + resolution: {integrity: sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==} + engines: {node: '>= 6'} + dependencies: + cheerio-select: 1.5.0 + dom-serializer: 1.3.2 + domhandler: 4.3.0 + htmlparser2: 6.1.0 + parse5: 6.0.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + tslib: 2.3.1 + dev: true + + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /chrome-launcher/0.15.0: + resolution: {integrity: sha512-ZQqX5kb9H0+jy1OqLnWampfocrtSZaGl7Ny3F9GRha85o4odbL8x55paUzh51UC7cEmZ5obp3H2Mm70uC2PpRA==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@types/node': 17.0.21 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.3.0 + dev: true + + /chunkd/2.0.1: + resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==} + dev: true + + /ci-info/2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: true + + /ci-info/3.3.0: + resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==} + dev: true + + /ci-parallel-vars/1.0.1: + resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==} + dev: true + + /clean-regexp/1.0.0: + resolution: {integrity: sha1-jffHquUf02h06PjQW5GAvBGj/tc=} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /clean-stack/2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /clean-stack/4.1.0: + resolution: {integrity: sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + + /clean-yaml-object/0.1.0: + resolution: {integrity: sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=} + engines: {node: '>=0.10.0'} + dev: true + + /cli-boxes/2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + dev: true + + /cli-truncate/3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-regexp/2.2.0: + resolution: {integrity: sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==} + engines: {node: '>=6'} + dependencies: + is-regexp: 2.1.0 + dev: true + + /clone-response/1.0.2: + resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} + dependencies: + mimic-response: 1.0.1 + dev: true + + /clone/1.0.4: + resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=} + engines: {node: '>=0.8'} + dev: true + + /code-excerpt/4.0.0: + resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + convert-to-spaces: 2.0.1 + dev: true + + /color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colord/2.9.2: + resolution: {integrity: sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==} + dev: true + + /columnify/1.6.0: + resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} + engines: {node: '>=8.0.0'} + dependencies: + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander/2.9.0: + resolution: {integrity: sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=} + engines: {node: '>= 0.6.x'} + dependencies: + graceful-readlink: 1.0.1 + dev: true + + /common-path-prefix/3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + dev: true + + /common-tags/1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + + /commondir/1.0.1: + resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /concat-stream/1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.7 + typedarray: 0.0.6 + dev: true + + /concordance/5.0.4: + resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} + engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} + dependencies: + date-time: 3.1.0 + esutils: 2.0.3 + fast-diff: 1.2.0 + js-string-escape: 1.0.1 + lodash: 4.17.21 + md5-hex: 3.0.1 + semver: 7.3.5 + well-known-symbols: 2.0.0 + dev: true + + /configstore/5.0.1: + resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} + engines: {node: '>=8'} + dependencies: + dot-prop: 5.3.0 + graceful-fs: 4.2.9 + make-dir: 3.1.0 + unique-string: 2.0.0 + write-file-atomic: 3.0.3 + xdg-basedir: 4.0.0 + dev: true + + /confusing-browser-globals/1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + dev: true + + /convert-source-map/1.8.0: + resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /convert-to-spaces/2.0.1: + resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /core-js/3.21.0: + resolution: {integrity: sha512-YUdI3fFu4TF/2WykQ2xzSiTQdldLB4KVuL9WeAy5XONZYt5Cun/fpQvctoKbCgvPhmzADeesTk/j2Rdx77AcKQ==} + requiresBuild: true + dev: true + + /core-util-is/1.0.2: + resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=} + dev: true + + /core-util-is/1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /cosmiconfig/7.0.1: + resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypto-random-string/2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + dev: true + + /css-functions-list/3.0.1: + resolution: {integrity: sha512-PriDuifDt4u4rkDgnqRCLnjfMatufLmWNfQnGCq34xZwpY3oabwhB9SqRBmuvWUgndbemCFlKqg+nO7C2q0SBw==} + engines: {node: '>=12.22'} + dev: true + + /css-select/4.2.1: + resolution: {integrity: sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==} + dependencies: + boolbase: 1.0.0 + css-what: 5.1.0 + domhandler: 4.3.0 + domutils: 2.8.0 + nth-check: 2.0.1 + dev: true + + /css-what/5.1.0: + resolution: {integrity: sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==} + engines: {node: '>= 6'} + dev: true + + /cssesc/3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /currently-unhandled/0.4.1: + resolution: {integrity: sha1-mI3zP+qxke95mmE2nddsF635V+o=} + engines: {node: '>=0.10.0'} + dependencies: + array-find-index: 1.0.2 + dev: true + + /dashdash/1.14.1: + resolution: {integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: true + + /date-time/3.1.0: + resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} + engines: {node: '>=6'} + dependencies: + time-zone: 1.0.0 + dev: true + + /debounce/1.2.0: + resolution: {integrity: sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==} + dev: true + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + dependencies: + ms: 2.1.3 + dev: true + + /debug/4.3.3: + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize-keys/1.1.0: + resolution: {integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize/1.2.0: + resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} + engines: {node: '>=0.10.0'} + dev: true + + /decamelize/5.0.0: + resolution: {integrity: sha512-U75DcT5hrio3KNtvdULAWnLiAPbFUC4191ldxMmj4FA/mRuBnmDwU0boNfPyFRhnan+Jm+haLeSn3P0afcBn4w==} + engines: {node: '>=10'} + dev: true + + /decamelize/5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + dev: true + + /decompress-response/3.3.0: + resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=} + engines: {node: '>=4'} + dependencies: + mimic-response: 1.0.1 + dev: true + + /deep-equal/1.1.1: + resolution: {integrity: sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==} + dependencies: + is-arguments: 1.1.1 + is-date-object: 1.0.5 + is-regex: 1.1.4 + object-is: 1.1.5 + object-keys: 1.1.1 + regexp.prototype.flags: 1.4.1 + dev: true + + /deep-extend/0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: true + + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepcopy/2.1.0: + resolution: {integrity: sha512-8cZeTb1ZKC3bdSCP6XOM1IsTczIO73fdqtwa2B0N15eAz7gmyhQo+mc5gnFuulsgN3vIQYmTgbmQVKalH1dKvQ==} + dependencies: + type-detect: 4.0.8 + dev: true + + /deepmerge/4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} + dev: true + + /defaults/1.0.3: + resolution: {integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=} + dependencies: + clone: 1.0.4 + dev: true + + /defer-to-connect/1.1.3: + resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} + dev: true + + /define-lazy-prop/2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + + /define-lazy-prop/3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true + + /define-properties/1.1.3: + resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} + engines: {node: '>= 0.4'} + dependencies: + object-keys: 1.1.1 + dev: true + + /del/6.0.0: + resolution: {integrity: sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==} + engines: {node: '>=10'} + dependencies: + globby: 11.1.0 + graceful-fs: 4.2.9 + is-glob: 4.0.3 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.3 + p-map: 4.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + dev: true + + /delayed-stream/1.0.0: + resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} + engines: {node: '>=0.4.0'} + dev: true + + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob/2.2.2: + resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==} + engines: {node: '>=4'} + dependencies: + path-type: 3.0.0 + dev: true + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine/2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-serializer/1.3.2: + resolution: {integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==} + dependencies: + domelementtype: 2.2.0 + domhandler: 4.3.0 + entities: 2.2.0 + dev: true + + /domelementtype/2.2.0: + resolution: {integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==} + dev: true + + /domhandler/4.3.0: + resolution: {integrity: sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.2.0 + dev: true + + /domutils/2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.3.2 + domelementtype: 2.2.0 + domhandler: 4.3.0 + dev: true + + /dot-prop/5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /dtrace-provider/0.8.8: + resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + nan: 2.15.0 + dev: true + optional: true + + /duplexer3/0.1.4: + resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} + dev: true + + /duplexify/4.1.2: + resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==} + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 3.6.0 + stream-shift: 1.0.1 + dev: true + + /eastasianwidth/0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /ecc-jsbn/0.1.2: + resolution: {integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + + /ecdsa-sig-formatter/1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /electron-to-chromium/1.4.82: + resolution: {integrity: sha512-Ks+ANzLoIrFDUOJdjxYMH6CMKB8UQo5modAwvSZTxgF+vEs/U7G5IbWFUp6dS4klPkTDVdxbORuk8xAXXhMsWw==} + dev: true + + /emittery/0.10.1: + resolution: {integrity: sha512-OBSS9uVXbpgqEGq2V5VnpfCu9vSnfiR9eYVJmxFYToNIcWRHkM4BAFbJe/PWjf/pQdEL7OPxd2jOW/bJiyX7gg==} + engines: {node: '>=12'} + dev: true + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex/9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /enhance-visitors/1.0.0: + resolution: {integrity: sha1-qpRdBdpGVnKh69OP7i7T2oUY6Vo=} + engines: {node: '>=4.0.0'} + dependencies: + lodash: 4.17.21 + dev: true + + /enhanced-resolve/0.9.1: + resolution: {integrity: sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=} + engines: {node: '>=0.6'} + dependencies: + graceful-fs: 4.2.9 + memory-fs: 0.2.0 + tapable: 0.1.10 + dev: true + + /entities/2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /env-editor/1.0.0: + resolution: {integrity: sha512-SRy6e7u1tZgohoxL952q9+kbRkkUrzi63dB7J4zr6wOSMQrCD0KJUNhMZajGTNQfdY68PaStfmIzh7To/FKilQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract/1.19.1: + resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.4 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.1 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.0 + object-keys: 1.1.1 + object.assign: 4.1.2 + string.prototype.trimend: 1.0.4 + string.prototype.trimstart: 1.0.4 + unbox-primitive: 1.0.1 + dev: true + + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.4 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es6-error/4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + dev: true + + /es6-promisify/7.0.0: + resolution: {integrity: sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==} + engines: {node: '>=6'} + dev: true + + /esbuild-android-64/0.14.25: + resolution: {integrity: sha512-L5vCUk7TzFbBnoESNoXjU3x9+/+7TDIE/1mTfy/erAfvZAqC+S3sp/Qa9wkypFMcFvN9FzvESkTlpeQDolREtQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.14.25: + resolution: {integrity: sha512-4jv5xPjM/qNm27T5j3ZEck0PvjgQtoMHnz4FzwF5zNP56PvY2CT0WStcAIl6jNlsuDdN63rk2HRBIsO6xFbcFw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.14.25: + resolution: {integrity: sha512-TGp8tuudIxOyWd1+8aYPxQmC1ZQyvij/AfNBa35RubixD0zJ1vkKHVAzo0Zao1zcG6pNqiSyzfPto8vmg0s7oA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.14.25: + resolution: {integrity: sha512-oTcDgdm0MDVEmw2DWu8BV68pYuImpFgvWREPErBZmNA4MYKGuBRaCiJqq6jZmBR1x+3y1DWCjez+5uLtuAm6mw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.14.25: + resolution: {integrity: sha512-ueAqbnMZ8arnuLH8tHwTCQYeptnHOUV7vA6px6j4zjjQwDx7TdP7kACPf3TLZLdJQ3CAD1XCvQ2sPhX+8tacvQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.14.25: + resolution: {integrity: sha512-+ZVWud2HKh+Ob6k/qiJWjBtUg4KmJGGmbvEXXW1SNKS7hW7HU+Zq2ZCcE1akFxOPkVB+EhOty/sSek30tkCYug==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.14.25: + resolution: {integrity: sha512-3OP/lwV3kCzEz45tobH9nj+uE4ubhGsfx+tn0L26WAGtUbmmcRpqy7XRG/qK7h1mClZ+eguIANcQntYMdYklfw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.14.25: + resolution: {integrity: sha512-+aKHdHZmX9qwVlQmu5xYXh7GsBFf4TWrePgeJTalhXHOG7NNuUwoHmketGiZEoNsWyyqwH9rE5BC+iwcLY30Ug==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.14.25: + resolution: {integrity: sha512-aTLcE2VBoLydL943REcAcgnDi3bHtmULSXWLbjtBdtykRatJVSxKMjK9YlBXUZC4/YcNQfH7AxwVeQr9fNxPhw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.14.25: + resolution: {integrity: sha512-UxfenPx/wSZx55gScCImPtXekvZQLI2GW3qe5dtlmU7luiqhp5GWPzGeQEbD3yN3xg/pHc671m5bma5Ns7lBHw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.14.25: + resolution: {integrity: sha512-wLWYyqVfYx9Ur6eU5RT92yJVsaBGi5RdkoWqRHOqcJ38Kn60QMlcghsKeWfe9jcYut8LangYZ98xO1LxIoSXrQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.14.25: + resolution: {integrity: sha512-0dR6Csl6Zas3g4p9ULckEl8Mo8IInJh33VCJ3eaV1hj9+MHGdmDOakYMN8MZP9/5nl+NU/0ygpd14cWgy8uqRw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64/0.14.25: + resolution: {integrity: sha512-J4d20HDmTrgvhR0bdkDhvvJGaikH3LzXQnNaseo8rcw9Yqby9A90gKUmWpfwqLVNRILvNnAmKLfBjCKU9ajg8w==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.14.25: + resolution: {integrity: sha512-YI2d5V6nTE73ZnhEKQD7MtsPs1EtUZJ3obS21oxQxGbbRw1G+PtJKjNyur+3t6nzHP9oTg6GHQ3S3hOLLmbDIQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.14.25: + resolution: {integrity: sha512-TKIVgNWLUOkr+Exrye70XTEE1lJjdQXdM4tAXRzfHE9iBA7LXWcNtVIuSnphTqpanPzTDFarF0yqq4kpbC6miA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.14.25: + resolution: {integrity: sha512-QgFJ37A15D7NIXBTYEqz29+uw3nNBOIyog+3kFidANn6kjw0GHZ0lEYQn+cwjyzu94WobR+fes7cTl/ZYlHb1A==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.14.25: + resolution: {integrity: sha512-rmWfjUItYIVlqr5EnTH1+GCxXiBOC42WBZ3w++qh7n2cS9Xo0lO5pGSG2N+huOU2fX5L+6YUuJ78/vOYvefeFw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32/0.14.25: + resolution: {integrity: sha512-HGAxVUofl3iUIz9W10Y9XKtD0bNsK9fBXv1D55N/ljNvkrAYcGB8YCm0v7DjlwtyS6ws3dkdQyXadbxkbzaKOA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.14.25: + resolution: {integrity: sha512-TirEohRkfWU9hXLgoDxzhMQD1g8I2mOqvdQF2RS9E/wbkORTAqJHyh7wqGRCQAwNzdNXdg3JAyhQ9/177AadWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.14.25: + resolution: {integrity: sha512-4ype9ERiI45rSh+R8qUoBtaj6kJvUOI7oVLhKqPEpcF4Pa5PpT3hm/mXAyotJHREkHpM87PAJcA442mLnbtlNA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild/0.14.25: + resolution: {integrity: sha512-4JHEIOMNFvK09ziiL+iVmldIhLbn49V4NAVo888tcGFKedEZY/Y8YapfStJ6zSE23tzYPKxqKwQBnQoIO0BI/Q==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-64: 0.14.25 + esbuild-android-arm64: 0.14.25 + esbuild-darwin-64: 0.14.25 + esbuild-darwin-arm64: 0.14.25 + esbuild-freebsd-64: 0.14.25 + esbuild-freebsd-arm64: 0.14.25 + esbuild-linux-32: 0.14.25 + esbuild-linux-64: 0.14.25 + esbuild-linux-arm: 0.14.25 + esbuild-linux-arm64: 0.14.25 + esbuild-linux-mips64le: 0.14.25 + esbuild-linux-ppc64le: 0.14.25 + esbuild-linux-riscv64: 0.14.25 + esbuild-linux-s390x: 0.14.25 + esbuild-netbsd-64: 0.14.25 + esbuild-openbsd-64: 0.14.25 + esbuild-sunos-64: 0.14.25 + esbuild-windows-32: 0.14.25 + esbuild-windows-64: 0.14.25 + esbuild-windows-arm64: 0.14.25 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-goat/2.1.1: + resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp/2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /eslint-config-prettier/8.5.0_eslint@8.11.0: + resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.11.0 + dev: true + + /eslint-config-xo-typescript/0.50.0_ee721080a50eeefb27bc3777db76a2fc: + resolution: {integrity: sha512-Ru2tXB8y2w9fFHLm4v2AVfY6P81UbfEuDZuxEpeXlfV65Ezlk0xO4nBaT899ojIFkWfr60rP9Ye4CdVUUT1UYg==} + engines: {node: '>=12'} + peerDependencies: + '@typescript-eslint/eslint-plugin': '>=5.8.0' + eslint: '>=8.0.0' + typescript: '>=4.4' + dependencies: + '@typescript-eslint/eslint-plugin': 5.14.0_ace6f9e7722b813e21eaf2dc993bc413 + eslint: 8.11.0 + typescript: 4.6.2 + dev: true + + /eslint-config-xo/0.40.0_eslint@8.11.0: + resolution: {integrity: sha512-msI1O0JGxeK2bbExg3U6EGaWKcjhOFzEjwzObywG/DC5GSNZTOyJT+b2l9MZGBeZsVdxfIGwdXTNeWXl8cN9iw==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=8.6.0' + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.11.0 + dev: true + + /eslint-formatter-pretty/4.1.0: + resolution: {integrity: sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==} + engines: {node: '>=10'} + dependencies: + '@types/eslint': 7.29.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + eslint-rule-docs: 1.1.231 + log-symbols: 4.1.0 + plur: 4.0.0 + string-width: 4.2.3 + supports-hyperlinks: 2.2.0 + dev: true + + /eslint-import-resolver-node/0.3.6: + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} + dependencies: + debug: 3.2.7 + resolve: 1.22.0 + dev: true + + /eslint-import-resolver-webpack/0.13.2_eslint-plugin-import@2.25.4: + resolution: {integrity: sha512-XodIPyg1OgE2h5BDErz3WJoK7lawxKTJNhgPNafRST6csC/MZC+L5P6kKqsZGRInpbgc02s/WZMrb4uGJzcuRg==} + engines: {node: '>= 6'} + peerDependencies: + eslint-plugin-import: '>=1.4.0' + webpack: '>=1.11.0' + dependencies: + array-find: 1.0.0 + debug: 3.2.7 + enhanced-resolve: 0.9.1 + eslint-plugin-import: 2.25.4_eslint@8.11.0 + find-root: 1.1.0 + has: 1.0.3 + interpret: 1.4.0 + is-core-module: 2.8.1 + is-regex: 1.1.4 + lodash: 4.17.21 + resolve: 1.22.0 + semver: 5.7.1 + dev: true + + /eslint-module-utils/2.7.3: + resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} + engines: {node: '>=4'} + dependencies: + debug: 3.2.7 + find-up: 2.1.0 + dev: true + + /eslint-plugin-ava/13.2.0_eslint@8.11.0: + resolution: {integrity: sha512-i5B5izsEdERKQLruk1nIWzTTE7C26/ju8qQf7JeyRv32XT2lRMW0zMFZNhIrEf5/5VvpSz2rqrV7UcjClGbKsw==} + engines: {node: '>=12.22 <13 || >=14.17 <15 || >=16.4'} + peerDependencies: + eslint: '>=7.22.0' + dependencies: + enhance-visitors: 1.0.0 + eslint: 8.11.0 + eslint-utils: 3.0.0_eslint@8.11.0 + espree: 9.3.1 + espurify: 2.1.1 + import-modules: 2.1.0 + micro-spelling-correcter: 1.1.1 + pkg-dir: 5.0.0 + resolve-from: 5.0.0 + dev: true + + /eslint-plugin-es/3.0.1_eslint@8.11.0: + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.11.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + dev: true + + /eslint-plugin-eslint-comments/3.2.0_eslint@8.11.0: + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.11.0 + ignore: 5.2.0 + dev: true + + /eslint-plugin-import/2.25.4_eslint@8.11.0: + resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + dependencies: + array-includes: 3.1.4 + array.prototype.flat: 1.2.5 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.11.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3 + has: 1.0.3 + is-core-module: 2.8.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.5 + resolve: 1.22.0 + tsconfig-paths: 3.13.0 + dev: true + + /eslint-plugin-no-unsanitized/4.0.1_eslint@8.8.0: + resolution: {integrity: sha512-y/lAMWnPPC7RYuUdxlEL/XiCL8FehN9h9s3Kjqbp/Kv0i9NZs+IXSC2kS546Fa4Bumwy31HlVS/OdWX0Kxb5Xg==} + peerDependencies: + eslint: ^6 || ^7 || ^8 + dependencies: + eslint: 8.8.0 + dev: true + + /eslint-plugin-no-use-extend-native/0.5.0: + resolution: {integrity: sha512-dBNjs8hor8rJgeXLH4HTut5eD3RGWf9JUsadIfuL7UosVQ/dnvOKwxEcRrXrFxrMZ8llUVWT+hOimxJABsAUzQ==} + engines: {node: '>=6.0.0'} + dependencies: + is-get-set-prop: 1.0.0 + is-js-type: 2.0.0 + is-obj-prop: 1.0.0 + is-proto-prop: 2.0.0 + dev: true + + /eslint-plugin-node/11.1.0_eslint@8.11.0: + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + dependencies: + eslint: 8.11.0 + eslint-plugin-es: 3.0.1_eslint@8.11.0 + eslint-utils: 2.1.0 + ignore: 5.2.0 + minimatch: 3.1.2 + resolve: 1.22.0 + semver: 6.3.0 + dev: true + + /eslint-plugin-prettier/4.0.0_c9d5adccfd1d43a8805a302169f6a967: + resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} + engines: {node: '>=6.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.11.0 + eslint-config-prettier: 8.5.0_eslint@8.11.0 + prettier: 2.5.1 + prettier-linter-helpers: 1.0.0 + dev: true + + /eslint-plugin-unicorn/40.1.0_eslint@8.11.0: + resolution: {integrity: sha512-y5doK2DF9Sr5AqKEHbHxjFllJ167nKDRU01HDcWyv4Tnmaoe9iNxMrBnaybZvWZUaE3OC5Unu0lNIevYamloig==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=7.32.0' + dependencies: + '@babel/helper-validator-identifier': 7.16.7 + ci-info: 3.3.0 + clean-regexp: 1.0.0 + eslint: 8.11.0 + eslint-utils: 3.0.0_eslint@8.11.0 + esquery: 1.4.0 + indent-string: 4.0.0 + is-builtin-module: 3.1.0 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.24 + safe-regex: 2.1.1 + semver: 7.3.5 + strip-indent: 3.0.0 + dev: true + + /eslint-rule-docs/1.1.231: + resolution: {integrity: sha512-egHz9A1WG7b8CS0x1P6P/Rj5FqZOjray/VjpJa14tMZalfRKvpE2ONJ3plCM7+PcinmU4tcmbPLv0VtwzSdLVA==} + dev: true + + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils/2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@8.11.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.11.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-utils/3.0.0_eslint@8.8.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.8.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys/3.2.0: + resolution: {integrity: sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint/8.11.0: + resolution: {integrity: sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.2.1 + '@humanwhocodes/config-array': 0.9.5 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.3 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.11.0 + eslint-visitor-keys: 3.3.0 + espree: 9.3.1 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 6.0.2 + globals: 13.12.1 + ignore: 5.2.0 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint/8.8.0: + resolution: {integrity: sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.2.1 + '@humanwhocodes/config-array': 0.9.5 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.3 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.8.0 + eslint-visitor-keys: 3.2.0 + espree: 9.3.0 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 6.0.2 + globals: 13.12.1 + ignore: 5.2.0 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /esm-utils/2.2.0: + resolution: {integrity: sha512-kYj4yNRo4W3by0f1mj4AfRh1nsRTTpQG921Ik3AfyUq6upGlkI1fnMLypHn6XtFzZPdCYH1k9mtQA5MyZF9m+w==} + dev: true + + /espree/9.3.0: + resolution: {integrity: sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.7.0 + acorn-jsx: 5.3.2_acorn@8.7.0 + eslint-visitor-keys: 3.2.0 + dev: true + + /espree/9.3.1: + resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.7.0 + acorn-jsx: 5.3.2_acorn@8.7.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /espurify/2.1.1: + resolution: {integrity: sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==} + dev: true + + /esquery/1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /event-to-promise/0.8.0: + resolution: {integrity: sha1-S4TxF3K28l93Uvx02XFTGsb1tiY=} + deprecated: Use promise-toolbox/fromEvent instead + dev: true + + /execa/2.1.0: + resolution: {integrity: sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==} + engines: {node: ^8.12.0 || >=9.7.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 3.1.0 + onetime: 5.1.2 + p-finally: 2.0.1 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa/4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execall/2.0.0: + resolution: {integrity: sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==} + engines: {node: '>=8'} + dependencies: + clone-regexp: 2.2.0 + dev: true + + /extend/3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /extsprintf/1.3.0: + resolution: {integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=} + engines: {'0': node >=0.6.0} + dev: true + + /fast-deep-equal/2.0.1: + resolution: {integrity: sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=} + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-diff/1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + dev: true + + /fast-glob/3.2.11: + resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.4 + dev: true + + /fast-json-patch/2.2.1: + resolution: {integrity: sha512-4j5uBaTnsYAV5ebkidvxiLUYOwjQ+JSFljeqfTxCrH9bDmlCQaOJFS84oDJ2rAXZq2yskmk3ORfoP9DCwqFNig==} + engines: {node: '>= 0.4.0'} + dependencies: + fast-deep-equal: 2.0.1 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} + dev: true + + /fast-redact/3.1.1: + resolution: {integrity: sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A==} + engines: {node: '>=6'} + dev: true + + /fastest-levenshtein/1.0.12: + resolution: {integrity: sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==} + dev: true + + /fastq/1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + dependencies: + reusify: 1.0.4 + dev: true + + /fd-slicer/1.1.0: + resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=} + dependencies: + pend: 1.2.0 + dev: true + + /figures/4.0.0: + resolution: {integrity: sha512-VnYcWq6H6F0qDN0QnorznBr0abEovifzUokmnezpKZBUbDmbLAt7LMryOp1TKFVxLxyNYkxEkCEADZR58U9oSw==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + is-unicode-supported: 1.1.0 + dev: true + + /file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-cache-dir/3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + dev: true + + /find-root/1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: true + + /find-up/2.1.0: + resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-up/6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.1.0 + path-exists: 5.0.0 + dev: true + + /firefox-profile/4.2.2: + resolution: {integrity: sha512-3kI17Xl9dL9AeRkpV1yahsJ+UbekkPtlQswKrIsTY1NLgxtEOR4R19rjGGz5+7/rP8Jt6fvxHk+Bai9R6Eai3w==} + hasBin: true + dependencies: + adm-zip: 0.5.9 + fs-extra: 9.0.1 + ini: 2.0.0 + minimist: 1.2.5 + xml2js: 0.4.23 + dev: true + + /first-chunk-stream/3.0.0: + resolution: {integrity: sha512-LNRvR4hr/S8cXXkIY5pTgVP7L3tq6LlYWcg9nWBuW7o1NMxKZo6oOVa/6GIekMGI0Iw7uC+HWimMe9u/VAeKqw==} + engines: {node: '>=8'} + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.5 + rimraf: 3.0.2 + dev: true + + /flatted/3.2.5: + resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} + dev: true + + /fluent-syntax/0.13.0: + resolution: {integrity: sha512-0Bk1AsliuYB550zr4JV9AYhsETsD3ELXUQzdXGJfIc1Ni/ukAfBdQInDhVMYJUaT2QxoamNslwkYF7MlOrPUwg==} + engines: {node: '>=8.9.0'} + dev: true + + /foreground-child/2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.7 + dev: true + + /forever-agent/0.6.1: + resolution: {integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=} + dev: true + + /form-data/2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /fs-extra/9.0.1: + resolution: {integrity: sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.9 + jsonfile: 6.1.0 + universalify: 1.0.0 + dev: true + + /fs-extra/9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.9 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /functional-red-black-tree/1.0.1: + resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + dev: true + + /fx-runner/1.2.0: + resolution: {integrity: sha512-/zR9BmHF8h4OaVJ+fHHJBv/5FdPV9mjOAPIscQZbAijm7Aa15Ls/P8UBHD5OKU5jwu2niTxkkzzHKITE7oCMoQ==} + hasBin: true + dependencies: + commander: 2.9.0 + shell-quote: 1.7.3 + spawn-sync: 1.0.15 + when: 3.7.7 + which: 1.2.4 + winreg: 0.0.12 + dev: true + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-intrinsic/1.1.1: + resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-set-props/0.1.0: + resolution: {integrity: sha1-mYR1wXhEVobQsyJG2l3428++jqM=} + engines: {node: '>=0.10.0'} + dev: true + + /get-stdin/8.0.0: + resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} + engines: {node: '>=10'} + dev: true + + /get-stdin/9.0.0: + resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + engines: {node: '>=12'} + dev: true + + /get-stream/4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream/5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-symbol-description/1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + dev: true + + /getpass/0.1.7: + resolution: {integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=} + dependencies: + assert-plus: 1.0.0 + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp/0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + + /glob/6.0.4: + resolution: {integrity: sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=} + dependencies: + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + optional: true + + /glob/7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global-dirs/3.0.0: + resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==} + engines: {node: '>=10'} + dependencies: + ini: 2.0.0 + dev: true + + /global-modules/2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + dev: true + + /global-prefix/3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: true + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals/13.12.1: + resolution: {integrity: sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.11 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby/13.1.1: + resolution: {integrity: sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.2.11 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globby/7.1.1: + resolution: {integrity: sha1-+yzP+UAfhgCUXfral0QMypcrhoA=} + engines: {node: '>=4'} + dependencies: + array-union: 1.0.2 + dir-glob: 2.2.2 + glob: 7.2.0 + ignore: 3.3.10 + pify: 3.0.0 + slash: 1.0.0 + dev: true + + /globjoin/0.1.4: + resolution: {integrity: sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=} + dev: true + + /got/9.6.0: + resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} + engines: {node: '>=8.6'} + dependencies: + '@sindresorhus/is': 0.14.0 + '@szmarczak/http-timer': 1.1.2 + cacheable-request: 6.1.0 + decompress-response: 3.3.0 + duplexer3: 0.1.4 + get-stream: 4.1.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 1.1.0 + to-readable-stream: 1.0.0 + url-parse-lax: 3.0.0 + dev: true + + /graceful-fs/4.2.9: + resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} + dev: true + + /graceful-readlink/1.0.1: + resolution: {integrity: sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=} + dev: true + + /growly/1.3.0: + resolution: {integrity: sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=} + dev: true + + /har-schema/2.0.0: + resolution: {integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=} + engines: {node: '>=4'} + dev: true + + /har-validator/5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + dev: true + + /hard-rejection/2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-bigints/1.0.1: + resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-yarn/2.1.0: + resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} + engines: {node: '>=8'} + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /htm/3.1.0: + resolution: {integrity: sha512-L0s3Sid5r6YwrEvkig14SK3Emmc+kIjlfLhEGn2Vy3bk21JyDEes4MoDsbJk6luaPp8bugErnxPz86ZuAw6e5Q==} + dev: false + + /html-escaper/2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /html-tags/3.1.0: + resolution: {integrity: sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==} + engines: {node: '>=8'} + dev: true + + /htmlparser2/6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + dependencies: + domelementtype: 2.2.0 + domhandler: 4.3.0 + domutils: 2.8.0 + entities: 2.2.0 + dev: true + + /http-cache-semantics/4.1.0: + resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} + dev: true + + /http-signature/1.2.0: + resolution: {integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.17.0 + dev: true + + /human-signals/1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: true + + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /ignore-by-default/2.0.0: + resolution: {integrity: sha512-+mQSgMRiFD3L3AOxLYOCxjIq4OnAmo5CIuC+lj5ehCJcPtV++QacEV7FdpzvYxH6DaOySWzQU6RR0lPLy37ckA==} + engines: {node: '>=10 <11 || >=12 <13 || >=14'} + dev: true + + /ignore/3.3.10: + resolution: {integrity: sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==} + dev: true + + /ignore/5.2.0: + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} + engines: {node: '>= 4'} + dev: true + + /image-size/1.0.1: + resolution: {integrity: sha512-VAwkvNSNGClRw9mDHhc5Efax8PLlsOGcUTh0T/LIriC8vPA3U5PdqXWqkz406MoYHMKW8Uf9gWr05T/rYB44kQ==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + queue: 6.0.2 + dev: true + + /immediate/3.0.6: + resolution: {integrity: sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=} + dev: true + + /immutable/4.0.0: + resolution: {integrity: sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==} + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-lazy/2.1.0: + resolution: {integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=} + engines: {node: '>=4'} + dev: true + + /import-lazy/4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: true + + /import-modules/2.1.0: + resolution: {integrity: sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==} + engines: {node: '>=8'} + dev: true + + /imurmurhash/0.1.4: + resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /indent-string/5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /ini/2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + dev: true + + /internal-slot/1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /interpret/1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + dev: true + + /invert-kv/3.0.1: + resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==} + engines: {node: '>=8'} + dev: true + + /irregular-plurals/3.3.0: + resolution: {integrity: sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==} + engines: {node: '>=8'} + dev: true + + /is-absolute/0.1.7: + resolution: {integrity: sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: 0.1.3 + dev: true + + /is-absolute/1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + + /is-arguments/1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + dev: true + + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.1 + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object/1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-builtin-module/3.1.0: + resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.2.0 + dev: true + + /is-callable/1.2.4: + resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + engines: {node: '>= 0.4'} + dev: true + + /is-ci/2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + dev: true + + /is-core-module/2.8.1: + resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} + dependencies: + has: 1.0.3 + dev: true + + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-docker/2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-error/2.2.2: + resolution: {integrity: sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==} + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point/4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-get-set-prop/1.0.0: + resolution: {integrity: sha1-JzGHfk14pqae3M5rudaLB3nnYxI=} + dependencies: + get-set-props: 0.1.0 + lowercase-keys: 1.0.1 + dev: true + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-installed-globally/0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + dependencies: + global-dirs: 3.0.0 + is-path-inside: 3.0.3 + dev: true + + /is-js-type/2.0.0: + resolution: {integrity: sha1-c2FwBtZZtOtHKbunR9KHgt8PfiI=} + dependencies: + js-types: 1.0.0 + dev: true + + /is-mergeable-object/1.1.1: + resolution: {integrity: sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA==} + dev: true + + /is-negated-glob/1.0.0: + resolution: {integrity: sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=} + engines: {node: '>=0.10.0'} + dev: true + + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-npm/5.0.0: + resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} + engines: {node: '>=10'} + dev: true + + /is-number-object/1.0.6: + resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj-prop/1.0.0: + resolution: {integrity: sha1-s03nnEULjXxzqyzfZ9yHWtuF+A4=} + dependencies: + lowercase-keys: 1.0.1 + obj-props: 1.3.0 + dev: true + + /is-obj/2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-path-cwd/2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + dev: true + + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-path-inside/4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + dev: true + + /is-plain-obj/1.1.0: + resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-object/5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-promise/4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + dev: true + + /is-proto-prop/2.0.0: + resolution: {integrity: sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==} + dependencies: + lowercase-keys: 1.0.1 + proto-props: 2.0.0 + dev: true + + /is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-regexp/2.1.0: + resolution: {integrity: sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==} + engines: {node: '>=6'} + dev: true + + /is-relative/0.1.3: + resolution: {integrity: sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=} + engines: {node: '>=0.10.0'} + dev: true + + /is-relative/1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: 1.0.0 + dev: true + + /is-shared-array-buffer/1.0.1: + resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} + dev: true + + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typedarray/1.0.0: + resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} + dev: true + + /is-unc-path/1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: 0.1.2 + dev: true + + /is-unicode-supported/0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-unicode-supported/1.1.0: + resolution: {integrity: sha512-lDcxivp8TJpLG75/DpatAqNzOpDPSpED8XNtrpBHTdQ2InQ1PbW78jhwSxyxhhu+xbVSast2X38bwj8atwoUQA==} + engines: {node: '>=12'} + dev: true + + /is-utf8/0.2.1: + resolution: {integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=} + dev: true + + /is-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-windows/1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-wsl/2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /is-yarn-global/0.3.0: + resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} + dev: true + + /isarray/1.0.0: + resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} + dev: true + + /isexe/1.1.2: + resolution: {integrity: sha1-NvPiLmB1CSD15yQaR2qMakInWtA=} + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + dev: true + + /isstream/0.1.2: + resolution: {integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=} + dev: true + + /istanbul-lib-coverage/3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-reports/3.1.4: + resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /jed/1.1.1: + resolution: {integrity: sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ=} + dev: true + + /js-string-escape/1.0.1: + resolution: {integrity: sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=} + engines: {node: '>= 0.8'} + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-types/1.0.0: + resolution: {integrity: sha1-0kLmSU7Vcq08koCfyL7X92h8vwM=} + engines: {node: '>=0.10.0'} + dev: true + + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsbn/0.1.1: + resolution: {integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=} + dev: true + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer/3.0.0: + resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} + dev: true + + /json-merge-patch/0.2.3: + resolution: {integrity: sha1-+ixrWvh9p3uuKWalidUuI+2B/kA=} + dependencies: + deep-equal: 1.1.1 + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-schema/0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + dev: true + + /json-stringify-safe/5.0.1: + resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} + dev: true + + /json5/1.0.1: + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /json5/2.2.0: + resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.9 + dev: true + + /jsonwebtoken/8.5.1: + resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} + engines: {node: '>=4', npm: '>=1.4.28'} + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 5.7.1 + dev: true + + /jsprim/1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + + /jszip/3.7.1: + resolution: {integrity: sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==} + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.7 + set-immediate-shim: 1.0.1 + dev: true + + /jwa/1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: true + + /jws/3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + dev: true + + /keyv/3.1.0: + resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + dependencies: + json-buffer: 3.0.0 + dev: true + + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /known-css-properties/0.24.0: + resolution: {integrity: sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==} + dev: true + + /kolorist/1.5.1: + resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==} + dev: true + + /latest-version/5.1.0: + resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} + engines: {node: '>=8'} + dependencies: + package-json: 6.5.0 + dev: true + + /lcid/3.1.1: + resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} + engines: {node: '>=8'} + dependencies: + invert-kv: 3.0.1 + dev: true + + /levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lie/3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + dependencies: + immediate: 3.0.6 + dev: true + + /lighthouse-logger/1.3.0: + resolution: {integrity: sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==} + dependencies: + debug: 2.6.9 + marky: 1.2.4 + dev: true + + /line-column-path/3.0.0: + resolution: {integrity: sha512-Atocnm7Wr9nuvAn97yEPQa3pcQI5eLQGBz+m6iTb+CVw+IOzYB9MrYK7jI7BfC9ISnT4Fu0eiwhAScV//rp4Hw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + type-fest: 2.12.0 + dev: true + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /load-json-file/7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /locate-path/2.0.0: + resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /locate-path/7.1.0: + resolution: {integrity: sha512-HNx5uOnYeK4SxEoid5qnhRfprlJeGMzFRKPLCf/15N3/B4AiofNwC/yq7VBKdVk9dx7m+PiYCJOGg55JYTAqoQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: true + + /lodash-es/4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: true + + /lodash.includes/4.3.0: + resolution: {integrity: sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=} + dev: true + + /lodash.isboolean/3.0.3: + resolution: {integrity: sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=} + dev: true + + /lodash.isinteger/4.0.4: + resolution: {integrity: sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=} + dev: true + + /lodash.isnumber/3.0.3: + resolution: {integrity: sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=} + dev: true + + /lodash.isplainobject/4.0.6: + resolution: {integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=} + dev: true + + /lodash.isstring/4.0.1: + resolution: {integrity: sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=} + dev: true + + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.once/4.1.1: + resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=} + dev: true + + /lodash.truncate/4.4.2: + resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols/4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /lowercase-keys/1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + dev: true + + /lowercase-keys/2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /map-age-cleaner/0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + dependencies: + p-defer: 1.0.0 + dev: true + + /map-obj/1.0.1: + resolution: {integrity: sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj/4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /marky/1.2.4: + resolution: {integrity: sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==} + dev: true + + /matcher/5.0.0: + resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + + /mathml-tag-names/2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + dev: true + + /md5-hex/3.0.1: + resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} + engines: {node: '>=8'} + dependencies: + blueimp-md5: 2.19.0 + dev: true + + /mem/5.1.1: + resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==} + engines: {node: '>=8'} + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 2.1.0 + p-is-promise: 2.1.0 + dev: true + + /mem/9.0.2: + resolution: {integrity: sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==} + engines: {node: '>=12.20'} + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 4.0.0 + dev: true + + /memory-fs/0.2.0: + resolution: {integrity: sha1-8rslNovBIeORwlIN6Slpyu4KApA=} + dev: true + + /meow/10.1.2: + resolution: {integrity: sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 7.0.2 + decamelize: 5.0.1 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 8.0.0 + redent: 4.0.0 + trim-newlines: 4.0.2 + type-fest: 1.4.0 + yargs-parser: 20.2.9 + dev: true + + /meow/9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micro-spelling-correcter/1.1.1: + resolution: {integrity: sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==} + dev: true + + /micromatch/4.0.4: + resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn/4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /mimic-response/1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: true + + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist-options/4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist/1.2.5: + resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + dev: true + + /mkdirp/0.5.5: + resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + optional: true + + /mkdirp/1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /modern-normalize/1.1.0: + resolution: {integrity: sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==} + engines: {node: '>=6'} + dev: false + + /moment/2.29.1: + resolution: {integrity: sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==} + requiresBuild: true + dev: true + optional: true + + /mount-point/3.0.0: + resolution: {integrity: sha1-Zly57evoDREOZY21bDHQrvUaj5c=} + engines: {node: '>=0.10.0'} + dependencies: + '@sindresorhus/df': 1.0.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true + + /move-file/3.0.0: + resolution: {integrity: sha512-v6u4XjX3MFW6Jo1V/YfbhC7eiGSgvYPJ/NM+aGtTtB9/Y6IYj7YViaHu6dkgDsZFB7MbnAoSI5+Z26XZXnP0vg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-exists: 5.0.0 + dev: true + + /ms/2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /multimatch/5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} + dependencies: + '@types/minimatch': 3.0.5 + array-differ: 3.0.0 + array-union: 2.1.0 + arrify: 2.0.1 + minimatch: 3.1.2 + dev: true + + /mv/2.1.1: + resolution: {integrity: sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=} + engines: {node: '>=0.8.0'} + requiresBuild: true + dependencies: + mkdirp: 0.5.5 + ncp: 2.0.0 + rimraf: 2.4.5 + dev: true + optional: true + + /mz/2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nan/2.15.0: + resolution: {integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==} + dev: true + optional: true + + /nanoid/3.3.1: + resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + dev: true + + /ncp/2.0.0: + resolution: {integrity: sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=} + hasBin: true + dev: true + optional: true + + /node-forge/0.10.0: + resolution: {integrity: sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==} + engines: {node: '>= 6.0.0'} + dev: true + + /node-notifier/9.0.0: + resolution: {integrity: sha512-SkwNwGnMMlSPrcoeH4CSo9XyWe72acAHEJGDdPdB+CyBVHsIYaTQ4U/1wk3URsyzC75xZLg2vzU2YaALlqDF1Q==} + dependencies: + growly: 1.3.0 + is-wsl: 2.2.0 + semver: 7.3.5 + shellwords: 0.1.1 + uuid: 8.3.2 + which: 2.0.2 + dev: true + + /node-releases/2.0.2: + resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} + dev: true + + /nofilter/3.1.0: + resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} + engines: {node: '>=12.19'} + dev: true + + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.0 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data/3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.8.1 + semver: 7.3.5 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-selector/0.2.0: + resolution: {integrity: sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=} + dev: true + + /normalize-url/4.5.1: + resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} + engines: {node: '>=8'} + dev: true + + /npm-run-path/3.1.0: + resolution: {integrity: sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /nth-check/2.0.1: + resolution: {integrity: sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /oauth-sign/0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + dev: true + + /obj-props/1.3.0: + resolution: {integrity: sha512-k2Xkjx5wn6eC3537SWAXHzB6lkI81kS+icMKMkh4nG3w7shWG6MaWOBrNvhWVOszrtL5uxdfymQQfPUxwY+2eg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-assign/4.1.1: + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} + engines: {node: '>=0.10.0'} + dev: true + + /object-inspect/1.12.0: + resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} + dev: true + + /object-is/1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign/4.1.2: + resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.values/1.1.5: + resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.19.1 + dev: true + + /on-exit-leak-free/0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} + dev: true + + /once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /open-editor/4.0.0: + resolution: {integrity: sha512-5mKZ98iFdkivozt5XTCOspoKbL3wtYu6oOoVxfWQ0qUX9NYsK8pdkHE7VUHXr+CwyC3nf6mV0S5FPsMS65innw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + env-editor: 1.0.0 + execa: 5.1.1 + line-column-path: 3.0.0 + open: 8.4.0 + dev: true + + /open/7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /open/8.4.0: + resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /os-homedir/1.0.2: + resolution: {integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M=} + engines: {node: '>=0.10.0'} + dev: true + + /os-locale/5.0.0: + resolution: {integrity: sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==} + engines: {node: '>=10'} + dependencies: + execa: 4.1.0 + lcid: 3.1.1 + mem: 5.1.1 + dev: true + + /os-shim/0.1.3: + resolution: {integrity: sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=} + engines: {node: '>= 0.4.0'} + dev: true + + /p-cancelable/1.1.0: + resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} + engines: {node: '>=6'} + dev: true + + /p-defer/1.0.0: + resolution: {integrity: sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=} + engines: {node: '>=4'} + dev: true + + /p-event/5.0.1: + resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-timeout: 5.0.2 + dev: true + + /p-finally/2.0.1: + resolution: {integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==} + engines: {node: '>=8'} + dev: true + + /p-is-promise/2.1.0: + resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} + engines: {node: '>=6'} + dev: true + + /p-limit/1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-limit/4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + + /p-locate/2.0.0: + resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-locate/6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: true + + /p-map/4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-map/5.3.0: + resolution: {integrity: sha512-SRbIQFoLYNezHkqZslqeg963HYUtqOrfMCxjNrFOpJ19WTYuq26rQoOXeX8QQiMLUlLqdYV/7PuDsdYJ7hLE1w==} + engines: {node: '>=12'} + dependencies: + aggregate-error: 4.0.0 + dev: true + + /p-timeout/5.0.2: + resolution: {integrity: sha512-sEmji9Yaq+Tw+STwsGAE56hf7gMy9p0tQfJojIAamB7WHJYJKf1qlsg9jqBWG8q9VCxKPhZaP/AcXwEoBcYQhQ==} + engines: {node: '>=12'} + dev: true + + /p-try/1.0.0: + resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} + engines: {node: '>=4'} + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /package-json/6.5.0: + resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} + engines: {node: '>=8'} + dependencies: + got: 9.6.0 + registry-auth-token: 4.2.1 + registry-url: 5.1.0 + semver: 6.3.0 + dev: true + + /pako/1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.16.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-ms/2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} + dev: true + + /parse5-htmlparser2-tree-adapter/6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + dependencies: + parse5: 6.0.1 + dev: true + + /parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: true + + /path-exists/3.0.0: + resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} + engines: {node: '>=4'} + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-exists/5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-type/3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pend/1.2.0: + resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} + dev: true + + /performance-now/2.1.0: + resolution: {integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pify/2.3.0: + resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} + engines: {node: '>=0.10.0'} + dev: true + + /pify/3.0.0: + resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} + engines: {node: '>=4'} + dev: true + + /pinkie-promise/2.0.1: + resolution: {integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o=} + engines: {node: '>=0.10.0'} + dependencies: + pinkie: 2.0.4 + dev: true + + /pinkie/2.0.4: + resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=} + engines: {node: '>=0.10.0'} + dev: true + + /pino-abstract-transport/0.5.0: + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} + dependencies: + duplexify: 4.1.2 + split2: 4.1.0 + dev: true + + /pino-std-serializers/4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} + dev: true + + /pino/7.6.5: + resolution: {integrity: sha512-38tAwlJ7HevMENHD5FZE+yxSlAH5Wg3FoOjbB3MX2j3/kgpOEkmDHhTVKkecR57qxD5doHo2yi9nac94gqqbiQ==} + hasBin: true + dependencies: + fast-redact: 3.1.1 + on-exit-leak-free: 0.2.0 + pino-abstract-transport: 0.5.0 + pino-std-serializers: 4.0.0 + process-warning: 1.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.1.0 + safe-stable-stringify: 2.3.1 + sonic-boom: 2.6.0 + thread-stream: 0.13.2 + dev: true + + /pkg-conf/4.0.0: + resolution: {integrity: sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + find-up: 6.3.0 + load-json-file: 7.0.1 + dev: true + + /pkg-dir/4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pkg-dir/5.0.0: + resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + dev: true + + /plur/4.0.0: + resolution: {integrity: sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==} + engines: {node: '>=10'} + dependencies: + irregular-plurals: 3.3.0 + dev: true + + /plur/5.1.0: + resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + irregular-plurals: 3.3.0 + dev: true + + /pluralize/8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + + /postcss-media-query-parser/0.2.3: + resolution: {integrity: sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=} + dev: true + + /postcss-resolve-nested-selector/0.1.1: + resolution: {integrity: sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=} + dev: true + + /postcss-safe-parser/6.0.0_postcss@8.4.8: + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.8 + dev: true + + /postcss-scss/4.0.3_postcss@8.4.8: + resolution: {integrity: sha512-j4KxzWovfdHsyxwl1BxkUal/O4uirvHgdzMKS1aWJBAV0qh2qj5qAZqpeBfVUYGWv+4iK9Az7SPyZ4fyNju1uA==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.8 + dev: true + + /postcss-selector-parser/6.0.9: + resolution: {integrity: sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser/4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss/8.4.6: + resolution: {integrity: sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.1 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /postcss/8.4.8: + resolution: {integrity: sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.1 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /preact/10.6.6: + resolution: {integrity: sha512-dgxpTFV2vs4vizwKohYKkk7g7rmp1wOOcfd4Tz3IB3Wi+ivZzsn/SpeKJhRENSE+n8sUfsAl4S3HiCVT923ABw==} + dev: false + + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prepend-http/2.0.0: + resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} + engines: {node: '>=4'} + dev: true + + /prettier-linter-helpers/1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.2.0 + dev: true + + /prettier/2.5.1: + resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /pretty-ms/7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} + dependencies: + parse-ms: 2.1.0 + dev: true + + /process-nextick-args/2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /process-warning/1.0.0: + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} + dev: true + + /proto-props/2.0.0: + resolution: {integrity: sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==} + engines: {node: '>=4'} + dev: true + + /psl/1.8.0: + resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} + dev: true + + /pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + + /pupa/2.1.1: + resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} + engines: {node: '>=8'} + dependencies: + escape-goat: 2.1.1 + dev: true + + /qs/6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /queue/6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + dependencies: + inherits: 2.0.4 + dev: true + + /quick-format-unescaped/4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + dev: true + + /quick-lru/4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /quick-lru/5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true + + /rc/1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.5 + strip-json-comments: 2.0.1 + dev: true + + /read-pkg-up/7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg-up/8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + dependencies: + find-up: 5.0.0 + read-pkg: 6.0.0 + type-fest: 1.4.0 + dev: true + + /read-pkg/5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /read-pkg/6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 3.0.3 + parse-json: 5.2.0 + type-fest: 1.4.0 + dev: true + + /readable-stream/2.3.7: + resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream/3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /real-require/0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} + engines: {node: '>= 12.13.0'} + dev: true + + /redent/3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /redent/4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + dependencies: + indent-string: 5.0.0 + strip-indent: 4.0.0 + dev: true + + /regenerator-runtime/0.13.9: + resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + dev: true + + /regexp-tree/0.1.24: + resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} + hasBin: true + dev: true + + /regexp.prototype.flags/1.4.1: + resolution: {integrity: sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /registry-auth-token/4.2.1: + resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} + engines: {node: '>=6.0.0'} + dependencies: + rc: 1.2.8 + dev: true + + /registry-url/5.1.0: + resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} + engines: {node: '>=8'} + dependencies: + rc: 1.2.8 + dev: true + + /relaxed-json/1.0.3: + resolution: {integrity: sha512-b7wGPo7o2KE/g7SqkJDDbav6zmrEeP4TK2VpITU72J/M949TLe/23y/ZHJo+pskcGM52xIfFoT9hydwmgr1AEg==} + engines: {node: '>= 0.10.0'} + hasBin: true + dependencies: + chalk: 2.4.2 + commander: 2.20.3 + dev: true + + /request/2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.11.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + dev: true + + /require-directory/2.1.1: + resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /resolve-cwd/3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve/1.22.0: + resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} + hasBin: true + dependencies: + is-core-module: 2.8.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /responselike/1.0.2: + resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} + dependencies: + lowercase-keys: 1.0.1 + dev: true + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf/2.4.5: + resolution: {integrity: sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=} + hasBin: true + dependencies: + glob: 6.0.4 + dev: true + optional: true + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.0 + dev: true + + /rollup/2.70.0: + resolution: {integrity: sha512-iEzYw+syFxQ0X9RefVwhr8BA2TNJsTaX8L8dhyeyMECDbmiba+8UQzcu+xZdji0+JQ+s7kouQnw+9Oz5M19XKA==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-json-stringify/1.2.0: + resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==} + requiresBuild: true + dev: true + optional: true + + /safe-regex/2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + dependencies: + regexp-tree: 0.1.24 + dev: true + + /safe-stable-stringify/2.3.1: + resolution: {integrity: sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==} + engines: {node: '>=10'} + dev: true + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /sass/1.49.9: + resolution: {integrity: sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.0.0 + source-map-js: 1.0.2 + dev: true + + /sax/1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + dev: true + + /semver-diff/3.1.1: + resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver/7.3.5: + resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /serialize-error/7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + dependencies: + type-fest: 0.13.1 + dev: true + + /set-immediate-shim/1.0.1: + resolution: {integrity: sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=} + engines: {node: '>=0.10.0'} + dev: true + + /sha.js/2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /shell-quote/1.7.3: + resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} + dev: true + + /shellwords/0.1.1: + resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + object-inspect: 1.12.0 + dev: true + + /sign-addon/3.11.0: + resolution: {integrity: sha512-fcK2WzkMb8e8E9kvuccy+mrBTT81iR+1CowHLU594Elr4E9E9zZFr3itGlL0OoXcRouKmvt7rpXzoARu++tXRQ==} + dependencies: + common-tags: 1.8.2 + core-js: 3.21.0 + deepcopy: 2.1.0 + es6-error: 4.1.1 + es6-promisify: 7.0.0 + jsonwebtoken: 8.5.1 + mz: 2.7.0 + request: 2.88.2 + source-map-support: 0.5.21 + stream-to-promise: 3.0.0 + dev: true + + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /slash/1.0.0: + resolution: {integrity: sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=} + engines: {node: '>=0.10.0'} + dev: true + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slash/4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /slice-ansi/4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.1.0 + is-fullwidth-code-point: 4.0.0 + dev: true + + /sonic-boom/2.6.0: + resolution: {integrity: sha512-6xYZFRmDEtxGqfOKcDQ4cPLrNa0SPEDI+wlzDAHowXE6YV42NeXqg9mP2KkiM8JVu3lHfZ2iQKYlGOz+kTpphg==} + dependencies: + atomic-sleep: 1.0.0 + dev: true + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support/0.5.20: + resolution: {integrity: sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map/0.5.7: + resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.7.3: + resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} + engines: {node: '>= 8'} + dev: true + + /spawn-sync/1.0.15: + resolution: {integrity: sha1-sAeZVX63+wyDdsKdROih6mfldHY=} + requiresBuild: true + dependencies: + concat-stream: 1.6.2 + os-shim: 0.1.3 + dev: true + + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.11 + dev: true + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.11 + dev: true + + /spdx-license-ids/3.0.11: + resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} + dev: true + + /specificity/0.4.1: + resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==} + hasBin: true + dev: true + + /split/0.3.3: + resolution: {integrity: sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=} + dependencies: + through: 2.3.8 + dev: true + + /split2/4.1.0: + resolution: {integrity: sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==} + engines: {node: '>= 10.x'} + dev: true + + /sprintf-js/1.0.3: + resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + dev: true + + /sshpk/1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + + /stack-utils/2.0.5: + resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + + /stream-shift/1.0.1: + resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} + dev: true + + /stream-to-array/2.3.0: + resolution: {integrity: sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=} + dependencies: + any-promise: 1.3.0 + dev: true + + /stream-to-promise/3.0.0: + resolution: {integrity: sha512-h+7wLeFiYegOdgTfTxjRsrT7/Op7grnKEIHWgaO1RTHwcwk7xRreMr3S8XpDfDMesSxzgM2V4CxNCFAGo6ssnA==} + engines: {node: '>= 10'} + dependencies: + any-promise: 1.3.0 + end-of-stream: 1.4.4 + stream-to-array: 2.3.0 + dev: true + + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width/5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.0.1 + dev: true + + /string.prototype.trimend/1.0.4: + resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /string.prototype.trimstart/1.0.4: + resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /string_decoder/1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi/7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom-buf/2.0.0: + resolution: {integrity: sha512-gLFNHucd6gzb8jMsl5QmZ3QgnUJmp7qn4uUSHNwEXumAp7YizoGYw19ZUVfuq4aBOQUtyn2k8X/CwzWB73W2lQ==} + engines: {node: '>=8'} + dependencies: + is-utf8: 0.2.1 + dev: true + + /strip-bom-stream/4.0.0: + resolution: {integrity: sha512-0ApK3iAkHv6WbgLICw/J4nhwHeDZsBxIIsOD+gHgZICL6SeJ0S9f/WZqemka9cjkTyMN5geId6e8U5WGFAn3cQ==} + engines: {node: '>=8'} + dependencies: + first-chunk-stream: 3.0.0 + strip-bom-buf: 2.0.0 + dev: true + + /strip-bom/3.0.0: + resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + engines: {node: '>=4'} + dev: true + + /strip-bom/4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-indent/3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-indent/4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments/2.0.1: + resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} + engines: {node: '>=0.10.0'} + dev: true + + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /style-search/0.1.0: + resolution: {integrity: sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=} + dev: true + + /stylelint-config-recommended-scss/5.0.2_postcss@8.4.8+stylelint@14.5.3: + resolution: {integrity: sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==} + peerDependencies: + stylelint: ^14.0.0 + dependencies: + postcss-scss: 4.0.3_postcss@8.4.8 + stylelint: 14.5.3 + stylelint-config-recommended: 6.0.0_stylelint@14.5.3 + stylelint-scss: 4.1.0_stylelint@14.5.3 + transitivePeerDependencies: + - postcss + dev: true + + /stylelint-config-recommended/6.0.0_stylelint@14.5.3: + resolution: {integrity: sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==} + peerDependencies: + stylelint: ^14.0.0 + dependencies: + stylelint: 14.5.3 + dev: true + + /stylelint-config-standard-scss/3.0.0_postcss@8.4.8+stylelint@14.5.3: + resolution: {integrity: sha512-zt3ZbzIbllN1iCmc94e4pDxqpkzeR6CJo5DDXzltshuXr+82B8ylHyMMARNnUYrZH80B7wgY7UkKTYCFM0UUyw==} + peerDependencies: + stylelint: ^14.0.0 + dependencies: + stylelint: 14.5.3 + stylelint-config-recommended-scss: 5.0.2_postcss@8.4.8+stylelint@14.5.3 + stylelint-config-standard: 24.0.0_stylelint@14.5.3 + transitivePeerDependencies: + - postcss + dev: true + + /stylelint-config-standard/24.0.0_stylelint@14.5.3: + resolution: {integrity: sha512-+RtU7fbNT+VlNbdXJvnjc3USNPZRiRVp/d2DxOF/vBDDTi0kH5RX2Ny6errdtZJH3boO+bmqIYEllEmok4jiuw==} + peerDependencies: + stylelint: ^14.0.0 + dependencies: + stylelint: 14.5.3 + stylelint-config-recommended: 6.0.0_stylelint@14.5.3 + dev: true + + /stylelint-scss/4.1.0_stylelint@14.5.3: + resolution: {integrity: sha512-BNYTo7MMamhFOlcaAWp2dMpjg6hPyM/FFqfDIYzmYVLMmQJqc8lWRIiTqP4UX5bresj9Vo0dKC6odSh43VP2NA==} + peerDependencies: + stylelint: ^14.0.0 + dependencies: + lodash: 4.17.21 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-selector-parser: 6.0.9 + postcss-value-parser: 4.2.0 + stylelint: 14.5.3 + dev: true + + /stylelint/14.5.3: + resolution: {integrity: sha512-omHETL+kGHR+fCXFK1SkZD/A+emCP9esggAdWEl8GPjTNeyRYj+H6uetRDcU+7E451zwWiUYGVAX+lApsAZgsQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + balanced-match: 2.0.0 + colord: 2.9.2 + cosmiconfig: 7.0.1 + css-functions-list: 3.0.1 + debug: 4.3.3 + execall: 2.0.0 + fast-glob: 3.2.11 + fastest-levenshtein: 1.0.12 + file-entry-cache: 6.0.1 + get-stdin: 8.0.0 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.1.0 + ignore: 5.2.0 + import-lazy: 4.0.0 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.24.0 + mathml-tag-names: 2.1.3 + meow: 9.0.0 + micromatch: 4.0.4 + normalize-path: 3.0.0 + normalize-selector: 0.2.0 + picocolors: 1.0.0 + postcss: 8.4.8 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 6.0.0_postcss@8.4.8 + postcss-selector-parser: 6.0.9 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + specificity: 0.4.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + style-search: 0.1.0 + supports-hyperlinks: 2.2.0 + svg-tags: 1.0.0 + table: 6.8.0 + v8-compile-cache: 2.3.0 + write-file-atomic: 4.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /supertap/3.0.1: + resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + indent-string: 5.0.0 + js-yaml: 3.14.1 + serialize-error: 7.0.1 + strip-ansi: 7.0.1 + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-hyperlinks/2.2.0: + resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /svg-tags/1.0.0: + resolution: {integrity: sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=} + dev: true + + /table/6.8.0: + resolution: {integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.10.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /tapable/0.1.10: + resolution: {integrity: sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=} + engines: {node: '>=0.6'} + dev: true + + /temp-dir/2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: true + + /test-exclude/6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.0 + minimatch: 3.1.2 + dev: true + + /text-table/0.2.0: + resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + dev: true + + /thenify-all/1.6.0: + resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify/3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + + /thread-stream/0.13.2: + resolution: {integrity: sha512-woZFt0cLFkPdhsa+IGpRo1jiSouaHxMIljzTgt30CMjBWoUYbbcHqnunW5Yv+BXko9H05MVIcxMipI3Jblallw==} + dependencies: + real-require: 0.1.0 + dev: true + + /through/2.3.8: + resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} + dev: true + + /time-zone/1.0.0: + resolution: {integrity: sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=} + engines: {node: '>=4'} + dev: true + + /tmp/0.2.1: + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} + dependencies: + rimraf: 3.0.2 + dev: true + + /to-absolute-glob/2.0.2: + resolution: {integrity: sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=} + engines: {node: '>=0.10.0'} + dependencies: + is-absolute: 1.0.0 + is-negated-glob: 1.0.0 + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + engines: {node: '>=4'} + dev: true + + /to-readable-stream/1.0.0: + resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} + engines: {node: '>=6'} + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /tosource/1.0.0: + resolution: {integrity: sha1-QtiN0RZhi88A1hBt1URvNCeQL/E=} + engines: {node: '>=0.4.0'} + dev: true + + /tough-cookie/2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + dependencies: + psl: 1.8.0 + punycode: 2.1.1 + dev: true + + /trash-cli/5.0.0: + resolution: {integrity: sha512-HdSljBzHHk4HlD3uqvDGBRPB9ta7R8fwPSRSVOTk9qkOqeBT1nO4WCtj2t62rWsU1yg2WGCFNo8UBmlRXgkigA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + meow: 10.1.2 + trash: 8.1.0 + dev: true + + /trash/8.1.0: + resolution: {integrity: sha512-gp+zp7IDcyeLCPzsSqF/zmEykOVaga9lsdxzCmlS/bgbjdA1/SdFRYmHI2KCXrqg01Wmyl8fO6tgcb4kDijZSA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@sindresorhus/chunkify': 0.2.0 + '@stroncium/procfs': 1.2.1 + globby: 7.1.1 + is-path-inside: 4.0.0 + move-file: 3.0.0 + p-map: 5.3.0 + uuid: 8.3.2 + xdg-trashdir: 3.1.0 + dev: true + + /trim-newlines/3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /trim-newlines/4.0.2: + resolution: {integrity: sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==} + engines: {node: '>=12'} + dev: true + + /ts-node/10.7.0_typescript@4.6.2: + resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.7.0 + '@tsconfig/node10': 1.0.8 + '@tsconfig/node12': 1.0.9 + '@tsconfig/node14': 1.0.1 + '@tsconfig/node16': 1.0.2 + acorn: 8.7.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.6.2 + v8-compile-cache-lib: 3.0.0 + yn: 3.1.1 + dev: true + + /tsconfig-paths/3.13.0: + resolution: {integrity: sha512-nWuffZppoaYK0vQ1SQmkSsQzJoHA4s6uzdb2waRpD806x9yfq153AdVsWz4je2qZcW+pENrMQXbGQ3sMCkXuhw==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.1 + minimist: 1.2.5 + strip-bom: 3.0.0 + dev: true + + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib/2.3.1: + resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + dev: true + + /tsutils/3.21.0_typescript@4.6.2: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.6.2 + dev: true + + /tunnel-agent/0.6.0: + resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /tweetnacl/0.14.5: + resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=} + dev: true + + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect/4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest/0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /type-fest/1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true + + /type-fest/2.12.0: + resolution: {integrity: sha512-Qe5GRT+n/4GoqCNGGVp5Snapg1Omq3V7irBJB3EaKsp7HWDo5Gv2d/67gfNyV+d5EXD+x/RF5l1h4yJ7qNkcGA==} + engines: {node: '>=12.20'} + dev: true + + /typedarray-to-buffer/3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: true + + /typedarray/0.0.6: + resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=} + dev: true + + /typescript/4.6.2: + resolution: {integrity: sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unbox-primitive/1.0.1: + resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + dependencies: + function-bind: 1.1.1 + has-bigints: 1.0.1 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unc-path-regex/0.1.2: + resolution: {integrity: sha1-5z3T17DXxe2G+6xrCufYxqadUPo=} + engines: {node: '>=0.10.0'} + dev: true + + /unique-string/2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + dependencies: + crypto-random-string: 2.0.0 + dev: true + + /universalify/1.0.0: + resolution: {integrity: sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==} + engines: {node: '>= 10.0.0'} + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /upath/2.0.1: + resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} + engines: {node: '>=4'} + dev: true + + /update-notifier/5.1.0: + resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} + engines: {node: '>=10'} + dependencies: + boxen: 5.1.2 + chalk: 4.1.2 + configstore: 5.0.1 + has-yarn: 2.1.0 + import-lazy: 2.1.0 + is-ci: 2.0.0 + is-installed-globally: 0.4.0 + is-npm: 5.0.0 + is-yarn-global: 0.3.0 + latest-version: 5.1.0 + pupa: 2.1.1 + semver: 7.3.5 + semver-diff: 3.1.1 + xdg-basedir: 4.0.0 + dev: true + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + dev: true + + /url-parse-lax/3.0.0: + resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + dev: true + + /user-home/2.0.0: + resolution: {integrity: sha1-nHC/2Babwdy/SGBODwS4tJzenp8=} + engines: {node: '>=0.10.0'} + dependencies: + os-homedir: 1.0.2 + dev: true + + /util-deprecate/1.0.2: + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + dev: true + + /uuid/3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: true + + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + + /v8-compile-cache-lib/3.0.0: + resolution: {integrity: sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==} + dev: true + + /v8-compile-cache/2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + + /v8-to-istanbul/8.1.1: + resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} + engines: {node: '>=10.12.0'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.8.0 + source-map: 0.7.3 + dev: true + + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /verror/1.10.0: + resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + + /vite-plugin-web-extension/1.1.3_vite@2.8.6: + resolution: {integrity: sha512-5W5WGhUovXRujogzPgrSP6F0A+e2mJwZM+LpsEBVMHOgnTkrGI931kPQe55XNbyWTHbWrKR8+lMcuHPV9BSOdA==} + peerDependencies: + vite: ^2.6 + dependencies: + ajv: 8.10.0 + vite: 2.8.6_sass@1.49.9 + web-ext: 6.7.0 + transitivePeerDependencies: + - '@types/download' + - body-parser + - bufferutil + - download + - express + - safe-compare + - supports-color + - utf-8-validate + dev: true + + /vite/2.8.6_sass@1.49.9: + resolution: {integrity: sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug==} + engines: {node: '>=12.2.0'} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + dependencies: + esbuild: 0.14.25 + postcss: 8.4.8 + resolve: 1.22.0 + rollup: 2.70.0 + sass: 1.49.9 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /watchpack/2.1.1: + resolution: {integrity: sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.9 + dev: true + + /wcwidth/1.0.1: + resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=} + dependencies: + defaults: 1.0.3 + dev: true + + /web-ext/6.7.0: + resolution: {integrity: sha512-QN+ufUPMNhLbrEqwFDOuoHy4m2OOPAp8NDMKJaWIByZRh8VPH+JoJ6/NAaIEcs9TPKnkA2018TNIJAfYN9EerA==} + engines: {node: '>=12.0.0', npm: '>=6.9.0'} + hasBin: true + dependencies: + '@babel/runtime': 7.13.9 + '@devicefarmer/adbkit': 2.11.3 + addons-linter: 4.9.0 + bunyan: 1.8.15 + camelcase: 6.2.0 + chrome-launcher: 0.15.0 + debounce: 1.2.0 + decamelize: 5.0.0 + es6-error: 4.1.1 + event-to-promise: 0.8.0 + firefox-profile: 4.2.2 + fs-extra: 9.1.0 + fx-runner: 1.2.0 + import-fresh: 3.3.0 + mkdirp: 1.0.4 + multimatch: 5.0.0 + mz: 2.7.0 + node-notifier: 9.0.0 + open: 7.4.2 + parse-json: 5.2.0 + sign-addon: 3.11.0 + source-map-support: 0.5.20 + strip-bom: 4.0.0 + strip-json-comments: 3.1.1 + tmp: 0.2.1 + update-notifier: 5.1.0 + watchpack: 2.1.1 + ws: 7.4.6 + yargs: 16.2.0 + zip-dir: 2.0.0 + transitivePeerDependencies: + - '@types/download' + - body-parser + - bufferutil + - download + - express + - safe-compare + - supports-color + - utf-8-validate + dev: true + + /webextension-polyfill/0.8.0: + resolution: {integrity: sha512-a19+DzlT6Kp9/UI+mF9XQopeZ+n2ussjhxHJ4/pmIGge9ijCDz7Gn93mNnjpZAk95T4Tae8iHZ6sSf869txqiQ==} + dev: false + + /well-known-symbols/2.0.0: + resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} + engines: {node: '>=6'} + dev: true + + /when/3.7.7: + resolution: {integrity: sha1-q6A/w7tzbWyIsJHQE9io5ZDYRxg=} + dev: true + + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.6 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which/1.2.4: + resolution: {integrity: sha1-FVf5YIBgTlsRs1meufRbUKnv1yI=} + hasBin: true + dependencies: + is-absolute: 0.1.7 + isexe: 1.1.2 + dev: true + + /which/1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /widest-line/3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + dependencies: + string-width: 4.2.3 + dev: true + + /winreg/0.0.12: + resolution: {integrity: sha1-BxBVVLoanQiXklHRKUdb/64wBrc=} + dev: true + + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wrap-ansi/7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + dev: true + + /write-file-atomic/3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + dev: true + + /write-file-atomic/4.0.1: + resolution: {integrity: sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /ws/7.4.6: + resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /xdg-basedir/4.0.0: + resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} + engines: {node: '>=8'} + dev: true + + /xdg-trashdir/3.1.0: + resolution: {integrity: sha512-N1XQngeqMBoj9wM4ZFadVV2MymImeiFfYD+fJrNlcVcOHsJFFQe7n3b+aBoTPwARuq2HQxukfzVpQmAk1gN4sQ==} + engines: {node: '>=10'} + dependencies: + '@sindresorhus/df': 3.1.1 + mount-point: 3.0.0 + user-home: 2.0.0 + xdg-basedir: 4.0.0 + dev: true + + /xml2js/0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: true + + /xmlbuilder/11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: true + + /xo/0.48.0: + resolution: {integrity: sha512-f0sbQGJoML3nwOLG7EIAJroBypmLokoGJqTPN+bI/oogKLMciqWBEiFh9Vpxnfwxafq1AkHoWrQZQWSflDCG1w==} + engines: {node: '>=12.20'} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.2.1 + '@typescript-eslint/eslint-plugin': 5.14.0_ace6f9e7722b813e21eaf2dc993bc413 + '@typescript-eslint/parser': 5.14.0_eslint@8.11.0+typescript@4.6.2 + arrify: 3.0.0 + cosmiconfig: 7.0.1 + define-lazy-prop: 3.0.0 + eslint: 8.11.0 + eslint-config-prettier: 8.5.0_eslint@8.11.0 + eslint-config-xo: 0.40.0_eslint@8.11.0 + eslint-config-xo-typescript: 0.50.0_ee721080a50eeefb27bc3777db76a2fc + eslint-formatter-pretty: 4.1.0 + eslint-import-resolver-webpack: 0.13.2_eslint-plugin-import@2.25.4 + eslint-plugin-ava: 13.2.0_eslint@8.11.0 + eslint-plugin-eslint-comments: 3.2.0_eslint@8.11.0 + eslint-plugin-import: 2.25.4_eslint@8.11.0 + eslint-plugin-no-use-extend-native: 0.5.0 + eslint-plugin-node: 11.1.0_eslint@8.11.0 + eslint-plugin-prettier: 4.0.0_c9d5adccfd1d43a8805a302169f6a967 + eslint-plugin-unicorn: 40.1.0_eslint@8.11.0 + esm-utils: 2.2.0 + find-cache-dir: 3.3.2 + find-up: 6.3.0 + get-stdin: 9.0.0 + globby: 13.1.1 + imurmurhash: 0.1.4 + json-stable-stringify-without-jsonify: 1.0.1 + json5: 2.2.0 + lodash-es: 4.17.21 + meow: 10.1.2 + micromatch: 4.0.4 + open-editor: 4.0.0 + prettier: 2.5.1 + semver: 7.3.5 + slash: 4.0.0 + to-absolute-glob: 2.0.2 + typescript: 4.6.2 + transitivePeerDependencies: + - supports-color + - webpack + dev: true + bundledDependencies: + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - eslint-config-xo-typescript + + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs-parser/21.0.1: + resolution: {integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==} + engines: {node: '>=12'} + dev: true + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true + + /yargs/17.3.1: + resolution: {integrity: sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==} + engines: {node: '>=12'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.0.1 + dev: true + + /yauzl/2.10.0: + resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + dev: true + + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /yocto-queue/1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + + /zip-dir/2.0.0: + resolution: {integrity: sha512-uhlsJZWz26FLYXOD6WVuq+fIcZ3aBPGo/cFdiLlv3KNwpa52IF3ISV8fLhQLiqVu5No3VhlqlgthN6gehil1Dg==} + dependencies: + async: 3.2.3 + jszip: 3.7.1 + dev: true diff --git a/screenshots/fangs-version-0-1-0.png b/screenshots/fangs-version-0-1-0.png new file mode 100644 index 0000000000000000000000000000000000000000..bd4186913206ab959671af20192128924da4fd79 GIT binary patch literal 123143 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

-0fD91|);><&w& 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 z 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"%lGa$=9emrI)(Gi1; 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

+

+ ${donateLink} 💖 ${versionLink} © Holllo — Free and open-source, + forever. +

+
+ `; + } +} diff --git a/source/options/components/page-header.ts b/source/options/components/page-header.ts new file mode 100644 index 0000000..0bde67a --- /dev/null +++ b/source/options/components/page-header.ts @@ -0,0 +1,15 @@ +import {html} from 'htm/preact'; +import {Component} from 'preact'; + +export class PageHeader extends Component { + render() { + return html` + + `; + } +} diff --git a/source/options/components/page-main.ts b/source/options/components/page-main.ts new file mode 100644 index 0000000..23e24b5 --- /dev/null +++ b/source/options/components/page-main.ts @@ -0,0 +1,247 @@ +import {html} from 'htm/preact'; +import {Component} from 'preact'; +import browser from 'webextension-polyfill'; + +import Bang, {BangParameters} from '../../bang/bang.js'; + +type Props = Record; + +type State = { + editorBang: BangParameters; + editorError: string | undefined; + bangs: BangParameters[]; +}; + +export class PageMain extends Component { + emptyBang: BangParameters; + + constructor(props: Props) { + super(props); + + this.emptyBang = { + baseUrl: '', + id: '', + name: '', + searchUrl: '', + }; + + this.state = { + bangs: [], + editorBang: {...this.emptyBang}, + editorError: undefined, + }; + } + + async componentDidMount() { + const localStorage = await browser.storage.local.get(); + + const bangs = Object.entries(localStorage) + .filter(([key, _bang]) => key.startsWith('!')) + .map(([_key, bang]) => bang as BangParameters); + + this.setState({bangs: this.state.bangs.concat(bangs)}); + } + + editBang = (event: Event, key: keyof BangParameters) => { + const input = event.target as HTMLInputElement; + this.state.editorBang[key] = input.value; + + let editorError; + try { + Bang.validate(this.state.editorBang); + } catch (error: unknown) { + editorError = (error as Error).message; + } + + this.setState({ + editorBang: this.state.editorBang, + editorError, + }); + }; + + removeBang = async () => { + const id = this.state.editorBang.id; + if (!id.startsWith('!')) { + return; + } + + await browser.storage.local.remove(id); + + const bangs = this.state.bangs; + const existingIndex = bangs.findIndex((bang) => bang.id === id); + if (existingIndex !== -1) { + bangs.splice(existingIndex, 1); + } + + this.setState({ + bangs, + editorBang: {...this.emptyBang}, + }); + }; + + saveBang = async () => { + const bang = this.state.editorBang; + + try { + if (Bang.validate(bang)) { + const update: Record = {}; + update[bang.id] = bang; + await browser.storage.local.set(update); + } + } catch (error: unknown) { + if (error instanceof Error) { + this.setState({ + editorError: error.message, + }); + } else { + throw error; + } + + return; + } + + const bangs = this.state.bangs; + const existingIndex = bangs.findIndex(({id}) => id === bang.id); + if (existingIndex === -1) { + bangs.push({...bang}); + } else { + bangs[existingIndex] = {...bang}; + } + + this.setState({ + bangs, + editorError: undefined, + }); + }; + + render() { + const {bangs, editorError} = this.state; + + const availableBangs = bangs.map((bang) => { + const onClick = () => { + this.setState({ + editorBang: {...bang}, + }); + }; + + return html` +
  • + +
  • + `; + }); + + if (availableBangs.length === 0) { + availableBangs.push( + html` +
  • You don't have any bangs yet, go add some!
  • + `, + ); + } + + const parametersOrder: Array<[keyof BangParameters, string, string]> = [ + ['name', 'Name', 'Example'], + ['id', 'Identifier', '!example'], + ['baseUrl', 'Base Link', 'https://example.org'], + ['searchUrl', 'Search Link', 'https://example.org/?search={{bang}}'], + ]; + + const editorInputs: HtmComponent[] = []; + for (const [key, label, placeholder] of parametersOrder) { + const id = `bang-${key}`; + const value = this.state.editorBang[key]; + const onInput = (event: Event) => { + this.editBang(event, key); + }; + + editorInputs.push(html` +
    + + +
    + `); + } + + const validateError = + editorError === undefined + ? undefined + : html`

    ${editorError}

    `; + + return html` +
    +
    + Editor + +
    + ${editorInputs} + +
    + + +
    + ${validateError} +
    +
    + +
    + Your Bangs + +
      + ${availableBangs} +
    +
    + +
    + How do I use Fangs? + +

    Adding new Bangs:

    +
      +
    • Fill out all info in the Editor and click Save!
    • +
    • + The "Identifier" is what you'll use to activate the bang in your + searches. +
    • +
    • + The "Base Link" is where you want to go when you don't include any + search terms. +
    • +
    • + The "Search Link" is where you want to go when you do include + something to search for, and the link must have "{{bang}}" in it + to insert your search text. +
    • +
    + +

    Editing existing Bangs:

    +
      +
    • + Click on the Bang from the "Your Bangs" list to insert it into the + editor. +
    • +
    • + Editing a Bang with an Identifier that already exists will + overwrite it with the new one. +
    • +
    + +

    Removing Bangs:

    +
      +
    • + Click on the Bang you want to remove and then click the Remove + button. +
    • +
    +
    +
    + `; + } +} diff --git a/source/options/index.html b/source/options/index.html new file mode 100644 index 0000000..8ffeb08 --- /dev/null +++ b/source/options/index.html @@ -0,0 +1,21 @@ + + + + + + + + Fangs + + + + + + + + + + + diff --git a/source/options/index.scss b/source/options/index.scss new file mode 100644 index 0000000..bc71598 --- /dev/null +++ b/source/options/index.scss @@ -0,0 +1,31 @@ +@use '../../node_modules/modern-normalize/modern-normalize.css'; +@use 'scss/reset'; +@use 'scss/mixins'; +@use 'scss/love'; +@use 'scss/components/page-header'; +@use 'scss/components/page-main'; +@use 'scss/components/page-footer'; + +html { + font-size: 62.5%; +} + +body { + background-color: var(--db-1); + color: var(--df-1); + font-size: 1.5rem; + padding: 16px; +} + +a { + color: var(--da-3); + + &:hover { + color: var(--df-2); + } +} + +:focus { + outline-color: var(--df-1); + outline-width: 2px; +} diff --git a/source/options/index.ts b/source/options/index.ts new file mode 100644 index 0000000..83a97c3 --- /dev/null +++ b/source/options/index.ts @@ -0,0 +1,31 @@ +import {html} from 'htm/preact'; +import {Component, render} from 'preact'; +import browser from 'webextension-polyfill'; + +import {PageFooter} from './components/page-footer.js'; +import {PageHeader} from './components/page-header.js'; +import {PageMain} from './components/page-main.js'; + +window.addEventListener('DOMContentLoaded', () => { + console.debug('Options page opened!'); + + const manifest = browser.runtime.getManifest(); + + render(html`<${OptionsPage} manifest=${manifest} />`, document.body); +}); + +type Props = { + manifest: browser.Manifest.ManifestBase; +}; + +class OptionsPage extends Component { + render() { + const {manifest} = this.props; + + return html` + <${PageHeader} /> + <${PageMain} /> + <${PageFooter} manifest=${manifest} /> + `; + } +} diff --git a/source/options/scss/components/page-footer.scss b/source/options/scss/components/page-footer.scss new file mode 100644 index 0000000..0995430 --- /dev/null +++ b/source/options/scss/components/page-footer.scss @@ -0,0 +1,9 @@ +@use '../mixins'; + +.page-footer { + @include mixins.responsive-container; + + border: 1px solid var(--df-2); + margin-bottom: 16px; + padding: 16px; +} diff --git a/source/options/scss/components/page-header.scss b/source/options/scss/components/page-header.scss new file mode 100644 index 0000000..bba3052 --- /dev/null +++ b/source/options/scss/components/page-header.scss @@ -0,0 +1,22 @@ +@use '../mixins'; + +.page-header { + @include mixins.responsive-container; + + border: 1px solid var(--df-1); + margin-bottom: 16px; + + h1 { + align-items: center; + display: flex; + } + + img { + background-color: var(--df-1); + display: inline-block; + height: 4.5rem; + margin-right: 1rem; + padding: 8px; + width: 4.5rem; + } +} diff --git a/source/options/scss/components/page-main.scss b/source/options/scss/components/page-main.scss new file mode 100644 index 0000000..5d77506 --- /dev/null +++ b/source/options/scss/components/page-main.scss @@ -0,0 +1,146 @@ +@use '../mixins'; + +.page-main { + @include mixins.responsive-container; + + display: grid; + gap: 16px; + margin-bottom: 16px; +} + +.bang-editor-inner { + display: grid; + gap: 8px; + grid-template-columns: repeat(2, 1fr); + margin-bottom: 16px; + + .input-group { + background-color: var(--db-2); + border: 1px solid var(--df-1); + padding: 8px; + + label, + input { + display: block; + } + + label { + font-weight: bold; + margin-bottom: 4px; + } + + input { + background-color: var(--db-1); + border: none; + color: var(--df-1); + padding: 4px; + width: 100%; + } + } + + .button-group { + display: flex; + gap: 8px; + } + + .button { + background-color: var(--da-3); + border: 1px solid var(--da-3); + color: var(--db-1); + cursor: pointer; + font-weight: bold; + padding: 8px; + width: 100%; + + &.destructive { + background-color: var(--da-1); + border-color: var(--da-1); + } + + &:hover { + background-color: var(--df-2); + border-color: var(--df-2); + } + } + + .validate-error { + align-items: center; + border: 1px solid var(--da-1); + color: var(--da-1); + display: flex; + font-weight: bold; + padding: 4px; + } +} + +.bang-editor, +.bang-list, +.usage { + border: 1px solid var(--df-2); + + &[open] { + summary { + background-color: var(--df-2); + color: var(--db-1); + margin-bottom: 16px; + } + + > :not(summary) { + padding: 0 16px; + } + } + + summary { + cursor: pointer; + font-weight: bold; + padding: 16px; + + &:hover { + background-color: var(--df-1); + color: var(--db-1); + } + } +} + +.bang-list { + ul { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 8px; + margin-bottom: 16px; + + li { + list-style: none; + } + + button { + align-items: center; + background-color: var(--db-2); + border: 1px solid var(--df-1); + color: var(--df-1); + cursor: pointer; + display: flex; + padding: 16px; + width: 100%; + + &:hover { + background-color: var(--da-3); + border-color: var(--da-3); + color: var(--db-1); + } + } + + .bang-id { + font-size: 80%; + font-weight: bold; + margin-left: auto; + } + } +} + +.usage { + ul { + list-style: square; + margin: 4px 0 2rem 16px; + } +} diff --git a/source/options/scss/love.scss b/source/options/scss/love.scss new file mode 100644 index 0000000..c7f7b0a --- /dev/null +++ b/source/options/scss/love.scss @@ -0,0 +1,45 @@ +/* + The Love Theme CSS Custom Properties + https://love.holllo.cc - version 0.1.0 + MIT license +*/ + +.love { + /* Love Dark */ + --df-1: #f2efff; + --df-2: #e6deff; + --db-1: #1f1731; + --db-2: #2a2041; + --da-1: #f99fb1; + --da-2: #faa56c; + --da-3: #d2b83a; + --da-4: #96c839; + --da-5: #3bd18a; + --da-6: #3ecdbf; + --da-7: #41c8e5; + --da-8: #98b9f8; + --da-9: #d5a6f8; + --da-10: #f99add; + --dg-1: #e2e2e2; + --dg-2: #c6c6c6; + --dg-3: #ababab; + + /* Love Light */ + --lf-1: #1f1731; + --lf-2: #2a2041; + --lb-1: #f2efff; + --lb-2: #e6deff; + --la-1: #8b123c; + --la-2: #6a3b11; + --la-3: #514610; + --la-4: #384d10; + --la-5: #115133; + --la-6: #124f49; + --la-7: #144d5a; + --la-8: #17477e; + --la-9: #6f1995; + --la-10: #81156a; + --lg-1: #1b1b1b; + --lg-2: #303030; + --lg-3: #474747; +} diff --git a/source/options/scss/mixins.scss b/source/options/scss/mixins.scss new file mode 100644 index 0000000..83905d2 --- /dev/null +++ b/source/options/scss/mixins.scss @@ -0,0 +1,11 @@ +@use 'variables'; + +@mixin responsive-container { + margin-left: auto; + margin-right: auto; + width: variables.$large-breakpoint; + + @media (max-width: variables.$large-breakpoint) { + width: 100%; + } +} diff --git a/source/options/scss/reset.scss b/source/options/scss/reset.scss new file mode 100644 index 0000000..3d792cd --- /dev/null +++ b/source/options/scss/reset.scss @@ -0,0 +1,12 @@ +h1, +h2, +h3, +h4, +h5, +ol, +ul, +li, +p { + margin: 0; + padding: 0; +} diff --git a/source/options/scss/variables.scss b/source/options/scss/variables.scss new file mode 100644 index 0000000..2b9ef21 --- /dev/null +++ b/source/options/scss/variables.scss @@ -0,0 +1,4 @@ +$small-breakpoint: 600px; +$medium-breakpoint: 900px; +$large-breakpoint: 1200px; +$extra-large-breakpoint: 1800px; diff --git a/source/types.d.ts b/source/types.d.ts new file mode 100644 index 0000000..67e9051 --- /dev/null +++ b/source/types.d.ts @@ -0,0 +1,19 @@ +import {html} from 'htm/preact'; + +declare global { + // See Vite documentation for `import.meta.env` usage. + // https://vitejs.dev/guide/env-and-mode.html + + interface ImportMeta { + readonly env: ImportMetaEnv; + } + + interface ImportMetaEnv { + readonly BASE_URL: string; + readonly DEV: boolean; + readonly MODE: string; + readonly PROD: boolean; + } + + type HtmComponent = ReturnType; +} diff --git a/tests/bang.test.ts b/tests/bang.test.ts new file mode 100644 index 0000000..5837939 --- /dev/null +++ b/tests/bang.test.ts @@ -0,0 +1,105 @@ +import test from 'ava'; + +import Bang, {BangParameters} from '../source/bang/bang'; + +test('Bang.parseId', (t) => { + const samples: Array<[string, string | undefined]> = [ + ['test!example', '!example'], + ['test !example', '!example'], + ['!example test', '!example'], + ['!!example!test', '!example'], + ['test!1', '!1'], + ['test !1', '!1'], + ['!1 test', '!1'], + ['example', undefined], + ['example!', undefined], + ['example!_', undefined], + ['example! ', undefined], + ['example!%20', undefined], + ]; + + for (const [input, expected] of samples) { + t.is(Bang.parseId(input), expected); + } +}); + +test('Bang.parseParameters', (t) => { + const example: BangParameters = { + baseUrl: 'https://example.org', + id: '!example', + name: 'Example', + searchUrl: 'https://example.org/?search={{bang}}', + }; + + const samples: Array<[string, BangParameters, string]> = [ + ['!example', example, example.baseUrl], + ['test!example', example, 'https://example.org/?search=test'], + ['test !example', example, 'https://example.org/?search=test'], + ['!example test', example, 'https://example.org/?search=test'], + [' !example test ', example, 'https://example.org/?search=test'], + ['test !!example ', example, 'https://example.org/?search=test !'], + ['test ! !example ', example, 'https://example.org/?search=test !'], + ]; + + for (const [input, parameters, expected] of samples) { + const bang = Bang.parseParameters(input, parameters); + t.is(bang.destination, encodeURI(expected)); + } +}); + +test('Bang.validate', (t) => { + const empty: BangParameters = { + baseUrl: '', + id: '', + name: '', + searchUrl: '', + }; + + const samples: BangParameters[] = [ + { + ...empty, + }, + { + ...empty, + name: 'Example', + }, + { + ...empty, + name: 'Example', + id: '!', + }, + { + ...empty, + name: 'Example', + id: '!example', + }, + { + ...empty, + name: 'Example', + id: '!example', + baseUrl: 'https://example.org', + }, + { + name: 'Example', + id: '!example', + baseUrl: 'https://example.org', + searchUrl: 'https://example.org/?search=', + }, + ]; + + for (const sample of samples) { + const error = t.throws(() => Bang.validate(sample)); + t.true(error instanceof Error); + t.true(error?.message.startsWith('Bang')); + } + + t.true( + Bang.validate({ + ...empty, + name: 'Example', + id: '!example', + baseUrl: 'https://example.org', + searchUrl: 'https://example.org/?search={{bang}}', + }), + ); +}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..48115cf --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "lib": [ + "ESNext" + ], + "module": "ESNext", + "moduleResolution": "Node", + "noEmit": true, + "outDir": "build", + "strict": true, + "target": "ESNext" + }, + "include": [ + "source/**/*.ts", + "tests/**/*.ts", + "vite.config.ts" + ], + "ts-node": { + "compilerOptions": { + "module": "CommonJS" + } + } +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..9dd2a24 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,42 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import url from 'node:url'; + +import {defineConfig} from 'vite'; + +// Vite Plugins +import preactPreset from '@preact/preset-vite'; +import webExtension from 'vite-plugin-web-extension'; + +const currentDir = path.dirname(url.fileURLToPath(import.meta.url)); + +const buildDir = path.join(currentDir, 'build'); +const sourceDir = path.join(currentDir, 'source'); + +// Create the Firefox profile if it doesn't already exist. +fs.mkdirSync(path.join(currentDir, 'firefox'), {recursive: true}); + +export default defineConfig({ + build: { + outDir: buildDir, + sourcemap: 'inline', + }, + plugins: [ + preactPreset(), + // See vite-plugin-web-extension for documentation. + // https://github.com/aklinker1/vite-plugin-web-extension + webExtension({ + assets: 'assets', + browser: 'firefox', + manifest: path.join(sourceDir, 'manifest.json'), + webExtConfig: { + browserConsole: true, + firefoxProfile: 'firefox/', + keepProfileChanges: true, + startUrl: 'about:debugging#/runtime/this-firefox', + target: 'firefox-desktop', + }, + }), + ], + root: sourceDir, +});

    Ak`uvqvC%P4n@1ihwyl+78a?|jHK4$TIGQujnVBqizm7`3?hnIyaw3`E z(_}I-Gb`@nHi$nLI6{qUJvrMGda1{rz*|2G&1?G2;1(_}! z$b>?+3v8p9%mM;w&~4t~;l>f9EgVgb2C3~c~iN)60;tNp7- zQlR>KeW)WoF)?hh)}qDfctj#_?3J=5Ae`qls{AG@Xx#83LJ@e#8kIeR=`mULRtML>?Ik8-1Z?y)a!EG`cg~){OV3@~uaF z33R5glTT39*Ln8yhu^R%IPK~3>v>e<{*4l)euH-Z|6GB2mRk2+v zNKD;LhvFIDE34S~-Ii|0$&^Z%xw|*gGcq=VV9A8Nb!2B4NkNt*-D~wW^LI84hI(0r z80EOD=!k)hn%AY&vYTz!YwFmp;Uwc77;GNE$ClPs{nqm#ri!@-&GMAnjm8hNp2sUq zdX!F%j@3WrE3;xdeO=_`z^y`i?iqR-v0IFhYL7g(){j5v!ow^!sQK%~QlG6jk28d}u0&cO0S4DX zWEkJP!5tUAFB|jbarB0sg^ILaCoORenjxy#w;y;im$8akHIMQn#l-xRIY41dyR5S* zl_qVgbyn(eDD940Z)tMI8?6+G=4&mKRaI5LtBM4LbK14oF2A%Mjc^57aFxuIx}iaH zv(d|YLWO}%A#EyaN$+VIJp=bQ^ZnpEfG1NZiwYm?PDJI4Z0y6 zpG)4&7poU0^EuOgdNJFiFdep)DWqtAV2uJqLMNQCbas%E3MOPX33BQmb-GAFxnA=+ zVXl0J>QlVQ$w_PA`kT)*q88vD!k3(>L{?T-a=F@@^gp-fYA&Fg{MytckcLL;@?_mG z@>a7`o&REWfL>I;)xBC(L8s9nC-#)Y$MG_rTK4B+EmXir7O}4fQE4knQ=O7@W+o); zaN|HV1?_R;)(e_5oE7i)tesQ17qzSQ1W*B+3(cIZM_6GtU0k{CoGn+OHweoS3vFHv zu{YW)oR6>y#6q5RMI|NH5XH>dQtj~QXiTo%Jvb_e7We22a+oCCSpfrR_VCrVc=y_vpVql+L3?SsCgo*;TUjSP(o8PV?ZDNbvKrGZeHlkhrw7H`_bNT0@e~d z@0*OYaTHjkqqVjcRe#cx){7`6!>7Tw3$GwEfmcxN`b7_27Mf&oeCItLn7l%ycH>Eh zN_&&FR*#D0EL6#ZvJ3PlY!Z^?Z078Og16Mv)bvDWT2z@pmyu+4`+Q%6CMPL{Ou^3xV!QsFG=NUHSBcn5m zL9@nSME~|6iQffA2K3+8z}WzK8zIlETt}#{W}63TrEOez8b0_B@G3Vc8^t1lm$Qe$J)EZ*H78a^Lb z*CxpW%X(+i&%`RQK)?GEvn~YQ><#6ad;Xo&Les4oyo>9t_itlfyfj57|L|}&z~6_h z8D-jGx9vvvo7YBFXE$g9T9Mp=KLCp1_ijajmquVMonrXnG(Ij%?DkR#)1hI}*8Fg; zJOV1@BO>^H-|NMg6079Y4*9~K4|fNnfk!^nF232^+DfRsoTVjYcW!n)VuWsQOJ$XB zU#?G~fBpPQ;Md3Ur@bs+t?>GmJOB)=fKoBmfKKvPo_JOV { + await browser.runtime.openOptionsPage(); +}); + +browser.runtime.onInstalled.addListener(async () => { + if (import.meta.env.DEV) { + await browser.runtime.openOptionsPage(); + } +}); + +browser.webNavigation.onBeforeNavigate.addListener(async (details) => { + const detailsUrl = new URL(details.url); + if (detailsUrl.host !== 'duckduckgo.com') { + return; + } + + const qParameter = detailsUrl.searchParams.get('q') ?? undefined; + if (qParameter === undefined) { + return; + } + + const id = Bang.parseId(qParameter); + if (id === undefined) { + return; + } + + const data = await browser.storage.local.get(id); + if (data[id] === undefined) { + return; + } + + const bang = Bang.parseParameters(qParameter, data[id] as BangParameters); + await browser.tabs.update({url: bang.destination}); +}); diff --git a/source/bang/bang.ts b/source/bang/bang.ts new file mode 100644 index 0000000..0c0b4ab --- /dev/null +++ b/source/bang/bang.ts @@ -0,0 +1,69 @@ +export interface BangParameters { + baseUrl: string; + id: string; + name: string; + searchUrl: string; +} + +export default class Bang { + public static parseId(input: string): string | undefined { + const matches = /(?![a-z\d]+\b)/i.exec(input) ?? undefined; + if (matches?.groups === undefined) { + return; + } + + return matches.groups.id; + } + + public static parseParameters(input: string, bang: BangParameters): Bang { + const searchQuery = input.replace(bang.id, '').trim(); + const destination = + searchQuery.length === 0 + ? bang.baseUrl + : bang.searchUrl.replace(/{{bang}}/g, searchQuery); + + return new Bang(encodeURI(destination), bang); + } + + public static validate(bang: BangParameters): boolean { + if (bang.name.length === 0) { + throw new Error('Bang name cannot be left empty'); + } + + if (!bang.id.startsWith('!')) { + throw new Error('Bang identifier must start with an exclamation mark'); + } + + if (!/^![a-z\d]+$/i.test(bang.id)) { + throw new Error('Bang identifier can only have letters and/or numbers'); + } + + try { + // eslint-disable-next-line no-new + new URL(bang.baseUrl); + } catch { + throw new Error('Bang base link must be a valid URL'); + } + + try { + // eslint-disable-next-line no-new + new URL(bang.searchUrl); + } catch { + throw new Error('Bang search link must be a valid URL'); + } + + if (!bang.searchUrl.includes('{{bang}}')) { + throw new Error('Bang search link must include {{bang}}'); + } + + return true; + } + + public destination: string; + public parameters: BangParameters; + + constructor(destination: string, parameters: BangParameters) { + this.destination = destination; + this.parameters = parameters; + } +} diff --git a/source/manifest.json b/source/manifest.json new file mode 100644 index 0000000..0e202dd --- /dev/null +++ b/source/manifest.json @@ -0,0 +1,33 @@ +{ + "$schema": "http://json.schemastore.org/webextension", + "manifest_version": 2, + "name": "Fangs", + "description": "Inject custom DuckDuckGo Bangs into your browsing experience.", + "version": "0.1.0", + "permissions": [ + "storage", + "tabs", + "webNavigation" + ], + "content_security_policy": "script-src 'self'; object-src 'self'; style-src 'unsafe-inline'", + "web_accessible_resources": [ + "assets/**" + ], + "icons": { + "128": "assets/fangs-128.png" + }, + "browser_action": { + "default_icon": { + "128": "assets/fangs-128.png" + } + }, + "options_ui": { + "page": "options/index.html", + "open_in_tab": true + }, + "background": { + "scripts": [ + "background-scripts/initialize.ts" + ] + } +} diff --git a/source/options/components/link.ts b/source/options/components/link.ts new file mode 100644 index 0000000..7780f8c --- /dev/null +++ b/source/options/components/link.ts @@ -0,0 +1,20 @@ +import {html} from 'htm/preact'; +import {Component} from 'preact'; + +type Props = { + cssClass: string; + text: string; + url: string; +}; + +export class Link extends Component { + render() { + const {cssClass, text, url} = this.props; + + return html` + + ${text} + + `; + } +} diff --git a/source/options/components/page-footer.ts b/source/options/components/page-footer.ts new file mode 100644 index 0000000..3eb3be4 --- /dev/null +++ b/source/options/components/page-footer.ts @@ -0,0 +1,36 @@ +import {html} from 'htm/preact'; +import {Component} from 'preact'; +import browser from 'webextension-polyfill'; + +import {Link} from './link.js'; + +type Props = { + manifest: browser.Manifest.ManifestBase; +}; + +export class PageFooter extends Component { + render() { + const {manifest} = this.props; + const version = manifest.version; + + const donateLink = html` + <${Link} text="Donate" url="https://github.com/sponsors/Bauke" /> + `; + + const versionLink = html` + <${Link} + text="v${version}" + url="https://github.com/Holllo/fangs/releases/tag/${version}" + /> + `; + + return html` +