From 0e5eb7cbfc0c56a15893c579e0dadae23be427f8 Mon Sep 17 00:00:00 2001 From: zhouyu9527 <76467835+zhouyu9527@users.noreply.github.com> Date: Tue, 5 Jul 2022 14:16:29 +0800 Subject: [PATCH] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 7c7ef17f56862f2deb33ae759bbd7089505a50a8 Author: zhouyu9527 <76467835+zhouyu9527@users.noreply.github.com> Date: Tue Jul 5 09:51:03 2022 +0800 Squashed commit of the following: commit 047342f37719f052dfd7e4eb143d0c455d1b7587 Author: Joe Graham Date: Thu Jan 28 10:00:20 2021 -0500 chore: warn to stdout instead of stderr commit d537eeb14ae294292666f106692f0e84cccfc877 Author: Spring Raindrop Date: Mon Jul 4 21:15:40 2022 +0000 Add "since COVID" and "post-COVID" queries The cultural importance of COVID cannot be overstated. It marks the beginning of a new era, one in which an action as simple as going outside might be deadly. Because of the major changes it introduced into our lives, as well as trauma that cannot be forgotten, many use it as a date signifier even in contexts unrelated to the pandemic itself. commit fbf09eb7fd26d74f214584fb82b6ac2c96fbcf51 Author: Andrey Sitnik Date: Mon May 10 03:15:01 2021 -0400 Remove VSCode config commit f0c2245bc28caceded3e831cddfec2a6b695bd53 Author: Dmitry Semigradsky Date: Wed Dec 2 02:19:07 2020 +0300 Add types (#544) commit 4f04b6db5bb8ab6dc2cf85e9005994c8297557be Author: Lovchikov Anton Date: Fri May 5 11:09:54 2017 +0200 Add logo commit f24d95afd71a2e6029dbfbdf2002d079a5de6791 Author: Andrey Sitnik Date: Tue Jun 28 18:28:31 2022 +0200 Release 4.21.1 version commit 3562c2016e3838fab4c032958feb69d64a09b591 Author: Andrey Sitnik Date: Tue Jun 28 18:24:25 2022 +0200 Fix since query commit 7da126c9efdc58caf180e2920b03373ad7ddba41 Author: Andrey Sitnik Date: Tue Jun 28 18:17:45 2022 +0200 Update dependencies commit 04ba7a38f55878cf031bee5dbd7c54953f9dcf5e Author: Andrey Sitnik Date: Tue Jun 21 22:05:12 2022 +0200 Typo commit dae25c469ea75fad0770c5536c1629647e58d6c2 Author: Andrey Sitnik Date: Tue Jun 21 22:04:53 2022 +0200 Improve tools note commit a174cdf003ed6b7dceafcf12274c739d9e75d1b4 Author: Andrey Sitnik Date: Tue Jun 21 18:39:12 2022 +0200 Release 4.21 version commit 1612f8b8ee88b91e5748af6a1101fe89f68232a4 Author: Andrey Sitnik Date: Tue Jun 21 18:36:03 2022 +0200 Fix ChangeLog style commit fa79638d914de494edebd16068e7ed49c4adfb2c Author: Andrey Sitnik Date: Tue Jun 21 17:41:06 2022 +0200 Use released update-browserslist-db version commit aced5248790ed561be6683d8fbc9c97f8ce3d429 Author: Andrey Sitnik Date: Mon Jun 20 20:47:39 2022 +0200 Fix reading package.json with Unicode BOM commit afb24fb222166f010eef123b21c686f95ddc868f Author: Albert Portnoy Date: Mon Jun 20 13:17:29 2022 -0500 Mark Internet Explorer as dead (#701) * Mark ie 11 as dead * Add IE 11 as dead commit 835dafabba804f62d12900ed008de74d407f0441 Author: Andrey Sitnik Date: Mon Jun 20 20:15:06 2022 +0200 Add update tool to list commit 38211722b70c9ee7de5ed1d3f07ada7936a5c317 Author: Andrey Sitnik Date: Mon Jun 20 20:12:30 2022 +0200 Fix docs commit c231dd780e4d588fabf5318dc7bba3785a88066c Author: Andrey Sitnik Date: Mon Jun 20 20:12:04 2022 +0200 Update update-db docs commit 78c399248430854c1864e420af9092d1233dcbb8 Author: Andrey Sitnik Date: Mon Jun 20 20:07:36 2022 +0200 Move update DB script to another project commit 8c6cc4e7a4d42096838e02285456396e6db151da Author: Andrey Sitnik Date: Sun Jun 19 19:51:17 2022 +0200 Split Tools section commit c6f4ba918054ec93f19ae1f273d072e8cbea46cf Author: Andrey Sitnik Date: Sun Jun 19 19:46:28 2022 +0200 Add Browserslist Lint to tools commit 461a84bfe9b703da7d205a6993449319d89b262b Author: Nikolas Evers Date: Sun Jun 19 17:50:38 2022 +0200 Add missing URL to browserslist-update-action (#702) commit bcd448510a3306921b365d02ff222c9ef239be79 Author: Andrey Sitnik Date: Sat Jun 18 10:34:07 2022 +0200 Update dependencies commit 2e085a1a42f5183690194153d7ad7f8408168db4 Author: Andrey Sitnik Date: Sat Jun 18 10:32:49 2022 +0200 Add link to browserslist-update-action commit 1d4d163867d71ee8ef2bbcd59a2d09dc7e67479e Author: Andrey Sitnik Date: Fri Jun 17 10:43:23 2022 +0200 Move JSDoc to TSDoc commit 7d049cda3d644500a98c33bf91f31c7ca3ef5eb6 Author: Andrey Sitnik Date: Fri Jun 17 10:42:29 2022 +0200 Add TSDoc commit ff5109e684e1fa9b89ac7ba614c517c98f90c5d9 Author: Andrey Sitnik Date: Fri Jun 17 00:39:43 2022 +0200 Add AST for quieries commit ad05ec1f7873babea089fd8d3802c3ef98122231 Author: Andrey Sitnik Date: Thu Jun 16 17:42:18 2022 +0200 Move linter to separated project commit 2988a84174411b25013c3d001684f845330384a8 Author: Andrey Sitnik Date: Thu Jun 16 16:59:55 2022 +0200 Fix size limit commit 80e607f8b995597e4a91807a45c1a96db8954306 Author: Dan Onoshko Date: Thu Jun 16 21:50:59 2022 +0700 feat: linter (#672) * feat: linter * test: linter tests * feat: public linter api * feat: linter typings * ci: fix colors * ci: fix tests coverage * chore: review fix * feat: calc relative coverage * feat: lint cli * test: 100% coverage Co-authored-by: Andrey Sitnik commit e21c8cec98fea17af3719f24986c4a2e7160a518 Author: Andrey Sitnik Date: Thu Jun 16 16:50:16 2022 +0200 Update dependencies commit 9b3f3b94525127ae49ed28a3ad85e5cd1d4da0cf Author: Andrey Sitnik Date: Tue Jun 7 07:46:55 2022 +0200 Release 4.20.4 version commit a3bf6e4ca62c6503107f3095189bf05801222fdb Author: Andrey Sitnik Date: Tue Jun 7 07:44:28 2022 +0200 Update dependencies commit de9fafb52d96606d0b7bbd1370af5b8da950ac22 Author: Pig Fang Date: Tue Jun 7 13:43:49 2022 +0800 exclude unreleased versions if `mobileToDesktop` enabled (#697) commit 16be651508467c55a001c90deed116f0b69167f1 Author: Andrey Sitnik Date: Wed Jun 1 13:14:17 2022 +0200 Try to fix CI commit 9e68fc6d31939d127e229474324f94af00009188 Author: Andrey Sitnik Date: Wed Jun 1 13:13:45 2022 +0200 Update dependencies commit 34de07a5751ce318d94b210961c737d3350dd9d1 Author: Andrey Sitnik Date: Sun Apr 24 19:33:33 2022 +0100 Update dependencies commit c7d1aa455b764405e8dee98c691b0e9d77f08aec Author: Igor Lukanin Date: Sun Apr 24 21:49:23 2022 +0400 Mark Baidu browser as dead in README (#689) Related to #688 commit 2eaed02c6da52b6915cb1885265b4a6c72758891 Author: Andrey Sitnik Date: Sun Apr 24 17:04:53 2022 +0100 Release 4.20.3 version commit 55f632dfde4f11885a69e8eac15187726a952bfe Author: Igor Lukanin Date: Sun Apr 24 20:02:54 2022 +0400 Mark Baidu browser as dead (#688) * Mark Baidu browser as dead Baidu browser was deprecated in April 2019 (36 months ago) * Fix patch commit 5399900d48cfb41f9c80e574971a1d9f65266d22 Author: Andrey Sitnik Date: Sun Apr 24 11:42:59 2022 +0100 Update CI and dependencies commit b1957917dae7a9f1eb6f37f3eb0f1c57a82ede01 Author: Igor Lukanin Date: Sun Apr 24 13:26:03 2022 +0400 README: fix name for Edge on Android (#687) commit 5fe575f07e7cf9e6d477caf584777d98cd698620 Author: Andrey Sitnik Date: Tue Mar 15 19:19:13 2022 +0100 Release 4.20.2 version commit 1693d3f8401cab192696d2f93bcd6c165cf0dd72 Author: Andrey Sitnik Date: Tue Mar 15 19:18:48 2022 +0100 Fix funding URL format commit 0f9777681fa812de89fb71b9ca0d30f9b2911f6b Author: Andrey Sitnik Date: Tue Mar 15 19:14:43 2022 +0100 Release 4.20.1 version commit 3251970f13786b1fc5e6c19049b54095c99d1cad Author: Andrey Sitnik Date: Tue Mar 15 19:13:55 2022 +0100 Update CI config commit 83cf3a9183ef6d91f7099a21fdfb6a808326d1f2 Author: Andrey Sitnik Date: Tue Mar 15 19:13:46 2022 +0100 Update dependencies commit 42b7c07f953839f04053b38db9d3ce46c1403fa0 Author: Andrey Sitnik Date: Tue Mar 15 19:13:00 2022 +0100 Update package.funding commit e663f7d48d6d15dc0b75332f8e932a644d5b28f3 Author: Michael Lohmann Date: Thu Mar 10 14:58:08 2022 +0100 README: clarify relative complement (#674) commit 0d6f43fc91ebe58e995d5f70e66d6983dd8e7d94 Author: Andrey Sitnik Date: Sun Mar 6 23:50:06 2022 +0100 Release 4.20 version commit 30ed7b772040c10cb8f1fe64966525f9b4bba211 Author: Andrey Sitnik Date: Sun Mar 6 23:47:03 2022 +0100 Update dependencies commit b70a56dd0af64c55f5279cdfbab900e25b709671 Author: Pig Fang Date: Mon Mar 7 06:43:40 2022 +0800 Add `last N node versions` (with major) support (#671) * Add `last N node versions` (with major) support * Update tests * Update docs commit 4cf912de2ef3088166f352548077f7a436f241b8 Author: Matt Alexander Date: Mon Feb 21 23:20:24 2022 -0600 Fix stale links to caniuse branch (master -> main) (#670) commit fccf22e90a69527aa30e594e61246bc08e1788f7 Author: Andrey Sitnik Date: Sat Feb 19 01:15:08 2022 +0100 Release 4.19.3 version commit 9cd046e432aeb22b0d80bc2b25803e7a17ff1ecc Author: Christophe Coevoet Date: Sat Feb 19 01:13:42 2022 +0100 Update Firefox ESR versions (#669) Firefox 78 is not an ESR anymore since November 2021. commit d7d6a22827e3fa5350f308f52131a01de333b9c5 Author: Andrey Sitnik Date: Fri Feb 18 13:36:37 2022 +0100 Release 4.19.2 version commit 3d5f4baa938485801d1315570f050a3966740922 Author: Andrey Sitnik Date: Fri Feb 18 13:33:47 2022 +0100 Update dependencies commit a10c1e915a86a8dcbfeaa070411e5c00b05697b4 Author: Andrey Sitnik Date: Fri Feb 18 13:31:02 2022 +0100 Improve c8 reporter commit 676a2ce881092753d66fca3ccc57baf2d2ec46f0 Author: Andrey Sitnik Date: Fri Feb 18 13:30:52 2022 +0100 Typo commit 6d5f71e8774199be2d95ebcc21d5459deadc3631 Author: Andrey Sitnik Date: Sun Jan 30 02:32:20 2022 +0100 Update dependencies commit 1af3de9019b87aff84495fdafdaec109426ed5d5 Author: Andrey Sitnik Date: Wed Jan 5 07:19:09 2022 +0300 Update dependencies commit f8a828487df076a60126b22d664e5c4204254d86 Author: Andrey Sitnik Date: Mon Dec 20 14:24:16 2021 +0300 Simplify pnpm update of caniuse-lite commit 0901a6025f4ba2cdc9dde480b23971ffbc2fc9e1 Author: Andrey Sitnik Date: Mon Dec 20 14:07:48 2021 +0300 Update dependencies commit 4c8e6b36e72b99259d5a86d6599381b01e862991 Author: Andrey Sitnik Date: Mon Dec 20 13:21:10 2021 +0300 Sort imports commit 5e05eaf9f798ff35edbb7299d11431c1081006be Author: Andrey Sitnik Date: Thu Dec 16 17:19:49 2021 +0300 Do not use exact pnpm version for old Node.js commit 6ca4523eab08ffff93ecd60220e5ea675d126d9f Author: Andrey Sitnik Date: Thu Dec 16 17:16:20 2021 +0300 Update dependencies commit 582ee21e3c783da04e115adee5a8e238b517231e Author: Andrey Sitnik Date: Thu Dec 16 15:46:55 2021 +0300 Use latest pnpm on CI commit 7579b3f6061d86e2951c516fa8c62a8d7f9cca5a Author: Andrey Sitnik Date: Tue Dec 14 18:00:07 2021 +0300 Remove packageManager commit 4724a042c7a529b309c7b4d09d62578067f58e9c Author: Andrey Sitnik Date: Tue Dec 14 17:59:31 2021 +0300 Update pnpm commit 8a0c1c7036de980da76b917e9195dfe7b6b80595 Author: Andrey Sitnik Date: Tue Dec 14 17:48:26 2021 +0300 Release 4.19.1 version commit fe04a9498b5d6d02dfb5eee4d0c97d0f409466bd Author: Øyvind Saltvik Date: Tue Dec 14 15:46:43 2021 +0100 fix: add throwOnMissing to type declarations (#665) commit c9f2e81d117d0304193ea183da70dbb5e4f590f0 Author: Andrey Sitnik Date: Tue Dec 14 04:32:33 2021 +0300 Release 4.19 version commit 5cb07ca3d2a38ad6133250bd20253421d7fd016e Author: Andrey Sitnik Date: Tue Dec 14 04:14:51 2021 +0300 Clean up code commit f24981b3258c18f151aa84bb92ab372b19217713 Author: Pig Fang Date: Tue Dec 14 07:20:00 2021 +0800 Add grammar definition (#661) * Add grammar definition * Add missing `BrowserName` definition * Tweak * Fix definition * Rename * Add entrypoint * Exclude line break from "Space" commit f908c59f57da9cb70de734f61c64cbf5717ec739 Author: Andrey Sitnik Date: Tue Dec 14 02:18:21 2021 +0300 Update dependencies commit 541320c283fb228c44adcf333e3f220cb43a9e3f Author: Andrey Sitnik Date: Tue Dec 14 02:18:14 2021 +0300 Clean up error message commit 460afa3526b5e4a4d4231d54e1b06927f9835a18 Author: Alexey Berezin Date: Tue Dec 14 00:16:52 2021 +0100 fix: 🧪 update yarn without integrity (#659) * test: ➕ add update-yarn-without-integrity fixture * test: ➕ add update-yarn-without-integrity * test: 🧪 update-yarn-without-integrity commit 6178e3fa0c558959d5b18e3854e9e1ad72e0eb15 Author: Øyvind Saltvik Date: Tue Dec 14 00:16:48 2021 +0100 feat: added option to throw on missing env (#664) * feat: added option to throw on missing env * fix: passing tests for throwOnMissing commit 398ce1402e06b1ffc3f10b8d6d97dcd96496d992 Author: Sun Xiaoran Date: Tue Dec 14 07:16:08 2021 +0800 fix: array index overflow (#662) commit 77f47d3fe650ce4fde5abafab8d0f9436f25c825 Author: Pig Fang Date: Tue Dec 14 07:13:48 2021 +0800 Ignore `null` usage value (fix #658) (#660) * Ignore `null` usage value (fix #658) * Add more tests commit 4db44bae5f43ad6a16bfc774ccd254d9458551b1 Author: Andrey Sitnik Date: Mon Dec 13 02:45:55 2021 +0300 Speed up CI commit a513b8cbb4a82d6351f22e20103d252f768f9190 Author: Andrey Sitnik Date: Sun Dec 12 00:17:00 2021 +0300 Update dependencies and add packageManager commit f06514ca1f0becc01a9a4e29d753daedd7c46777 Author: Andrey Sitnik Date: Thu Dec 9 14:16:34 2021 +0100 Update dependencies commit a5f016c7bfb43de6de29c82dcf751fa67de444e0 Author: Andrey Sitnik Date: Tue Dec 7 03:11:52 2021 +0100 Move from Yarn to pnpm commit aeb127c6841b78a5c0bf50dee74ebe68a2e48d84 Author: Andrey Sitnik Date: Tue Dec 7 02:55:36 2021 +0100 Update dependencies commit 5e73c44ad9e45fde33215e53ca17eda5b7315e65 Author: Andrey Sitnik Date: Fri Nov 26 11:40:51 2021 +0100 Avoid update-db test on old Node.js versions commit 6abd20eee5dd09849d1dbf39a4bdd4d514378d83 Author: Andrey Sitnik Date: Fri Nov 26 11:34:57 2021 +0100 Use nanospy commit 63aa93f848326a06b65e187bd82783d17b34035c Author: Andrey Sitnik Date: Fri Nov 26 10:50:05 2021 +0100 Disable timeout commit 04d62710f6dfcfb05ca153df2285bef31ae221a2 Author: Andrey Sitnik Date: Fri Nov 26 10:45:14 2021 +0100 Update dependencies commit b368c0296623f890b1035eff914dc3e2f7e2250f Author: Sergei Kolesnikov Date: Fri Nov 26 12:42:25 2021 +0300 Migrate from Jest to Uvu (#653) commit fc49055a1373f664afd653535a1941230e307d91 Author: Andrey Sitnik Date: Thu Nov 18 17:35:25 2021 +0100 Clean up docs commit 544c6534b2ca17166c2e10a83e384a6ea72c0e6c Author: Andrey Sitnik Date: Thu Nov 18 17:11:31 2021 +0100 Improve update-db docs commit a2a27a86d84d99531869adbcc0d415a417eaae21 Author: Andrey Sitnik Date: Thu Nov 18 00:54:48 2021 +0100 Move Rust port above commit 7f39bcde933c56aaddc91bbb7ef784222f5178fa Author: Pig Fang Date: Thu Nov 18 07:53:22 2021 +0800 Add "browserslist-rs" (#650) commit 4cb168ea643d987fc1bea90a04341015ec7f7879 Author: Andrey Sitnik Date: Thu Nov 18 00:12:35 2021 +0100 Try to fix Node.js 8 CI commit 216c7af74f0d24275ce7643e0281aeffc0e1b2e2 Author: Andrey Sitnik Date: Thu Nov 18 00:06:25 2021 +0100 Reduce node_modules by updating Size Limit commit 59c0e27e0c585e4d2f7b72d7754156c367cd8e39 Author: Andrey Sitnik Date: Wed Nov 17 19:48:56 2021 +0100 Capitalize commit 5908f5cf6186c057ec3909ed858898bfe3e09456 Author: Andrey Sitnik Date: Wed Nov 17 19:48:36 2021 +0100 Fix numbers commit 6cd06a06661fcc112fe212d428581ea9371d989d Author: Andrey Sitnik Date: Wed Nov 17 19:48:04 2021 +0100 Clean up notes commit 8f34c48a69b7577da82c322c5eaa12956466c323 Author: Andrey Sitnik Date: Wed Nov 17 14:22:25 2021 +0100 Make it shorter commit 8a77d1a6220e9022da0e2e38dcee2fe47439cef4 Author: Andrey Sitnik Date: Wed Nov 17 14:22:01 2021 +0100 Clean up notes commit 77551c701bd5ce6ff097d237ff85a61e243f1a6a Author: Andrey Sitnik Date: Wed Nov 17 14:21:29 2021 +0100 Fix browser name commit 55e9f94bbb2359077d8812a5812c49d99411e7a6 Author: Andrey Sitnik Date: Wed Nov 17 14:20:02 2021 +0100 Fix table lines commit 462f569256438aabe2d1d56f82be564b2f0ef88e Author: Andrey Sitnik Date: Wed Nov 17 14:17:18 2021 +0100 Improve browsers table commit f3109e0da5bc0d26c364736e33f0160ebabf4d5b Author: Andrey Sitnik Date: Wed Nov 17 14:12:27 2021 +0100 Update dependencies commit 0c8e7efba6b2e7297b25749292d32cd127cdbd67 Author: Christopher Dieringer Date: Wed Nov 17 05:11:05 2021 -0800 docs(readme): improve browser name => device mapping (#649) commit b6b172f3461fe4b93223e222ddf684275cccea56 Author: Andrey Sitnik Date: Mon Nov 15 17:36:12 2021 +0100 Release 4.18.1 version commit af1ca8e24beb8722f89e79da9e0ba8e0f08f9856 Author: Andrey Sitnik Date: Mon Nov 15 17:34:14 2021 +0100 Update dependencies commit 5ff0c9d9f0be871f64ddd909f2c8983b006d0ed4 Author: Pig Fang Date: Tue Nov 16 00:26:35 2021 +0800 Fix edge case of `since` query (fix #646) (#647) commit 2096f30d02078e602feeaca53e380ec1c75250d8 Author: Pig Fang Date: Mon Nov 15 23:47:50 2021 +0800 Make `cover` query case-insensitive (#648) commit ffc672334889bfba72d8e1bd952276610d14a2ca Author: Andrey Sitnik Date: Sun Nov 14 01:07:44 2021 +0100 Release 4.18 version commit 98647af038c3c3ac64df0c49287cba5f93e80581 Author: Andrey Sitnik Date: Sun Nov 14 01:06:45 2021 +0100 Update dependencies commit 51b6d95a8e46e05db0dcb4010ed9755ec60aba00 Author: Pig Fang Date: Sun Nov 14 08:04:39 2021 +0800 Add `--ignore-unknown-versions` CLI option (#645) commit 4b37b4ed99413044b903b9055a76f135c97a1f06 Author: Andrey Sitnik Date: Tue Nov 2 17:20:45 2021 +0100 Release 4.17.6 version commit f6dc9d47eade5f492b9c356b192a4c8c8cfa9503 Author: Andrey Sitnik Date: Tue Nov 2 17:12:02 2021 +0100 Update npm lockfiles to speed up CI commit 37b1a1c99e404a6d2559cb8c70bf871bba264698 Author: Andrey Sitnik Date: Tue Nov 2 16:07:13 2021 +0100 Run update-db only on latest Node.js commit 868cf4cd41acc5a5a73383e3f09ac71707b4230b Author: Andrey Sitnik Date: Tue Nov 2 15:59:24 2021 +0100 Speed up CI commit e486f8c1246a0c0a02f511645c9dd0873981a63e Author: Andrey Sitnik Date: Tue Nov 2 15:51:34 2021 +0100 Move to Prettier and update ESLint config commit fa69a66cc45fc8ac2a20c65f28470d5e530c33c7 Author: Andrey Sitnik Date: Tue Nov 2 15:36:16 2021 +0100 Fix old Node.js version support commit e93cad98ccadee7861033ffde216c64c36fc29a8 Author: Andrey Sitnik Date: Tue Nov 2 15:31:32 2021 +0100 Remove TS from tests commit 35830826ea9cbb0e2a54638c88403fbeed616d1b Author: Andrey Sitnik Date: Tue Nov 2 15:09:07 2021 +0100 Ignore pnpm test on missed pnpm on CI commit 827b0a9160adade3bf2650698320378d071d1f9a Author: Andrey Sitnik Date: Tue Nov 2 15:05:17 2021 +0100 Test pnpm only on Node.js 17 commit 7a119166e52a2b5f4c96a6ef67e4a81887d1abcb Author: Andrey Sitnik Date: Tue Nov 2 14:40:40 2021 +0100 Fix CI job name commit 99eb3b2dbc50b688919e3ae16e8de743a07d8cc9 Author: Andrey Sitnik Date: Tue Nov 2 14:40:07 2021 +0100 Clean up dependencies commit 5e3ec49006d1fab97e92fec9f42f622153519920 Author: Andrey Sitnik Date: Tue Nov 2 14:38:51 2021 +0100 Update dependencies commit 43144ec1cf72c89892f27314aee832429fa381d4 Author: Andrey Sitnik Date: Tue Nov 2 14:38:44 2021 +0100 Add Node.js 17 to CI commit 6ce646e302fd9259ad60cb6d618480ccd4df9fd0 Author: Adaline Valentina Simonian Date: Tue Nov 2 06:37:46 2021 -0700 fix: check file path when resolving shared configs (#638) commit 4fdb4cbbe72b078f6d953d2daf5de39fa12af381 Author: Andrey Sitnik Date: Sat Oct 23 13:35:02 2021 +0200 Release 4.17.5 version commit a1d3750a9fc2928603c217586d3b217550f0cc37 Author: Andrey Sitnik Date: Sat Oct 23 13:34:29 2021 +0200 Removed debug code commit db3f5f5f830e97c483797df1a659023119814c60 Author: Andrey Sitnik Date: Sat Oct 23 13:32:02 2021 +0200 Try to fix CI commit 592d9e2c3e5ad39c94b7b005d4126f21d923a809 Author: Andrey Sitnik Date: Sat Oct 23 13:24:08 2021 +0200 Another debug commit b566fcb95168ccc81aa15998282523b71d7e3b26 Author: Andrey Sitnik Date: Sat Oct 23 13:20:14 2021 +0200 Another debug commit 592d54ae0c9c24fd95953b4f4d579d2e5b330fe8 Author: Andrey Sitnik Date: Sat Oct 23 13:16:03 2021 +0200 Add debug code for CI commit 18db46f2761afb0b440c25dd5abeaa0bf24cf708 Author: Andrey Sitnik Date: Sat Oct 23 13:08:49 2021 +0200 Another way to fix rare case commit d66c1c2e8cbc43544e144bbad19db5117dab12a5 Author: Andrey Sitnik Date: Sat Oct 23 13:05:49 2021 +0200 Try to fix pnpm use case commit 006cbb897c9824f0c5ec41622f75980e79bcc6dd Author: Andrey Sitnik Date: Sat Oct 23 12:18:20 2021 +0200 Update dependencies commit 9b863967a54dab069bafdedd242ab122d1e5b5b7 Author: Oktawian Lagiewski Date: Sat Oct 23 12:12:50 2021 +0200 Update README.md (#636) Lib name typo commit e05e4e6e5a0f7dc77642543757044788ca61ff89 Author: Andrey Sitnik Date: Wed Oct 13 17:08:40 2021 +0200 Release 4.17.4 version commit 5bffd3acfeb1cdb28afe318df375019ccb4ecbc2 Author: Andrey Sitnik Date: Wed Oct 13 15:29:54 2021 +0200 Update dependencies commit 354ee8d2d36e50891b354e7c3a155aa351699fb0 Author: Andrey Sitnik Date: Wed Oct 13 15:21:45 2021 +0200 Update dependencies commit f86030b3257aeec9b70d5b43b88e165ba48071ac Author: Andrey Sitnik Date: Wed Oct 13 15:21:32 2021 +0200 Update CI config commit 4378bc0b830380353789b059b597ea1bbbb40cac Author: Andrey Sitnik Date: Tue Oct 5 10:58:03 2021 +0200 Typo commit d9c061dd41744c64eb558689b239f3cc8472bc72 Author: Andrey Sitnik Date: Mon Oct 4 21:56:56 2021 +0200 Release 4.17.3 version commit 610bb7459d7fd75244a04534eac091530d3cce67 Author: Andrey Sitnik Date: Mon Oct 4 21:53:39 2021 +0200 Update dependencies commit dc3b0fa08f37b22640e9dd040b617c8b4ac6f581 Author: Andrey Sitnik Date: Mon Oct 4 21:53:16 2021 +0200 Replace nanocolors to picocolors commit 5abdeb69c143c2134e4f5417de72e450bf0cae56 Author: Andrey Sitnik Date: Thu Sep 30 20:03:49 2021 +0200 Release 4.17.2 version commit be28eba070620e478bfa3efb5453b008fe8424a0 Author: Andrey Sitnik Date: Thu Sep 30 20:03:23 2021 +0200 Clean docs in npm package commit 90db4889ed1a395d53c211884325fb6ed8ae8c3f Author: Andrey Sitnik Date: Thu Sep 30 20:01:26 2021 +0200 Update dependencies commit 20978fb58571038449f0c1ead18c1524b7c95404 Author: Lee Date: Wed Sep 29 20:47:26 2021 +1300 Bumped caniuse-lite version (#630) caniuse-lite has newer version of caniuse-db which moves Safari 15 out of Technical Preview state Signed-off-by: Lee Reichardt commit af6e21d7a7bef29ed3b015a05f681ebd9c354c5f Author: Andrey Sitnik Date: Wed Sep 22 07:24:00 2021 +0200 Release 4.17.1 version commit b20dc9a2959b6f4884da517a42660f12a6c87ca5 Author: Andrey Sitnik Date: Wed Sep 22 07:23:22 2021 +0200 Update Nano Colors commit 4ea9ef3e1ee23d7fe41f98dbd53a4631e05ed594 Author: Andrey Sitnik Date: Tue Sep 21 12:52:28 2021 +0200 Fix CI commit 1391e1a6d19723b69ef3f7891b40571823958820 Author: Andrey Sitnik Date: Tue Sep 21 10:30:46 2021 +0200 Replace colorette to nanocolors commit 6d41f7f010d61ee562064502512993bacf12233e Author: Andrey Sitnik Date: Tue Sep 21 10:28:25 2021 +0200 Use nanocolors instead of colorette commit c35c13df0a7d4824c3b5f30a44b931949b39ad1d Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Sep 20 21:22:09 2021 -0400 Bump nth-check from 2.0.0 to 2.0.1 (#621) Bumps [nth-check](https://github.com/fb55/nth-check) from 2.0.0 to 2.0.1. - [Release notes](https://github.com/fb55/nth-check/releases) - [Commits](https://github.com/fb55/nth-check/compare/v2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: nth-check dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 18e0ef7e18ff74ff4f474884d0fc6a2cc1458a41 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Sep 20 21:17:19 2021 -0400 Bump tmpl from 1.0.4 to 1.0.5 (#620) Bumps [tmpl](https://github.com/daaku/nodejs-tmpl) from 1.0.4 to 1.0.5. - [Release notes](https://github.com/daaku/nodejs-tmpl/releases) - [Commits](https://github.com/daaku/nodejs-tmpl/commits/v1.0.5) --- updated-dependencies: - dependency-name: tmpl dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 0389310956011fd6b885b64fa220b23c2021ce02 Author: Andrey Sitnik Date: Mon Sep 13 12:14:40 2021 +0200 Improved mobileToDesktop docs commit 9222d3b6eb06fbfa069daf1e7d62526c1ae90b5f Author: Andrey Sitnik Date: Sun Sep 5 12:06:25 2021 +0200 Release 4.17 version commit 45938e916c234265bf66a8b71b74ec7e45a401d3 Author: Andrey Sitnik Date: Sun Sep 5 12:01:37 2021 +0200 Fix Yarn 2 update commit 7210f17afbc2812a8b07a299d6b8f0ad42f4c9cc Author: Andrey Sitnik Date: Sat Sep 4 15:32:38 2021 +0200 Clean up code commit 51c1fd51bc99957ccbb49f20ef21e72166f31bb0 Author: Andrey Sitnik Date: Sat Sep 4 15:25:24 2021 +0200 Update dependencies commit fd094aee5165e9a090ce00765b69fefe8cc725e5 Author: Himank Pathak Date: Sat Sep 4 18:53:19 2021 +0530 fix: browserslist --update-db for yarn v2+ lockfile (#619) * update-db: added detectLockfileVersion method detects yarn.lock file version * update-db: migrated code to updatePackageManually method - migrated code from default method to read and manually update lock file and package - Added yarn-v2 command to handle package updation * update-db: fixed getLatestInfo for yarn v2 * update-db: updated test for yarn v2 lockfile added checkRunUpdateYarnv2 test and updated checkYarnLockfile test * updated .gitignore to ignore .yarn directory * update-db: do not run yarn v2 tests on node 8, 10 commit d9e9b108a96e00bfd7e08ddbda06493b370eb20b Author: syntactic-salt Date: Mon Aug 23 05:53:51 2021 -0400 docs: add new tool to README (#615) commit 68fbe5b30548b6e99b0055eb40eede648d905823 Author: Andrey Sitnik Date: Wed Aug 18 18:01:47 2021 +0200 Release 4.16.8 version commit c92a046d459e194e6e8d0b0f390be5c02d8bcd85 Author: Andrey Sitnik Date: Wed Aug 18 17:59:20 2021 +0200 Update Firefox EST version commit 5aca9e660b35dd7a53fbe415a801c60c16dc8efc Author: Andrey Sitnik Date: Wed Aug 18 17:57:47 2021 +0200 Update dependencies commit d430cdca4f007ac0799ecf77724ce2bfb650b6d9 Author: Andrey Sitnik Date: Tue Aug 3 11:18:38 2021 +0200 Release 4.16.7 version commit 8ab904f0b986d6d96ef57bea69f51fc8f104195c Author: Andrey Sitnik Date: Tue Aug 3 11:15:33 2021 +0200 Update dependencies commit 914dd7523c2cac240fd09f60bc0f9708ec269cbe Author: Andrey Sitnik Date: Tue Aug 3 11:14:53 2021 +0200 Clean up code commit 9c81c0619b756f60b00e871df793ce16e83ae889 Author: Paul Verest Date: Tue Aug 3 17:14:10 2021 +0800 browserslist updating warning: remove empty line (#612) * browserslist updating warning: remove empty line and make 3 lines (every line clearly belonging to browserslist), 2nd, 3rd with " " double spaceindent. * browserslist updating warning: remove empty line (release.test.ts) * comply with lint 80 max * spacing * comply with lint 80 max commit ab68e6cedc47d3d5be3d71e1f7a6920d65a90ff2 Author: Andrey Sitnik Date: Tue Jul 6 12:17:07 2021 +0300 Update dependencies commit 58d17069efdf354513905043140321f82ccf4838 Author: Danylo Kazymyrov Date: Tue Jul 6 10:56:57 2021 +0300 fix: add guard for empty data argument in normalizeStats function (#608) * add guard for empty data argument in normalizeStats function * fix lint commit eb9fd721a67ece3e46da589ea89f724e114bf0db Author: Alexander Belov <16794134+belovweb@users.noreply.github.com> Date: Tue Jun 15 00:14:59 2021 +0300 fix typo (#604) commit 1ff4168afe1ff5e967cbba26d383ae6ca8add5db Author: Andrey Sitnik Date: Tue Jun 1 21:51:27 2021 -0400 Fix tests commit 9a1784363b484c81e5f30b99d15595732e1191be Author: Andrey Sitnik Date: Tue Jun 1 21:43:56 2021 -0400 Update dependencies commit 37af27c36f58aba9f47a1a50d6a9d6a458472a02 Author: Andrey Sitnik Date: Tue Jun 1 21:43:40 2021 -0400 Fix query group title styles commit 582c235522f9c51916a9eb5ef721d3744034410e Author: Andrey Sitnik Date: Tue Jun 1 21:42:37 2021 -0400 Add titles to query groups commit 66cbc887c130425e3bfcbbea52b3e232ad693032 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri May 28 18:54:45 2021 -0400 Bump ws from 7.4.4 to 7.4.6 (#601) Bumps [ws](https://github.com/websockets/ws) from 7.4.4 to 7.4.6. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/compare/7.4.4...7.4.6) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit e736a18c094b035b39141994ca93f7375d085035 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon May 24 21:23:20 2021 -0400 Bump browserslist from 4.16.3 to 4.16.6 (#600) Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.16.3 to 4.16.6. - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](https://github.com/browserslist/browserslist/compare/4.16.3...4.16.6) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 4240112202f67a77dbd9ca3ef96d932f638072c3 Author: Andrey Sitnik Date: Fri Apr 30 09:23:44 2021 -0400 Release 4.16.6 version commit b780286ee8c51e88e604e1c1967a33b3a53feb34 Author: Andrey Sitnik Date: Fri Apr 30 09:20:51 2021 -0400 Update dependencies commit edd51415152d7dcaa83551c19ffc4b86ea2bb305 Author: Geoff Newman Date: Fri Apr 30 14:20:16 2021 +0100 Add support for npm-shrinkwrap files alongside package-lock (#595) * Handle npm-shrinkwrap.json file the same as package.json Fixes #594 * Update tests Fixes #594 commit 57c62d4bd8d0db41006eff7ef51fdda334c635f8 Author: Andrey Sitnik Date: Thu Apr 22 08:42:17 2021 -0400 Release 4.16.5 version commit 66840ccfc324057243eb34542297e5c783caa4e3 Author: Andrey Sitnik Date: Thu Apr 22 08:40:59 2021 -0400 Update dependencies commit 78b5b93015eae25f1a26fa6f274ee5df388e7dcf Author: Andrey Sitnik Date: Thu Apr 22 08:39:17 2021 -0400 Fix version RegExp commit aa5d9e0d84632d6298c135c456659c476740c81c Author: Andrey Sitnik Date: Thu Apr 22 08:31:39 2021 -0400 Use Node.js 16 on CI commit 7b914b27078865f9251adcb4d5630046f41a725f Author: Yeting Li Date: Thu Apr 22 20:37:48 2021 +0800 Fix ReDoS (#593) Fix 6 ReDoS-vulnerable regexes with pattern `\d*\.?\d+`. Fix strategy: Replace `\d*\.?\d+` with `(d+|\d*\.\d+)` commit 7a785788f66359bd2aa08f9692ad782b43209984 Author: Andrey Sitnik Date: Mon Apr 12 06:53:40 2021 -0400 Release 4.16.4 version commit b758a6347aeba8608d5aaf7d8307dc032957493c Author: Andrey Sitnik Date: Mon Apr 12 05:13:39 2021 -0400 Fix types commit 45a9ed59283e0f4d2e73a0a16bb462a5bfb60ff9 Author: Andrey Sitnik Date: Mon Apr 12 05:11:08 2021 -0400 Update dependencies commit 7ed569824c672007f783f1c7e4045fa7185bde94 Author: Andrey Sitnik Date: Thu Apr 8 01:24:32 2021 -0400 Fix unsafe regexp commit 09ee36525ae4cd20e4c5f77d4de7637c25e12b96 Author: Andrey Sitnik Date: Thu Apr 8 00:00:05 2021 -0400 Update clean-publish commit 2a19b5168041d156cabae8fddfba217050e32b88 Author: Ittai Baratz Date: Wed Apr 7 20:58:20 2021 -0700 Update DB - Support for artifactory (No integrity) (#591) * Update update-db.js * trigger build commit bb18cdc7a5a1ec72e98e552d96eb709a395bf467 Author: Andrey Sitnik Date: Wed Apr 7 23:57:50 2021 -0400 Fix size limit commit b2560ce23de50558d2ed4eb157f47d6f25351762 Author: Andrey Sitnik Date: Wed Apr 7 23:51:38 2021 -0400 Fix Node.js 10 on CI commit 03fb2d2fc8b4c692e006f792333950409cbc5264 Author: Andrey Sitnik Date: Wed Apr 7 23:49:20 2021 -0400 Fix test commit d2179f2b49b2ba57d758f9cbf79aaac36df13af1 Author: Andrey Sitnik Date: Wed Apr 7 23:45:59 2021 -0400 Update dependencies commit 96a132b949a78481a20ca81212b3e433646560dd Author: Andrey Sitnik Date: Thu Mar 11 19:19:14 2021 -0500 Move from husky to simple-git-hooks commit 5d7cbab5621f3833ce73f9b65ab252c39848c911 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Mar 8 20:13:31 2021 -0500 Bump elliptic from 6.5.3 to 6.5.4 (#586) Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit a80e2afe560ce0d4f64fcda7008817a794467798 Author: Aron Griffis Date: Mon Feb 22 09:44:45 2021 -0500 Fix link for Firefox ESR in README (#585) commit be15761f54be759ae73dd54e38df5090eedcd276 Author: Alisson Reinaldo Silva Date: Tue Feb 16 22:06:08 2021 -0300 Fixed "not ie <= 8" definition. (#584) commit 8159fe0c22a733c2a1cff1cd360e9b8689c58336 Author: Yash Singh Date: Fri Feb 5 12:12:52 2021 -0800 Fixed typos (#581) commit be977110d21979c10745f1082eb7dae06c173a2c Author: Andrey Sitnik Date: Sun Jan 31 16:07:42 2021 -0500 Use actions/setup-node v2 commit 1717acf7679b8b6f43c86a36e08c02bdc8133ba9 Author: Andrey Sitnik Date: Sun Jan 31 15:10:14 2021 -0500 Release 4.16.3 version commit ea7cc04d9a9125d30623ae1787b17becdde73d67 Author: Andrey Sitnik Date: Sun Jan 31 15:08:05 2021 -0500 Try fox fix tests commit feb21b00f3154177faa6b27136dc48fced642879 Author: Andrey Sitnik Date: Sun Jan 31 15:01:38 2021 -0500 Release 4.16.2 version commit 1d83b5e5804b5a997df910a0c461cfc8c2ce6ada Author: Andrey Sitnik Date: Sun Jan 31 14:57:01 2021 -0500 Clean up code commit 415c70bbcd434aaceaa8c004e51c274f2c68895d Author: Andrey Sitnik Date: Sun Jan 31 14:56:55 2021 -0500 Update dependencies commit 1cb0c2c4aff90848224299b7555ebb4cb5c9807a Author: i alarmed alien Date: Sun Jan 31 11:55:40 2021 -0800 Bail early if caniuse-lite is up to date (#562) * Bail out early from update-db script if the version of caniuse-lite is up to date * Show "up to date" message in bold green text. * Adding yarn test for skipping caniuse-lite update if the current version is the latest * Rewriting update-db.js to check more intelligently for different versions of caniuse-lite commit be0340d42661366eae68933ae75fb998fa3052bd Author: Andrey Sitnik Date: Tue Jan 5 20:45:16 2021 -0500 Release 4.16.1 version commit 4c499e0e7e219dc1045a1c47c0d47f8407ad9620 Author: Andrey Sitnik Date: Tue Jan 5 20:44:57 2021 -0500 Update dependendencies commit 7456a0e88e387a49abfc52a93c16ebd81b71bee3 Author: Aron Woost Date: Wed Jan 6 02:42:48 2021 +0100 Fix chrome:4 issue when using --mobile-to-desktop (#572) * Create failing test for and_chr/mobileToDesktop issue * Apply fix commit 3c3490d9e7356d17d0c34968db5b904e7a9e01f9 Author: Andrey Sitnik Date: Tue Jan 5 02:10:57 2021 -0500 Remove dangerousExtend option since it is rare case and could confuse users commit 8f9593ba953bd6b83287c832fc9fe2c38a8c86e7 Author: Andrey Sitnik Date: Mon Jan 4 17:31:41 2021 -0500 Update dependencies commit c7ef1d749f0e23f3a2195c68b83452242cf98582 Author: Andrey Sitnik Date: Tue Dec 15 17:08:49 2020 -0500 Improve `browserslist config` query docs commit db5694de8a93418aac7b6be20a16dc3df05ece10 Author: Andrey Sitnik Date: Thu Dec 10 04:10:46 2020 -0500 Release 4.16 version commit 91b74a0055e3b1d928f275bfcd8489714aca8bf8 Author: Andrey Sitnik Date: Thu Dec 10 03:55:40 2020 -0500 Add `browserslist config` query commit 7207ba6e7cc20974582a4b440873591e6150d3be Author: Andrey Sitnik Date: Thu Dec 10 03:34:11 2020 -0500 Update dependencies commit 9bb3deed652ce74bdbd0c6150c68e8b80c211b9a Author: Andrey Sitnik Date: Mon Dec 7 08:53:03 2020 -0500 Fix text editors section commit aa72770f578b3b8970b4908e051b616bed31f903 Author: Anton Date: Mon Dec 7 16:37:05 2020 +0300 docs: sub tools syntax highlighting section (#568) fixes #1 commit 37feb7b24368c3193712429cbd31683236c3499f Author: Andrey Sitnik Date: Tue Dec 1 18:39:41 2020 -0500 Release 4.15 version commit 6bdec46abb62669e16217ccd88b770a7e7686954 Author: Andrey Sitnik Date: Tue Dec 1 18:28:43 2020 -0500 Update dependencies commit cce357301739558541ea7fd0836dd40de7b30399 Author: Andrey Sitnik Date: Tue Dec 1 18:25:35 2020 -0500 CLean up types commit 6013a9c3840d71ca832865c1cb6ffa40a0b03262 Author: Andrey Sitnik Date: Tue Dec 1 18:19:37 2020 -0500 Remove Travis CI config commit d0071e0e4d7468bcb25f114d46a9a08680dde139 Author: Dmitry Semigradsky Date: Wed Dec 2 02:19:07 2020 +0300 Add types (#544) commit 6dc78040801646fdf9745ec956673766a0e08105 Author: Dmitry Semigradsky Date: Wed Dec 2 02:19:07 2020 +0300 Add types (#544) commit 30c3733b3fe504ce1cb2c6d170f76db6526b2686 Author: Andrey Sitnik Date: Mon Nov 30 23:52:33 2020 -0500 Improve docs commit a925c95b16866ddaa4ce72f0cbb6934ca0923419 Author: Andrey Sitnik Date: Fri Nov 27 16:20:29 2020 -0500 Fix link commit a3a512224efb84c0e094b00db8592429e9266e52 Author: webben <34203719+wspwebben@users.noreply.github.com> Date: Sat Nov 28 04:19:08 2020 +0700 Add syntax highlight extension link to the docs (#561) * Add syntax higlight extension link to the docs * Move extension info to the tools section * Return removed line commit 83a121a7dbae061bc5397d641afcc616d89ef05f Author: Rodolphe Date: Fri Nov 27 18:05:24 2020 +0100 Fix typo caiuse-lite is caniuse-lite (#563) commit 1fd3d386639ba5bbc486822dc860faad58d868c4 Author: Andrey Sitnik Date: Mon Nov 9 13:01:46 2020 -0500 Release 4.14.7 version commit d8845bb1130212113429f2a57e271e12aa996d39 Author: Andrey Sitnik Date: Mon Nov 9 11:24:51 2020 -0500 Update dependencies commit 0429124b3dc36a5c95728b79e390f12b0fe16d81 Author: Andrey Sitnik Date: Mon Nov 9 11:16:50 2020 -0500 Speed up Node.js 8 test commit a16f009f02468301260f058f88a736b49dcdff99 Author: Andrey Sitnik Date: Mon Nov 9 11:14:50 2020 -0500 Add color output commit 524223fad6c298e90441cbbaab8c814b23ef0d56 Author: Andrey Sitnik Date: Sun Nov 8 18:48:40 2020 -0500 Fix tests commit b8dda90de371281202c0d2b343e540df776ac057 Author: Aleksandr Date: Mon Nov 9 02:45:01 2020 +0300 Implement target browser changes (#554) * Implement target browser changes * Remove flatMap * Improve target browser changes test * Apply suggestions from code review Co-authored-by: Andrey Sitnik * Remove sorting of browsers diff cause we don't need it It was needed for tests only, and now test is relaxed. * Improve browsers diffing Take into consideration that not only version could change but browsers themselves, e.g. new one can be added ore removed. Co-authored-by: Andrey Sitnik commit 1ec02d9b97208b41cf2e546fe18e92b0ae3a0539 Author: Fausto Núñez Alberro Date: Mon Nov 9 00:41:11 2020 +0100 Add --ignore-workspace-root-check to yarn add and remove commands in update-db (#553) https://github.com/browserslist/browserslist/issues/552 Otherwise update-db.js doesn't work in yarn workspaces. commit ab1ce05d27310479ed307770bcbb0713d681fbfd Author: Andrey Sitnik Date: Sun Nov 8 07:04:57 2020 -0500 Try to fix pnpm tests on CI commit 069c4c65d14468b170000da16eca14cc3c917091 Author: Andrey Sitnik Date: Sun Nov 8 07:02:29 2020 -0500 Move from Travis CI to GitHub Actions commit 013030e39b27cafa88b7668a160de8b7653a8c61 Author: Andrey Sitnik Date: Sun Nov 8 06:59:48 2020 -0500 Use OpenCollective in package.funding commit f4ced6ef84def730481511861eef8e693740f5e5 Author: Andrey Sitnik Date: Sun Nov 8 06:55:20 2020 -0500 Update dependencies commit 5a79e6f689e834e9d18b818604de3bc007c93e68 Author: Andrey Sitnik Date: Sun Nov 1 10:11:36 2020 -0500 Release 4.14.6 version commit c0610d839e876df75d2e52649f27e3c316fd67f7 Author: Ivan Storck Date: Sun Nov 1 07:07:44 2020 -0800 use yarn info if necessary (#547) * use yarn info if necessary * use .data attribute of yarn info json commit 3f10be6db1c574ef21473b10931dc5dd2ff32228 Author: Andrey Sitnik Date: Sun Nov 1 10:02:23 2020 -0500 Fix npm 7 support commit c2d1dbfd7ea489faaaf756fad54c312dc4b1ed3f Author: Andrey Sitnik Date: Sun Nov 1 09:30:31 2020 -0500 Sort dependencies commit a4097901aa64dd0619fb39703bf2561c6cba664c Author: Andrey Sitnik Date: Sun Nov 1 09:27:25 2020 -0500 Fix package.bin commit 0970a66e5dd83e1008b8534ea1136cb78258db36 Author: Andrey Sitnik Date: Sun Nov 1 07:55:47 2020 -0500 Update dependencies commit 7695b83a7ecaaf7499e029631feba1122a3b3c3f Author: Andrey Sitnik Date: Sun Nov 1 07:54:23 2020 -0500 Add Node.js 15 to CI commit ac777cdcd80bb1c791259c2b12d03de3ebd14647 Author: Andrey Sitnik Date: Thu Sep 24 20:10:55 2020 -0400 Release 4.14.5 version commit 5efbe6892086ed68db1c91e4ed819ea52667d307 Author: Andrey Sitnik Date: Thu Sep 24 20:08:02 2020 -0400 Update dependencies commit e08a965c371ae0fe7d4dcbcc559a90d2390b8c10 Author: Sergey Melyukov Date: Fri Sep 25 03:06:56 2020 +0300 (fix): last N electron version[s] (#538) commit 091a6f29a46f8c5084243bf4b730770dc0898ffa Author: Andrey Sitnik Date: Tue Sep 22 15:10:01 2020 -0400 Release 4.14.4 version commit 2c3f2162ff5adf453cf4301f29d96a9733124f76 Author: Andrey Sitnik Date: Tue Sep 22 15:09:16 2020 -0400 Fix Unknown version 59 of op_mob error commit 0ffe67bb61b3a543ede92e8135101b094f32bd33 Author: Andrey Sitnik Date: Tue Sep 22 14:41:37 2020 -0400 Update dependencies commit 38689b4005153bcaf36c884859b36010a7312aff Author: Andrey Sitnik Date: Thu Sep 17 11:35:03 2020 -0400 Release 4.14.3 version commit c04253e70fbcdb0296ca6f85c0b9fe23a0a91586 Author: Andrey Sitnik Date: Thu Sep 17 11:31:57 2020 -0400 Update dependencies commit e01a5ac835cc35cbe5b52677f5747e57d000383e Author: Andrey Sitnik Date: Thu Sep 17 11:29:29 2020 -0400 Remove Firefox 68 from ESR commit bbc60ee16f24aba0ce0e5d4fcc9085534cbeadd9 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat Sep 12 12:33:38 2020 -0400 Bump node-fetch from 2.6.0 to 2.6.1 (#533) Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1. - [Release notes](https://github.com/bitinn/node-fetch/releases) - [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md) - [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit abdf13fde9baa2dd18ea6c710e78c93fdbb66e8e Author: Andrey Sitnik Date: Wed Sep 9 14:47:28 2020 -0400 Release 4.14.2 version commit 9143a422ef06f0c3f27621b0e3169de21be06bbd Author: Andrey Sitnik Date: Wed Sep 9 14:45:58 2020 -0400 Improve --update-db output commit 5781779dc015ca5b9dd7be7d3dbacfc19e41a682 Author: Andrey Sitnik Date: Wed Sep 9 14:34:37 2020 -0400 Update dependencis commit 23a81163b289f137ed6e13dfc9e1d5d6478f5591 Author: James Ross Date: Wed Sep 9 19:33:34 2020 +0100 Allow Windows line endings in yarn.lock (#532) Fixes #531 commit 4ad95edbee7397a04a8e91698cd3e85301cd9b4f Author: Peter Thaleikis Date: Tue Sep 8 22:04:26 2020 +0400 MINOR: fixing typo in function name (#530) commit 3b377f7133a5db75d8215940f816e0f261d49612 Author: Andrey Sitnik Date: Fri Sep 4 16:21:26 2020 -0400 Release 4.14.1 version commit ccc82f12d1a558b7412912d320b79868d07550e5 Author: Andrey Sitnik Date: Fri Sep 4 16:21:14 2020 -0400 Fix test commit 7faaad5e68eb6c28139f902313a9a600d895cc48 Author: Andrey Sitnik Date: Fri Sep 4 16:17:25 2020 -0400 Update dependencies commit 7b79fd0a5164b2b871db0dd75427ea2f93963ac8 Author: Andrey Sitnik Date: Fri Sep 4 16:16:48 2020 -0400 Update docs commit 694bb0abcdafe77e137158e6b2d963a22abb37ff Author: Justin Zelinsky Date: Fri Sep 4 16:00:03 2020 -0400 Update documentation and warning message for update-db script (#526) commit 0b68aab4bf520539c396c5a423bc7208fc5dd78c Author: Andrey Sitnik Date: Thu Aug 6 16:25:02 2020 -0700 Typo commit 7fc6b7e8af031f4ea589780e85ccd12ddf50e0a7 Author: Andrey Sitnik Date: Thu Aug 6 16:24:42 2020 -0700 Improve docs commit 9f9bd2793a3c976c50121e13d19e9610399bb912 Author: Andrey Sitnik Date: Thu Aug 6 16:12:17 2020 -0700 Release 4.14 version commit 18acc61ec1613e50e1facff8439f96ff6594dda9 Author: Andrey Sitnik Date: Thu Aug 6 16:10:50 2020 -0700 Fix code style commit fdce863c41af7ac3d713774c9ac08f46d9b52951 Author: Andrey Sitnik Date: Thu Aug 6 16:05:57 2020 -0700 Fix docs commit 900b7a17275260867a736cbac5a1b2330428740a Author: Andrey Sitnik Date: Thu Aug 6 16:04:58 2020 -0700 Update dependencies commit 496b25a3ebc2f00a63f5ec165530b085468ec9e8 Author: Timo Mayer Date: Fri Aug 7 01:04:49 2020 +0200 feat: add BROWSERSLIST_DANGEROUSEXTEND env var (#517) * feat: add env var for BROWSERSLIST_DANGEROUSEXTEND * chore: update readme add BROWSERSLIST_DANGEROUSEXTEND feature to readme * fix: cleanup readme * Update README.md Co-authored-by: Andrey Sitnik * Fix: update env var name Co-authored-by: Andrey Sitnik * Update node.js Co-authored-by: Andrey Sitnik * chore: add test for BROWSERSLIST_DANGEROUS_EXTEND * fix: nit * chore: cleanup readme * fix: dangerousextend check logic Co-authored-by: Andrey Sitnik commit 854036e63dfb08b7d0735620f0d07bc9dbdcfa96 Author: Andrey Sitnik Date: Thu Jul 16 12:09:34 2020 -0700 Update dependencies commit 1768c4e0fdba8f5b3cf3dd62891b812f56879bbe Author: Andrey Sitnik Date: Tue Jul 7 17:24:03 2020 -0700 Clean up docs commit 776aa376feb8b0f7fd20d0bd6a7c49a67297eee4 Author: Andrey Sitnik Date: Mon Jul 6 14:26:13 2020 -0700 Clear text commit 5a4ce99f99548c6cf608e16767d9d791b92bfa48 Author: Szymon Nowicki Date: Mon Jul 6 23:23:37 2020 +0200 Add explanation of and/or combinations in a human language. (#499) * Add explanation of and/or combinations in a human language. * Change explanation of and/or combinations to a pseudocode. Co-authored-by: Szymon Nowicki commit 822b77eb602a406f3fddb82f42054f2d8486b922 Author: Andrey Sitnik Date: Sat Jul 4 18:02:32 2020 -0700 Improve supports example commit 9c96c87c27bf203dce093dcb90631fc40578b739 Author: Andrey Sitnik Date: Sat Jul 4 17:58:00 2020 -0700 Release 4.13 version commit 90d3b3590fd05e54b8c0da3411ae37c8567a00ba Author: Andrey Sitnik Date: Sat Jul 4 17:57:34 2020 -0700 Downgrade Jest commit 5cca6e53d0e8bedcbf8edd1e1146485ff85e9f24 Author: Andrey Sitnik Date: Sat Jul 4 17:54:05 2020 -0700 Update dependencies commit f3a58e247a68bba5bb4e1b85b5444a344e45ced9 Author: Andrey Sitnik Date: Sat Jul 4 17:49:39 2020 -0700 Organize queries commit 16482d66133cce530cc1eb4b94ec19a869ff89dc Author: Jesús Leganés-Combarro Date: Sun Jul 5 02:38:33 2020 +0200 Add support for features selection (#501) * Replace `jest` devDependency for recommended `jest-cli` (fix tests running) * Add support for features selection (is it really so simple?) Fix #407 #491 * Add implementations for `loadFeature()` (they were mocked) * Used `supports` instead of `feature` & improved documentation * Non strict checking of feature support * Rename `browserslist.usage` to `browserslist.cache` & improved feats filter * [loadFeature] Renamed `usage` to `features` & simplified code complexity * Improved docs of features detection * Re-word exception due to lack of `supports queries` in client-side build * Allow dashes in features names * Fix typo in `README.md` commit 0846ee2d55a7dcd7dee6d32fb6c49109f0e4214f Author: Andrey Sitnik Date: Thu Jul 2 12:45:59 2020 -0700 Improve changelog commit f53bf14938d766f1984d8ec47b787027dceb1d4f Author: Jesús Leganés-Combarro Date: Wed Jul 1 10:01:10 2020 +0200 Fix typo (#502) commit 231f26008ee06f5af78159dcdc3b29ddde9e1a61 Author: Andrey Sitnik Date: Fri Jun 26 13:20:03 2020 -0400 Release 4.12.2 version commit 1c5b42f23f05f594289a949899152d5ed0a799cd Author: Andrey Sitnik Date: Fri Jun 26 13:18:57 2020 -0400 Update dependencies commit d5eb54a82477a45d56073599740eb46e64a81214 Author: Andrey Sitnik Date: Fri Jun 26 13:15:36 2020 -0400 Update Firefox ESR commit 0931098e6fced4c051b3d28577d32053829f8774 Author: Andrey Sitnik Date: Wed Jun 24 13:20:47 2020 -0400 Release 4.12.1 version commit b802e4213a34baa6c07c13847caaaff102b5ce27 Author: Andrey Sitnik Date: Wed Jun 24 13:18:18 2020 -0400 Update dependencies commit c438b43fe22b62e0580b4c2145281842e7882438 Author: Andrey Sitnik Date: Tue Jun 23 19:43:51 2020 -0400 Clean up code commit 8000c667094269dd968f683d0339248785e30ea3 Author: Andrey Sitnik Date: Tue Jun 23 19:39:12 2020 -0400 Limit Node.js to fix ESM bug commit 7144c18c1e368e2c1fb5002b370f264d569f1a0e Author: Luke Edwards Date: Tue Jun 23 16:38:23 2020 -0700 chore: simplify `package.json` searcher (#497) * chore: replace pkg-up * chore: update pkg search * chore: bump escalade * fix: flatten fixture tmpdir * fix: address feedback commit 70e04f835e14f753d50bafd0809a8c57b360fdd0 Author: Mukundan Senthil Date: Sun Apr 26 21:23:47 2020 +0530 Remove trailing comma (#481) commit 104d5646eae7b862262d4db9642fc57bbfacbbf8 Author: Andrey Sitnik Date: Mon Apr 20 17:43:58 2020 -0400 Release 4.12 version commit 0009a89c31d64af5107e95004a96c81772af52af Author: Thomas Pozzo di Borgo Date: Mon Apr 20 22:44:05 2020 +0200 Add some details on combiners for documentation (#478) * Add some details on combiners for documentation * fix typo - line length commit 3ec87f46ac5db3011ab503384e4d03801ac23358 Author: Andrey Sitnik Date: Mon Apr 20 16:00:32 2020 -0400 Tell about enironments in shared configs commit 2c4d2d85d3bc6a05cef7a5d09a2d757891354d6a Author: Andrey Sitnik Date: Mon Apr 20 15:53:16 2020 -0400 Fix if commit 09e5e2db6fa48f3df7eb348ba7abaf33da9e659d Author: Andrey Sitnik Date: Mon Apr 20 15:49:40 2020 -0400 Do not run pnmp test only on Node.js 8 commit 5f31b6cb36ed218304f83b943dc5073fd00c98a7 Author: Andrey Sitnik Date: Mon Apr 20 15:48:02 2020 -0400 Do not run pnpm test on Node.js 8 commit af1e510cd2cef4a7530f90e7f95b9d3680ad9905 Author: Andrey Sitnik Date: Mon Apr 20 15:43:35 2020 -0400 Update dependencies commit 8c9bc65efee3cdaa6395c8364d1176b963375641 Author: Andrey Sitnik Date: Mon Apr 20 15:37:59 2020 -0400 Clean up code commit c1a536419c7eff54e52c73cdaeab58165d3be4b2 Author: Yevgeny Petukhov Date: Mon Apr 20 22:34:59 2020 +0300 ✨ shareable: env support (#474) * ✨ shareable: env support Resolves: #300 * ♻️ sharable env: check typeof instead constructor * ✅ sharable env: test for initial defaults * ✅ shareable env: more stable tests * ✅ sharaable env: test for nullable config commit 9c094bc3cf2dd70a5dd0f66b3b320797561e132d Author: Dmitry Statsenko Date: Mon Apr 20 05:49:16 2020 +0400 (md) fix: readme dead IE_Mob 11 (#477) commit 77082f0bd054176a664dea03a6d879cbdc8e6210 Author: Andrey Sitnik Date: Wed Apr 8 17:39:52 2020 -0400 Fix TOC commit 29e6af9da28c63c0cbe4c5ae164df0cc61a9ca2b Author: Blaine Bublitz Date: Wed Apr 8 15:36:37 2020 -0600 Add Tidelift enterprise language (#467) commit 240f8ca61fad45c05428a3b3a4b9190d3e6db6b5 Author: Andrey Sitnik Date: Mon Mar 30 16:32:22 2020 -0400 Increase test timeout commit 9383e93d060c28167a3773cecc49bc42eb5e5f5d Author: Andrey Sitnik Date: Mon Mar 30 16:27:20 2020 -0400 Release 4.11.1 version commit da06ccb0a1865242a9d037644a999fad7667a066 Author: Andrey Sitnik Date: Mon Mar 30 16:26:43 2020 -0400 Downgrade pkg-up for Node.js 6 support commit b8023a49cfe4fd0f507d800d5b612c1a479713e4 Author: Andrey Sitnik Date: Mon Mar 30 16:26:14 2020 -0400 Update dependencies commit 2d44c8b028c811a6fb3c1ae0628e6eda34624e88 Author: Andrey Sitnik Date: Sun Mar 29 17:19:16 2020 -0400 Update dependencies commit a86d9b1c8914b73ffa5a42f02050ae8d834b6294 Author: Andrey Sitnik Date: Sun Mar 29 17:09:18 2020 -0400 Allow to not have pnpm to run tests commit 2344b2ca4109135ee1d6dcceed82041d5d1c9494 Author: Andrey Sitnik Date: Mon Mar 23 17:24:05 2020 -0400 Simplify warning commit 5d5159710ca1427ec7a1da34e3533f8d3b050a0d Author: Andrey Sitnik Date: Mon Mar 23 17:17:00 2020 -0400 Use latest Browserslist in --update-db commit 504adbaba2de6dab50a6efdfaebbe4e1f711fcf2 Author: Andrey Sitnik Date: Sun Mar 22 19:41:34 2020 -0400 Release 4.11 version commit f418fc9c13bdc9c4235565fe71278cacb7fd5bbc Author: Andrey Sitnik Date: Sun Mar 22 19:40:10 2020 -0400 Normalize arg name commit 98536b18ec2df4bbc7fa9b906e3b2d62c9029c30 Author: Andrey Sitnik Date: Sun Mar 22 19:38:40 2020 -0400 Remove -m argument alias commit 2a6906827d194c48f7b03589798c35a762c415d3 Author: James Ross Date: Sun Mar 22 23:37:36 2020 +0000 feat: add mobileToDesktop option to CLI (#462) commit eeb2deaf982f425c7b164b7f30eb6b17c0fbbd29 Author: Andrey Sitnik Date: Sun Mar 22 19:37:28 2020 -0400 Update dependencies commit 79ee2a01d5e382c296253f5e188c9d5826b18de3 Author: Andrey Sitnik Date: Wed Mar 18 23:39:33 2020 -0400 Release 4.10 version commit b590c7c60215325302268defb8ffb0025ab90f0f Author: Andrey Sitnik Date: Wed Mar 18 23:38:28 2020 -0400 Clean up CLI help commit 9ad30cf57c26e39f2582dea86b1aefaf58f85edf Author: Andrey Sitnik Date: Wed Mar 18 23:36:12 2020 -0400 Clean up --update-db tests commit 6b129e3fffc08fe13c1ed5245e53b126f614d010 Author: Andrey Sitnik Date: Wed Mar 18 23:20:14 2020 -0400 Fix pnpm update commit 99da1ba7da333424695191fed406901107ea941b Author: Andrey Sitnik Date: Wed Mar 18 23:18:37 2020 -0400 Improve output tests commit c25dc64727fc7633e3d006b2faaf906e0497ac36 Author: Andrey Sitnik Date: Wed Mar 18 23:09:16 2020 -0400 Fix Node.js 8 at CI commit 4171d01efa0266ca2b7c7d8322887d5b725fa736 Author: Andrey Sitnik Date: Wed Mar 18 23:06:43 2020 -0400 Fix pnpm install script for CI commit 0a3ab8664173ae094a8c9bdec13249923be736df Author: Andrey Sitnik Date: Wed Mar 18 23:01:35 2020 -0400 Try to fix yarn to install global commit 6de85137a3ce60e9427e7d8ed83fd376002daab8 Author: Andrey Sitnik Date: Wed Mar 18 22:58:39 2020 -0400 Try to fix pnpm support commit 9ae9227367c4f229fb8ad0fdfcb4b0c42e1037fd Author: Andrey Sitnik Date: Wed Mar 18 22:52:28 2020 -0400 Try to fix CI commit 4561ef26e9e245a8d87054814d492406c386fbc7 Author: Andrey Sitnik Date: Wed Mar 18 22:48:03 2020 -0400 Fix warning commit 29e0bcb4aeb0d80673e75fcd964e0e6b59281449 Author: Andrey Sitnik Date: Wed Mar 18 22:44:45 2020 -0400 Clean up code commit e52a2a23f742e21f863eddc5fffe030eead5ae74 Author: Andrey Sitnik Date: Wed Mar 18 21:16:28 2020 -0400 Remove JSDoc spelling check commit 034fd7c33ac218c5af12f2ae994a747242c033d9 Author: Ivan Solovev Date: Thu Mar 19 04:24:07 2020 +0300 Add the --update-db flag (#455) * Add the --update-db flag * Clean up code * Clean up code * Fix checking package name * Remove constant 'unknown version' * Clean up code * Clean up code * Fix yarn * Fix yarn regexp * Fix pnpm * Clean up getCurrentVersion * Fix changing version for Npm * Add a check for the existence of package.json * Rename updater * Fix print for current version * Clean up getCurrentVersion function * Clean up code for updating Yarn * Clean up code for getCurrentVersion * Clean up updateLockfile * Clean up updateLockfile for Pnpm * Fix parsing lockfile for Npm * Add tests * Clean up getCurrentVersion * Fix error message * Inline package name * Clean up test * Fix fixtures for tests Co-authored-by: Andrey Sitnik commit 7d90bb2b082bb2d6f1dd4443a224408d81d87878 Author: Gustav Pursche Date: Sun Mar 8 13:28:28 2020 +0100 Docs: fix typo in README (#459) commit 5fc2e8ddc84c9fa4f54037084c982aad89f18b8c Author: Andrey Sitnik Date: Fri Feb 28 19:39:54 2020 -0500 Release 4.9.1 version commit 4efc7ee7c546db8c97daa9e40de7f4d16048ed13 Author: Andrey Sitnik Date: Fri Feb 28 19:37:00 2020 -0500 Update dependencies commit 94be1181a5e494d6e0f373877a0bf4d847cd616c Author: Huáng Jùnliàng Date: Fri Feb 28 19:35:20 2020 -0500 Workaround incorrect caniuse regional data (#458) * fix: workaround incorrect caniuse regional data * refactor: remove uneccessary guards commit ca7910d38d34e41221ccf1ee21f9abd5378843e2 Author: Andrey Sitnik Date: Wed Feb 26 18:03:56 2020 -0500 Release 4.9 version commit 2e7742ad43e3a38fc83f31b98eec8ad455c35a6c Author: Andrey Sitnik Date: Wed Feb 26 18:02:56 2020 -0500 Add jest-ci commit d3e2776bc927cd52d8ddd2c9e2ab3715ac2ec70c Author: Andrey Sitnik Date: Wed Feb 26 18:00:37 2020 -0500 Update dependencies commit 2d2979b2e1b5b3e2d7f0bc84b96e4e84ab6c109b Author: Yuping Zuo Date: Thu Feb 27 06:40:08 2020 +0800 feat: add support of range syntax for node (#454) * test: add tests of range syntax for node * feat: add support of range syntax for node * docs: add copyright information * test: improve test coverage of error handling for node commit fb4f98a07225aea811225b0dce11355684875cd0 Author: Andrew Leedham Date: Mon Feb 17 14:50:12 2020 +0000 docs(readme): add adobe-analytics tool (#451) browserslist-adove-analytics is a tool I created that allows you to automate the generation of `browserslist_stats.json` files from Adobe Analytics data either via a Node API or the CLI. Thought it would be useful to include here for anyone that uses Adobe Analytics and wants to use its data similarly to browserslist-ga and browserslist-ga-export. commit 7edf04e802e1fbd3e911fc37d9bd6221ecf26a00 Author: Andrey Sitnik Date: Thu Feb 13 10:51:55 2020 -0500 Release 4.8.7 version commit 67010b1d459c22c9091272478f08362fb9291b04 Author: Andrey Sitnik Date: Thu Feb 13 10:47:18 2020 -0500 Update dependencies commit f941818df09f80590e9e279c95e2ded217a00764 Author: Valera Trubachev Date: Thu Feb 13 09:44:06 2020 -0600 fix last N major versions with non-sequential version numbers (#448) commit d0df9c99a3216019f8dfae12ad22e8436f58dd2d Author: Andrey Sitnik Date: Wed Jan 29 16:40:07 2020 -0800 Release 4.8.6 version commit 12f13cead7bd102b98036a3bb0f925d8f85c0b06 Author: Andrey Sitnik Date: Wed Jan 29 16:37:59 2020 -0800 Update dependencies commit 5120163ae7f874ff8a15649dcb6f2c99e116e276 Author: Andrey Sitnik Date: Wed Jan 29 16:35:33 2020 -0800 FIx unknown 10 version of op_mini issue commit e8e18ab817e100e6d79bfcb3ddd06463cb8e2c88 Author: Mike Date: Thu Jan 23 20:41:08 2020 -0700 Some grammar fixes (#442) commit d5eb9d8f774219df93b9c34d44b0b00d0edc32bf Author: Andrey Sitnik Date: Tue Jan 21 12:48:19 2020 -0800 Release 4.8.5 version commit fa39753230820a4da2580f07e419bf54c574398c Author: Andrey Sitnik Date: Tue Jan 21 12:46:49 2020 -0800 Update dependencies commit 83ae91037b0c161ab2d7eca1c150422fd66dbef0 Author: Andrey Sitnik Date: Tue Jan 21 12:46:43 2020 -0800 Make tests more stable commit ae3fa84c37a7dd8a443757d24741e7948f0a0e24 Author: Andrey Sitnik Date: Tue Jan 21 12:42:19 2020 -0800 Improve tests commit 7b245279a4b041956461d8f4c47ea0cca618012e Author: Eli Gao Date: Wed Jan 22 04:39:29 2020 +0800 Revert "Fix released browsers versions" (#438) This reverts commit 1e61852c55a31c83520392a61e3d2ad7d6cd0e8c. commit 91e051b0ba75b695d74adc705d92af923c4c3442 Author: Andrey Sitnik Date: Mon Jan 20 15:34:09 2020 -0800 Release 4.8.4 version commit 442bcb8e17095becca436628c4afaf761d251196 Author: Andrey Sitnik Date: Mon Jan 20 15:27:48 2020 -0800 Fix released browsers versions commit e8d43ac967f3c3b68bf95d256a1f43b175774055 Author: Andrey Sitnik Date: Mon Jan 20 15:21:28 2020 -0800 Update dependencies commit c0902ad05f1b235c162f7d786ff528ff8a4e5e23 Author: Andrey Sitnik Date: Mon Jan 20 15:19:59 2020 -0800 Add IE 11 to dead browsers commit 331cc6a322d25d9092240fec4b4fc8a185407959 Author: Andrey Sitnik Date: Sun Jan 19 13:10:25 2020 -0800 Fix CI commit cfc211526a1b63ff229c0702918efccab92cf989 Author: Andrey Sitnik Date: Sun Jan 19 13:07:41 2020 -0800 Update dependencies commit c238b77143ebdff3de099737e4cda4129444c1a7 Author: Andrey Sitnik Date: Thu Jan 2 20:13:48 2020 -0800 Release 4.8.3 version commit 1c371ae745c15c43b16ea353159364cbb9e628ca Author: Andrey Sitnik Date: Thu Jan 2 20:12:10 2020 -0800 Update dependencies commit de4ee5b44d03f25b24bbcb24e5bf0cf02b26e8d5 Author: Anton Ivanov Date: Thu Jan 2 16:39:01 2020 +0800 fix: grammar in "please run next command" (#433) commit 123c7005d798a96eada8b6e7de6aaeca9b2af2b9 Author: Andrey Sitnik Date: Mon Dec 9 16:07:25 2019 -0500 Update dependencies commit 7c94c790a4efe1b703478d0d3632b3a08481a367 Author: Andrey Sitnik Date: Mon Dec 9 16:06:37 2019 -0500 Add website to docs commit 46cbca397f1f5ab9bf0330e38510ef7bfae52a64 Author: Andrey Sitnik Date: Thu Dec 5 10:13:06 2019 -0500 Release 4.8.2 version commit 8d68488ba7671e4be0e65ebc2b3db5ba2d2af751 Author: Huáng Jùnliàng Date: Thu Dec 5 10:10:10 2019 -0500 fix: defaults query should respect options (#430) commit bc86380eaf97b970c3e31b8198174f81076941b7 Author: Antoine Clausse Date: Thu Dec 5 16:09:55 2019 +0100 Fix typo releaseData -> releaseDate (#429) commit b7253c846ab2fe0494220af019c4687859966ccf Author: Andrey Sitnik Date: Thu Dec 5 05:57:21 2019 -0500 Release 4.8.1 version commit 5e8d205611c4fba0a4c2e25acdd4196afea82259 Author: Andrey Sitnik Date: Thu Dec 5 05:53:41 2019 -0500 Clean up code commit 3a9c0efe3dd45b2e6437bc1734abfa6f0c06b3f3 Author: Huáng Jùnliàng Date: Thu Dec 5 05:47:29 2019 -0500 Fix android queries (#428) * fix: use chrome>=37 data for android * fix browser sorting * refactor: tune android browser versions regex * chore: refine testcase * add testcase * address review comments * oops commit a49c18f11eeaa54484ed0b7ba2ce4fd085309d76 Author: Andrey Sitnik Date: Thu Dec 5 05:46:28 2019 -0500 Update dependencies commit 54ea6cd5d193c3bacba083d6a8193a54598cc403 Author: Huáng Jùnliàng Date: Wed Dec 4 05:46:25 2019 -0500 Support range queries when mobileToDesktop is true (#427) * refactor mobileToDesktop * add more mobileToDesktop testcase * remove unused context from normalizeVersion call commit a78c633a841993c67beebcae4e947695868ee2ba Author: Huáng Jùnliàng Date: Sun Dec 1 12:54:18 2019 -0500 chore: exclude IE_Mob 11 on readme examples (#426) commit d967f7a1c8ad201f698bd6d5c59bd9c33c052844 Author: Andrey Sitnik Date: Sat Nov 30 09:45:36 2019 -0500 Mention caniuse-lite in docs commit 4952a008b5fb0277c541eda761e7d0a460c6e1b8 Author: Andrey Sitnik Date: Sat Nov 30 09:31:23 2019 -0500 Release 4.8 version commit fbc64d2de98de76bcbffa97008de12fa8e135060 Author: Andrey Sitnik Date: Sat Nov 30 09:29:15 2019 -0500 Update dependencies commit 87400f24e9a5d4285b7327e537103e390d38a68e Author: Andrey Sitnik Date: Sat Nov 30 09:28:55 2019 -0500 Clean up RegExps commit af9d90c8c64bdb25d3ca0b45b8bc43dec683200b Author: Andrey Sitnik Date: Sat Nov 30 09:27:33 2019 -0500 Normalize code commit 7080a616b35f5bc91a66794bd28b06008e5a744b Author: Andrew Leedham Date: Sat Nov 30 14:21:40 2019 +0000 Add shareable stats rule (#424) * Add shareable stats rule * Add shareable stats tests * Add shareable stats to README * Update testing for better coverage commit ce52144904adf1e912e5e2c0d33f2e671fb56f18 Author: Andrey Sitnik Date: Sat Nov 30 08:02:16 2019 -0500 Fix 80 column limit commit c34a37ffec87bb05a985167e35bca46d686ec8e0 Author: Danny van Kooten Date: Sat Nov 30 14:00:45 2019 +0100 change most prominent example to be more like listed best practice (#425) * change most prominent example to be more like listed best practice * change main example to defaults and rewrite best practices to explain why to combine last N versions with a usage number * re-add maintained node versions to main example * change main example to inherit from defaults and showcase some other useful settings commit 97c6a8cb4da30bee5783ee61d798ccab52f8b63a Author: Andrey Sitnik Date: Mon Nov 18 17:34:17 2019 -0500 Release 4.7.3 version commit f688ad79e2a1bfa809cfa2f01caa2855f101bce9 Author: Andrey Sitnik Date: Mon Nov 18 17:26:39 2019 -0500 Update dependencies commit 7824e2421e6043c16c2ffe242f9db6376dbfce9a Author: Andrey Sitnik Date: Mon Nov 18 17:26:32 2019 -0500 Clean up tests commit cae59e6cf21a1b7ad690b020be2d8a85dbe85bbd Author: Andrey Sitnik Date: Mon Nov 18 17:18:20 2019 -0500 Add Tidelift funding commit fab4fd3fe32fb057ba09d18720aefdede2ce5432 Author: Andrey Sitnik Date: Thu Oct 24 16:04:34 2019 +0900 Add extra feature to latest release notes commit 210241f9d337f9fac67daa4789d32917418806db Author: Andrey Sitnik Date: Thu Oct 24 15:53:26 2019 +0900 Add missed changes to change log commit a4769473ed2befc35367af8328073a1f3359476f Author: Andrey Sitnik Date: Thu Oct 24 15:52:01 2019 +0900 Release 4.7.2 version commit df76144e46bf343b36373ac4365c7f690bec8e13 Author: Andrey Sitnik Date: Thu Oct 24 15:51:12 2019 +0900 Update dependencies commit 07751313be19c94a325eb0cb1c42c09dfeeb04ca Author: Andrey Sitnik Date: Tue Oct 22 23:57:47 2019 +0900 Increase size limit commit 579a05f621229697b5101bd52723e761dd1a6883 Author: Andrey Sitnik Date: Tue Oct 22 23:53:53 2019 +0900 Add query resolving cache commit 2a011102433328242bc177ae3d00dd4eb6fbd33c Author: Andrey Sitnik Date: Tue Oct 22 23:49:00 2019 +0900 Fix syntax commit 890cab8aa187da3063bab9edc5cffa94f1106b6e Author: Andrey Sitnik Date: Tue Oct 22 23:43:21 2019 +0900 Clean up syntax commit 5456a510a18d805ff5f8db74812ff7ceb3653301 Author: Andrey Sitnik Date: Tue Oct 22 23:41:29 2019 +0900 Sort after removing dublicates commit 0b4f3abecdaa938c0adf9d466e6ee67f900b77fa Author: Andrey Sitnik Date: Tue Oct 22 23:36:42 2019 +0900 Update dependencies commit 28d3d7cddea2ca028f9f443cbf047daa4a0fe6b6 Author: Andrey Sitnik Date: Tue Oct 22 23:32:01 2019 +0900 Update Firefox ESR versions commit 3c6d84ead5f6357ae8a6066fb59a0989ba51d9e9 Author: Andrey Sitnik Date: Tue Oct 22 23:31:47 2019 +0900 Improve Firefox ESR test commit ca3ec0abcbb4d60212bba19877767722b06f3fcb Author: Kārlis Gaņģis Date: Tue Oct 22 11:49:22 2019 +0300 Look for cached config in each parent folder (#419) commit 0b3bb1af95d4b617bc38f6d1bfebc9e6e3387477 Author: Andrey Sitnik Date: Tue Oct 22 00:12:54 2019 +0900 Remove core-js since it is not loading config commit 184e47bfbc7a9c54f72685881733b1f04377a399 Author: Andrey Sitnik Date: Mon Oct 21 11:43:57 2019 +0900 More direct link to Core JS usage commit 82756cbcab3273e0f7647286194c796f32b56108 Author: Denis Pushkarev Date: Mon Oct 21 09:39:43 2019 +0700 add core-js to the list of Browserslist users (#418) commit 94869dabbc82e1ed51b27ff7342fe79a6ab290c0 Author: Andrey Sitnik Date: Thu Oct 17 22:01:39 2019 +0900 Release 4.7.1 version commit 0c41092cd6ef117f6dcd8f6bcef50c3195ce6ba3 Author: Andrey Sitnik Date: Thu Oct 17 21:58:54 2019 +0900 Update dependencies commit 995e944b2cfab51bdc3be53541acdcde5d1df429 Author: Andrey Sitnik Date: Thu Oct 17 21:57:49 2019 +0900 Update Node.jss versions on Travis CI commit db8c695548086028d44435e87d7e25be121b5866 Author: Andrey Sitnik Date: Thu Oct 17 21:45:13 2019 +0900 Improve caching commit b19a83cb64ea8b21f8c53301c7b5d3a6b4ba42b7 Author: Kristján Oddsson Date: Wed Oct 9 14:08:39 2019 +0100 update `caniuse-lite` package to its latest version (#416) commit 05d7a0db68ac5b4fad90bed189ef07a028d57438 Author: Andrey Sitnik Date: Mon Sep 9 14:12:06 2019 +0800 Add Open Collective commit 6e207279077d8dcbbb8198adcdb7e4e4883853b3 Author: Andrey Sitnik Date: Fri Aug 30 22:07:20 2019 -0400 Release 4.7 version commit 056eee439f8ced482e799f8cae90e75fa40b49ac Author: Andrey Sitnik Date: Fri Aug 30 20:39:54 2019 -0400 Add PhantomJS support commit 489343ca7dab6a1d9853b37253c8b49ee8dba639 Author: Andrey Sitnik Date: Fri Aug 30 19:55:01 2019 -0400 Remove unnecessary script commit a1984fd1ebf293f7468fd92db478fa4929095c2f Author: Andrey Sitnik Date: Fri Aug 30 19:54:32 2019 -0400 Add sharec commit 87550205df643ebe0e04a7fa904ba313d0a91b8a Author: Andrey Sitnik Date: Fri Aug 30 19:53:47 2019 -0400 Remove private JSDoc commit 1aa31e60b96655b99e301a45368a00357ea3de07 Author: Andrey Sitnik Date: Fri Aug 30 19:49:27 2019 -0400 Remove comments commit 5fa631f8e70dab77cb3d7396990ca4762d5b400d Author: Andrey Sitnik Date: Fri Aug 30 19:45:24 2019 -0400 Update dependencies commit 3c626ebeefbee33442155019fac267d03de66ac5 Author: Andrey Sitnik Date: Fri Aug 30 18:43:40 2019 -0400 Move benchmark to test/ dir commit fb1d3660e06e33c48db560fb19fc14fd37f61e70 Author: Andrey Sitnik Date: Tue Aug 27 11:39:57 2019 -0400 Add missed section to TOC commit fc41f7072132c28a73bd7dc8e3afdbb0e37bca2c Author: Dorian Koehring Date: Thu Jul 25 15:39:04 2019 -0700 readme typo (#401) typo commit 66542c7e66a7c7e6fea4960c5f80c3c095f979a8 Author: Andrey Sitnik Date: Mon Jul 22 15:34:36 2019 -0400 Remove oneline demo commit 61e02bb4b1c33eb85846526b2eccf86a2c8107fd Author: Andrey Sitnik Date: Sat Jul 20 14:17:33 2019 -0400 Improve custom statistics text commit 12c9915db295d5c9ed326738dc1d3ef8a8279bea Author: Andrey Sitnik Date: Sat Jul 20 13:50:00 2019 -0400 Update dependencies commit b93f4e7c796553be4fecad0bc338464838c15dd9 Author: Andrey Sitnik Date: Sat Jul 20 13:49:06 2019 -0400 Add new tool commit c17c22f8fad1398c477b0c0bfc57dd7c31bc5d06 Author: Andrey Sitnik Date: Sat Jul 13 20:38:29 2019 -0400 Release 4.6.6 version commit ea5fd520a819a0fc3124b5372f5d469d4066c8fd Author: Andrey Sitnik Date: Sat Jul 13 20:37:52 2019 -0400 Remove Safari from dead browsers commit b987ba9d8f29deeb2d2edacec301ea69f8e5d8aa Author: Andrey Sitnik Date: Sat Jul 13 20:29:06 2019 -0400 Release 4.6.5 version commit 8430da8c1c89b2fcea4d4ed1beb68754a9f8f292 Author: Andrey Sitnik Date: Sat Jul 13 20:28:07 2019 -0400 Update dependencies commit 248436d462fd76c1aefcdde7b01080316af1d0f8 Author: Andrey Sitnik Date: Sat Jul 13 20:27:28 2019 -0400 Add Samsung 4 to dead browsers commit 61f5fa6b9604dd27aba02b0d267c09ed7ce6a0d0 Author: Andrey Sitnik Date: Sat Jul 13 01:28:07 2019 -0400 Update dependencies commit 40cee7c55f8d43888f19ae18f733d65ec7ff40c8 Author: Andrey Sitnik Date: Sat Jul 13 01:25:20 2019 -0400 Remove android all hack commit e238fd6ef181abc757e9495a3827a99f1c164acb Author: Andrey Sitnik Date: Mon Jul 8 11:35:30 2019 -0400 Release 4.6.4 version commit c389560c02598d5b470ba16030d419f6b064eb4d Author: Andrey Sitnik Date: Mon Jul 8 11:35:05 2019 -0400 Fix tests commit dd2885bb8e13c895f664ac3c66845903b81984e1 Author: Andrey Sitnik Date: Mon Jul 8 11:31:01 2019 -0400 Update dependencies commit acf737f881f44c0d725481c893589849db5f1492 Author: Andrey Sitnik Date: Mon Jul 8 11:30:03 2019 -0400 Add Firefox 68 to ESR commit fab31d6f9399e94280448d545abe0cd2638563a8 Author: Andrey Sitnik Date: Thu Jul 4 21:30:16 2019 -0400 Add old Safari and Samsung to dead browsers commit 2d42303cbb13094954805a51f9605a8b4f0d5aa9 Author: Andrey Sitnik Date: Thu Jul 4 21:28:54 2019 -0400 Increase size limit commit 31b4988d4c05d9228a9efe11b9501a07ef6c5af3 Author: Andrey Sitnik Date: Thu Jul 4 20:59:42 2019 -0400 Update dependencies commit 0c285397b850db188c60e89ecd2400d61b7bcdcf Author: Andrey Sitnik Date: Fri Jun 28 16:31:43 2019 -0400 Clean up docs commit 0401dd6d68eb94ac79a5a3496f77d129aa07493a Author: Andrey Sitnik Date: Fri Jun 28 16:30:43 2019 -0400 Clean up TOC commit 40db25c16d71de1af7f2c62a410c33b587ae6fd8 Author: Andrey Sitnik Date: Fri Jun 28 16:29:28 2019 -0400 Update dependencies commit a7b0f3723af03233703adc572510e604a752a9ec Author: Isa Chen Date: Fri Jun 28 18:10:52 2019 +0200 Table of contents (#392) * Added TOC to readme * Fixed typos commit 27fd44a1625af02723ac7fd24b8b261dab287480 Author: Henno Lauinger Date: Wed Jun 26 11:57:01 2019 +0200 fix typo in readme (#390) commit 9ed7789559618eae51e55917b735242bbf0ee2d0 Author: Andrey Sitnik Date: Fri Jun 21 01:53:19 2019 +0300 Update dependencies commit e3382585a092158128cce07606dbfdafdc30b748 Author: Andrey Sitnik Date: Fri Jun 21 01:46:02 2019 +0300 Typo commit be3deb920be81fb03356376348ef1952dbb8e6fa Author: Andrey Sitnik Date: Fri Jun 21 01:45:05 2019 +0300 Simplify example commit 4a4a5e09c4e3ad6ff6e15bbbe10b237f303c6278 Author: Andrey Sitnik Date: Tue Jun 18 12:11:03 2019 +0300 Release 4.6.3 version commit 1cc2ef197dad81a6312d23dc5060ac0087ac07fe Author: Andrey Sitnik Date: Tue Jun 18 12:10:37 2019 +0300 Show warning on dirty fix commit 9be1c4e804388e17590b744ce895f0ec0c9b6f50 Author: Andrey Sitnik Date: Tue Jun 18 12:08:31 2019 +0300 Try to make hot fix for postcss-preset-env commit 6eb86724d9488bb469f4c627a4203d5712cec9a5 Author: Andrey Sitnik Date: Tue Jun 18 11:43:13 2019 +0300 Update dependencies commit c5603f529bbc381623beee9096dda83e453ca0f5 Author: Christian Oliff Date: Tue Jun 18 17:32:29 2019 +0900 small text change which reads better 'altogether' > 'combined' (#381) commit 11717a956b11b5df85ec58884702160a1db5231e Author: Andrey Sitnik Date: Wed Jun 12 19:23:43 2019 +0300 Improve environments docs commit fbfde71d3b2c3455c08617bdcae69daa21a85eb8 Author: Andrey Sitnik Date: Wed Jun 12 19:22:11 2019 +0300 Clean up docs commit 74f56606c4591279932b707dea622c08189ecde6 Author: Andrey Sitnik Date: Fri Jun 7 21:31:38 2019 +0300 Release 4.6.2 version commit 04f6f1224f77fcb5330cfdb24538fee7e9aef12e Author: Andrey Sitnik Date: Fri Jun 7 21:29:54 2019 +0300 Use android logic for major queries too commit 68800e3ed041b1b0d0d518f78f494fffc11f09e9 Author: Andrey Sitnik Date: Fri Jun 7 21:21:38 2019 +0300 Update dependencies commit c2211586906466b8815c7b1723a65237768b6728 Author: Andrey Sitnik Date: Fri Jun 7 21:18:33 2019 +0300 Add special logic for android versions commit 0109ad2e183ad303f06b1d4670742dc4a8e566b3 Author: Andrey Sitnik Date: Mon Jun 3 23:38:21 2019 +0300 Clean up examples commit da34eceac01cf23f37070f4730a308465a8daacd Author: Andrey Sitnik Date: Mon Jun 3 23:37:06 2019 +0300 Update dependencies commit e1d0f9002a6533731d42e124bef972944ea2d044 Author: Andrey Sitnik Date: Mon Jun 3 23:34:36 2019 +0300 Resort config options commit 02b054b51bbf9aa186bde5d699c08ae54b306d4c Author: Andrey Sitnik Date: Mon Jun 3 23:33:48 2019 +0300 Remove browsers option from docs commit b9549a02c05e9d7dd4251f71181fbebbd130b6c7 Author: Andrey Sitnik Date: Tue May 28 23:10:23 2019 +0300 Release 4.6.1 version commit bb5d52cee636691430eb2932ad4a0f69f8d9faf0 Author: Andrey Sitnik Date: Tue May 28 23:09:16 2019 +0300 Update dependencies commit 3c3450438b0f2341cfb484aa523dac78d434d279 Author: Kilian Valkhof Date: Tue May 28 22:01:09 2019 +0200 implement support for patch versions of Electron re: #351 (#378) commit 9d157eb9d71b04ab29301aeae6584cfeba8ffb0b Author: Andrey Sitnik Date: Fri May 24 10:47:18 2019 +0300 Add Sponsor button on GitHub commit 902c0ebdc33d65635285f2e178c7e8c6113c6202 Author: Andrey Sitnik Date: Wed May 22 15:37:47 2019 +0300 Recommend more longer option commit 55aa6effa44c946c1788da44d17d47e64e5a2f2c Author: Andrey Sitnik Date: Tue May 14 12:11:01 2019 +0300 Release 4.6 version commit a3b20df5c8c16c6f203e5893ef21ef4689aaaa79 Author: Andrey Sitnik Date: Tue May 14 12:05:26 2019 +0300 Clearify docs commit 3380dca22eb7963203fd340722ebafb2b3e8fe06 Author: Andrey Sitnik Date: Tue May 14 12:02:49 2019 +0300 Update dependencies commit 08e60a4370ea19754531e44b946973c8513f72a9 Author: Andrey Sitnik Date: Tue May 14 11:55:44 2019 +0300 Clean up spelling check commit b7be17b513393b01b954cb7026960bb47d3864e9 Author: Nicolò Ribaudo Date: Tue May 14 10:53:09 2019 +0200 Alias mobile browsers to the desktop version (#371) * Alias mobile browsers to the desktop version * Add mobileToDesktop option * Documentation commit ed6c91538363b9a3e6cfa02024f013c7becbfb99 Author: Andrey Sitnik Date: Sat May 11 18:17:41 2019 +0300 Fix dictionary commit ccaec16c163377dbeb1db5fca2d4ff0803e75223 Author: Andrey Sitnik Date: Sat May 11 18:09:58 2019 +0300 Fix regexp commit cf7dd8a902c59db5454ebeef92c8d67ddd999f26 Author: Andrey Sitnik Date: Sat May 11 18:07:17 2019 +0300 Clean up dictionary commit 9785137d8e02246c0cd8e9e54b8bdfe7fc9d243d Author: Andrey Sitnik Date: Sat May 4 23:11:07 2019 +0300 Remove Windows tests commit 9c45b13b22b705bc25fda8403b32d7a9845698da Author: Andrey Sitnik Date: Sat May 4 22:48:56 2019 +0300 Increase timeout to fix Windows commit d951b8bb8958a6c90b72f926b6d070b01d6be45b Author: Andrey Sitnik Date: Sat May 4 22:37:11 2019 +0300 Fix Travis Windows commit 235e659559ffad2898a91a413769e580d6bd602f Author: Andrey Sitnik Date: Sat May 4 21:18:02 2019 +0300 Try to fix Travis Windows commit c30a149af9f63bdfce963870cb881855228afc98 Author: Andrey Sitnik Date: Sat May 4 20:47:17 2019 +0300 Remove AppVeyor config commit a196c6842fcd317e3e5fe9880c66bdd6b8733863 Author: Andrey Sitnik Date: Sat May 4 20:37:39 2019 +0300 Use Travis CI for Windows commit 4a976751b5c769efbb4d17061ecd5a64969e039d Author: Andrey Sitnik Date: Sat May 4 20:37:30 2019 +0300 Update dependencies commit 0803ac8f094d2e11ed5d54659ded08f55ae1149b Author: Andrey Sitnik Date: Tue Apr 30 13:41:14 2019 -0400 Release 4.5.6 version commit b63bc8fe1178742405d47c1d7af9ca6b3cf49618 Author: Andrey Sitnik Date: Tue Apr 30 13:38:54 2019 -0400 Fix case insensitivness in Node query commit 19a631b3ffe910552756cd4878d3510af8c3dfb7 Author: Andrey Sitnik Date: Tue Apr 30 13:36:21 2019 -0400 Remove Node.js 6 from Travis CI commit 55223bf66902b7f0e477b02325ad98f8c8f45204 Author: Andrey Sitnik Date: Tue Apr 30 13:36:08 2019 -0400 Update dependencies commit 0254be44a971f4397217692043f7d0caeb04d262 Author: Andrey Sitnik Date: Fri Apr 26 11:52:53 2019 -0400 Move Best Practices upper commit d3c1029a39b9b853b2792f86c7734f25f6007162 Author: Andrey Sitnik Date: Fri Apr 26 11:51:43 2019 -0400 Move default to best practices commit 978d806a8410d21cb324acc749d65f47f70be247 Author: Thomas den Hollander Date: Fri Apr 26 17:50:17 2019 +0200 Add `defaults` configuration example in Readme.md. (#368) commit c8210e9b74a322fe024dc0ec00d22b8a883741d3 Author: Andrey Sitnik Date: Thu Apr 25 20:16:55 2019 -0400 Update dependencies commit 2125e4a1436966bd0d3916dc5ce823904b585b02 Author: Andrey Sitnik Date: Thu Apr 25 20:15:56 2019 -0400 Clean up Travis Ci config commit f02239756fcc1c7e003dfd6ca58a70e6e6dda210 Author: Andrey Sitnik Date: Tue Apr 16 13:46:57 2019 -0400 Release 4.5.5 version commit 0781f3f52b00e33261d493975dad611e1fdf51f7 Author: Andrey Sitnik Date: Tue Apr 16 13:44:48 2019 -0400 Add new browser from Can I Use commit a26ef034799d8dc57fc605633feeb928fe1d6dcb Author: Andrey Sitnik Date: Tue Apr 16 13:42:34 2019 -0400 Update dependencies commit dfd33b89d2bb438cdae4613029028e32fed152c1 Author: Marcel Gerber Date: Tue Apr 16 18:25:24 2019 +0200 In `--help`, rename world to global (#364) commit 90866c83cd43fe6839dfab95aa823c52c64db075 Author: Andrey Sitnik Date: Tue Apr 2 19:09:37 2019 -0400 Clean up tools commit 92502b26a66b213a4bf8a1f81e3715ddce6e0952 Author: Andrey Sitnik Date: Tue Apr 2 18:25:29 2019 -0400 Release 4.5.4 version commit 9ca5b9853440378faeb93936a87825e77b7918a4 Author: Andrey Sitnik Date: Tue Apr 2 18:24:26 2019 -0400 Add BROWSERSLIST_IGNORE_OLD_DATA environment variable commit bb67447c5ef4c9379a7ab87559d112a244f510c5 Author: Andrey Sitnik Date: Tue Apr 2 18:21:15 2019 -0400 Update dependencies commit 14b6bdc04d545c5f7365bc2b322207b93be99c88 Author: Dan Onoshko Date: Tue Apr 2 23:16:04 2019 +0700 browserslist-useragent-regexp tool (#363) * browserslist-useragent-regexp tool * "RegExp" added to yaspeller dictionary commit 716cfe7a72e511d9fb0877fb1b9fac0b44a91c35 Author: Andrey Sitnik Date: Mon Apr 1 17:47:16 2019 -0400 Update dependencies commit d39d73c2ec1c150ffd86b9afc7b61be7e82b7a5c Author: Andrey Sitnik Date: Mon Apr 1 17:46:26 2019 -0400 Typo commit 431a433641c0b16652db280820cc640a5edeee94 Author: Andrey Sitnik Date: Mon Apr 1 17:46:15 2019 -0400 Clean up docs commit f11194e177dad5898c8b356bbafe8ebd01e944d4 Author: Andrew Leedham Date: Mon Apr 1 22:43:53 2019 +0100 Add browserslist-browserstack to tools section (#362) commit beb510ad70900e21ab5c88a605bcc642ec3d365a Author: Andrey Sitnik Date: Fri Mar 29 16:47:06 2019 -0400 Release 4.5.3 version commit 8ace2c648e496dbfa3aeea3c1116105ff4024b9f Author: Andrey Sitnik Date: Fri Mar 29 16:45:39 2019 -0400 Fix wrong string parsing commit 5e5d036885aa42c105bf3082f32971ced1cc7607 Author: Andrey Sitnik Date: Fri Mar 29 16:40:50 2019 -0400 Clean up code commit 46a6a046cf3dc62d1c3a7fdb7bc1fe1fd4669a3a Author: Andrey Sitnik Date: Fri Mar 29 16:31:14 2019 -0400 Update dependencies commit 0773dd069f28a443bde7cd36ffccde7e759b8454 Author: Andrey Sitnik Date: Fri Mar 29 16:31:07 2019 -0400 Fix imports order commit f2f35b8f00f6599b401b1131b936a2ad58b373da Author: Andrey Sitnik Date: Thu Mar 28 16:16:56 2019 -0400 Add security note commit 32f76a1f8f0fb69d9c22c2347c3c7a70d6021d9b Author: Andrey Sitnik Date: Wed Mar 20 12:03:22 2019 -0400 Release 4.5.2 version commit 0df37558610f93620201d14c5967b56aeb3648a0 Author: Andrey Sitnik Date: Wed Mar 20 12:00:28 2019 -0400 Update dependencies commit cba4edb6f2c65f60f535af74a062c131b996b863 Author: Andrey Sitnik Date: Wed Mar 20 11:58:56 2019 -0400 Fix unexpected CLI behaviour commit 8dc65558b2fb4973de7a1699e98354faef6c0198 Author: Andrey Sitnik Date: Sat Mar 16 22:00:56 2019 -0400 Release 4.5.1 version commit 37b7baa09cc7b168b5f15bb7636021e51c7cdfee Author: Andrey Sitnik Date: Sat Mar 16 15:16:50 2019 -0400 Update dependencies commit 13cc6d138352ed2694a1bcc8f6948872580fec76 Author: Andrey Sitnik Date: Sat Mar 16 15:13:25 2019 -0400 Fix outdated caniuse-lite warning commit 4c3d37c49d8728562b912ba94a1153673c057f15 Author: Andrey Sitnik Date: Fri Mar 15 16:40:34 2019 -0400 Release 4.5 version commit aedc1c85ca644a85e1aec13f026f56465b6d04a1 Author: Andrey Sitnik Date: Fri Mar 15 16:38:24 2019 -0400 Update dependencies commit 2ae3c0140464905fb3c188117d9c5505309c27a8 Author: Mathspy Date: Fri Mar 15 22:37:03 2019 +0200 Support Node.js comparisons (#356) * Wrote a failing test * Wrote implementation for node comparing version * Updated README to mention new feature * Extracted repeated logic into its own function * Removed latest node version from test which didn't get added yet to browserlist * Fixed order of node versions Sorry OCD commit 6496a998c82bd3924781dc716b2a1baa9a83f00b Author: Andrey Sitnik Date: Thu Mar 14 12:55:24 2019 -0400 Update dependencies commit 3f544f61a189853a478301911741eb299edeb5d9 Author: Andrey Sitnik Date: Sat Feb 23 12:56:59 2019 -0500 Release 4.4.2 version commit 8a286f8604595eabfcd885770c12d861f3567f41 Author: Andrey Sitnik Date: Sat Feb 23 12:54:56 2019 -0500 Allow to have string in package.json instead of array commit 497d68386d94a59bd5d9acebc47a2ca5735c2c93 Author: Andrey Sitnik Date: Sat Feb 23 12:47:58 2019 -0500 Improve test commit a47d8b5ba6ebbe953fff6ad89dae402f9158724b Author: dmarkhas Date: Sat Feb 23 19:48:05 2019 +0200 Accept string as config property, fixes #347 (#352) * Accept string as config property, fixes #347 Should support the config as described here: https://babeljs.io/docs/en/babel-preset-env * Update node.js * Update node.js * Update node.js * Update node.js commit b2b1f594a5874db5154acd14ff6d603c297734f9 Author: Andrey Sitnik Date: Sat Feb 23 12:46:32 2019 -0500 Update dependencies commit 1519cb7a8bcae1468b2ccd5da7c8c4fd8dbd0bd5 Author: Andrey Sitnik Date: Sat Feb 23 12:46:25 2019 -0500 Improve tests commit a6e9a5ab5ee5a4b737d9e53099b12e536df041fa Author: Ondrej Synacek Date: Wed Jan 30 15:39:56 2019 +0100 add info about whitelisting to readme (#349) It is better to specify in README how listing the browsers actually works. I wasn't quite sure if I do not want specific browsers targeted if I should list them. commit bbfe7bad3bae6ddfba5acee3ac9a3162decc42fc Author: Andrey Sitnik Date: Thu Jan 17 20:59:59 2019 +0100 Release 4.4.1 version commit 06fe20b21f52ef16acc13c4146950811e4dd3dc0 Author: Andrey Sitnik Date: Thu Jan 17 20:54:48 2019 +0100 Update dependencies commit 0f492c7ba7597047b49e64ec3fe19663cc1ce828 Author: Gustav Nikolaj Date: Thu Jan 17 17:08:50 2019 +0100 Relax validation when extending config from scoped packages (#343) The SCOPED_CONFIG__PATTERN regex and the '`.` not allowed in Browserslist config name.' rules disallowed extending a browserslist from a package called `@example.com/browserslist-config` even though that is a perfectly valid name for a scoped package. I loosened up the regex SCOPED_CONFIG__PATTERN so it would match an npm org named example.com and modifed the other rule to remove a scope before it checks for dots in the extend reference. commit 30c513b20fc141d84f5a9252f8386b680642f9bb Author: Chikara Chan Date: Mon Jan 14 19:29:55 2019 +0800 docs: add a tool using browserslist (#342) commit 12fdbc3d4427779f9360b685e969f201a735f845 Author: Andrey Sitnik Date: Fri Jan 11 20:27:54 2019 +0100 Release 4.4 version commit 97f1534b0969f4a3652bb21a852b2ce6d1cfe705 Author: Andrey Sitnik Date: Fri Jan 11 20:24:53 2019 +0100 Revert version change commit e253723bda88f4da280cb2231eca92831cfb4d09 Author: Andrey Sitnik Date: Fri Jan 11 20:24:13 2019 +0100 Split paragraph commit f559ce9d2cccedf9699d3299df33be14e154c09c Author: Andrey Sitnik Date: Fri Jan 11 20:23:13 2019 +0100 Clean up line breaks in docs commit 2f6029980f83b0df080cef40a5d9302ae932e33d Author: Andrey Sitnik Date: Fri Jan 11 20:20:15 2019 +0100 Clean up docs commit 4ab5b0bd1081b53d53d88cdcab8655930b9a6a6f Author: Andrey Sitnik Date: Fri Jan 11 16:20:01 2019 +0100 Fix Node.js 6 on Travis CI commit 59212d7136208b2c3ac6f8347c746c9288a8d563 Author: Andrey Sitnik Date: Fri Jan 11 16:15:32 2019 +0100 Update dependencies commit 3e14c60bd27b00750972f45144870e5b089b155d Author: Jon Ege Ronnenberg Date: Fri Jan 11 16:13:46 2019 +0100 Add "and" operator to query parser (#286) * added failing test for AND operator * new initial query marker * all tests pass * make it clear that you can write 'OR'/'or' instead of ',' * reduced fixture used for testing AND operator * get test coverage to 100% * trim off 9bytes * changed QueryType enum name from inititial to oneliner, since it's for oneliner queries but also for the initital query in a query composition but the former is more common - I'm open for other names. Also change the limit since the build is slightly bigger when running on travis (for unknown reason). Changed enum values for QueryType, so QueryType.oneliner | QueryType.or is different than QueryType.or * The project policy is to keep text editor ignores in local .git/info/exclude * It is OK to just set "limit": "8.8 KB" * added comments about the difference in filtering * merged with master * temporary up size limit to allow new additions from upstream master * cherry picking files from upstream master * temp up size limit after merge * trim tests and added test for 'complex cases with version-less browser and not query as AND query' * shaved off a few bytes and made sure the AND syntax can be used in package.json * actually execute package.json AND queries in test * backport 'to not' algorithm to 21c25e2 * fixed inline documentation and comments * added description of the new supported query syntax * fixed 'combiner' illustrations - can not inline SVG in README * center illustrations * see what it looks like if the illustrations does not have a defined width * fixed documentation as advised by @ai - https://github.com/browserslist/browserslist/pull/286#issuecomment-452445306 * updated CHANGELOG and dependencies * fixed CHANGELOG * Remove ChangeLog commit da87ec98bb6a393c8214e1be0a4882e32c7320a5 Author: Andrey Sitnik Date: Tue Jan 1 22:16:42 2019 +0100 Release 4.3.7 version commit cbd158741205810722fa2d80a5ee2799a58c8c87 Author: Andrey Sitnik Date: Tue Jan 1 22:13:51 2019 +0100 Clean up year calculation commit f3652e4da1810d546628de6ea4c5e7a3cdfac421 Author: Andrey Sitnik Date: Tue Jan 1 22:09:08 2019 +0100 Add tests for fractial years commit 451e2c277437e691cea6818217749926d93ac46b Author: Clément P Date: Tue Jan 1 22:06:19 2019 +0100 Update index.js (#309) * Update index.js allow rational year * Update index.js commit 2ca90eedf937f23c7cf09aa74147b9454a8f36d2 Author: Andrey Sitnik Date: Tue Jan 1 22:02:01 2019 +0100 Change version-less browsers hack commit 4e075d02eea6e14d908073c5aa6d4d032925da83 Author: Andrey Sitnik Date: Tue Jan 1 21:40:31 2019 +0100 Update dependencies commit 4991be35679e2a7559baa9fb5646506455782912 Author: Florian Wendelborn <1133858+dodekeract@users.noreply.github.com> Date: Fri Dec 21 19:16:39 2018 +0100 improvement(security): Use HTTPS (#339) Let’s make the web a bit safer (and my LittleSnitch less annoyed 🙂)! commit 7c8eabd04837e5c5538f1ff79a0d0136f95a9f71 Author: Andrey Sitnik Date: Fri Dec 14 20:24:39 2018 -0500 Release 4.3.6 version commit 7fbad248fb76ea9836716187bf3109b98a8822dc Author: Andrey Sitnik Date: Fri Dec 14 20:22:26 2018 -0500 Update dependencies commit 0a3a1a2e8fabca06821065c64f3ab15b7244564c Author: Andrey Sitnik Date: Fri Dec 14 20:19:45 2018 -0500 Fix custom statistics and version-less browsers commit 1036674fa23cc2720795c66ac2685e4fcced2ccb Author: Alex Walter <4553695+ArgonAlex@users.noreply.github.com> Date: Fri Dec 14 17:08:48 2018 -0800 extending custom stats test (#338) commit 678194b59111698e5b0651828cad703eec97c113 Author: Sergey Rubanov Date: Mon Dec 10 18:28:28 2018 +0300 Bump node-releases (#335) commit 5d7c08b542837577921db9878045e840bce513db Author: Andrey Sitnik Date: Fri Dec 7 10:24:56 2018 -0500 CLean up code commit ea3d100c3dcf7fc47a5f83fb21b6573231a49f63 Author: Andrey Sitnik Date: Sat Dec 1 16:03:52 2018 +1000 Release 4.3.5 version commit 12aba63fb5711184e8812416affd2f5b38306067 Author: Andrey Sitnik Date: Sat Dec 1 16:02:43 2018 +1000 Fix more complex cases with version-less browser and not query commit 08fab5fb690efd61e4623da544245dc056b13077 Author: Andrey Sitnik Date: Sat Dec 1 15:09:55 2018 +1000 Update dependencies commit 0b5248213f2dd5be1798acfc538eac8b004c1767 Author: Markus Siering Date: Mon Nov 26 13:25:48 2018 +0100 fix(README): adjust misleading best practice sentence (#322) fixes #321 commit b5e38b014a4617d66c20b5a10dfa94e614945b4b Author: Andrey Sitnik Date: Sat Oct 27 19:43:05 2018 -0400 Release 4.3.4 version commit 355ef4edbb59bc943d78a0cb3136f400e0f10884 Author: Andrey Sitnik Date: Sat Oct 27 19:40:03 2018 -0400 Clean up AppVeyor config commit c83905587d02a68c7ceba5b080c6b74f52fb1403 Author: Andrey Sitnik Date: Sat Oct 27 19:39:43 2018 -0400 Update Node.js version in AppVeyor commit a8de70d499c9d1ae279dff9a182d3f041151e326 Author: Andrey Sitnik Date: Sat Oct 27 19:39:13 2018 -0400 Add Node 10 to Travis CI commit cb35fd2014514db921741352387d6bcbbcaed3e0 Author: Andrey Sitnik Date: Sat Oct 27 19:38:38 2018 -0400 Update dependencies commit 8338f5fc30f61641c98c5107572bdcdbc94be976 Author: Andrey Sitnik Date: Wed Oct 24 07:29:35 2018 -0400 Release 4.3.3 version commit 44c8400c7dd41d8af92734bac8594663866e1282 Author: Andrey Sitnik Date: Wed Oct 24 07:27:33 2018 -0400 Fix size limit commit 37e7a4e53d02437dc06d8ddd2d3b0c1f0ca4f3cf Author: Andrey Sitnik Date: Wed Oct 24 07:24:29 2018 -0400 Update dependencies commit 1d8daab62c754cf9473ae39157d14324e88c4868 Author: Andrey Sitnik Date: Tue Oct 23 05:41:07 2018 -0400 Release 4.3.2 version commit c017e840d96bf1ce3bb4fce88fd723e74bcc8326 Author: Andrey Sitnik Date: Tue Oct 23 05:39:30 2018 -0400 Update dependencies commit 39ce95d84c1acc108763319ef4bd669777071ef6 Author: Andrey Sitnik Date: Tue Oct 23 05:38:44 2018 -0400 Clean up code commit f57017c1e7cf75520dcdfba6f4851ae2d68b6e8e Author: Dan Onoshko Date: Tue Oct 23 16:35:52 2018 +0700 jsEOL version check (#312) commit 00d3a0a6293a79fe054cded32756e0275d67152c Author: Andrey Sitnik Date: Sun Oct 21 23:32:28 2018 -0400 Release 4.3.1 version commit 0881cd587d279b092462240c4f04bb89561f7b1c Author: Andrey Sitnik Date: Sat Oct 20 02:03:33 2018 -0400 Normalize custom statistics to Can I Use tricks commit d0fcb606a3536785e6b887995c4717b4ea3062a9 Author: Andrey Sitnik Date: Sat Oct 20 01:04:58 2018 -0400 Release 4.3 version commit c7f9bf3d2f5f2db37c80951839ea177c98c0772c Author: Andrey Sitnik Date: Sat Oct 20 01:04:02 2018 -0400 Improve extends query tests commit fc827556f4dfbbf8aa12937231ae3ac62759cee8 Author: Andrey Sitnik Date: Sat Oct 20 01:02:18 2018 -0400 Update dependencies commit fbd67841bcedfac0da3bcbbf2d45ff38bfe40efa Author: Andrey Sitnik Date: Sat Oct 20 01:01:56 2018 -0400 Improve extends query tests commit 285235150d68ceda79088aa8c224a8bb91e349ac Author: Kai Date: Sat Oct 20 05:30:45 2018 +0200 Update node.js (#285) commit 107773336fcd5c9846a06891e0c5ed5a465202db Author: Andrey Sitnik Date: Sat Oct 13 19:17:14 2018 -0400 Release 4.2.1 version commit a748d0d71d19eba9e97f79ae8538c5cdaf6dcb15 Author: Andrey Sitnik Date: Sat Oct 13 13:09:58 2018 -0400 Update dependencies commit 8358867fd6323affe6cc5c0c372792e90f1a8907 Author: Sergey Rubanov Date: Sat Oct 13 19:59:32 2018 +0300 Update node-releases to latest version (#305) commit ae021c75d1983019aa2ad90ae8c8beec67feef57 Author: Andrey Sitnik Date: Sat Oct 6 16:13:56 2018 -0400 Fix bbest practices commit b76d55b8d24310265712f4f75b698db3173f8da7 Author: Andrey Sitnik Date: Sat Oct 6 16:10:18 2018 -0400 Typo commit 9263982c442ad59696fd8b298ed6149f5a86af84 Author: Andrey Sitnik Date: Fri Oct 5 18:00:17 2018 -0400 Release 4.2 version commit b422fe135a009efe89b40eea29233b7f36988c39 Author: Andrey Sitnik Date: Fri Oct 5 16:37:39 2018 -0400 Add --json to CLI commit 0e158cdb76f1a0dd523d0de88ce9b7973627ff0a Author: Andrey Sitnik Date: Fri Oct 5 14:36:35 2018 -0400 Allow to pass multiple areas to CLI --coverage commit 3902675bd8bda4751d3aade449ae96275ba00886 Author: Andrey Sitnik Date: Fri Oct 5 14:24:36 2018 -0400 Update dependencies commit 9e31ff204f08255c3fa9e9555474fb48603f99bf Author: Andrey Sitnik Date: Tue Oct 2 04:28:20 2018 -0400 Release 4.1.2 version commit 5b8da9a9e9d5405fb220f72cd36d0d231cf8d4ea Author: Andrey Sitnik Date: Tue Oct 2 04:27:34 2018 -0400 Update dependencies commit c149db39f5a4737b9c064c2e8ab44f8b7950561a Author: Andrey Sitnik Date: Tue Oct 2 04:10:40 2018 -0400 Improve unkown query error message commit d80dabcc1ccff49263fd97f17c140b806cc2482d Author: Andrey Sitnik Date: Tue Sep 18 16:38:09 2018 -0400 Clean up Babel section commit aa7d46890988a2529ed0b5fe53d1439f1be0191c Author: Aori Nevo Date: Tue Sep 18 16:37:06 2018 -0400 Update README.md (#299) commit 15bf2b25d156298da4f85eab561909e9daecaded Author: Dimitar Nestorov Date: Mon Sep 10 08:21:52 2018 +0300 Moving package.json query to the top of the queries list (#294) * Moving package.json query to the top * Fixing numbers in Queries section in README commit ecfbbd1c5cc46928c85889de874f04e7e6621c49 Author: Andrey Sitnik Date: Wed Sep 5 11:09:21 2018 +0300 Release 4.1.1 version commit b0b75c35436b54d353865bbc1fc44c460476df9c Author: Andrey Sitnik Date: Wed Sep 5 11:08:18 2018 +0300 Update dependencies commit a677a9f15e1c150a36bcc837c578382a8464d1ae Author: Andrey Sitnik Date: Wed Sep 5 11:05:40 2018 +0300 Update Firefox ESR commit b8a2223f3aae7cfc92d15d96d2883fcfc0882a75 Author: Andrey Sitnik Date: Thu Aug 23 06:27:49 2018 -0400 Release 4.1 version commit d348750dd0e053a7a30cd64e69cefdeda4268989 Author: Andrey Sitnik Date: Thu Aug 23 06:27:25 2018 -0400 Update dependencies commit fd685561bc4a946d858a147f36f27c553c51b4f2 Author: Andrey Sitnik Date: Wed Aug 22 06:06:55 2018 -0400 Add current node query to docs commit a2518e617350af5918963a8265b503f03e22832e Author: Andrey Sitnik Date: Wed Aug 22 05:51:01 2018 -0400 Add current node query commit b4e4ccbc2d61f0394886f3c873a215dacd33dfb4 Author: Andrey Sitnik Date: Wed Aug 22 05:50:34 2018 -0400 Update dependencies commit 282989833ac20208e405aefa66691d404e16d981 Author: Andrey Sitnik Date: Wed Aug 22 05:39:57 2018 -0400 Fix docs section padding commit 92ab8c5154123c14f3c6e7ac7915f33e7bd8c71b Author: Andrey Sitnik Date: Mon Aug 20 01:17:12 2018 -0400 Fix contributors section in docs commit 2ded3812ba5c31c5df3b2174801d0936758f43dc Author: Sergey Surkov Date: Sun Aug 19 22:07:20 2018 -0700 Update README.md (#288) commit ca2595b392162f35f3d10c35f532eddb8012f434 Author: Andrey Sitnik Date: Sun Aug 12 18:40:12 2018 -0700 Release 4.0.2 version commit 4d4558d0592fa7f7dbb73a910563b98a17962a6d Author: Andrey Sitnik Date: Sun Aug 12 18:34:16 2018 -0700 Update dependencies commit 294a514b2319183956a70dadc02bb3ec20b89436 Author: Sergey Rubanov Date: Mon Aug 13 02:40:13 2018 +0300 Update node-releases (#287) * Update node-releases * Increase package size limit commit 52b8380ba93ef508c203e1254b62259ff67f0b26 Author: Josh Smith Date: Thu Aug 9 22:44:12 2018 -0400 Fixed small typo ('dublicate' => 'duplicate') (#281) commit 353ed6f8119df5f3f73678aabf5deac50a6da635 Author: Andrey Sitnik Date: Sat Jul 14 04:32:55 2018 -0700 Release 4.0.1 version commit 36981001f7970405b58ccf25d9c635b42e6f8b3d Author: Andrey Sitnik Date: Sat Jul 14 04:28:06 2018 -0700 Fix logo on npmjs.com commit edac154072e583e18dcf191c0e6e0329e66a8abd Author: Andrey Sitnik Date: Sat Jul 14 04:24:37 2018 -0700 Add clean-publish commit 464987dc3dc212b04f7ed4f06232c26f8e8f1a08 Author: Andrey Sitnik Date: Sat Jul 14 04:24:19 2018 -0700 Move all config to package.json commit d069582b9a42f8593042fe16ce04cd2ea8bab54c Author: Andrey Sitnik Date: Sat Jul 14 04:21:29 2018 -0700 Move images to subdir commit b9ff79b4429a6a5ab03a63fc19bded8f01acce67 Author: Andrey Sitnik Date: Sat Jul 14 04:19:46 2018 -0700 Update dependencies commit 784ebb6767e68095c0c89d599a5d3bf48592223d Author: Andrey Sitnik Date: Sat Jul 14 04:18:12 2018 -0700 Remove Node.js 9 from Travis CI commit 52731218d2fbcaec3d679846feb7a5bb593438a0 Author: Andrey Sitnik Date: Tue Jun 26 16:21:26 2018 -0400 Release 4.0 version commit a0e2c17e4fec7d570c0052445c10fdbb554e35ab Author: Andrey Sitnik Date: Tue Jun 26 16:20:26 2018 -0400 Fix ChangeLog commit ea7a27fff24bb8aaab6487c0da97811bf117b2b2 Author: Titus Date: Tue Jun 26 20:06:33 2018 +0200 Fix typo (#273) commit 0bc936b1539401b74ed63b924036c87150e2cbc7 Author: Andrey Sitnik Date: Tue Jun 26 11:45:04 2018 -0400 Add names for major releases commit 1ffa8f72c698b9142350354c75d7ac0b4111d402 Author: Andrey Sitnik Date: Tue Jun 26 11:24:42 2018 -0400 Update dependencies commit cb0248100c917e3996f0dc048e98a8bea8c9be30 Author: Andrey Sitnik Date: Fri Jun 22 18:14:39 2018 +0300 Remove Jest config from npm package commit 12848a5e4617c71b538186f1ff8a18f6a65e06f3 Author: Andrey Sitnik Date: Wed Jun 13 18:36:15 2018 +0300 Support comma in config file commit 32fdd615327cebf6982817842a51955fab860768 Author: Andrey Sitnik Date: Wed Jun 13 18:33:42 2018 +0300 Improve docs commit 5e10a6455847b1fc3b245dd56c2695d71bc8cc7d Author: Dub Processor Date: Wed Jun 13 17:57:21 2018 +0300 Show warning only once commit d946e01163c37e93bba595e87e9d715b8619d9b5 Author: Andrey Sitnik Date: Wed Jun 13 17:30:38 2018 +0300 Fix test names commit ea53715615923a85760e9d0a3933baad7f8aa1d9 Author: Andrey Sitnik Date: Wed Jun 13 17:27:35 2018 +0300 More clear name commit 75c95a9b413a340c03167fbeb789ab466dce203e Author: Andrey Sitnik Date: Wed Jun 13 17:21:08 2018 +0300 Clean up tests commit 2b418380d54f564879fdeef4198cf490a56ec03c Author: Andrey Sitnik Date: Wed Jun 13 17:18:03 2018 +0300 Clean up code commit 22c1afba2c010189d4c5d39cb6916fe5299ba59a Author: Andrey Sitnik Date: Wed Jun 13 17:14:19 2018 +0300 Fix warning message commit c741f8b04c506b01855f66c57c16048e2993a248 Author: Andrey Sitnik Date: Wed Jun 13 17:10:38 2018 +0300 Clean up tests commit 30fc493129e26b0d68e653334f1d76fa1ee6bfd6 Author: Andrey Sitnik Date: Wed Jun 13 17:07:12 2018 +0300 Fix ESLint config syntax commit 633952db7a9df26a92b625335ec96da50b3f24b0 Author: Anton Tuzhik Date: Wed Jun 13 17:05:02 2018 +0300 Added caniuse-lite browsers release date check (#267) * Added caniuse-lite browsers release date check * Node.js checkCanIUse - was amended time constant to update canius, now we look for package.json too. Update release test. Years test - added now's method to the mocked Date * Remove warning from test output. Increase size limit commit 84f099847e91dd5275e6f8cabd36b1ceab0353c9 Author: Andrey Sitnik Date: Wed Jun 13 16:27:53 2018 +0300 Clean up code commit 0a7f9d238db275005d0771819dc529e79a732b02 Author: Andrey Sitnik Date: Wed Jun 13 16:05:32 2018 +0300 Fix size limit commit 57514ae46bb11b176a8622f3cc91655585b9ca02 Author: Pavel Vostrikov Date: Wed Jun 13 16:04:49 2018 +0300 Node.js versions support (#253) * Add "node-releases" to dependencies * Add Node.js versions support * Use simple string 'node' in selected version * Handle case without raised error with flag ignoreUnknownVersions = true * Change test name * Find relevant node release in a more effective way * Fix codestyle * Update to node-releases@1.0.0-alpha.10 * Support "maintained node version" query * Mock Node.js query tests for 100% coverage * Increase allowed package size commit 16229187f49e8b113f05b0a1b854ce017d1263f9 Author: Andrey Sitnik Date: Wed Jun 13 15:56:31 2018 +0300 Update dependencies commit 08c61eb7891eb1e01d5f5e67dc0cca152769601c Author: Andrey Sitnik Date: Wed Jun 13 15:50:56 2018 +0300 Remove Node.js 4 from Travis CI commit 0a92393044458e53668e033632c7e535daade3cb Author: Andrey Sitnik Date: Thu Jun 21 09:29:05 2018 +0300 Fix dead query tests commit 784ea627de0ef75df7987994b35f9d9063f61bc5 Author: Olaf Alexander Date: Thu May 31 08:59:50 2018 -0500 Fix typo in README (#264) Fixes #263 commit 5556d2c9e6bd3e3c0a1cf0af8e7171aab316756d Author: Andrey Sitnik Date: Mon May 21 18:07:01 2018 +0300 Release 3.2.8 version commit 1b7211a3c350612989ce5e21007cea400115b313 Author: Andrey Sitnik Date: Mon May 21 18:03:45 2018 +0300 Try to fix Node.js 4 on Travis CI commit a231dd43642a7975adb01696fbb6c3eeb781f1e3 Author: Andrey Sitnik Date: Mon May 21 17:49:46 2018 +0300 Update ESLint config commit c74e196fe10e68c2d29adeffe5cd587cb82409e6 Author: Andrey Sitnik Date: Mon May 21 17:49:39 2018 +0300 Clean up regexps commit dd77a9a73378d5bb7c56730dde13daabcb114619 Author: Andrey Sitnik Date: Mon May 21 17:39:37 2018 +0300 Include IE 9, etc to dead query commit c355a4a5e10af32ebf9058383b407c345113c23a Author: Andrey Sitnik Date: Sat May 19 23:27:27 2018 +0200 Move dev tools configs out of npm package commit a4676564def93303b46eb6951b41c2e3abbc9cdf Author: Andrey Sitnik Date: Sun May 13 00:11:34 2018 -0400 Update Size Limit commit 79f40d6e3d1af26d80dfb7e16a50e92a22039ced Author: Andrey Sitnik Date: Sat May 12 23:52:09 2018 -0400 Speed up CI commit 8011157e2aae463e432cd16de44222f03260bdb8 Author: Andrey Sitnik Date: Sat May 12 23:15:13 2018 -0400 Add browserslist-useragent-ruby commit b17b7cc6ec2de018e60c494ee9935a2b4207a83f Author: Andrey Sitnik Date: Thu May 10 01:27:11 2018 -0400 Release 3.2.7 version commit 0415a00dabb5ddeb2ae91d36ab365ba528199ec6 Author: Andrey Sitnik Date: Thu May 10 01:25:37 2018 -0400 Update dependencies commit 40518c5963292a2c654a24af2cab12beb32b5988 Author: Andrey Sitnik Date: Thu May 10 01:25:28 2018 -0400 Fix tests commit 6605fca85f7d4072dfa7b5761c93c3eb9e511605 Author: Andrey Sitnik Date: Thu May 10 01:23:53 2018 -0400 Update Firefox ESR commit d58ede1fcb38099f2245e1142b54e4c031ea72c8 Author: Andrey Sitnik Date: Mon May 7 12:29:47 2018 -0400 Fix Jest install commit afc508f0210d92ab6f22beef88809467fea13ea5 Author: Andrey Sitnik Date: Mon May 7 12:26:57 2018 -0400 Return Node 4 support on Travis CI commit 29060482e0bb4b489a78664fd9a73025aada3903 Author: Andrey Sitnik Date: Mon May 7 12:26:03 2018 -0400 Update Node.js versions commit 17119cfed7f537626a078bd3c1727dd0db31f2d0 Author: Andrey Sitnik Date: Sun May 6 22:54:24 2018 -0400 Update inner dependencies commit 19ed4bf5a744026c0e3d1d5dbfdd614239039e30 Author: Andrey Sitnik Date: Sun May 6 22:50:43 2018 -0400 Clean .npmignore commit 4879e166c6208372be4baa10f407461f380392dc Author: Andrey Sitnik Date: Sun May 6 22:50:00 2018 -0400 Update Node.js versions in Travis CI config commit d4c1ede06127fcae9de3bc3f9d1953aa72f1de61 Author: Andrey Sitnik Date: Sun May 6 22:40:04 2018 -0400 Update dependencies commit 3257532dbcf7068599f24afbaa0e4b9139227dc5 Author: Krzysztof Rybka Date: Mon May 7 04:37:26 2018 +0200 Update caniuse-lite (1.0.30000835) (#257) commit 15e57f7ca9e27a2ed76b3bb767f809dadef45e59 Author: Andrey Sitnik Date: Mon Apr 30 22:36:52 2018 -0400 Improve queries recommendations commit 4c9fae7721d7309b9f437ce3c8a3a76c4c23d0bb Author: Andrey Sitnik Date: Mon Apr 30 00:08:09 2018 -0400 Fix link commit a8669a0b28ce4a9a0cea148fe02248735606f629 Author: Andrey Sitnik Date: Mon Apr 30 00:07:37 2018 -0400 Fix Babel name in users list commit e4ed37db1b2837748dc05bdc81e95d4f998bcb9d Author: Andrey Sitnik Date: Wed Apr 25 21:36:03 2018 -0400 Release 3.2.6 version commit 16c11a0d2e5d833b34d6d2ed57f89846f02578a5 Author: Jamie Date: Wed Apr 25 17:59:29 2018 -0700 Grammar fixes in best practices (#254) commit bac3e939b8b2039095d9d9818d6f4b646c27f304 Author: Andrey Sitnik Date: Wed Apr 25 16:44:59 2018 -0400 Add queries best practices commit 52ae53f623923534b603a008b3540ad5e73f76af Author: Andrey Sitnik Date: Wed Apr 25 15:56:27 2018 -0400 Update dependencies commit 074b3957c65de2e729aec4ddd837653aab32f4f6 Author: Andrey Sitnik Date: Wed Apr 25 15:54:59 2018 -0400 Add Opera Mobile 12.1 to dead browsers commit 4f95112d661a3754406e79d8b33924189811e873 Author: Andrey Sitnik Date: Tue Apr 24 16:05:24 2018 -0400 Do not deprreacte last 2 version yet commit 2d9a7082783b68a5d6aea36eba8230b872287001 Author: Jamie Date: Tue Apr 24 13:03:59 2018 -0700 Update README.md (#251) commit 3596432c82292993325610d4b36efe57b35be170 Author: Andrey Sitnik Date: Sun Apr 22 23:06:33 2018 -0400 Release 3.2.5 version commit e8cd490870d592b4c527f04928dfc17eb5f6b9d8 Author: Andrey Sitnik Date: Sun Apr 22 22:40:19 2018 -0400 Update gems commit e56effcee8f7741ff80fcd5f20c7c94dc375c6d5 Author: Andrey Sitnik Date: Sun Apr 22 22:36:30 2018 -0400 Fix excluding browsers with all version commit 45d48083c63c070e441d8c82afc9669bcb8331cb Author: Andrey Sitnik Date: Sun Apr 22 22:29:32 2018 -0400 Fix coverage for browsers with all version commit aca1c7c1365fce6d3b700376fb64ec8a3fa94136 Author: Andrey Sitnik Date: Fri Mar 30 13:55:15 2018 -0400 Release 3.2.4 version commit 54afeb7ca37d7c11ad92fbcad2cd78b961ac64a5 Author: Andrey Sitnik Date: Fri Mar 30 13:53:32 2018 -0400 Resolve shareable config from current dir commit 0b0fba9c2bc24807137f3cf467d899fd3e14ae89 Author: Andrey Sitnik Date: Fri Mar 30 13:32:48 2018 -0400 Less hacks for extends tests commit bb9cc1f554d9628c78170b821c7cd3241c8b600b Author: Andrey Sitnik Date: Fri Mar 30 11:56:49 2018 -0400 Update dependencies commit 811daa835f23066e0328a31c230274fd83b03513 Author: Andrey Sitnik Date: Sat Mar 24 21:08:28 2018 -0400 Release 3.2.3 version commit 73b7778971b56431f72fc1edc8c399ee11c8cd3d Author: Andrey Sitnik Date: Sat Mar 24 21:06:50 2018 -0400 Fix package.json string tests commit 1d8d4775b94e18305170f21fae5251999e21b9d6 Author: Andrey Sitnik Date: Sat Mar 24 21:01:34 2018 -0400 Improve CLI error reporting commit 82c84b21b6ae8cdff2639f651774b097130ce05d Author: Andrey Sitnik Date: Sat Mar 24 20:52:06 2018 -0400 Fix config error message commit 67355bdd5fee1f2970ee8736d838ecca03d316fd Author: Andrey Sitnik Date: Sat Mar 24 20:50:17 2018 -0400 Allow to have single string in package.json commit d622f52274c7034efd623d6ad1f0b36eaa3190e2 Author: David Francisco Date: Sat Mar 24 15:36:19 2018 +0000 Update links to browserslist-ga repository (#239) commit b37ae4a9575344dabfef318d42938609d181d60e Author: Andrey Sitnik Date: Sat Mar 24 02:58:32 2018 -0400 Release 3.2.2 version commit b7868b83a5eed5220443a72397bc2fc863e75c8e Author: Andrey Sitnik Date: Sat Mar 24 02:57:00 2018 -0400 Add config validation commit 8ac71b5228e10c827832db769b21bce53b395c44 Author: Andrey Sitnik Date: Sat Mar 24 02:43:33 2018 -0400 Fix benchmark JS code style commit 7247a784a3583386fc9aa7bae4082a3320f85984 Author: Andrey Sitnik Date: Sat Mar 24 02:38:57 2018 -0400 Update project links commit 0719cc2d3632737aa472463df43b7f1efe4ea30a Author: Andrey Sitnik Date: Thu Mar 22 14:24:17 2018 -0400 Release 3.2.1 version commit c6a99038f71deb98b288c69357362973be112225 Author: Andrey Sitnik Date: Thu Mar 22 14:23:19 2018 -0400 Update dependencies commit 5effcb445f78ab5c560e8288d43ea8840ba88e2e Author: Steve Schrab Date: Thu Mar 22 11:08:11 2018 -0500 Fix grammatical error in error text (#238) commit cf939490369afa159355a53f824b284793e8183f Author: Andrey Sitnik Date: Fri Mar 16 22:22:17 2018 -0400 Release 3.2 version commit ab111f2d67b895ddb4ed8e5cfe3a109234f7624d Author: Andrey Sitnik Date: Fri Mar 16 22:22:10 2018 -0400 Improve CLI docs commit 44d436354ade8cf9a773d16f790a9daead9b2771 Author: Andrey Sitnik Date: Fri Mar 16 22:19:27 2018 -0400 Update size limit commit e9a464f33760c324fcde6d69f51d938051c6a27f Author: Andrey Sitnik Date: Fri Mar 16 22:18:34 2018 -0400 Remove old word from dictionary commit 07a4cc409355d7adb222719b96b109e6d354bcf1 Author: Andrey Sitnik Date: Fri Mar 16 22:15:40 2018 -0400 Update dependencies commit d1bc0ddd22d68428f7d85be1b42e6f6d2f27f31a Author: Andrey Sitnik Date: Fri Mar 16 22:14:24 2018 -0400 Rename mystats value to my stats commit 6ad26e41ef864e3867de90502c7d9c527bffe1d4 Author: Andrey Sitnik Date: Fri Mar 16 22:11:24 2018 -0400 Add converage my stats option to docs commit 894467dbb39baad554423beaaeec64bb4f34fbde Author: Vasily Fedoseyev Date: Sat Mar 17 05:06:22 2018 +0300 Ability to calculate coverage over custom stats (#237) * Ability to calculate coverage over custom stats * Also load custom stats from path for coverage commit 32d3e624e93b30756cb8571521c600db8eec187f Author: Andrey Sitnik Date: Fri Mar 16 22:05:52 2018 -0400 Clean up code commit 552a8c9573b5f21db936c16917215127e28277d3 Author: Andrey Sitnik Date: Fri Mar 16 22:00:53 2018 -0400 Improve cover query docs commit 66eab3c2f0f8bfc5a6406f852c1ac1a7779553cc Author: Vasily Fedoseyev Date: Sat Mar 17 04:59:44 2018 +0300 Proposal: `cover 70% in my stats` query (#236) * Support for `cover 70% of my stats` query * `cover` query for global and region statistics * Increase size-limit for `cover` feature to fit commit 33f07188ccff24d72f2ba297f48fdacdf6128e48 Author: David Francisco Date: Tue Mar 13 23:19:50 2018 +0000 Update browserslist-ga usage instruction (#235) commit 305c1202f1e5c3f69d39528ea8551dedde060814 Author: Andrey Sitnik Date: Tue Mar 13 13:31:09 2018 -0400 Clean up browserslist-ga description commit 89988b7aa3ac1766072bc858600f7bd08ae6d774 Author: Andrey Sitnik Date: Tue Mar 13 13:04:24 2018 -0400 Add browserslist-ga to docs commit 1c8fec6c42ac028be27064637a98cf48b5e62215 Author: Andrey Sitnik Date: Tue Mar 13 12:57:06 2018 -0400 Update dependencies commit 3cdb3df11c7b1d85c9fa6066c738403bb8beed31 Author: Andrey Sitnik Date: Thu Mar 8 10:05:10 2018 -0500 Release 3.1.2 version commit e4b39e3c6ca434a479f25c84d9accc54d7c3d559 Author: Andrey Sitnik Date: Thu Mar 8 10:02:57 2018 -0500 Add more clear error on missed browser version commit 07d6c372fbbcd03b8882e749c1bf637460def5ec Author: Andrey Sitnik Date: Thu Mar 8 09:52:55 2018 -0500 Update dependencies commit f2189b0343809de7f72aa8a4b2a91dcbd73d99d1 Author: Andrey Sitnik Date: Thu Mar 8 09:51:45 2018 -0500 Rename latest Node.js version in Travis CI commit 840472ad70ce34831d819b02fcac74d94d438403 Author: Andrey Sitnik Date: Mon Feb 26 18:06:55 2018 +0300 Clean up docs commit 46d6bf62f30ef4126ae273519a647e2f0c5f3b01 Author: vaxul Date: Mon Feb 26 16:04:14 2018 +0100 Create and document a bookmarklet to download custom usage data from CanIuse (#233) commit f8f8552c73666a053fd64b0b02c669de22a84771 Author: Andrey Sitnik Date: Sat Feb 24 02:32:31 2018 +0300 Update dependencies commit d511de1c75990ffd5d81a9429d42d9ce61e2f2b1 Author: Andrey Sitnik Date: Sat Feb 24 02:31:30 2018 +0300 Add Cult of Martians badge commit f2e436b13d4667ddd47ce22b7fe945b37a760fdb Author: Andrey Sitnik Date: Mon Feb 19 02:28:22 2018 +0300 Release 3.1.1 version commit 1964c642918aaf75bf064214e479a276ee8d4080 Author: Andrey Sitnik Date: Mon Feb 19 02:26:18 2018 +0300 Update dependencies commit fd0de88eab927435b340c03aa42874f347ad636a Author: Sylvain Pollet-Villard Date: Mon Feb 19 00:12:16 2018 +0100 JSDoc: set browserslist options parameter as optional (#230) commit 126b860f4765aca239e8e1d6ba0d46ea617b6e34 Author: Andrey Sitnik Date: Wed Feb 14 16:11:34 2018 +0300 Release 3.1 version commit 0362dece8d7f040c0eb5ba3fccf81e0d37308409 Author: Andrey Sitnik Date: Wed Feb 14 16:08:33 2018 +0300 Add ignoreUnknownVersions option commit 8024fd2eab321ced588a4b678e27c943901ade7c Author: Andrey Sitnik Date: Wed Feb 14 15:05:12 2018 +0300 Fix docs header paddings commit a6af456d0ccbe4f64b673b7d13777ed33588ccce Author: Andrey Sitnik Date: Wed Feb 14 14:57:21 2018 +0300 Update dependencies commit 0ab2a8d16f29f7d6c2a3e7e908a03096f143fd8c Author: Pascal Duez Date: Mon Feb 12 16:28:39 2018 +0100 Update default versions in Readme (#228) commit 22c757659b3f3f04abedb1f9379dff24e0f11eb7 Author: Andrey Sitnik Date: Sat Feb 10 19:48:50 2018 +0300 Release 3.0 version commit 96185d3d9661c76b5760cc2bc5bc18c779526439 Author: Andrey Sitnik Date: Sat Feb 10 19:38:09 2018 +0300 Update dependencies commit 7a86023c8ceeb9729a2c8cf4cc5d3c28ed4fe921 Author: Andrey Sitnik Date: Sat Feb 10 19:32:31 2018 +0300 Throw on dublicate sections commit 2ccecf5acf81186de00d83d33dfb292e7e47f921 Author: Evilebot Tnawi Date: Sat Feb 10 18:46:20 2018 +0300 feat: support multiple env in one section (#227) commit 1d82c3060777ce75639e44f1663f33a3a42f187f Author: Andrey Sitnik Date: Sat Feb 10 17:21:22 2018 +0300 Add custom statistics support to coverage calculation commit e7d847a4b1b66d4d615305ea85e93c3d9716bc2d Author: Andrey Sitnik Date: Sat Feb 10 17:06:13 2018 +0300 Fix indent commit 4bd4e5f4ad3df40adedacdce8a01b78fd359a80f Author: Andrey Sitnik Date: Sat Feb 10 16:42:45 2018 +0300 Reduce size limit commit 15cf8606b89ab96b1ab7ad73f459b279af0e6d8d Author: Andrey Sitnik Date: Sat Feb 10 00:36:49 2018 +0300 Update dependencies commit d2f4ac43ce694339c6e26488152f12a95d1ba72c Author: Marco Fugaro Date: Thu Feb 8 16:33:54 2018 +0100 Change default environment to production, fixes #224 (#225) commit ceb7b282dc5ee849cca458468f94680972365215 Author: Andrey Sitnik Date: Thu Feb 8 16:55:02 2018 +0300 Add current dead browsers to docs commit 1caa1e7bba46e02d382ce2330d922371bf0b696b Author: Jesse Strangfeld Date: Wed Feb 7 13:57:17 2018 -0500 Update Custom Browser Data snippet (#223) Removes dependency on `localStorage["config-primary_usage"]` on caniuse.com. Please see #221 for more information. commit e3de4e185e4737d82cf15fdfa09e3c2eab56c34c Author: Andrey Sitnik Date: Wed Feb 7 18:33:07 2018 +0300 Increase test coverage by functions commit 092a64161f0b73a4cb4ee6b7a8f3a4707c9df226 Author: Andrey Sitnik Date: Wed Feb 7 18:28:26 2018 +0300 Increase test coverage commit b186141d9af4c3722ebf940f71cacccea92b7a7e Author: Andrey Sitnik Date: Wed Feb 7 18:09:28 2018 +0300 Improve test coverage commit 83651fae0eb13374d5bb938b6a648886f91a4e48 Author: Andrey Sitnik Date: Wed Feb 7 18:01:23 2018 +0300 Update dependencies commit 30872a18d29411a410f2723b2c2eb25593be4295 Author: Andrey Sitnik Date: Sun Feb 4 10:02:46 2018 -0500 Remove unnecessary docs commit cf0a23fda0c14927cb16f140f38023c7bf79d177 Author: Andrey Sitnik Date: Sun Feb 4 09:51:58 2018 -0500 Remove country statistics support from client-side build of Browserslist commit 9afbb96de705b3a8655a44a7118fb1f24216664c Author: Andrey Sitnik Date: Sun Feb 4 09:15:16 2018 -0500 Add IE mobile 10 to dead browsers commit 7bfb5b83c7309ea7cfb4afbd7cf95c3d1429ab08 Author: Andrey Sitnik Date: Sun Feb 4 09:12:00 2018 -0500 Reduce usage statistics limit in default commit 6387e1933ccf3a577e7738f60cd8b45ad07716f8 Author: Andrey Sitnik Date: Sun Feb 4 09:10:49 2018 -0500 Add BlackBerry to dead browsers commit 165c8c226e226ce7f6ef410a3b97c7ab313ea996 Author: Andrey Sitnik Date: Tue Jan 30 23:01:22 2018 +0300 Add dead query commit f9c05d4fbed4a5e557a483a2a313ef1de619ac48 Author: Andrey Sitnik Date: Sun Feb 4 09:17:50 2018 -0500 Update dependencies commit a899160f1ad9ae4383b8748300f3026891b6c1a4 Author: Andrey Sitnik Date: Thu Feb 1 17:08:05 2018 -0500 Fix line breaks commit 2c6c73c6df61b926fcb7ac03e05836f5fc205b70 Author: Andrey Sitnik Date: Thu Feb 1 17:07:37 2018 -0500 Clean up first section commit 0f06d2c3c0879e478d327d18f0fcf998a5570718 Author: Andrey Sitnik Date: Thu Feb 1 17:06:51 2018 -0500 Move examples link above commit 83ff965007d6119b95cab2d6ec326023e021d34a Author: Andrey Sitnik Date: Wed Jan 31 13:28:02 2018 -0500 Add Browserslist example commit a307c16e8d1bcf7bd9c2c995382cdf9fa8015256 Author: Andrey Sitnik Date: Wed Jan 31 01:07:53 2018 +0300 Clean up Evil Martians logo commit 1936d2d78c799def843a2281cbe984e46b839f34 Author: Andrey Sitnik Date: Tue Jan 30 22:58:00 2018 +0300 Add defaults query to docs commit 5d763e7cb5d7f29dbadad8a8f5e0a11f455a3932 Author: Andrey Sitnik Date: Tue Jan 30 22:54:47 2018 +0300 Improve defaults query tests commit 4df82f748fb366e19eeefbfdc3aae86ccef7f40b Author: Andrey Sitnik Date: Tue Jan 30 22:52:33 2018 +0300 Improve test coverage commit 63a3085d2d26229e72811cf81747ee17e5e7a0b9 Author: Andrey Sitnik Date: Mon Jan 29 19:32:34 2018 +0300 Better opts.path check commit be55e635f9945a5e2441d327889a78fb068081dd Author: ken Date: Tue Jan 30 00:30:58 2018 +0800 can't find browserslist config (#217) when path is undefined, can't find browserslist config https://github.com/postcss/autoprefixer/pull/976 commit a0aff3ecac5a1933a8af39f1af17a26d189fcb49 Author: Wildan Mubarok Date: Thu Jan 18 10:00:56 2018 +0700 upgrade electron-to-chromium (#214) to 1.3.31 commit e98f891d64ad980e3f1d2041e77080ce0a2d8251 Author: Andrey Sitnik Date: Mon Jan 15 21:44:15 2018 +1000 Release 2.11.3 version commit b98ed60394bb7bfdc69bd95a9ee026a757c7e4ec Author: Andrey Sitnik Date: Mon Jan 15 21:42:59 2018 +1000 Update dependencies commit 826cd03e492a190ef34c1a0c0c7191e96e9e7b12 Author: Andrey Sitnik Date: Mon Jan 15 21:41:27 2018 +1000 Fix explicit undefined in path option commit 43b96cbb951f7a03e9abd20524b96b48f710018c Author: Andrey Sitnik Date: Mon Jan 15 17:20:50 2018 +1000 Release 2.11.2 version commit 5abc31fe153a7815d811f31ecda255ca8e801c64 Author: Andrey Sitnik Date: Mon Jan 15 17:02:17 2018 +1000 Split node and browser specific code to separated files commit b3228858f8844aa7ea049d39e2297a0fb1d9c4fd Author: Andrey Sitnik Date: Mon Jan 15 15:25:00 2018 +1000 Update depenencies commit c5a4bc9901572f141122af54e4835f8fd1f7ff9e Author: Andrey Sitnik Date: Thu Jan 11 12:23:09 2018 +1000 Release 2.11.1 version commit 8198f08aefff84c4ff4f41dc1d2e8ac05f8dd935 Author: Andrey Sitnik Date: Thu Jan 11 12:20:38 2018 +1000 Update dependencies commit 75e74720e6e9fe3694a0c1d26a814bf1d205c699 Author: Andrey Sitnik Date: Thu Jan 11 12:17:43 2018 +1000 Fix using Browserslist in browser with path but without fs commit f8a41c66c0a59888b960dedc4c1afb92b0dbea87 Author: Andrey Sitnik Date: Wed Jan 3 20:01:18 2018 +1000 Clean up docs titles commit ce5174ce78a76ca48ed26747bb787ac6c14d82ab Author: Andrey Sitnik Date: Wed Jan 3 18:58:29 2018 +1000 Release 2.11 version commit 0cb380d403031eefb8e06064f57d35b9af9c591b Author: Andrey Sitnik Date: Wed Jan 3 18:56:10 2018 +1000 Update dependencies commit 3125cd08e1367691112c15bdf2f34a99153fb5a5 Author: Andrey Sitnik Date: Wed Jan 3 18:53:20 2018 +1000 Clean up docs commit 1f80c6c19a07d317b6b578370c69c1c76d972829 Author: Andrey Sitnik Date: Wed Jan 3 18:52:30 2018 +1000 Clean up tests commit a7e5ac942c6b8a50da4a807bdd4a982e69ac6c1d Author: James Harris Date: Wed Jan 3 08:50:51 2018 +0000 Support 'last 2 years' query (#209) commit 9b7326e50ff414556c1410158d120a981c6ab52c Author: Andrey Sitnik Date: Tue Jan 2 12:48:25 2018 +1000 Fix babel-preset-env note commit 545a6933215438b99becbe47956614d963d833a6 Author: Andrey Sitnik Date: Tue Jan 2 12:46:45 2018 +1000 Fix line breaks in docs commit 883699231196ff6da5a1e49fdc25beee558713f3 Author: Andrey Sitnik Date: Tue Jan 2 12:18:16 2018 +1000 Release 2.10.2 version commit b81703ef61d229de463dbf8a76a20f2cae1bd27e Author: Andrey Sitnik Date: Tue Jan 2 11:26:56 2018 +1000 Fix process.env in Browserify commit 966b5d5273ea3774c078d1b6c4b62219d61c044e Author: Andrey Sitnik Date: Tue Jan 2 10:39:09 2018 +1000 Fix line breaks in the docs commit 3d55a1c83d1b679ed3ddf9fec427145e18bfc9ae Author: Andrey Sitnik Date: Tue Jan 2 10:38:35 2018 +1000 Simplify docs commit 9d794cd8724804984c3a3a5b6a14752a90f7c7af Author: Andrey Sitnik Date: Tue Jan 2 10:37:07 2018 +1000 Fix line breaks in the docs commit 951230faf546b4298b9855448d399af369bf5120 Author: Andrey Sitnik Date: Tue Jan 2 10:36:36 2018 +1000 Clean up docs commit 7d813511b554ba206dac38af59f3442c5efba776 Author: Andrey Sitnik Date: Sun Dec 31 13:59:49 2017 +1000 Release 2.10.1 version commit 03b9bd7683dbb42237a968d848e3465383305d67 Author: Andrey Sitnik Date: Sun Dec 31 13:49:10 2017 +1000 Try to fix tests on Windows commit 743134a615b2ef063bd260fb13c36dd8e6aba370 Author: Andrey Sitnik Date: Sun Dec 31 13:29:18 2017 +1000 Correctly set AppVeyor environment variables commit 63a7262dd7a56e3a1ba0cb9736326fb0002fb772 Author: Andrey Sitnik Date: Sun Dec 31 13:10:17 2017 +1000 Try to fix AppVeyor support commit 8f6deb2bdac0af9ab314a492d4658d39766e259b Author: Andrey Sitnik Date: Sun Dec 31 12:55:55 2017 +1000 Use Jest 22 commit f5322f6b41149153ef774181c04cf0f4887e7996 Author: Andrey Sitnik Date: Sun Dec 31 12:54:50 2017 +1000 Add caniuse-api to docs commit 1275e1d170cf9bc8f437202c8a19a8fe30066300 Author: Andrey Sitnik Date: Sun Dec 31 12:48:27 2017 +1000 Update dependencies commit d7c630d88ed7ba339f81d4996a60273d6d5d9e67 Author: Andrey Sitnik Date: Sun Dec 31 12:46:53 2017 +1000 Remove process polyfill from webpack build commit ef2789178106986cc840dae3f6068e4289879c59 Author: Andrey Sitnik Date: Sun Dec 31 12:39:51 2017 +1000 Update size limit commit 6c0cd021478af404a2b81f76f54f96aa5563f52b Author: Andrew Patton Date: Sat Dec 30 18:39:14 2017 -0800 Guard against undefined process global for browser (#206) commit a1c45f04ccea94c118d4fcef108962be977c9d29 Author: Andrey Sitnik Date: Sat Dec 16 16:50:23 2017 +0300 Add postcss-preset-env commit 88472bf2b28e6b3353b21911c267f91caa93f733 Author: Ruslan Gunawardana Date: Fri Dec 15 15:08:23 2017 +0200 README: fix babel-preset-env link (#202) babel-preset-env moved to babel monrepo, so the link should be changed commit a98dd9e9fda1c1ed5ef2f781c52db38f023b998f Author: Andrey Sitnik Date: Wed Dec 6 16:48:41 2017 +0300 Release 2.10 version commit 94c34212b536023c3fdf808dbed19cf35aa864a5 Author: Andrey Sitnik Date: Wed Dec 6 16:45:38 2017 +0300 Update dependencies commit 6bfbf049078e85450fc00c55f9c95492db293fa4 Author: Andrey Sitnik Date: Wed Dec 6 16:41:57 2017 +0300 Remove one more line from queries docs commit b2738ffcfd0b49dddb274f87dad979f8d4dc4388 Author: Andrey Sitnik Date: Wed Dec 6 16:41:08 2017 +0300 Make every query doc in one line commit c3cb549c419935f74e5f5ad3c7200b110c283c3a Author: Andrey Sitnik Date: Wed Dec 6 16:40:19 2017 +0300 Clean up queries list commit 9a6a958c89cb80f56f81f5700d48487015da8763 Author: August “Kai” Kaiser Date: Wed Dec 6 05:34:05 2017 -0800 Support '< 1%' (useful for 'not' queries) (#198) Example from December 5th, 2017: 'defaults' and_chr 62 and_ff 57 and_qq 1.2 and_uc 11.4 android 62 android 4.4.3-4.4.4 baidu 7.12 bb 10 bb 7 chrome 62 chrome 61 chrome 60 edge 16 edge 15 firefox 57 firefox 56 firefox 52 ie 11 ie 10 ie_mob 11 ie_mob 10 ios_saf 11 ios_saf 10.3 op_mini all op_mob 37 op_mob 12.1 opera 48 opera 47 safari 11 safari 10.1 samsung 5 samsung 4 'defaults, not < 1%' and_chr 62 and_uc 11.4 chrome 61 chrome 60 edge 15 firefox 56 ie 11 ios_saf 11 ios_saf 10.3 op_mini all safari 11 samsung 5 samsung 4 commit 1e7be28aa2f87a93aab88c0af5a0a5280105bf14 Author: Andrey Sitnik Date: Thu Nov 23 18:50:09 2017 +0300 Release 2.9.1 version commit 2da53056cdaab46bf492550a373b59158ac433c1 Author: Andrey Sitnik Date: Thu Nov 23 18:44:15 2017 +0300 Trim queries commit 74950c1e9c9ea38e846e8e21929564b6c9e145f4 Author: Andrey Sitnik Date: Thu Nov 23 18:42:26 2017 +0300 Update dependencies commit 23f26a0e8d1a52fe18b6bbed281d8d9abb3465d1 Author: Andrey Sitnik Date: Mon Nov 20 02:13:54 2017 +0300 Update ESLint config commit 2ad2685a6465a87b2f647a5ff08d7e2d31f3e308 Author: Andrey Sitnik Date: Mon Nov 20 01:59:35 2017 +0300 Update Size Limit commit 9858ee4b8d1c9c3a7a160c781ed432b1eea65872 Author: Andrey Sitnik Date: Mon Nov 20 01:47:31 2017 +0300 Update dependencies commit ab91d0628ff9a0f64a4a7f8b9e4c58fe238ffaf0 Author: Andrey Sitnik Date: Mon Nov 20 01:38:15 2017 +0300 Use ESLint CI commit f7d56d6da93819c1edc696079ee5627682b7ae33 Author: Andrey Sitnik Date: Mon Nov 20 01:08:00 2017 +0300 Add CLI tool demo commit b1a6712b5917b357039772e904d7e7bd0a855cec Author: Andrey Sitnik Date: Mon Nov 20 01:06:25 2017 +0300 Move CLI tools recommendation to special section commit 6c7519c9d14c0e8aa568ab8e327c83f99da0e5ff Author: Andrey Sitnik Date: Mon Nov 20 01:05:44 2017 +0300 Add browserslist CLI tool to docs commit 050ab8ce9e10ae0737e193115f1296e6e3ce6e6a Author: Andrey Sitnik Date: Sun Nov 12 13:13:52 2017 +0300 Release 2.9 version commit e9adba78a24274fde4303ecdaa8e9dbf9a20b03b Author: Andrey Sitnik Date: Sun Nov 12 13:06:44 2017 +0300 Fix Electron last versions queries commit 5b408f1ba452333b75372ff1a9a158aa524f4c23 Author: Andrey Sitnik Date: Sun Nov 12 12:59:27 2017 +0300 Update dependencies commit f32dfb5e909f7f5f5bf3f667b6074c1963e7ce14 Author: Louis MOUHAT Date: Sun Nov 12 10:58:21 2017 +0100 Add support for last / last major versions of Electron (#194) commit ab6ebed037768ceb19473dd734621029f02f111d Author: Andrey Sitnik Date: Wed Nov 8 03:56:58 2017 +0300 Release 2.8 version commit d8178c9d5dc9e6d61c1a53095f56bc899365a8ac Author: Andrey Sitnik Date: Wed Nov 8 03:55:14 2017 +0300 Clean up tests commit 85096d0a8d21b4ae8fdb04adf1d0fd5ab0518f59 Author: Andrey Sitnik Date: Wed Nov 8 03:51:58 2017 +0300 Disable unsafe-regexp rule globally commit e5974adb5aa58dc9f4354218714f7ac1b29fb7d4 Author: Andrey Sitnik Date: Wed Nov 8 03:50:12 2017 +0300 Update dependencies commit a571c857dcc8e7da6ed9493252429369c6bc1b3c Author: Andrey Sitnik Date: Wed Nov 8 03:49:52 2017 +0300 Combine all since query examples commit a66f0c8a18a2b13c4636b76f6665678dc8a218ac Author: Andrew Blick Date: Tue Nov 7 19:45:51 2017 -0500 Add month and date support to since queries (#191) * Support months in since expressions * Add support for since dates * Update regex and remove constants * Add test coverage for data boundaries * Add since month and date examples to README commit 7cfb0852818ebd2c2600b035d16a55e1df03ae25 Author: Andrey Sitnik Date: Thu Nov 2 15:06:50 2017 +0100 Release 2.7 version commit f05fa6cc222e4069f8570cf53cff376d62d65224 Author: Andrey Sitnik Date: Thu Nov 2 15:04:32 2017 +0100 Increase size limit commit 06bae85650d13387626e3e7951b22b554643e3be Author: Andrey Sitnik Date: Thu Nov 2 14:58:02 2017 +0100 Update dependencies commit 80027a11dfd99718d21d7621970a35ca4b614fe1 Author: Andrey Sitnik Date: Thu Nov 2 14:50:43 2017 +0100 Add separated Node.js 8 to Travis CI config commit 42fe9424835a882790c4ab40efbbf9c28e7219f3 Author: Igor Deryabin Date: Thu Nov 2 12:30:07 2017 +0200 New "since" query (#189) * Add `since ` query * Refactor other queries to use .reduce() * Rename `ts` → `since` * Remove incorrect year check commit 3909dcdb19f50d86be5cf483226214e2e0417cad Author: Andrey Sitnik Date: Wed Nov 1 14:51:01 2017 +0100 Update dependencies commit 0d41ff261bea22776e7d2087392c97b905674eb6 Author: Andrey Sitnik Date: Wed Nov 1 14:49:47 2017 +0100 Fix Tools section in the docs commit bb2058a036f2ffdc08e0070ea6418bf174a8ff36 Author: Shubham Kanodia Date: Wed Nov 1 19:16:38 2017 +0530 Added a link to `browserslist-useragent` (#190) * Added a link to `browserslist-useragent` * Moved browserslist-useragent to the tools section commit 24bff2ef9db494b10820d6f40b0796b7446d14c6 Author: Andrey Sitnik Date: Sun Oct 29 20:48:03 2017 +0100 Release 2.6.1 version commit cca4cb0a65658ea86ebd4cd5aadbb783ebbbb79e Author: Andrey Sitnik Date: Sun Oct 29 20:47:16 2017 +0100 Fix "Path must be a string" error commit dfe6b2a3270ba36017182ec9aa37098b01340a89 Author: Andrey Sitnik Date: Sun Oct 29 20:22:32 2017 +0100 Release 2.6 version commit 0d4caee8352b6f235e521acdcf8cb21dc1d92820 Author: Andrey Sitnik Date: Sun Oct 29 19:53:49 2017 +0100 Load config from current dir in CLI commit b1cd26a86834b87243c6aee7d2a91e6d2a111410 Author: Andrey Sitnik Date: Sun Oct 29 19:42:48 2017 +0100 Change project description commit 0e0eed4b6de1273383593af07670519d5edfec90 Author: Andrey Sitnik Date: Sun Oct 29 18:52:15 2017 +0100 Update dependencies commit c5920591f3269964d99863eaea6cc592d41fd5a4 Author: Andrey Sitnik Date: Thu Oct 19 14:43:02 2017 +0200 Update dependencies commit 4b096bc850a8dabb4e6ffd4af49526411f45e774 Author: Andrey Sitnik Date: Thu Oct 19 14:40:36 2017 +0200 Fix cache test commit 7f652358d4b725b7e57097e9a2a07d6b7a7548cd Author: Dmitry Semigradsky Date: Thu Oct 19 14:46:10 2017 +0300 Add test, increase coverage (#185) commit 698e24737d15008662c71075ca137dbdd27e55b2 Author: Andrey Sitnik Date: Sun Oct 8 19:19:15 2017 +0300 Release 2.5.1 version commit 6cd616f9d7960b40d2df71f127160b2c637a8499 Author: Andrey Sitnik Date: Sun Oct 8 19:17:21 2017 +0300 Clean up docs commit 1a88c4534c49cd7ee9190e389cef2d2127c982db Author: Jamie Connolly Date: Sun Oct 8 17:05:27 2017 +0100 Add support for @scope/browserslist-config (#182) * Add support for @scope/browserslist-config * Add info about scoped packages to the README.md commit ea5928c027eb40e8d0ffaec5ce4f28a4b3c7f714 Author: Andrey Sitnik Date: Sun Oct 8 14:38:33 2017 +0300 Fix config example commit 1a98a6efdd3c572a85c25cbbfa59558f2077cdbf Author: Stephen Edgar Date: Sun Oct 8 21:09:24 2017 +1000 Add trailing comma to shared config array example (#181) commit cbd6c8870447d58469dcbb444d2cda35195f3687 Author: Andrey Sitnik Date: Sat Oct 7 00:28:20 2017 +0300 Normalize error style commit 51e2667afbcae64c18a1a03429b20c890a6f2d99 Author: Andrey Sitnik Date: Fri Oct 6 23:12:30 2017 +0300 Fix extends query docs title commit eeb27451ec4ede06bd849bf7afb1d8dd5db2e50d Author: Andrey Sitnik Date: Fri Oct 6 22:34:32 2017 +0300 Release 2.5 version commit 1420e32ade1a11aac20450530142ac69df29d73c Author: Andrey Sitnik Date: Fri Oct 6 22:30:54 2017 +0300 Fix code examples highlight commit 40b57fc2810b905005cc9668cdffd43bc3a98a21 Author: Andrey Sitnik Date: Fri Oct 6 22:27:51 2017 +0300 Clean up docs commit 669e50c9975df24766508e623ba6ef9b2c22aece Author: Andrey Sitnik Date: Fri Oct 6 21:59:39 2017 +0300 Clean up extends tests commit 211758e3a337afca9f136e948068c20d814af938 Author: Andrey Sitnik Date: Fri Oct 6 21:48:10 2017 +0300 Clean up extend code commit d34a69937ade077ff6bac732a2a21df79867d88d Author: Andrey Sitnik Date: Fri Oct 6 21:32:00 2017 +0300 Clean up config check commit a8292a4b2d2f030feca0246faa623b65a191e93d Author: Andrey Sitnik Date: Fri Oct 6 21:18:06 2017 +0300 Update dependencies commit 6fab867e2368411eef21999bf4b7b67382266404 Author: YellowKirby Date: Fri Oct 6 11:15:52 2017 -0700 Support resolving shared config from external package (#171) * Support resolving shared config from external package Adds support for a special "use" query which requires the corresponding package name and merges that config into the browserslist array. Related: #122 * Document "use" queries in README * Use `extends` keyword instead of `use` - Change keyword for clarity - Throws when external package does not resolve correctly, not just warns - Add tests that also include relative queries - Update README * Move external handler into QUERIES * Move resolveExternalPackage into QUERIES map * Add test for `not` queries from external package * Add checks for external package 1. Extend path must start from browserslist-config-*. 2. Extend path should not contain /../. 3. Extend path should not contain /node_modules/. Added `dangerousExtend` option to disable above checks * Update readme with `browserslist-config-` prefix requirements * Add `dangerousExtend` documentation * Fix validation tests commit abebcc4195630822b7a39108dffb2fe465254d69 Author: Andrey Sitnik Date: Mon Sep 25 09:50:29 2017 +0300 Fix spelling check commit 314355569b7e4e6277679ed7c6034dd4e65e03da Author: Andrey Sitnik Date: Mon Sep 25 09:50:18 2017 +0300 Update dependencies commit 327dac253cfccb97bdf64f3f8983dbe64fc5cd0f Author: rmacklin Date: Sun Sep 24 23:48:16 2017 -0700 Clarify comment about babel-preset-env external config support (#177) Previously this comment read: > no config support, only tool option However, this was confusing, because if you follow the link to the babel-preset-env repository, you will find documentation about support for external config in package.json or browserlist files: https://github.com/babel/babel-preset-env/blame/927a3b521907fce260898208a3d30c1694917730/README.md#L108-L149 That's because the master branch of the babel-preset-env repository is for version 2.0, while the README for the latest 1.x release is only available on the 1.x branch. Version 2.0 is currently still in beta, but it includes support for reading an external config in package.json or browserslist files (via https://github.com/babel/babel-preset-env/pull/161). With this in mind, I've updated this comment to: > external config in package.json or browserslist files supported in v2.0+ in an effort to remove this confusion. Once version 2.0 gets out of beta, we can probably remove this comment, but until then I think it's helpful, and lets users know that if they want external config support they can try the latest beta release of babel-present-env v2.0. commit 7ed7b504ac9f70cd7a3a4952f54cd630c433edf7 Author: Andrey Sitnik Date: Mon Sep 11 00:26:22 2017 +1000 Add test to keep browsers list actual commit a18c7b2244418b436d428c63696424f4442ab3e4 Author: Andrey Sitnik Date: Mon Sep 11 00:23:58 2017 +1000 Update dependencies commit bac8f6c1e80340572b205281da4654e70f1f8dc3 Author: Andrey Sitnik Date: Mon Sep 11 00:22:24 2017 +1000 Add Baidu browser to docs commit d6118f3d33dc78bad645ad7f03753614dfbb3076 Author: Andrey Sitnik Date: Tue Sep 5 16:53:12 2017 +0800 Better way to test broken package.json with Jest 21 commit b5dbaad8a98f13c5461359c4479a767a111b45f8 Author: Andrey Sitnik Date: Tue Sep 5 14:32:45 2017 +0800 Release 2.4.1 version commit 82a85ada06042cf6e6f93fd4c71a6bcc3d49bd8c Author: Andrey Sitnik Date: Tue Sep 5 14:31:58 2017 +0800 Add error for browserlist typo commit 622dfa5abbcdc8587f9855e78776154e19b6a251 Author: Andrey Sitnik Date: Tue Sep 5 14:24:11 2017 +0800 Update dependencies commit 4f5558ab8c21afcee5f1a688f6cef7fa0884b657 Author: Andrey Sitnik Date: Tue Sep 5 13:54:48 2017 +0800 Use logo from repo commit 7d1c781c01c2c49d48d1837e8c425fc838cb5ba2 Author: Andrey Sitnik Date: Tue Sep 5 13:54:09 2017 +0800 Update logo commit d5270df2ad7a4d9b5e57bbd44ce651883b02a497 Author: Andrey Sitnik Date: Wed Aug 30 18:35:40 2017 +0800 Change mock API commit 5bf38928a2b2c626403984c2a93cace715bfdb65 Author: Andrey Sitnik Date: Wed Aug 30 18:33:14 2017 +0800 Update dependencies commit 3308151aaf389950507aecde8f3fa5e4a2832bbb Author: Andrey Sitnik Date: Sun Aug 27 16:51:11 2017 +0800 Release 2.4 version commit e143a9b7352c8555c02c1da796fbd683dae74164 Author: Andrey Sitnik Date: Sun Aug 27 12:32:27 2017 +0800 Clean up code commit 9a687ed0fb772f594e0e6e61a1e54d0b8e4f5fe4 Author: Andrey Sitnik Date: Sun Aug 27 12:22:49 2017 +0800 Fix function name commit bd917d5b0a16905fbeb9d758a88bf3ff631cbde7 Author: Andrey Sitnik Date: Sun Aug 27 12:21:39 2017 +0800 Fix test name commit a244d628013271ed64712f288e4cc4bbab4544a7 Author: Andrey Sitnik Date: Sun Aug 27 12:20:44 2017 +0800 Clean up docs commit 14648789676c8a7081d47d8b56b4ec1ef5513c51 Author: Andrey Sitnik Date: Sun Aug 27 12:19:34 2017 +0800 Update dependencies commit bb4412340ce8fdc2ddf9bf4cf109e8333e52ed56 Author: John Sanders Date: Sun Aug 27 16:17:32 2017 +1200 New Feature: Major versions queries (#170) * Feature: Allow users to specify last X major versions * Update README with last X major versions queries commit 8986ac5e4a2390f6314b22e75abd241b57e5e382 Author: Andrey Sitnik Date: Mon Aug 14 17:55:15 2017 -0700 Release 2.3.3 version commit ef9bd316614a1903853b3a2e291c130607f696ac Author: Andrey Sitnik Date: Mon Aug 14 17:54:23 2017 -0700 Fix Browserslist in browser commit b6c07d20c4509218d5b7ac0f9988e6b71ddb84b6 Author: Andrey Sitnik Date: Mon Aug 14 17:50:02 2017 -0700 Clean up code commit 60f3b9cefca3fd4e2ca6add0231de62a916b822f Author: Andrey Sitnik Date: Mon Aug 14 17:46:13 2017 -0700 Lint mocks too commit f2c0a8a03c2ffdd6a62e4eb0f617ca00e29dc5c7 Author: Andrey Sitnik Date: Mon Aug 14 17:40:23 2017 -0700 Update depedencies commit 9900b114465459dba3ce1a7f02d7fcd083f1de43 Author: Andrey Sitnik Date: Fri Aug 11 13:40:25 2017 -0700 Release 2.3.2 version commit c3fcf761ce52d7d63ddfb069ebcd4dc3a3d76682 Author: Andrey Sitnik Date: Fri Aug 11 13:38:40 2017 -0700 Add test for > 0 query for one-version browsers commit b7c61ffa366d6a399fdf5ea8190c26a82e435f51 Author: Nikolay Solovyov Date: Fri Aug 11 23:32:23 2017 +0300 Fix version detecting #166 (#168) commit d34f3c14e378d84442a9fb8b7e301052331563ef Author: Andrey Sitnik Date: Fri Aug 11 13:29:05 2017 -0700 Update dependencies commit e3add608e34b449238ddb9fbdf4ec8bce522095b Author: Andrey Sitnik Date: Wed Aug 9 23:34:33 2017 -0700 Run on latest Node.js in AppVeyor commit 9bdb73644cb5a3c2a5f51554e9599677ccedefcb Author: Andrey Sitnik Date: Tue Aug 8 23:08:29 2017 -0700 Release 2.3.1 version commit 7b466a150341f1c102b7e1df40ef492db3581f09 Author: Andrey Sitnik Date: Tue Aug 8 23:00:00 2017 -0700 Fix spelling check commit ca77071bc00d90b32fc4f306c375869762a4b479 Author: Andrey Sitnik Date: Tue Aug 8 22:59:06 2017 -0700 Add Webpack section to docs commit bdb34e2c4fdea32521252b5b75f62ce86893ec92 Author: Andrey Sitnik Date: Tue Aug 8 22:50:20 2017 -0700 Do no add process polyfill commit 787a4aef5e4ebddc0660670d9028e72681093739 Author: Andrey Sitnik Date: Tue Aug 8 22:30:20 2017 -0700 Update dependencies commit a52df3a1fca6d337ad5dfaeb0e11b113bb27a5ba Author: Andrey Sitnik Date: Mon Aug 7 17:15:28 2017 -0700 Reduce bundle size commit 7d5b48224eb1187f56dba477e9e49df8676cd5c6 Author: Andrey Sitnik Date: Mon Aug 7 16:56:07 2017 -0700 Better variable name commit 74cb184cdd0b5fb1d9ade8cf1d8b85b028fc2c09 Author: Andrey Sitnik Date: Mon Aug 7 16:51:35 2017 -0700 Add Size Limit commit 447428532a357ecad1a91f9acdd5aeba263c60e8 Author: Andrey Sitnik Date: Mon Aug 7 11:07:15 2017 -0400 Update dependencies commit bf991b386f5deac03e171465fdb368dc7e3a9c8e Author: Andrey Sitnik Date: Fri Aug 4 21:06:43 2017 -0400 Release 2.3 version commit ae958cc7a3fe10428296e2fc203bb7f80bd3b6df Author: Andrey Sitnik Date: Fri Aug 4 21:01:55 2017 -0400 Add unreleased query commit 7048b1836a004f8b3c743adca26ea7a2d5b52f93 Author: Andrey Sitnik Date: Fri Aug 4 20:56:44 2017 -0400 Clean up code commit ac29c4dd9005210f10553a561d5aeccc8b441fed Author: Andrey Sitnik Date: Fri Aug 4 20:50:12 2017 -0400 Update dependencies commit 1ff5f51c1f31c6778956ca4a3ab6102b624d022d Author: Andrey Sitnik Date: Sat Jul 22 11:53:06 2017 -0500 Release 2.2.2 version commit a54decd3084705a910ee75f2743df1388fe934fb Author: Pieter Beulque Date: Sat Jul 22 18:50:57 2017 +0200 Resolve `Path must be a string` error (#161) commit 96a5111d6610660a6d3f637bd52d82af9ecfeef7 Author: Andrey Sitnik Date: Sat Jul 22 01:32:27 2017 -0500 Release 2.2.1 version commit 287a1f74e6e9067c580b74b59adceb593be03be8 Author: Andrey Sitnik Date: Sat Jul 22 00:56:12 2017 -0500 Update dependencies commit b2665c73721b1bb9438a060e3021a2f4b137dc65 Author: Andrey Sitnik Date: Sat Jul 22 00:55:05 2017 -0500 Use Logux config for ESLint commit 6ba0607a866c3e4a1f0697955f75966855154349 Author: Andrey Sitnik Date: Mon Jul 17 10:45:33 2017 -0500 Release 2.2 version commit bf57ea9f21f5100f63157e5ef44c94b03275e633 Author: Andrey Sitnik Date: Mon Jul 17 10:44:43 2017 -0500 Add alt-AS docs commit ee0c6a95aaba4a6502abc4efc2e9bbe6f0eae1fb Author: Andrey Sitnik Date: Mon Jul 17 10:40:12 2017 -0500 Update dependencies commit aaddf820498b0055b22594558beb727716d0950c Author: Andrey Sitnik Date: Mon Jul 17 10:25:27 2017 -0500 Fix continents usage data commit 787bf611dabd9a30e5faf0fda8296f01f517454b Author: Clément P Date: Mon Jul 17 17:18:23 2017 +0200 Update index.js (#157) * Update index.js allow use of continents data ``` javascript ">2% in alt-eu" // europe ">2% in alt-as" // asia ``` * Update index.js commit c0d96c2e0b58e50093f011fd0efd521f607ad267 Author: Evgeny Sugakov Date: Thu Jun 15 17:16:24 2017 +0300 Grammar fix: README.md file 40 line - "Can I use" (#155) commit b6f5745a70f6f6f79739c56b14b12a67ab58d0e3 Author: Andrey Sitnik Date: Tue Jun 13 11:30:38 2017 -0300 Release 2.1.5 version commit cbf07852eccb9a586612bf0b7b0988eb82ad25ec Author: Andrey Sitnik Date: Tue Jun 13 11:30:28 2017 -0300 Remove Firefox 45 from Firefox ESR commit 871614997001193e8b0fb75c187d8ebc50a98e33 Author: Andrey Sitnik Date: Tue Jun 13 11:26:48 2017 -0300 Update dependencies commit ea8b472ab91bf684e6636407f3e1406f0d69a74a Author: Andrey Sitnik Date: Mon Jun 12 14:22:36 2017 -0300 Use ESLint 4 commit 334172389784807f2c325a7654a855e4fd8d55cb Author: Andrey Sitnik Date: Mon Jun 12 14:22:29 2017 -0300 Fix indent commit 05137d70b25c8ccaa9d82e70b009a35aca1a6b43 Author: in-in Date: Tue May 23 00:44:03 2017 +0300 fix bad link (#150) sorry commit 34fc9d78e5601e53f886928b79b955cc9f623821 Author: in-in Date: Tue May 23 00:29:18 2017 +0300 fix typo (#149) also in the description but I can't fix it commit 70dcf08b89bafa5d1416bafe65807c84cf8e8e5b Author: Andrey Sitnik Date: Sun May 21 19:32:13 2017 +0200 Release 2.1.4 version commit fbac784f3c21f13d77df500fe16992b855ba5601 Author: Andrey Sitnik Date: Sun May 21 19:30:49 2017 +0200 Do not put icon.svg to npm package commit b2fbeb45e1ce44b3b2fecb5157c0a045fd18e6c5 Author: Andrey Sitnik Date: Sun May 21 19:30:18 2017 +0200 Update dependencies commit 86834acbc0d49f014b80168399217a1e0ef7a113 Author: Andrey Sitnik Date: Sun May 21 19:29:43 2017 +0200 Use both actual Firefox ESR commit 5912a7d03dcb64223230c2654feed3b568cef45b Author: Lovchikov Anton Date: Sat May 20 00:27:11 2017 +0200 Add icon commit a0bad1520d67d70f3a8bf491769f99c95fd916fe Author: Andrey Sitnik Date: Sat May 20 00:26:54 2017 +0200 Compress logo.svg commit 67946e3d7cfb368925bf2050a41221aa088b1488 Author: Andrey Sitnik Date: Thu May 18 15:25:18 2017 +0200 Release 2.1.3 version commit 03c0aee4943fde7fe87a0ee5880b79831a9660e9 Author: Andrey Sitnik Date: Thu May 18 15:20:39 2017 +0200 Update dependencies commit cd75aa7c24a9413973b4dd710d7d70208d2ea641 Author: Andrey Sitnik Date: Wed May 17 13:28:42 2017 +0200 Add error for first exclude query commit be2edd4a9d800a4aef94119eb9b6bde890ea8237 Author: Andrey Sitnik Date: Sat May 6 14:39:11 2017 +0200 Release 2.1.2 version commit 5bca558ee4fee08d83f579fbb24c0adf4244db0b Author: Andrey Sitnik Date: Sat May 6 14:37:17 2017 +0200 Fix works without fs module commit 717c04f6e4919183ff1c19084b8f0559f6072f69 Author: Andrey Sitnik Date: Fri May 5 11:18:02 2017 +0200 Add logo to docs commit 20d05096c24cfa5d7cfb0d92eecd95a5fadf84e4 Author: Lovchikov Anton Date: Fri May 5 11:09:54 2017 +0200 Add logo commit 2ec10809a23a4878db9afac7a03f14a9f9a48706 Author: Andrey Sitnik Date: Fri May 5 10:52:56 2017 +0200 Use marked list for tools and add postcss-normalize commit 696f4e0350cc2e29b23040b8e1deaaf7afce20c8 Author: Andrey Sitnik Date: Fri May 5 10:50:59 2017 +0200 Update depedencies commit 3bf9dc23a9c67a733fa7da7a0dc9fb283ad3deff Author: Andrey Sitnik Date: Sat Apr 29 14:05:33 2017 +0200 Release 2.1.1 version commit 087da66c3a69880a415fe3d6d824ef9960a3aad0 Author: Andrey Sitnik Date: Sat Apr 29 13:59:18 2017 +0200 Rewrite CLI commit 7d4eabab7b5a34bd5c36d779abc373aa41a6d9b8 Author: Andrey Sitnik Date: Sat Apr 29 13:26:09 2017 +0200 Fix package.json support in config option commit 20d420110a42f25f257ad534a2dee6f0af22ee39 Author: Andrey Sitnik Date: Sat Apr 29 13:17:38 2017 +0200 Clean up CLI docs commit 3bf76feb4a144335d4a1c27d82c5e51b7d45bae9 Author: Andrey Sitnik Date: Sat Apr 29 13:11:15 2017 +0200 Update dependencies commit bbeee2e3e1302138107fa6077497822dd586b9e5 Author: Andrey Sitnik Date: Mon Apr 24 18:07:44 2017 +0300 Release 2.1 version commit 8f49524f81e35d8a199aa8d327330298837cc9e1 Author: Andrey Sitnik Date: Mon Apr 24 18:01:17 2017 +0300 Add >= n% queries support commit 18f12579c07e6947782c26c95fdc216171fa4799 Author: Andrey Sitnik Date: Mon Apr 24 17:55:33 2017 +0300 Fix code style commit 752f634ac8a3e229199acc375fdc53664ae5c652 Author: Andrey Sitnik Date: Mon Apr 24 17:50:36 2017 +0300 Clean up code commit 677502fdb10f4c53f0fd6575c3fa93eca1778b8e Author: Andrey Sitnik Date: Mon Apr 24 17:46:19 2017 +0300 Move benchmark to separated directory commit db99991323524989740e6d9fc9bacd12819662c3 Author: Andrey Sitnik Date: Mon Apr 24 17:46:10 2017 +0300 Update dependencies commit 347842c56b0b08e1c578e6991cdbcaa60080029d Author: Andrey Sitnik Date: Fri Apr 21 18:44:31 2017 +0300 Sort Browserslist users commit efcc1b1baf102d0c76cb8aeb2f6d4fb2b40207a7 Author: Andrey Sitnik Date: Fri Apr 21 18:29:51 2017 +0300 Release 2.0 version commit 04d7ad8068abc90f2e2969bf8abdf5229aec300e Author: Andrey Sitnik Date: Fri Apr 21 18:28:46 2017 +0300 Update dependencies commit e4480b93b9a626208eb0e14d25f3973892532253 Author: Andrey Sitnik Date: Fri Apr 21 13:28:47 2017 +0300 Add .browserslistrc config support commit 98c5f835e246366911f96077da4ce30985d316d4 Author: Andrey Sitnik Date: Fri Apr 21 12:46:50 2017 +0300 Update dependencies commit f3963a08d2e7f3e0b1fca609dc38ba0f2d69b746 Author: ismay Date: Thu Apr 20 16:53:49 2017 +0200 Update stylelint reference in readme (#140) * Update stylelint reference in readme * Add stylelint to yaspeller dictionary commit e3c687819fc2a28bb5f69950949a62875f2960b8 Author: Andrey Sitnik Date: Mon Apr 17 11:51:45 2017 +0300 Add support for QQ Browser for Android commit dd935a75a39e1271eace7fd06e05b11fc41846b8 Author: Andrey Sitnik Date: Mon Apr 17 11:51:07 2017 +0300 Clean up code commit 056bfa36343cfcb10c745499c42461e9f920c52b Author: Andrey Sitnik Date: Mon Apr 17 11:48:45 2017 +0300 Return all browsers in last n query commit 9c4a8659bd31e400329c258d93522e64dbba5f63 Author: Ben Briggs Date: Mon Apr 17 07:45:35 2017 +0300 Initial caniuse-lite implementation commit 1a80238383216dd1e9fa53bb2e216d9b97f5e043 Author: Andrey Sitnik Date: Mon Apr 17 07:42:04 2017 +0300 Update envs list commit 2ea0049b8dd06923b19d1ed20cbc36111d08f1a0 Author: Aarni Koskela Date: Mon Apr 17 07:38:20 2017 +0300 Cache file system operations (#116) * Add simple performance benchmark based on @ai's suggestion Usage: ``` time env BROWSERSLIST_DISABLE_CACHE=1 node test/perf-benchmark.js time env BROWSERSLIST_DISABLE_CACHE= node test/perf-benchmark.js ``` * Cache file existence and configuration objects Since file existence checks and configuration reads are done synchronously, those calls tie up the Node.js event loop. * Always require an actual path to be passed to findConfig and friends This does not change the behavior of the top-level `browserslist` function; it will still implicitly use the working directory as `path`. commit fde60fdfa50f087baa0518d87cbdf24183c202ae Author: Andrey Sitnik Date: Sat Apr 15 17:33:53 2017 +1200 Update dependencies commit 76565ed11c81f1d05d1771fb97e3049eb41c34e0 Author: Andrey Sitnik Date: Sat Mar 25 22:51:22 2017 +0300 Fix spelling check on Windows commit 30c0b2a87cdd074df30fbc843c75305b9b6c426b Author: Andrey Sitnik Date: Sat Mar 25 22:47:48 2017 +0300 Fix tests on Windows commit 3a1cb33776af17d9e9a479210ef5562d4a88f1bf Author: Andrey Sitnik Date: Sat Mar 25 22:26:30 2017 +0300 Add AppVeyor to test Windows support commit b239303c3fc00f318d834687fd794f059063ef4c Author: Andrey Sitnik Date: Sat Mar 25 22:22:43 2017 +0300 Clean up CLI tests commit b02524811fda927c4874453b5ddca47ab1146594 Author: Zhulduz Date: Sun Mar 26 00:59:45 2017 +0600 Tests for cli.js (#133) commit b29992ec71a986776328d5df1654faf4ceb981a3 Author: Andrey Sitnik Date: Sat Mar 25 04:35:37 2017 +0300 Update dependencies commit a90a6c5f86a8d349920223434a6319f38983f8c5 Author: Andrey Sitnik Date: Sat Mar 25 04:34:45 2017 +0300 Add npm-debug to ignore files commit a2b0fb4533cf18cfa536ac6162a25c94c377eab6 Author: Andrey Sitnik Date: Tue Mar 21 11:08:53 2017 +0300 Release 1.7.7 version commit ea3dd46b8a94678aa2d484160cd05088a349ab08 Author: Andrey Sitnik Date: Tue Mar 21 11:08:17 2017 +0300 Update dependencies commit 43572217c36c2e6ae4b799cf180c8b8adb0e2a26 Author: Andrey Sitnik Date: Tue Mar 21 11:07:32 2017 +0300 Update Firefox ESR commit de6bd6eb88de99706957b1075f4ff85c77140d36 Author: Andrey Sitnik Date: Fri Mar 3 15:23:57 2017 +0300 Use yaspeller-ci instead of yaspeller commit 32a6108eeea2438d707dac62c1bd9438c018d838 Author: Andrey Sitnik Date: Fri Mar 3 14:17:12 2017 +0300 Release 1.7.6 version commit 00f3e9dc7ede5513343950a8646c1cbc8efb90ee Author: Andrey Sitnik Date: Fri Mar 3 14:14:23 2017 +0300 Fix Android Chrome direct selection commit 45a7d6771dabe2b26153bd6aedcdbb682af21fe0 Author: Andrey Sitnik Date: Fri Mar 3 12:55:12 2017 +0300 Update dependencies commit 34d33d6d848ab5bc2e535a15ae197d67e7b68b6d Author: Ruslan Gunawardana Date: Sat Feb 25 17:10:47 2017 +0200 Typo fixed in README.md Thank you for a great README file, . I'm trying to make it even better. commit 9b8493326e125cd31884813b68e82195403a51b1 Author: Andrey Sitnik Date: Wed Feb 22 15:55:37 2017 +0400 Add ChangeLog header commit dd657d79e09635369bf5bbd5d9ec46ea5bbb2f4d Author: Andrey Sitnik Date: Wed Feb 22 15:41:41 2017 +0400 Release 1.7.5 version commit 931823e6b20038a4d81ab25aadd315b4e3ba15af Author: Andrey Sitnik Date: Wed Feb 22 15:33:38 2017 +0400 Fix excluding 0 version commit e69d2321432c4762c7094070cc32977a147c8c15 Author: Andrey Sitnik Date: Wed Feb 22 15:25:50 2017 +0400 Update dependencies commit 2a6d4bf4c4f8d23c51e56d40951615ad00c03a01 Author: Tuure Savuoja Date: Wed Feb 22 13:07:25 2017 +0200 fix --env (#124) commit df7f50ec5c8b108399dda2f514e694013e9836ee Author: Andrey Sitnik Date: Sat Feb 18 15:16:28 2017 +0400 Release 1.7.4 version commit 159ecfb2abd5fc6c499387c5aa6f13a4c8b89d3c Author: Andrey Sitnik Date: Sat Feb 18 15:15:36 2017 +0400 Update dependencies commit 3697b98a5459edc9b03e0906a9362e1b2c33c177 Author: Aarni Koskela Date: Sat Feb 18 13:09:09 2017 +0200 Don't use locale-aware comparison for browser names (#123) commit a3601a260262dc1339ee1c5eaa561955323badff Author: Andrey Sitnik Date: Wed Feb 15 18:46:02 2017 +0400 Release 1.7.3 version commit c53fea8dccf4c6cd175b1bfabaf46c8d8c194029 Author: Andrey Sitnik Date: Wed Feb 15 18:45:12 2017 +0400 Update dependencies commit 1c237f2e3469a18a13ded37fdced38bd77a234b5 Author: Aarni Koskela Date: Wed Feb 15 16:43:35 2017 +0200 Restore eachParent behavior (#120) The eachParent traversal modification in bc86e87e0e958e caused eachParent to skip the first iteration, as it were, compared to earlier behavior. I.e. if you passed in `/foo/bar/quux`, 1.7.1 and before iterated over `/foo/bar/quux`, `/foo/bar`, `/foo` and (erroneously) ``. 1.7.2 and later (with the modification in bc86e87e0e958e) iterated over `/foo/bar`, `/foo` and (correctly) `/` given the same parameter. This restores the 1.7.1 behavior, but with the `` bug corrected. commit 1bb28607d44ced0f49870554ff076a48f4654d52 Author: Andrey Sitnik Date: Sun Feb 12 18:55:48 2017 +0400 Release 1.7.2 version commit 7a97e9f5ce7cce5882a975adce764431a3594b80 Author: Andrey Sitnik Date: Sun Feb 12 18:54:10 2017 +0400 Update dependencies commit 57124577513a609928d135f160e29304e7cdd790 Author: Aarni Koskela Date: Sun Feb 12 16:31:49 2017 +0200 Reimplement `eachParent`'s traversal (#117) Previously `eachParent` sliced the path all the way up to the empty string. Practically this meant that calls to `eachParent` ended up _also_ taking into consideration a `package.json` in the current working directory. This implementation is based on the traversal code in `babel`. commit 471dbb34183b5909ec35f937b241dce6cd01c75f Author: Andrey Sitnik Date: Mon Jan 30 18:06:35 2017 +0530 Release 1.7.1 version commit 347ba0bc7b84799e333101aa135f1894151ea846 Author: Andrey Sitnik Date: Mon Jan 30 18:04:48 2017 +0530 Update dependencies commit 3b2ec19c9a0afab63f6c87078d5ef1b6c03f5bf1 Author: Andrey Sitnik Date: Mon Jan 30 18:03:40 2017 +0530 Fix released/unreleased versions split commit 3a81c56b606f6e37f18242dcb8369970bfc90638 Author: Andrey Sitnik Date: Thu Jan 26 22:48:02 2017 +0530 Release 1.7 version commit 8d2858329ce2a6a438ad5655306c3a577795bb29 Author: Andrey Sitnik Date: Thu Jan 26 22:46:05 2017 +0530 Update dependencies commit c23806d6206b9c5dd08fe71e1271ca93e6472391 Author: Jarek Rencz Date: Thu Jan 26 00:28:43 2017 +0100 Allow passing stats and env when `—-config` is given (#111) (#112) commit 847028f1a28b93eb60e8fa1bfd6a112165877973 Author: Andrey Sitnik Date: Tue Jan 24 18:33:35 2017 +0700 Fix syntax error in example commit c892cf82e29ec604ec486786ca5b26ddcd15a55c Author: Andrey Sitnik Date: Tue Jan 24 18:32:37 2017 +0700 More clear package.json example commit 909080b3c3c0f184bf5a423a2cedd0061d8e4868 Author: Andrey Sitnik Date: Tue Jan 24 18:31:37 2017 +0700 More clear docs commit c0e85bf51f9a660bce719bbd9c5c62974d6bf361 Author: Andrey Sitnik Date: Sat Jan 21 17:35:24 2017 +0700 Release 1.6 version commit 4a3ccb705c9a722fbf756aa57b071106a33088fe Author: Andrey Sitnik Date: Sat Jan 21 17:32:04 2017 +0700 Move agents hack to index.js commit ceb884243365b266bce19c86db824c3e63dfde95 Author: Andrey Sitnik Date: Sat Jan 21 17:30:31 2017 +0700 Fix 0 version problem commit 4737dea2f7f19f57034f8c5c38ee016d7d5950bf Author: Andrey Sitnik Date: Sat Jan 21 17:28:01 2017 +0700 Remove ES6 commit e84ef79ed3dc82b1cb68a355719363280022a8eb Author: Andrey Sitnik Date: Sat Jan 21 17:04:43 2017 +0700 Use Electron to Browserslist 1.2 commit bd1751bf152c5776658bc1fa0dbff1658665d8b7 Author: Andrey Sitnik Date: Fri Jan 20 02:08:16 2017 +0700 Fix browser support commit 8a15e632343f4b39b56684f03aef091622949bbe Author: Andrey Sitnik Date: Fri Jan 20 02:02:15 2017 +0700 Upgrade inner dependencies commit dad1d526eb22b8fbc23caeec3101a15c075f6f25 Author: Andrey Sitnik Date: Fri Jan 20 01:14:33 2017 +0700 Add Electron support commit 8cdd8e4fdcdd86176f6bb0ecb34a3924177bef8f Author: Andrey Sitnik Date: Fri Jan 20 00:24:29 2017 +0700 Upgrade dependencies commit 6e87c03ab596a0cafaa55cec27a7c3adb331a6af Author: Andrey Sitnik Date: Mon Jan 16 22:49:10 2017 +0700 CLean up Electron section commit fe10050866d16d21e0c28c04c7e8fdbe43076d6e Author: Kilian Valkhof Date: Mon Jan 16 16:40:20 2017 +0100 Add section on targeting Electron. (#108) * Add section on targeting Electron. * fix two 'typos' * remove indentation to be in line with other js blocks commit 68c21f6af4ece489da1851ec149bfc9b407a69b5 Author: Ben Briggs Date: Thu Jan 12 18:47:12 2017 +0000 Filter agents data before it's used by Browserslist. (#107) commit 516bc76f395593af35f07e2446d511e4ded10eec Author: Andrey Sitnik Date: Fri Jan 6 05:19:17 2017 +1000 Release 1.5.2 version commit d5fef45483cde9bdbf37a52593bf02a36adec4c7 Author: Andrey Sitnik Date: Fri Jan 6 05:17:48 2017 +1000 Update dependencies commit 6e860203f26de9b92726bd0be1f59c2de063cfea Author: Marco Massarotto Date: Thu Jan 5 16:45:06 2017 +0000 Fix version ordering (#100) Issue #99 resolution proposal commit 75ef0d51f6204ecae692bd691b4b879689e2feb9 Author: Andrey Sitnik Date: Fri Dec 23 21:09:15 2016 +0800 Promote package.json config commit 1032268bb2e1260c14e2ad5ad123fcaecba72c0d Author: Andrey Sitnik Date: Fri Dec 23 21:07:57 2016 +0800 Add yaspeller to lint-staged commit 1cbf1d2eb1f899c815a59ef92d2ca17673dd7430 Author: Andrey Sitnik Date: Fri Dec 23 21:07:01 2016 +0800 Improve examples in README.md commit ab9b26384604c2df77ae54cf839ca78845c38aa6 Author: Andrey Sitnik Date: Wed Dec 21 22:51:03 2016 +0800 Release 1.5.1 version commit 6feb9e9bde6543e3c0b74569acf91841ad320e32 Author: Andrey Sitnik Date: Wed Dec 21 22:47:16 2016 +0800 Update dependencies commit d363090f9308ff9a759fa02af36997f92c6bd82b Author: Andrey Sitnik Date: Wed Dec 21 22:45:57 2016 +0800 Fix package.json and browserslist error commit 4ae8df610961e5e4fa5f8bb0f1b367e41edf2f24 Author: Andrey Sitnik Date: Wed Dec 21 17:18:05 2016 +0800 Release 1.5 version commit a096579d06652e63dda36e691b68d063685a5f80 Author: Andrey Sitnik Date: Wed Dec 21 17:17:57 2016 +0800 Add yaspeller config to npm ignore commit 136c472d88d9820d420a624185ea8ce441a5d5af Author: Andrey Sitnik Date: Wed Dec 21 16:53:07 2016 +0800 Update dependencies commit 2bcb149358af17e460c79ee07eb6788fe7a50ed7 Author: Anima-t3d Date: Wed Dec 21 16:49:31 2016 +0800 Fix examples commit b8d81049f366537f502573460d16e3b2b69d0a64 Author: Anna Date: Tue Dec 20 14:47:47 2016 +0100 Fix word err (#93) commit 04c1ce9cf208817c57a3a3500bb96c650570c170 Author: Andrey Sitnik Date: Tue Dec 20 15:27:26 2016 +0800 Fix line breaks in docs commit 93a4fea26f485581a64d32490c883fdf5d48c6d9 Author: Andrey Sitnik Date: Tue Dec 20 15:27:19 2016 +0800 Update project description commit 77e8c4ddbdad614505dc291df58165dc7397e0c0 Author: Andrey Sitnik Date: Tue Dec 20 15:22:07 2016 +0800 Update dependencies commit 5495279b413101af51498184724e50c21f70a06c Author: Andrey Sitnik Date: Tue Dec 20 15:19:36 2016 +0800 Update docs commit e4d01837dcf071d855b44327a1561f796d63d191 Author: Andrey Sitnik Date: Tue Dec 20 11:55:37 2016 +0800 Add spellchecker commit abb53917c15eeded9c5344cfa00fb00993e41002 Author: Andrey Sitnik Date: Tue Dec 20 11:49:39 2016 +0800 Add test for 0 version in stats commit acd9ef95286ee483f3df72a2d363ff8f3b26485b Author: Andrey Sitnik Date: Tue Dec 20 11:42:04 2016 +0800 Improve CLI help commit 540ccb5c223b1d84d6c3cecafe90e40208c04e6c Author: Andrey Sitnik Date: Tue Dec 20 11:38:58 2016 +0800 Improve docs commit d2c37f343b6deeedfea86c96d6f1dad69ee5aaae Author: Andrey Sitnik Date: Tue Dec 20 11:34:19 2016 +0800 Clean up test path variables commit 4c461a217b412e06711b848280ad04862345246c Author: Andrey Sitnik Date: Tue Dec 20 11:28:21 2016 +0800 Add test for package.json syntax warning commit 7943f49966f7707973cf50ad2049db9cd9d6d9fb Author: Andrey Sitnik Date: Tue Dec 20 11:22:24 2016 +0800 Improve config find tests commit 18332ef8c13be49215ca5390e2dad365e5f7a301 Author: Andrey Sitnik Date: Tue Dec 20 11:13:34 2016 +0800 Clean up code commit 24a87d504fbd611bd027ec73c6ed80887ef67298 Author: Andrey Sitnik Date: Tue Dec 20 11:09:25 2016 +0800 Add JSDocs for browserslist() function commit 7dd2e7f405293a85651792582c41aa3561049cde Author: Andrey Sitnik Date: Tue Dec 20 11:01:30 2016 +0800 Do not set custom statistics globally commit bf7d442b7027c4fab103e7a50d59b218811c7e74 Author: Andrey Sitnik Date: Tue Dec 20 10:45:01 2016 +0800 Clean up code and increase coverage commit 4e9ac9c4f2db5b472a56207c4e796abeff292214 Author: Andrey Sitnik Date: Tue Dec 20 10:43:13 2016 +0800 Add dataByBrowser test commit 34e61ceb42d94871a4522ffa09d73bffab701c10 Author: Andrey Sitnik Date: Tue Dec 20 10:42:08 2016 +0800 Add default env test commit 487f172e13f2b441fd1e0c23e5ae20d5c000fd1e Author: Andrey Sitnik Date: Tue Dec 20 10:34:46 2016 +0800 Add coverage check to test commit 9a6e8dee81cfe350f05847deeb02c803a211e498 Author: Andrey Sitnik Date: Mon Dec 19 19:15:34 2016 +0800 Clean up code commit de6db108bcc92c6c424d3d58734dfd4f316739b0 Author: Andrey Sitnik Date: Mon Dec 19 18:35:58 2016 +0800 Improve environment tests commit d2c630ddc28cb6cbcba8a5747235b6795d29ec24 Author: openlibser Date: Mon Dec 19 18:35:46 2016 +0800 Add environments support commit 7fca09894aab0580a654e207c17733d18c996802 Author: maksimsemenov Date: Mon Dec 19 18:23:03 2016 +0800 Add fixtures for tests commit 107cbc930f81638f1bebdc5b011c85619311b2f2 Author: maksimsemenov Date: Mon Dec 19 17:45:32 2016 +0800 Add environment tests a docs commit d430bcd85e25592ba783d32bfc70c2df4f3dfdcf Author: Andrey Sitnik Date: Mon Dec 19 16:24:27 2016 +0800 Update dependencies commit be30944901cdfe1da148344f562cf6391cdb7201 Author: Andrey Sitnik Date: Sun Dec 18 23:21:11 2016 +0800 Rename test directories commit 20560c912295a833917daae119ed23dafb6f5511 Author: Andrey Sitnik Date: Fri Dec 16 09:26:35 2016 +0800 Remove unnecessary comments commit 61c9d1c1fd76857092613a0018e3c88af250f121 Author: Andrey Sitnik Date: Fri Dec 16 09:21:21 2016 +0800 Clean up stats loading code commit 733ab4d7921b335fb67b6546b8229bde4b7f46d8 Author: Oleh Aloshkin Date: Thu Dec 15 05:09:28 2016 +0200 Rewrites a little bit, getting of browserslist-stats.json file commit 3e8eec9fa3e4ea3353a6a2a398b117544d4ba7ed Author: Oleh Aloshkin Date: Thu Dec 15 03:01:50 2016 +0200 Updated README, stats usage updates commit a620ead9d989179e478bd236de6c65a07e04d007 Author: Oleh Aloshkin Date: Thu Dec 15 02:52:36 2016 +0200 Rewrited search of browserslist-stats.json file commit 1f11a5d7449cdf5f35d48f18e71609cccbc50839 Author: Oleh Aloshkin Date: Thu Dec 15 00:06:34 2016 +0200 Fix for README file commit a66f53a49144aebb92215723669290a50ebef803 Author: Oleh Aloshkin Date: Wed Dec 14 23:59:36 2016 +0200 Remove function execution commit f735b1e80a2ecd1798d9095a9fbcd1a4a3a3cd6e Author: Oleh Aloshkin Date: Wed Dec 14 22:48:11 2016 +0200 Add load statistic from browserslist-stats.json commit 304c4860d30b466533c459e3aa78865b23fb97d4 Author: Andrey Sitnik Date: Thu Dec 15 08:07:10 2016 +0800 Clean up error helper commit 09576bd18f44522d83cb2cc5a10bfe1416e9b964 Author: Anna Date: Thu Dec 15 00:20:06 2016 +0100 Fixed bug in main.test with symbolic link on windows. commit b359e8c0b45b42dac63e51747db32d1f024b25b9 Author: Andrey Sitnik Date: Thu Dec 15 07:16:09 2016 +0800 Clean up docs commit 9d9652f7f8cd6fc8040fa1cf1965b9093619df31 Author: Andrey Sitnik Date: Thu Dec 15 07:14:56 2016 +0800 Better error test commit cb7607717f9839874bf173566c6d1f80e2348d4f Author: Andrey Sitnik Date: Thu Dec 15 06:55:28 2016 +0800 Fix code style commit 48eea9fb439af7ec8add8f47ef3212578fab5c3a Author: Andrey Sitnik Date: Thu Dec 15 06:54:33 2016 +0800 Clean up code by helper commit 738738f53fb2ffa8de637dab20254367cbefc0cd Author: Andrey Sitnik Date: Thu Dec 15 06:52:31 2016 +0800 Fix yarn warning commit cc2f40b696811ed52f63c9f5168f4c943e8120d6 Author: Andrey Sitnik Date: Thu Dec 15 06:51:53 2016 +0800 Use named functions as helpers commit 8f0958e037cf1eb2ebfc026fb3ccf61332d1dc3b Author: Stepan Kuzmin Date: Wed Dec 14 18:42:37 2016 +0300 Add package.json support #74 commit 20fa6384f931cb7cddf16fcd7f9c09c938b7cc43 Author: Andrey Sitnik Date: Thu Dec 15 06:35:18 2016 +0800 Update dependencies commit 3b975edbe3fb14b7dcfa7c89e5439f563818a92b Author: Andrey Sitnik Date: Thu Dec 8 21:29:39 2016 +0300 Remove let to fix node.js 4 commit 75665b4a92afaf226521d47909d6c4cde10d0a48 Author: Andrey Sitnik Date: Thu Dec 8 20:58:33 2016 +0300 Try to fix tests on node.js 4 commit 3b912989c2338f50a8283fd98e4eeaceae5bfcce Author: Andrey Sitnik Date: Thu Dec 8 20:48:50 2016 +0300 Add lint-staged commit 2ba38c036a79d02747aa44d3c4f2e642173a7644 Author: Andrey Sitnik Date: Thu Dec 8 20:47:39 2016 +0300 Replace AVA to Jest commit b4f8ce671831bc71ebf371931a393378c964a3f6 Author: Andrey Sitnik Date: Thu Dec 8 20:31:15 2016 +0300 Clean up code commit 92e75f79c19d214010b3ae32cfb8a59b6bdf463d Author: evilebottnawi Date: Thu Dec 8 20:07:17 2016 +0300 Update: added option `config` to cli (ref #82) commit 07595bf6a2d9179269fd2c31e03119f46ec40830 Author: Andrey Sitnik Date: Thu Dec 8 20:28:04 2016 +0300 Add Yarn commit 670ea5debe256ee240bbda549e2eb4e511ba48dd Author: Andrey Sitnik Date: Thu Dec 8 20:27:01 2016 +0300 Update dependencies commit acaa81891ec8eee0fad3d2d01b5e169ee6d59bf5 Author: Evilebot Tnawi Date: Thu Dec 8 19:05:26 2016 +0300 Chore: removed duplicate code. commit 46ac68cf2344a6b3fcb99415199f5e079bd256ea Author: Andrey Sitnik Date: Mon Nov 21 22:05:18 2016 +0300 Update dependencies commit e23b0547d31632d691981b1a847661e4410884b4 Author: Andrey Sitnik Date: Mon Nov 21 22:00:16 2016 +0300 Add node.js 7 commit 5e3120963aabbde2ccf073738e46bd439af73688 Author: msheakoski Date: Mon Nov 21 11:59:33 2016 -0500 Use plural "last 2 versions" to match other examples commit b26877053e4a1dd804dd5e70c3ee053405037e8c Author: Andrey Sitnik Date: Wed Nov 2 19:08:17 2016 +0300 Update dependencies commit de9563a999ec0fb08969e36f4579e496931448a5 Author: Jenny Lian Date: Tue Nov 1 11:45:53 2016 -0700 modified README and updated test commit af086a88a504cd9efb02091b4fd5ffddabd77503 Author: Andrey Sitnik Date: Mon Sep 26 15:52:18 2016 +0300 Release 1.4 version commit c654327bb367b5d0a76e38ff0ea16c2fb784107d Author: Andrey Sitnik Date: Mon Sep 26 15:52:09 2016 +0300 Remove .npmignore from npm package commit d0688466ac0918061200b9a06ad349cef17548e3 Author: Andrey Sitnik Date: Mon Sep 26 15:43:33 2016 +0300 Add defaults keyword commit 5bc245be496d3971d300250339d0b615123710b0 Author: Andrey Sitnik Date: Mon Sep 26 15:19:33 2016 +0300 Update dependencies commit c021a604384a3cbef61d3f1fc4f905f122f17b96 Author: Andrey Sitnik Date: Mon Aug 22 21:54:52 2016 +0300 Release 1.3.6 version commit 8be6521d67b2e07a42cd6ad68c66401822cc9d9e Author: Alexander Krasnoyarov Date: Mon Aug 22 17:55:03 2016 +0300 Added: `Samsung Internet` and `UC Browser for Android`. commit b3eb24501d77cbadc6dbf74440fb7210ec4b2485 Author: Andrey Sitnik Date: Mon Aug 22 17:33:24 2016 +0300 Update depdenencies commit 3ea91e7472fc34d94446d3cb1a89bda6fb5a299b Author: Andrey Sitnik Date: Sat Jul 23 11:05:51 2016 +0300 Update dependencies commit 1e82db035dd3d898ddaab3f4f46f40b788033767 Author: Andrey Sitnik Date: Sat Jul 23 11:02:32 2016 +0300 Move webste upper commit a1beb37890efa61791af99ab98cbbf20c78fe2d3 Author: Jon Rohan Date: Fri Jul 22 21:19:25 2016 -0400 Adding http://browserl.ist/ to readme commit ec3dc7b11e4fbe3bd428e7e7ca9d25782c390ea3 Author: Andrey Sitnik Date: Wed Jul 13 18:57:19 2016 +0300 Release 1.3.5 version commit 2547074832c5a53807111ef95ead273bea18c616 Author: Andrey Sitnik Date: Wed Jul 13 18:40:37 2016 +0300 Add op_mini all support commit eaa8ae72560487a6bb13f8d40872d92b3cb033e9 Author: Andrey Sitnik Date: Wed Jul 13 18:36:43 2016 +0300 Update dependencies commit 176eae8ccd6c0f80fa3533a53785d5197a426ea5 Author: Andrey Sitnik Date: Sun Jun 26 23:25:05 2016 +0300 Release 1.3.4 version commit 4fa05facbf89a42d30960d877cb9bdf7cd3a71e3 Author: Andrey Sitnik Date: Sun Jun 26 23:23:19 2016 +0300 Update dependencies commit 91aa06712e06f95e8cc6496a2f4626442e8676a3 Author: Andreas Lind Date: Wed Jun 22 14:18:03 2016 +0200 Allow float percentages to start with a decimal dot. commit 4183b0f9acc8cd16a1916d9d6af27b378bbbc615 Author: Andreas Lind Date: Wed Jun 22 14:11:49 2016 +0200 Allow omission of whitespace around > >= < <= Add trailing $ to a few regexps that were missing it. Consistently allow more than one space between barewords. commit cdc8811647a53ffe77483e47aba11b0126d4b7fa Author: Andrey Sitnik Date: Mon Jun 20 13:55:40 2016 +0300 Release 1.3.3 version commit 9c46e3621d0ffb46377d44d69d5a11ad17c60a85 Author: Andrey Sitnik Date: Mon Jun 20 13:25:05 2016 +0300 Fix node.js <6 support commit f7dc6a5a4924e59997c4dad353ad2abef777678a Author: Andrey Sitnik Date: Mon Jun 20 13:24:00 2016 +0300 Clean up GitHub link commit a3483a7729188620783c2fe45ec9710f9fbab9b4 Author: Andrey Sitnik Date: Mon Jun 20 13:20:46 2016 +0300 Clean 0 version after some country-based requests commit adf1ad81bc94b810329a651eb9bc301b75654775 Author: Andrey Sitnik Date: Mon Jun 20 13:06:06 2016 +0300 Update dependencies commit 81389b6bb08915dd7de9145c1355a8e96526cb15 Author: David Nahodil Date: Fri Jun 3 13:31:35 2016 +1000 Fix link to caniuse.com Link works (previously was relative to this page) Link display (capitalisation) is consistent with other links in this document commit f9df407a4fe7f1fd80a20525b817cc1388867203 Author: Andrey Sitnik Date: Tue May 31 12:50:01 2016 +0300 Release 1.3.2 version commit a4007b4153a969e2a738cbb336e7aed864a90f6f Author: Andrey Sitnik Date: Tue May 31 12:46:26 2016 +0300 Update dependencies commit fe6b502bbdde2a892e3b0dee27646f7d0039c83d Author: Andrey Sitnik Date: Tue May 31 12:42:21 2016 +0300 Update Firefox ESR commit ac7513788738915a5879746a781e0082e7b20c7d Author: Kostas Manionis Date: Thu May 19 17:37:09 2016 +0300 Fix queries caniuse hint commit 079e3e3468148ea2f798291a7b862e56fbc40415 Author: Andrey Sitnik Date: Wed May 18 18:28:37 2016 +0200 Update dependencies commit b5935bb3405bd51564e515876e7e9093845c0b2b Author: Andrey Sitnik Date: Wed May 18 18:11:36 2016 +0200 Add node.js 6 commit bd5078db7f58c916928e832ab0f75761386892bf Author: Marc Dix Date: Wed May 18 16:19:46 2016 +0200 Added caniuse hint for queries Update README.md Update README.md Update README.md commit fcc505ca570210f40f3b7681ada2495a6da753e4 Author: Andrey Sitnik Date: Sun Apr 3 01:28:56 2016 +0800 Release 1.3.1 version commit 8c93721a468e37d3f5b9069138a0b270dabf6a7a Author: Andrey Sitnik Date: Sun Apr 3 01:08:44 2016 +0800 Add Safari TP support commit 6a0bf0298379a09b84099b69bc02f82554d25ecd Author: Andrey Sitnik Date: Sun Apr 3 01:01:02 2016 +0800 Update dependencies commit 7f6a0c465d589d5b8a3008577b4307b86a3ff20e Author: Andrey Sitnik Date: Thu Mar 17 15:35:54 2016 +0600 Release 1.3 version commit a8cf32785cbcb0c4f84b19140f57315b44b63718 Author: Andrey Sitnik Date: Thu Mar 17 15:35:46 2016 +0600 Update Can I Use database commit 0dfc66d76b677a6060812d6bc92039ab9533313b Author: Andrey Sitnik Date: Thu Mar 17 15:29:18 2016 +0600 Add country coverage to CLI help commit 46d3b9f5c685a2fb295aad01d0bf663403c3db72 Author: Andrey Sitnik Date: Thu Mar 17 15:28:51 2016 +0600 Clean up docs commit 58bdd3a954b86741ed9cdc6925bbcd679ba2c693 Author: Andrey Sitnik Date: Thu Mar 17 15:26:50 2016 +0600 More tests for country coverage commit 7ac6fbee03114cb7a49cd4def7434976b3420b5c Author: Joshua Wise Date: Wed Mar 16 16:17:32 2016 -0400 added comments commit ef8579714e1adb783c6f99721aee7cc4f5f082b3 Author: Joshua Wise Date: Wed Mar 16 16:01:21 2016 -0400 fixed NaN error that occured due to limited country data commit fa3513ca0b6d4d566d52b6a5da9ec09b6e23fa4d Author: Joshua Wise Date: Wed Mar 16 15:47:37 2016 -0400 added country-specific coverage to docs commit df95dde2844405c2ce7d5587f91ff29d777bf9eb Author: Joshua Wise Date: Wed Mar 16 15:36:19 2016 -0400 added country specifier to browserslist.coverage and --coverage commit 39246fe91fbd5b044718f8e8c9779ddbab727863 Author: Andrey Sitnik Date: Wed Mar 16 12:27:08 2016 +0600 Release 1.2 version commit 249ad42e1c39ddf493ca52a0c4f9676c1bc02b07 Author: Andrey Sitnik Date: Wed Mar 16 12:24:07 2016 +0600 Fix ESLint warnings commit 3808fb4386286b3211e83fa6381383054be3b744 Author: Andrey Sitnik Date: Wed Mar 16 12:21:57 2016 +0600 Add coverage to docs commit 71d2acc9385b34c5cb35c8313cea667c98a149c0 Author: Andrey Sitnik Date: Wed Mar 16 12:19:11 2016 +0600 Add --coverage option to CLI commit 674d7162a32893eac1322f78a0187b90e3ae0c29 Author: Andrey Sitnik Date: Wed Mar 16 12:02:01 2016 +0600 Add private browserslist.coverage commit 98cc10d149bd210bf9a351e97c14d24e25e08300 Author: Andrey Sitnik Date: Wed Mar 16 11:56:21 2016 +0600 Update dependencies commit deff107d4bd5a1f21ca5bed891e8e56c7833648e Author: Andrey Sitnik Date: Wed Feb 10 23:31:26 2016 +0300 Sudo option is now default on Travis CI commit 7354f90384dbce6592a9d83378d010004f0af1e3 Author: Andrey Sitnik Date: Wed Feb 10 23:29:41 2016 +0300 Release 1.1.3 version commit 1b7ea6302817b1eae0e7cab84b4ef89ecf44719c Author: Andrey Sitnik Date: Wed Feb 10 23:29:29 2016 +0300 Fix 80 symbols line rule commit cf157cb60cc1b19bf19dada537da44be41fcfbd4 Author: Andrey Sitnik Date: Wed Feb 10 23:26:31 2016 +0300 Lock eslint-config-postcss version commit 671197740792f0ead414749bd4ab085b6df42bbf Author: Sean Anderson Date: Wed Feb 10 12:24:04 2016 -0800 Add .json ending to caniuse-db requires This mirrors the changes made to autoprefixer re: jspm support. commit 512d1feb9ef0c5c25a7f9ae10da7c41bc3ec9f4e Author: Hennadiy (Gena) Verkh Date: Mon Feb 8 16:06:29 2016 +0100 Fixed Javascript snippet commit 2491e056e87a7883674984871d0858e0da429aec Author: Andrey Sitnik Date: Mon Feb 8 10:54:10 2016 +0300 Release 1.1.2 version commit 4a446edbae2644817e2ff02b2e4395ac5f801a47 Author: Andrey Sitnik Date: Mon Feb 8 10:52:38 2016 +0300 Update dependencies commit c676895fa117c720beb7bb4575748c80ebdcf0ea Author: Sean Anderson Date: Sun Feb 7 22:38:46 2016 -0800 Add extra fs safeguard checks in readConfig Since readConfig calls existsSync and statSync it would be prudent to check for their existence first. JSPM has a fledgling library implementing fs, https://github.com/jspm/nodelibs-fs/blob/master/fs.js, which causes a check for just `readFileSync` to be insufficient. commit 58b1aba2bbe17b69ffd630da4e0ea73412fb483c Author: Andrey Sitnik Date: Sat Feb 6 02:37:09 2016 +0300 Typo commit b76b57d113d08f7bd7514df1f5902a486b9ecc86 Author: Andrey Sitnik Date: Sat Feb 6 02:36:31 2016 +0300 Refactor major browsers docs commit e25c7d1e7362b223a1857268ea84710d2548184c Author: Andrey Sitnik Date: Sat Feb 6 02:32:36 2016 +0300 Update example commit d2983b60bff901ff272ebd11b6a33c4f2f139afa Author: Andrey Sitnik Date: Sat Feb 6 02:31:17 2016 +0300 Use common ESLint config commit 791be3284a0497ae1fd94f7f51426860bf369682 Author: Daniel Levenson Date: Fri Feb 5 18:15:00 2016 -0500 Define major browsers within the README Add link to source code to validate documentation commit 9d905af75b706d5a4fec3b908d9b421ed748dc89 Author: Daniel Levenson Date: Fri Feb 5 18:14:21 2016 -0500 Refactor link within README for style commit 5f360228761ff97b3588b30ee06d6e156f0cc157 Author: Andrey Sitnik Date: Fri Jan 22 10:33:31 2016 +0300 Update dependencies commit 6eade8faee6fd2e7876287e42ea3538ac186587a Author: Andrey Sitnik Date: Fri Jan 22 10:18:57 2016 +0300 Clear Not query behaviour commit b763c737a13d6efb3ce514d49f5111e4e8ea4c3d Author: Andrey Sitnik Date: Thu Jan 14 22:19:48 2016 +0300 Release 1.1.1 version commit 1d5e802fdec1840d7ad4383464b42625e1ef3660 Author: Andrey Sitnik Date: Thu Jan 14 22:19:11 2016 +0300 Update .npmignore commit 81a5ce09e9cef7a8256ed724f4a680eecd936bf0 Author: Andrey Sitnik Date: Thu Jan 14 22:16:15 2016 +0300 Shorter error message commit 88b59073370f78456caf6f963dbdb004dc8e4cab Author: Andrey Sitnik Date: Thu Jan 14 22:15:02 2016 +0300 Allow populartion qquery without a space commit 1eaef989cc1fe9a5a9cda9839d9bdfa9e3299796 Author: Andrey Sitnik Date: Thu Jan 14 22:14:47 2016 +0300 Update dependencies commit c57b5b415708336ace42da0f1467b807772e9615 Author: Andrey Sitnik Date: Wed Jan 6 12:22:09 2016 +0100 Release 1.1 version commit 5e0ec50774902803e45978480980e970b94e8200 Author: Andrey Sitnik Date: Wed Jan 6 12:21:30 2016 +0100 Add more node.js versions to Travis CI commit b289e870b38bf2350191de95ce394acb83d19371 Author: Andrey Sitnik Date: Wed Jan 6 00:16:09 2016 +0100 Fix line breaks commit 676925749c175d3a39f524bbe8e35d906bbb2164 Author: Andrey Sitnik Date: Wed Jan 6 00:14:37 2016 +0100 Fix Config File section commit 0b5fd7c9db9829523931aa0b165c74d46b690275 Author: Andrey Sitnik Date: Wed Jan 6 00:11:54 2016 +0100 Clean up bad line breaks commit 7976c1b6448510f48945150bda59e932b752b03b Author: Andrey Sitnik Date: Wed Jan 6 00:10:06 2016 +0100 Reduce text commit 86270fae2c977f9fa85a1b4319fdca0098c784e4 Author: Andrey Sitnik Date: Wed Jan 6 00:08:40 2016 +0100 Move all quesri details to Query section commit 035996dec03d383fe2d32f1140d7e4c20eed09ce Author: Andrey Sitnik Date: Tue Jan 5 23:28:11 2016 +0100 Clean up Custom Usage Data section commit 75e80aba84c217bb5badf3c17df3943301ec6668 Author: Andrey Sitnik Date: Tue Jan 5 23:23:47 2016 +0100 Fix docs code examples commit 84e373f25a3f1b1d91ae15d0c12cb0c85afcd0f6 Author: Andrey Sitnik Date: Tue Jan 5 23:16:45 2016 +0100 Clean up docs commit c5e3d42c480a48812c3a0c11fd84abd3434fc4c1 Author: Andrey Sitnik Date: Tue Jan 5 18:31:08 2016 +0100 Use AVA and npm run instead of Mocha and Gulp commit 7aea35778a2d229a9d3a3c52608efb93c4ff33dd Author: Andrey Sitnik Date: Tue Jan 5 15:26:59 2016 +0100 Fix README.md line lengths commit 5d83473a9f9a5647a02b8c94609b426d3d1a9673 Author: Daniel Rey Date: Sat Jan 2 16:37:47 2016 +0100 Added the possibility to query against custom browser usage data commit c63bb8da4987ca5c1988b8b7ea3ef5d494011565 Author: Andrey Sitnik Date: Sat Oct 24 16:47:36 2015 +0300 Fix tests commit abc281fbf74b7a5831247ca5f8bce11e18508c17 Author: Andrey Sitnik Date: Sat Oct 24 16:44:23 2015 +0300 Update docs example commit 71047109e683011677306924e7e98f650c720281 Author: Andrey Sitnik Date: Sat Oct 24 16:42:06 2015 +0300 Update dependencies commit b49b4038def4c35ab84d6e1a9f7e1519ffec9aa9 Author: Stephen Edgar Date: Sat Oct 24 06:47:08 2015 +1100 Update tests to better represent IE and Edge released versions commit 5a30946b591464d411efed133ac9893f81f7e0c6 Author: marcvangend Date: Tue Oct 13 16:37:10 2015 +0200 Document how selection criteria are combined. commit 20b890ab21defae710ea2165d9293a748a86c948 Author: Andrey Sitnik Date: Wed Oct 7 15:09:16 2015 +0100 Add author to 1.0.1 ChangeLog commit 042dace12cf0006f359f5c75600a0b32cb15d992 Author: Andrey Sitnik Date: Wed Oct 7 15:03:49 2015 +0100 Release 1.0.1 version commit b8ff4beb6f38396812406ca870929d6d2f5ba832 Author: Andrey Sitnik Date: Wed Oct 7 15:01:31 2015 +0100 Update npm packages commit b9054b3d0d3d17091d45785f32e4e8f3e7656dc6 Author: Andrey Sitnik Date: Wed Oct 7 14:54:07 2015 +0100 Add .editorconfig commit 9c914661e6d955649d2cd7cad50e31dd57f021f7 Author: Andrey Sitnik Date: Wed Oct 7 14:53:50 2015 +0100 Add latest node.js to Travis CI commit a5a1ac5895155da0d494247a7bf192025adbaf8d Author: Rouven Weßling Date: Mon Sep 28 13:35:31 2015 +0200 Firefox ESR is now Firefox 38 commit 4095678cfe89644cfa59a973f87cc836f3a33d51 Author: Andrey Sitnik Date: Tue Sep 1 20:14:28 2015 +0300 Typo commit bd92eefbcd73e865f7b346efc54a20bde17a8aaf Author: Andrey Sitnik Date: Mon Aug 31 19:24:17 2015 +0300 Add missed change to ChangeLog commit bfd3bfe4da96a7570bbb394be5a752e18718cae0 Author: Andrey Sitnik Date: Mon Aug 31 19:11:14 2015 +0300 Clean up version name in ChangeLog commit 27f02960afe5897e35f635046cd35d094596bd29 Author: Andrey Sitnik Date: Mon Aug 31 19:03:12 2015 +0300 Release 1.0 version commit 0f97c41f453bb29f3eaa3f4b3ab6f3e12c02c5a3 Author: Andrey Sitnik Date: Mon Aug 31 18:52:14 2015 +0300 Update npm dependencies commit f3232429dac7a937d32a0112fa470a986398be47 Author: Andrey Sitnik Date: Sat Aug 29 17:44:03 2015 +0300 Fix variable difinition commit e66ac0823b85241f2694fc88d34d8f4c38a70d4d Author: Andrey Sitnik Date: Sat Aug 29 17:33:28 2015 +0300 Remove Opera 12.1 from default query commit dd26cc8bedd4c3bfddca93b056ae6e5429eeec79 Author: Andrey Sitnik Date: Sat Aug 29 17:20:13 2015 +0300 Add Not query commit aab41e84df57faf5c32f710c717c195c5be3cfe6 Author: Andrey Sitnik Date: Sat Aug 29 17:11:49 2015 +0300 Change CLI API commit ae18b0c999fe419d267b9689f8e9e13bcaf555ec Author: Andrey Sitnik Date: Sat Aug 29 17:05:52 2015 +0300 Better docs for CLI commit 1c6d581bbf3fe967e20a4f24631b72ee4e9df6d8 Author: Andrey Sitnik Date: Sat Aug 29 14:14:53 2015 +0300 Clean up code commit b7816f5ca0416f5787acf24c7208d2e85e59127b Author: Andrey Sitnik Date: Sat Aug 29 14:12:03 2015 +0300 Better error display in CLI commit 60e2d185e78093f618fa45d6d400912966015a1f Author: Andrey Sitnik Date: Sat Aug 29 14:11:25 2015 +0300 Use custom errors commit 500d1cfd3ad7fb0c17a6b2317e70887e7b84e8de Author: Andrey Sitnik Date: Sat Aug 29 12:55:51 2015 +0300 Better CLI output commit 877f8a910aaa0ff62f9380abf341e67a05daf161 Author: Andrey Sitnik Date: Sat Aug 29 12:46:19 2015 +0300 Add -h option to CLI commit d976752a90e36e1b8e7cc5c0b045ebb21a937344 Author: Andrey Sitnik Date: Sat Aug 29 12:34:00 2015 +0300 Reorder doc sections commit 6782cad0eb0ec623f22bb5cfb9ab0133b1e94197 Author: Andrey Sitnik Date: Sat Aug 29 12:33:16 2015 +0300 CLean up code commit 05e9d4a835030e54e5f88e4a2b7322589ad34d2e Author: Andrey Sitnik Date: Sat Aug 29 12:29:18 2015 +0300 Add env variables to README.md commit 52e461af4232a1fb851bb45cbabfff3a90ccfc92 Author: Andrey Sitnik Date: Sat Aug 29 12:18:49 2015 +0300 Update npm dependencies commit 0d2e0c4d59c0fc09952cce5f00d14a6628c1aabf Author: Andrey Sitnik Date: Sat Aug 29 12:16:38 2015 +0300 Clean up code and throw only Error objects commit fc55b0944a495cc14438d659e74c3963aedb2513 Author: Andrey Sitnik Date: Sat Aug 29 12:16:14 2015 +0300 Remove node.js 0.10 from CI commit 88c5004b3ae6b78ac0a03d8e2fea0282d007f05e Author: Andrey Sitnik Date: Sat Aug 29 12:07:21 2015 +0300 Fix JSON format commit d442f55cc9401f9dd9e2622cbdec031ac0db6849 Author: andrepolischuk Date: Thu Jul 30 14:44:05 2015 +0300 Update browser list in README.md commit 745ee93ae2b1197bbfe8268a021f883add6e55f0 Author: andrepolischuk Date: Thu Jul 30 14:42:24 2015 +0300 Update actual example in README.md commit d8399d6fb35c866639ab653e6e76cadec93a64d9 Author: andrepolischuk Date: Thu Jul 30 14:39:51 2015 +0300 Add Microsoft Edge, fix #29 commit 969d1f618add6db8c74d1dd5f17d1e29c64780c8 Author: Luke Horvat Date: Sat Jul 18 02:01:32 2015 +1000 Add CLI support commit a8384ece233436ed91685f0efdc8c4cb9e344cf2 Author: Andrey Sitnik Date: Mon Jun 22 10:37:02 2015 -0400 Release 0.5 version commit 8f3ce4a7fd85dd6d5c7c11b697c4f56e2091ed99 Author: Andrey Sitnik Date: Mon Jun 22 10:35:55 2015 -0400 Fix ESLint warnings commit 58ec42144645a0d458921666ad807ed52be5e22f Author: Andrey Sitnik Date: Mon Jun 22 10:27:39 2015 -0400 Update dependencies commit 07abf0c3a4b4167fd622c43d1b7d6778006b0eed Author: Ben Briggs Date: Mon Jun 22 12:39:26 2015 +0100 Add support for version ranges. Fixes #26. commit bada738deb219ac571ffb4ece5c2a5d4976c6f75 Author: Xavier Haniquaut Date: Wed Jun 17 12:08:30 2015 +0200 Update actual expample in READM test commit 1c99f174d5d3b86c9bf1f4d5ea0b449dcda20ce9 Author: Andrey Sitnik Date: Sun May 3 14:05:37 2015 +0300 Update example commit 5cd47002027942ab9b4fd15afaeb2c989e44db45 Author: Andrey Sitnik Date: Sun May 3 14:01:45 2015 +0300 Clean up docs by common PostCSS style commit 1e7ab0462ff58767e90a7188af1a26d376b6a6d1 Author: Andrey Sitnik Date: Sat May 2 16:51:21 2015 +0300 Clean up version clarifing commit afa7931095367396a0b48ec79c597059cdb6c5f6 Author: Andrey Sitnik Date: Sat May 2 16:36:44 2015 +0300 Release 0.4 version commit 143891b26631a759573f78c56fca9f5213406898 Author: Andrey Sitnik Date: Sat May 2 16:35:16 2015 +0300 Fix more symlinks commit d5657dec324ac81095d20f533a067130ae8030d1 Author: Andrey Sitnik Date: Sat May 2 16:33:35 2015 +0300 Add symlink support commit 01ea57bf7402252389303f3c3c70f641c526fc04 Author: Andrey Sitnik Date: Sat May 2 16:29:41 2015 +0300 Add BROWSERSLIST_CONFIG support commit bca0f74cddd785e222b09fb4888461f6d763f465 Author: Andrey Sitnik Date: Sat May 2 16:27:08 2015 +0300 Add config option commit 6f64352b3b6b43c1d48da5646f4b854226c67b8f Author: Andrey Sitnik Date: Sat May 2 16:20:09 2015 +0300 Update dependencies commit c1a4801fd4cad55a93dd39a5d639c3b0fa10e346 Author: Andrey Sitnik Date: Sat May 2 16:10:44 2015 +0300 Clarify that Browserslist works with separated versions commit eccd3971106bd31fa730ce2835ec4e7f2414fa75 Author: Andrey Sitnik Date: Mon Apr 13 15:18:11 2015 +0300 Release 0.3.3 version commit 4341978823799028fd87e7bd70713ce30c675fe7 Author: Andrey Sitnik Date: Mon Apr 13 15:09:28 2015 +0300 Update npm dependencies commit b0084a8726e0b446e615ef1e7b8e74742cb9cdd2 Author: Andrey Sitnik Date: Mon Apr 13 15:07:44 2015 +0300 Clean up code commit 6878cfbe36d1c6d65aa42647c38e9dbd1459486a Author: Nick Howes Date: Sat Apr 11 18:24:25 2015 +0100 DynJS compatibility DynJS (http://dynjs.org/) fails on this code because this sort function sometimes returns floating point values, and it's a bit more strict than other engines about requiring integer values. This change makes the module work in DynJS, and other existing JS engines will also be fine with it. commit 3776f85026ca0807ea1ea047544905f6fcc523e3 Author: Andrey Sitnik Date: Thu Apr 2 18:13:20 2015 +0300 Update README.md commit 4a44bfb3cd71bc733ef0055631cbf9dd714c8a35 Author: Andrey Sitnik Date: Thu Apr 2 18:05:19 2015 +0300 Release 0.3.2 version commit 986e2892237ae59130da637058014c2ad11dc03b Author: Andrey Sitnik Date: Thu Apr 2 18:02:42 2015 +0300 Use ESLint and new versions of npm packages commit 3ac97e70c3412278375f5ae0519d09a53fcfd14b Author: Vincent De Oliveira Date: Thu Apr 2 15:46:43 2015 +0200 Fix README test commit 489a080338b2042115b494ae7537d8f517c3ab74 Author: Vincent De Oliveira Date: Thu Apr 2 15:45:24 2015 +0200 Fix joined versions on versions query commit 059298b1539e880e37a97a21956336d3d5828509 Author: Andrey Sitnik Date: Fri Feb 27 01:54:47 2015 +0300 Release 0.3.1 version commit 6b5b43ff2b9245d4ca1f5102608775c62a97656d Author: Andrey Sitnik Date: Fri Feb 27 01:53:20 2015 +0300 Update npm dependencies commit ee2ab89ccf9200415d3e2259dc8ac8501548b787 Author: Peter Müller Date: Thu Feb 26 23:18:26 2015 +0100 Fix accidental global Leaking this causes mocha to throw errors commit fd68b6ea13fd84ffca757b23c8af3adb8cc30340 Author: Andrey Sitnik Date: Sat Feb 21 15:25:46 2015 +0300 Release 0.3 version commit 97a545daab9b764f7c6227aa17c0b5f854ac3edc Author: Andrey Sitnik Date: Sat Feb 21 15:24:43 2015 +0300 Clean up README.md commit d56a8ac772f4f72a862fc76f29aedd15cbcd9562 Author: Andrey Sitnik Date: Sat Feb 21 15:22:48 2015 +0300 Rename test file commit fc482330678b25f8407d4d6621f9df284225c7c7 Author: Andrey Sitnik Date: Sat Feb 21 15:21:09 2015 +0300 Add test, that README.md has actual example commit a670bd4cd5b7f3928a5eb765fa4bc1accfb71a3a Author: Andrey Sitnik Date: Sat Feb 21 15:16:24 2015 +0300 Fix README.md commit 49fcef3115a7c63bf8f04b3031bde5dd46f10c11 Author: Andrey Sitnik Date: Sat Feb 21 15:14:31 2015 +0300 Add BROWSERSLIST environment variable support commit 2665b6c8910ce5daa3ee50eda7f6bbd4cf0107c4 Author: Andrey Sitnik Date: Sat Feb 21 15:00:32 2015 +0300 Fix JSHint and Chai commit aa8d3c734f0fab021bc5d0ada2d519ca6b1c8c71 Author: Andrey Sitnik Date: Sat Feb 21 14:56:45 2015 +0300 Update npm dependencies commit 3927933050957b4a9802d0d7d1a9cb9ae7c1d1c1 Author: Andrey Sitnik Date: Sat Feb 7 03:38:44 2015 +0300 Add node.js 0.12 and iojs to Travis CI commit c4caf8672092a60eabf72dd79f93df8c98954d7c Author: Jared Forsyth Date: Thu Feb 5 12:07:51 2015 -0700 typo commit 9015bacbefe3a22e36a6a6e2b9d6dcb15f8f07db Author: Andrey Sitnik Date: Wed Jan 28 17:43:43 2015 +0300 Release 0.2 version commit cdaea3983a0dab279c642e3c4f335b40388130a5 Author: Andrey Sitnik Date: Wed Jan 28 17:42:59 2015 +0300 Update main example in README.md commit 685dc8bbc89d06df1aa198f068ddc305ae201fd9 Author: Andrey Sitnik Date: Wed Jan 28 17:40:02 2015 +0300 Fix jshint warnings commit ddbf455178217954c7c513f63a6b34da3f9ceceb Author: Andrey Sitnik Date: Wed Jan 28 17:38:41 2015 +0300 Return joined versions as-is commit 88a917e2bf17aec6bec111240e0fbdb0705094d0 Author: Andrey Sitnik Date: Wed Jan 28 02:37:03 2015 +0300 Better syntax highlight for config file commit b411a61a402b47056cfe7e1c6f1ea1aad99b03d0 Author: Andrey Sitnik Date: Wed Jan 28 02:29:29 2015 +0300 Release 0.1.3 version commit 7ecbe12140c5b972917557006fc728bbf4a01ed8 Author: Andrey Sitnik Date: Wed Jan 28 02:24:55 2015 +0300 Allow to miss .0 at version commit d9afad5260bf7e91ca61656a0bddc5397a1c910c Author: Andrey Sitnik Date: Wed Jan 28 02:18:15 2015 +0300 Better work with joined versions from Can I Use commit 9217ffa389865f45c9ee2b08cca3f8bcc01523b5 Author: Andrey Sitnik Date: Wed Jan 28 02:17:57 2015 +0300 Update Can I Use dependency commit 1fee920299b678f0093945aa8ad8663adcff4282 Author: Andrey Sitnik Date: Mon Jan 19 20:40:56 2015 +0300 Release 0.1.2 version commit 8367be5e34e071f2ea76079e95b092cd1341c257 Author: Andrey Sitnik Date: Mon Jan 19 20:40:40 2015 +0300 Update Can I Use dependency commit ccfcfe8c796d3c6cb00d31bdf24d235b624e4e63 Author: Andrey Sitnik Date: Mon Jan 19 20:38:33 2015 +0300 Fix 80 columns holy line commit f4091cca66a8e5bbaa5e7da201f9d58173ceaefa Author: Andreas Lind Date: Mon Jan 19 16:46:07 2015 +0100 Fixed accidentally global 'browserslist' var. commit 31e4d95ad186c53c66526efa43def414367d27b2 Author: Pablo D. Olmos Date: Mon Jan 19 17:17:15 2015 +0100 Minor description improvements A few sentences weren't quite clear. I tried to touch up the English a little bit. commit 5867a2df9262774d1dd8b48984a3785db1603dca Author: Bas Bosman Date: Thu Jan 15 16:24:28 2015 +0100 Another small typo commit d90aa51e4ead680e8bbbc21045ac61192faf5cb3 Author: Bas Bosman Date: Thu Jan 15 14:19:51 2015 +0100 Typo Singular is `criterion`, plural is `criteria` commit 2987bb88b49e2cbf1f9374d9488209976deb135c Author: Andrey Sitnik Date: Sun Jan 11 19:17:29 2015 +0100 Release 0.1.1 version commit a24a2384f5da294394c4c13c2a34acd5eee42859 Author: Andrey Sitnik Date: Sun Jan 11 16:10:56 2015 +0100 Sort browsers commit 0203948dc37e27418c07902fee67660b58fe9368 Author: Andrey Sitnik Date: Sun Jan 11 15:54:27 2015 +0100 Typo commit 1b5990b85b4aa8f0934d7abdb6493fbdbe533808 Author: Andrey Sitnik Date: Sun Jan 11 15:46:07 2015 +0100 Update dependencies commit dd5c67f31df1608f50344e097000d3eb23d3b532 Author: Andrey Sitnik Date: Thu Dec 18 15:48:42 2014 +0300 Speed up Travis CI commit e265e8c4c909ece0bd537b3b7b75e497b604f544 Author: Vadim Sikora Date: Wed Dec 17 09:14:34 2014 +0100 Fix typo in README commit 1f25b173fedc2f53bc4c023d63ae6d155771fdea Author: Andrey Sitnik Date: Mon Dec 15 11:23:17 2014 +0300 Release 0.1 version commit 8e5f816ab15189c3a36b2a83ec760e1b69ca4804 Author: Andrey Sitnik Date: Mon Dec 15 11:14:42 2014 +0300 Make main description easier commit db59421aafddc8f0e05e0a1a84b37874da91d419 Author: Andrey Sitnik Date: Mon Dec 15 11:11:58 2014 +0300 Typo commit 01a8ead10c09e6c05a3d174788eb9d6cb5a4a5c4 Author: Andrey Sitnik Date: Mon Dec 15 11:11:22 2014 +0300 Typo commit 733b448da0910629b20de3f4e2d673e387ea5b41 Author: Andrey Sitnik Date: Mon Dec 15 11:09:40 2014 +0300 Mark that we return all versions commit d8594c5e611daab6dc0cfc9658ff81315b02a669 Author: Andrey Sitnik Date: Mon Dec 15 10:58:05 2014 +0300 Fix newline in docs commit 48781e192203603fe093884be902ffb84340074e Author: Maxime Thirouin Date: Mon Dec 15 10:55:59 2014 +0300 Update README.md commit 5da3a28c07f9e5ca0ae06aac0e70274f22c00585 Author: Andrey Sitnik Date: Mon Dec 15 10:50:32 2014 +0300 Extend docs commit 6b149f60a5c85dc66447e9afba03f9c188acf534 Author: Andrey Sitnik Date: Mon Dec 15 00:21:19 2014 +0300 Move queries list to separated section commit 3a89a07fbb8fc78d8571e08117235642dd9a9e62 Author: Andrey Sitnik Date: Mon Dec 15 00:19:53 2014 +0300 Add base docs commit 90927cb5d0b10563e2b415411289325f9e0a691d Author: Andrey Sitnik Date: Sun Dec 14 22:14:09 2014 +0300 Do not try to read config on path: false commit 87b311b34c07423584a5bb4a4768390b5030b73f Author: Andrey Sitnik Date: Sun Dec 14 22:03:39 2014 +0300 Remove stock Android because it used only in WebView commit b22cfbdb0a315b3d39ab186cddc8f6a28935e4da Author: Andrey Sitnik Date: Sun Dec 14 21:53:11 2014 +0300 Sort browsers commit def102c23c708c90dea826b209a6abdf8960aa15 Author: Andrey Sitnik Date: Sun Dec 14 21:52:53 2014 +0300 Update dependencies commit 8e6a01320518bd994b32187bd066d4088d2a9107 Author: Andrey Sitnik Date: Sun Dec 14 21:46:06 2014 +0300 Add config support commit 4ca087605ef573e48e54ae94075422f21e40c414 Author: Andrey Sitnik Date: Sun Dec 14 20:26:07 2014 +0300 Fix jshint warning commit abae2305682f6374239223a4cb82149bf303867b Author: Andrey Sitnik Date: Sun Dec 14 20:23:24 2014 +0300 Add statistics query by contry commit 1cfeba45f0d07c9a49fad36b2c1cba2f9bb31076 Author: Andrey Sitnik Date: Sun Dec 14 18:16:46 2014 +0300 Use latest part of interval commit 8a8c85d796955b42dec911aa8bf09af2533d0348 Author: Andrey Sitnik Date: Sun Dec 14 18:11:54 2014 +0300 Use browserslist() instead of browserslist.get() commit 1e824521221b8f794ec6ed13353e378bae4e3578 Author: Andrey Sitnik Date: Sun Dec 14 18:05:45 2014 +0300 Add popularity query commit 0607a48a26e625120a000e859212c573b0e45481 Author: Andrey Sitnik Date: Sun Dec 14 17:49:55 2014 +0300 Join never and older queries commit 6194dcbec814169c881f236f18703d33d882690f Author: Andrey Sitnik Date: Sun Dec 14 17:31:04 2014 +0300 Add default query commit 865ae86ec1398412234cc6bd5b3ac927540a53b7 Author: Andrey Sitnik Date: Sun Dec 14 17:23:06 2014 +0300 Add last n versions queries commit c4ce4fcf544c33eb627718a4af2fb2697deeb9e4 Author: Andrey Sitnik Date: Sun Dec 14 13:11:17 2014 +0300 Allow to use fake data in tests commit c9aaad58e635502c85cc42ed2a50e3ce0e6652a2 Author: Andrey Sitnik Date: Sun Dec 14 12:54:05 2014 +0300 Add never than and older than queries commit ca011342f5c6176837da37277d58440818343748 Author: Andrey Sitnik Date: Sun Dec 14 12:36:06 2014 +0300 Add Firefox ESR and direct queries commit 9af845cda9ec5216a187f24575fdfea1187fbfd1 Author: Andrey Sitnik Date: Sat Dec 13 22:35:36 2014 +0300 Init project --- .editorconfig | 9 + .github/FUNDING.yml | 2 + .github/workflows/test.yml | 82 + .gitignore | 3 + .npmignore | 12 + CHANGELOG.md | 601 ++ LICENSE | 20 + README.md | 711 ++ browser.js | 50 + cli.js | 151 + error.d.ts | 7 + error.js | 12 + grammar.w3c-ebnf | 129 + img/complement.svg | 1 + img/icon.svg | 1 + img/intersection.svg | 1 + img/logo.svg | 1 + img/union.svg | 1 + index.d.ts | 172 + index.js | 1197 ++++ logo.svg | 2 +- node.js | 398 ++ package.json | 167 + parse.js | 78 + pnpm-lock.yaml | 2045 ++++++ test/and.test.ts | 44 + test/benchmark/one/app/css/hello.css | 0 test/benchmark/one/package.json | 7 + test/benchmark/run.js | 32 + test/benchmark/three/app/js/hello.js | 1 + test/benchmark/two/app/js/hello.js | 0 test/benchmark/two/browserslist | 1 + test/browser.test.ts | 50 + test/cache.test.ts | 50 + test/cli.test.ts | 166 + test/config-query.test.js | 20 + test/config.test.ts | 129 + test/country.test.ts | 73 + test/cover.test.ts | 63 + test/coverage.test.ts | 93 + test/covid.test.js | 55 + test/custom.test.ts | 74 + test/dead.test.ts | 9 + test/defaults.test.ts | 16 + test/direct.test.ts | 86 + test/electron.test.ts | 70 + test/error.test.ts | 17 + test/esr.test.ts | 14 + test/extends.test.ts | 143 + test/feature.test.ts | 43 + test/fixtures/android-stats.json | 5 + test/fixtures/both1/browserslist | 3 + test/fixtures/both1/package.json | 7 + test/fixtures/both2/.browserslistrc | 3 + test/fixtures/both2/package.json | 7 + test/fixtures/both3/.browserslistrc | 3 + test/fixtures/both3/browserslist | 3 + test/fixtures/broken/package.json | 1 + test/fixtures/browserslist | 3 + test/fixtures/browserslist-stats.json | 7 + test/fixtures/dir/test.css | 0 test/fixtures/env-config/browserslist | 11 + test/fixtures/env-config/package.json | 3 + test/fixtures/env-package/package.json | 7 + test/fixtures/explorers | 2 + test/fixtures/package/package.json | 4 + test/fixtures/package2/package.json | 4 + test/fixtures/rc/.browserslistrc | 1 + test/fixtures/stats.json | 17 + test/fixtures/string/package.json | 4 + test/fixtures/symlink | 1 + test/fixtures/typo/package.json | 4 + test/fixtures/wrong1/package.json | 6 + test/fixtures/wrong2/package.json | 6 + test/global.test.ts | 50 + test/last.test.ts | 71 + test/main.test.ts | 228 + test/major.test.ts | 109 + test/node.test.ts | 330 + test/opera.test.ts | 9 + test/parse.test.js | 33 + test/phantomjs.test.ts | 11 + test/range.test.ts | 44 + test/release.test.ts | 139 + test/shareable-stats.test.ts | 142 + test/since.test.ts | 44 + test/unreleased.test.ts | 43 + test/versions.test.ts | 69 + test/webpack.test.ts | 50 + test/years.test.ts | 72 + tsconfig.json | 10 + yarn.lock | 8232 ++++++++++++++++++++++++ 92 files changed, 16906 insertions(+), 1 deletion(-) create mode 100644 .editorconfig create mode 100644 .github/FUNDING.yml create mode 100644 .github/workflows/test.yml create mode 100644 .gitignore create mode 100644 .npmignore create mode 100644 CHANGELOG.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 browser.js create mode 100755 cli.js create mode 100644 error.d.ts create mode 100644 error.js create mode 100644 grammar.w3c-ebnf create mode 100644 img/complement.svg create mode 100644 img/icon.svg create mode 100644 img/intersection.svg create mode 100644 img/logo.svg create mode 100644 img/union.svg create mode 100644 index.d.ts create mode 100644 index.js create mode 100644 node.js create mode 100644 package.json create mode 100644 parse.js create mode 100644 pnpm-lock.yaml create mode 100644 test/and.test.ts create mode 100644 test/benchmark/one/app/css/hello.css create mode 100644 test/benchmark/one/package.json create mode 100755 test/benchmark/run.js create mode 100644 test/benchmark/three/app/js/hello.js create mode 100644 test/benchmark/two/app/js/hello.js create mode 100644 test/benchmark/two/browserslist create mode 100644 test/browser.test.ts create mode 100644 test/cache.test.ts create mode 100644 test/cli.test.ts create mode 100644 test/config-query.test.js create mode 100644 test/config.test.ts create mode 100644 test/country.test.ts create mode 100644 test/cover.test.ts create mode 100644 test/coverage.test.ts create mode 100644 test/covid.test.js create mode 100644 test/custom.test.ts create mode 100644 test/dead.test.ts create mode 100644 test/defaults.test.ts create mode 100644 test/direct.test.ts create mode 100644 test/electron.test.ts create mode 100644 test/error.test.ts create mode 100644 test/esr.test.ts create mode 100644 test/extends.test.ts create mode 100644 test/feature.test.ts create mode 100644 test/fixtures/android-stats.json create mode 100644 test/fixtures/both1/browserslist create mode 100644 test/fixtures/both1/package.json create mode 100644 test/fixtures/both2/.browserslistrc create mode 100644 test/fixtures/both2/package.json create mode 100644 test/fixtures/both3/.browserslistrc create mode 100644 test/fixtures/both3/browserslist create mode 100644 test/fixtures/broken/package.json create mode 100644 test/fixtures/browserslist create mode 100644 test/fixtures/browserslist-stats.json create mode 100644 test/fixtures/dir/test.css create mode 100644 test/fixtures/env-config/browserslist create mode 100644 test/fixtures/env-config/package.json create mode 100644 test/fixtures/env-package/package.json create mode 100644 test/fixtures/explorers create mode 100644 test/fixtures/package/package.json create mode 100644 test/fixtures/package2/package.json create mode 100644 test/fixtures/rc/.browserslistrc create mode 100644 test/fixtures/stats.json create mode 100644 test/fixtures/string/package.json create mode 120000 test/fixtures/symlink create mode 100644 test/fixtures/typo/package.json create mode 100644 test/fixtures/wrong1/package.json create mode 100644 test/fixtures/wrong2/package.json create mode 100644 test/global.test.ts create mode 100644 test/last.test.ts create mode 100644 test/main.test.ts create mode 100644 test/major.test.ts create mode 100644 test/node.test.ts create mode 100644 test/opera.test.ts create mode 100644 test/parse.test.js create mode 100644 test/phantomjs.test.ts create mode 100644 test/range.test.ts create mode 100644 test/release.test.ts create mode 100644 test/shareable-stats.test.ts create mode 100644 test/since.test.ts create mode 100644 test/unreleased.test.ts create mode 100644 test/versions.test.ts create mode 100644 test/webpack.test.ts create mode 100644 test/years.test.ts create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..c6c8b362 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..10fbf524 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +open_collective: browserslist +tidelift: npm/browserslist diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..1488c2e2 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,82 @@ +name: Test +on: + push: + branches: + - main + pull_request: +jobs: + full: + name: Node.js Latest Full + runs-on: ubuntu-latest + steps: + - name: Checkout the repository + uses: actions/checkout@v3 + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: latest + - name: Install Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: pnpm + - name: Install dependencies + run: pnpm install --frozen-lockfile --ignore-scripts + - name: Run tests + run: pnpm test + env: + FORCE_COLOR: 2 + short: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: + - 16 + - 14 + name: Node.js ${{ matrix.node-version }} Quick + steps: + - name: Checkout the repository + uses: actions/checkout@v3 + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: latest + - name: Install Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: pnpm + - name: Install dependencies + run: pnpm install --frozen-lockfile --ignore-scripts + - name: Run unit tests + run: pnpm unit + env: + FORCE_COLOR: 2 + old: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: + - 12 + - 10 + - 8 + name: Node.js ${{ matrix.node-version }} Quick + steps: + - name: Checkout the repository + uses: actions/checkout@v3 + - name: Install pnpm + uses: pnpm/action-setup@v1 + with: + version: 3 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + - name: Install Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + - name: Install dependencies + run: pnpm install --frozen-lockfile --ignore-scripts + - name: Run unit tests + run: pnpm unit + env: + FORCE_COLOR: 2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..c6b9df27 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules/ + +coverage/ diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..a6100193 --- /dev/null +++ b/.npmignore @@ -0,0 +1,12 @@ +node_modules/ +yarn-error.log +yarn.lock + +.editorconfig +test/ +coverage/ +.travis.yml + +.github/ +img/ +tsconfig.json diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..30fbbcc4 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,601 @@ +# Change Log +This project adheres to [Semantic Versioning](http://semver.org/). + +## 4.21.1 +* Fixed parsing days in `since` query. + +## 4.21 +* IE 11 was added to `dead` and removed from `defaults` (by Albert Portnoy). +* Added `browserslist.parse()` to get config AST for analysis. +* Moved `--update-db` script to `update-browserslist-db` tool. +* Fixed Unicode BOM support in `package.json`. + +## 4.20.4 +* Fixed Opera in `mobileToDesktop` (by Pig Fang). + +## 4.20.3 +* Added `Baidu` to `dead` browsers (by Igor Lukanin). + +## 4.20.2 +* Fixed `package.funding` URL format. + +## 4.20.1 +* Fixed `package.funding`. +* Fixed docs (by Michael Lohmann). + +## 4.20 +* Added `last 2 node versions` and `last 2 node major versions` (by @g-plane). + +## 4.19.3 +* Updated Firefox ESR (by Christophe Coevoet). + +## 4.19.2 +* Fixed `--help` output. + +## 4.19.1 +* Fixed `throwOnMissing` types (by Øyvind Saltvik). + +## 4.19 +* Added queries grammar definition (by Pig Fang). +* Added `throwOnMissing` option (by Øyvind Saltvik). +* Fixed `null` data ignoring in `< 50% in CN` (byPig Fang). +* Fixed data parsing in `in my stats` (by Sun Xiaoran). +* Fixed `yarn.lock` support with `integrity` (by Alexey Berezin). +* Fixed Yarn Berry error message in `--update-db`. + +## 4.18.1 +* Fixed case inventiveness for `cover` queries (by Pig Fang). +* Fixed `since 1970` query for `null` in release date (by Pig Fang). + +## 4.18 +* Added `--ignore-unknown-versions` CLI option (by Pig Fang). + +## 4.17.6 +* Fixed sharable config resolution (by Adaline Valentina Simonian). + +## 4.17.5 +* Fixed `--update-db` for some `pnpm` cases. + +## 4.17.4 +* Reduced package size. + +## 4.17.3 +* Use `picocolors` for color output in `--update-db`. + +## 4.17.2 +* Reduced package size. + +## 4.17.1 +* Use Nano Colors for color output in `--update-db`. + +## 4.17 +* Added `yarn` 3 support to `--update-db` (by Himank Pathak). + +## 4.16.8 +* Updated Firefox ESR. + +## 4.16.7 +* Fixed `oudated caniuse-lite` warning text (by Paul Verest). +* Fixed docs (by Alexander Belov). + +## 4.16.6 +* Fixed `npm-shrinkwrap.json` support in `--update-db` (by Geoff Newman). + +## 4.16.5 +* Fixed unsafe RegExp (by Yeting Li). + +## 4.16.4 +* Fixed unsafe RegExp. +* Added artifactory support to `--update-db` (by Ittai Baratz). + +## 4.16.3 +* Fixed `--update-db`. + +## 4.16.2 +* Fixed `--update-db` (by @ialarmedalien). + +## 4.16.1 +* Fixed Chrome 4 with `mobileToDesktop` (by Aron Woost). + +## 4.16 +* Add `browserslist config` query. + +## 4.15 +* Add TypeScript types (by Dmitry Semigradsky). + +## 4.14.7 +* Fixed Yarn Workspaces support to `--update-db` (by Fausto Núñez Alberro). +* Added browser changes to `--update-db` (by @AleksandrSl). +* Added color output to `--update-db`. +* Updated `package.funding` to have link to our Open Collective. + +## 4.14.6 +* Fixed Yarn support in `--update-db` (by Ivan Storck). +* Fixed npm 7 support in `--update-db`. + +## 4.14.5 +* Fixed `last 2 electron versions` query (by Sergey Melyukov). + +## 4.14.4 +* Fixed `Unknown version 59 of op_mob` error. + +## 4.14.3 +* Update Firefox ESR. + +## 4.14.2 +* Fixed `--update-db` on Windows (by James Ross). +* Improved `--update-db` output. + +## 4.14.1 +* Added `--update-db` explanation (by Justin Zelinsky). + +## 4.14 +* Add `BROWSERSLIST_DANGEROUS_EXTEND` support (by Timo Mayer). + +## 4.13 +* Added `supports` query to select browsers (by Jesús Leganés-Combarro). + +## 4.12.2 +* Update Firefox ESR. + +## 4.12.1 +* Update `package.json` scanning tool for `--update-db` (by Luke Edwards). +* Improve docs (by Mukundan Senthil). +* Drop Node.js 13.0-13.6 support because of ES modules bug in that versions. + +## 4.12 +* Add environments to shared configs (by Yevgeny Petukhov). +* Fix docs (by Dmitry Statsenko and Thomas Pozzo di Borgo). + +## 4.11.1 +* Fix Node.js 6 support. + +## 4.11 +* Add `npx browserslist --mobile-to-desktop` (by James Ross). + +## 4.10 +* Add `npx browserslist --update-db` (by Ivan Solovev). + +## 4.9.1 +* Normalize incorrect Can I Use regional data (by Huáng Jùnliàng). + +## 4.9 +* Add `node X-Y` query support (by Yuping Zuo). + +## 4.8.7 +* Fix `last N major versions` (by Valeriy Trubachev). + +## 4.8.6 +* Fix `Unknown version 10 of op_mob` error in `mobileToDesktop` option. + +## 4.8.5 +* Fix `last N browsers` again after new `caniuse-db` API changes. + +## 4.8.4 +* Fix released versions detection for queries like `last N browsers`. +* Add IE 11 Mobile to `dead` browsers. + +## 4.8.3 +* Fix warning message (by Anton Ivanov). + +## 4.8.2 +* Fix `Cannot convert undefined or null to object` (by Antoine Clausse). +* Fix `mobileToDesktop` in `defaults` (by Huáng Jùnliàng). + +## 4.8.1 +* Fix Chrome and `mobileToDesktop` (by Huáng Jùnliàng). + +## 4.8 +* Add `> 5% in browserslist-config-my stats` query (by Andrew Leedham). +* Improve docs (by Danny van Kooten). + +## 4.7.3 +* Add funding link for `npm fund`. + +## 4.7.2 +* Add cache for query parsing. +* Improve config caching (by Kārlis Gaņģis). +* Update Firefox ESR. + +## 4.7.1 +* Improve caching. + +## 4.7 +* Add PhantomJS queries. +* Improve docs (by Dorian Koehring). + +## 4.6.6 +* Remove Safari from `dead` query. + +## 4.6.5 +* Add Samsung 4 browser to `dead` query. +* Remove dirty fix for `android all` error. + +## 4.6.4 +* Add Firefox 68 to `Firefox ESR` query. + +## 4.6.3 +* Dirty fix for `android all` error. + +## 4.6.2 +* Fix `last x version` and similar queries for Android (by Tony Ross). + +## 4.6.1 +* Fix patch version support for Electron (by Kilian Valkhof). + +## 4.6 +* Add `mobileToDesktop` option (by Nicolò Ribaudo). + +## 4.5.6 +* Make `Node > 5` and `node > 5` queries case insensitive. + +## 4.5.5 +* Fix CLI help (by Marcel Gerber). +* Add KaiOS browser to docs. + +## 4.5.4 +* Update docs (by Andrew Leedham and Dan Onoshko). + +## 4.5.3 +* Fix splitting string to queries. + +## 4.5.2 +* Show default browsers in CLI on project without config. + +## 4.5.1 +* Improve text for the warning about outdated `caniuse-lite`. + +## 4.5 +* Add `>=`, `>`, and `<=` support for Node.js version (by Mathspy Terabithian). + +## 4.4.2 +* Allow to have string in `package.json` (by @dmarkhas). + +## 4.4.1 +* Allow to use `.` in scope name of shareable config (by Gustav Nikolaj). + +## 4.4 +* Added `and` and `or` keywords to combine queries (by Jon Ege Ronnenberg). + +## 4.3.7 +* Fix fraction years support in `last 1.5 years` (by Clément P). +* Fix version-less browser support. + +## 4.3.6 +* Fix version-less browser support in custom statistics (by Alex Walter). + +## 4.3.5 +* Fix `not` query for wrong Can I Use data. + +## 4.3.4 +* Allow to update `node-releases` without new Browserslist releases. + +## 4.3.3 +* Fix Node.js 11 support. + +## 4.3.2 +* Fix `Unknown version 11 of Node.js` error (by Dan Onoshko). + +## 4.3.1 +* Fix conflict between `caniuse-lite` and custom browsers statistics. + +## 4.3 +* Allow to use `extends browserslist-config-a/file` (by @Schweinepriester). + +## 4.2.1 +* Use new `node-releases` support (by Sergey Rubanov). + +## 4.2 +* Add `--json` argument for CLI. +* Allow to pass multiple areas in CLI by `--coverage=US,alt-AS,global`. + +## 4.1.2 +* Better `unknow query` error message. +* Use latest `node-releases`. + +## 4.1.1 +* Update Firefox ESR versions. + +## 4.1 +* Add `current node` query. +* Add contributors widget to docs (by Sergey Surkov). + +## 4.0.2 +* Fix new `node-releases` support (by Sergey Rubanov). +* Fix error text (by Josh Smith). + +## 4.0.1 +* Reduce npm package size. +* Fix docs. + +## 4.0.0 “Erinaceus amurensis” +* Add `node X` and `maintained node versions` queries (by Pavel Vostrikov). +* Remove Node.js 4 support. +* Show warning if `caniuse-lite` is old (by Anton Tuzhik). +* Add comma support in config file. + +## 3.2.8 +* Add IE 9-5.5 to dead browsers. +* Remove development configs from npm package. + +## 3.2.7 +* Add Firefox 60 as Firefox ESR. + +## 3.2.6 +* Add Opera Mini 12 to dead browsers. +* Update docs (by Jamie Kyle). + +## 3.2.5 +* Fix excluding Opera Mini and other browsers with `all` version. + +## 3.2.4 +* Resolve shareable config from current working directory. + +## 3.2.3 +* Fix `package.json` config validation for single string case. +* Fix CLI error reporting. + +## 3.2.2 +* Add `package.json` config validation. +* Move project to `browserlist` GitHub organization. + +## 3.2.1 +* Fix error text (by Steve Schrab). + +## 3.2 +* Add `cover 99%` query (by Vasily Fedoseyev). +* Add `cover 99% in US` query (by Vasily Fedoseyev). +* Add `cover 99% in my stats` query (by Vasily Fedoseyev). +* Add `"my stats"` support to `browserlist.coverage()` (by Vasily Fedoseyev). + +## 3.1.2 +* Add more clear error on missed browser version. + +## 3.1.1 +* Fix JSDoc (by Sylvain Pollet-Villard). + +## 3.1 +* Add `ignoreUnknownVersions` option. +* Fix docs (by Pascal Duez). + +## 3.0 “Atelerix sclateri” +* Remove country statistics from client-side build of Browserslist. +* Change `> 1%` to `> 0.5%` in default query. +* Add `not dead` to default query. +* Change default environment to `production` (by Marco Fugaro). +* Add `dead` query support with IE 10 and BlackBerry browser. +* Add multiple environments in one section support (by Evilebot Tnawi). +* Add custom statistics support to `browserlist.coverage()`. +* Fix `path` option check. + +## 2.11.3 +* Fix for `path: undefined` option. + +## 2.11.2 +* Remove Node.js specific code from webpack build. + +## 2.11.1 +* Fix using Browserslist in browser with `path` but without `fs`. + +## 2.11 +* Add `last 2 years` query support (by James Harris). + +## 2.10.2 +* Fix Browserify support. + +## 2.10.1 +* Fix using Browserslist without `process` (by Andrew Patton). + +## 2.10 +* Add `< 1%` and `<= 1%` queries support (by August Kaiser). + +## 2.9.1 +* Fix unknown query on trailing spaces in query. + +## 2.9 +* Add `last Electron versions` and `last Electron major versions` queries + (by Louis Mouhat). + +## 2.8 +* Add `since 2016-03` and `since 2016-03-20` queries support (by Andrew Blick). + +## 2.7 +* Add `since 2016` queries support (by Igor Deryabin). + +## 2.6.1 +* Fix `Path must be a string` error. + +## 2.6 +* By default load config from current directory in CLI tool. + +## 2.5.1 +* Allow `@scope/browserlist-config` config name (by Jamie Connolly). + +## 2.5 +* Add `extends` query (by YellowKirby). + +## 2.4.1 +* Throw error if `package.json` contain `browserlist` instead of `browserslist`. + +## 2.4 +* Add `last n major versions` query (by John Sanders). + +## 2.3.3 +* Fix browsers support. + +## 2.3.2 +* Fix `> 0` query for browsers with one version (by Nikolay Solovyov). + +## 2.3.1 +* Reduce library size. + +## 2.3 +* Add `unreleased versions` and `unreleased Chrome versions` queries. + +## 2.2.2 +* Fix `Path must be a string` error (by Pieter Beulque). + +## 2.2.1 +* Fix security issue with regions dynamic `require`. + +## 2.2 +* Add region usage statistics support (by Clément P). + +## 2.1.5 +* Remove Firefox 45 from Firefox ESR. + +## 2.1.4 +* Use both ESR versions when they actual. + +## 2.1.3 +* Add warning on first exclude query. + +## 2.1.2 +* Fix non-Node.js environments support. + +## 2.1.1 +* Fix CLI arguments parsing. + +## 2.1 +* Add `>= 5%`, `>= 5% in US` and `>= 5% in my stats` queries. + +## 2.0 “Atelerix frontalis” +* `last n versions` returns versions for all browsers, not only main browsers. +* Cache file system operations (by Aarni Koskela). +* Use `caniuse-lite` 1 MB instead of `caniuse-db` 7 MB (by Ben Briggs). +* Add `.browserslistrc` config support. +* Add QQ Browser for Android support. +* Add tests for CLI (by Zhulduz Zhankenova). + +## 1.7.7 +* Update Firefox ESR. + +## 1.7.6 +* Fix Android Chrome selection. + +## 1.7.5 +* Fix combining `not` query with country based statistics. +* Fix `--env` argument in CLI (by Tuure Savuoja). + +## 1.7.4 +* Speed up browser sorting (by Aarni Koskela). + +## 1.7.3 +* Fix config finding when directory was passed to `path` (by Aarni Koskela). + +## 1.7.2 +* Fix config finding algorithm (by Aarni Koskela). + +## 1.7.1 +* Fix unreleased browsers version detection. + +## 1.7 +* Add `--config` and `--env` arguments to CLI (by Jarek Rencz). + +## 1.6 +* Convert Electron version to Chrome (by Kilian Valkhof). +* Fix `0` version mistake in Can I Use data. + +## 1.5.2 +* Fix browser versions ordering (by Marco Massarotto). + +## 1.5.1 +* Fix error on `package.json` and `browserslist` in same directory. + +## 1.5 +* Add `package.json` support (by Stepan Kuzmin). +* Add environments support (by Maksim Semenov and openlibser). +* Add `browserslist-stats.json` file support (by Oleh Aloshkin). +* Add `config` option to CLI (by Evilebot Tnawi). +* Add JSDoc. +* Fix tests on Windows (by Anna Stoliar). +* Don’t set custom usage statistics globally. + +## 1.4 +* Add `defaults` keyword. + +## 1.3.6 +* Add `UCAndroid` alias to `and_uc` (by Evilebot Tnawi). + +## 1.3.5 +* Fix Opera Mini support. Use `op_mini all`. + +## 1.3.4 +* Add space-less `>1%` and `>.5%` syntax support (by Andreas Lind). + +## 1.3.3 +* Clean `0` versions in some country-based requests. + +## 1.3.2 +* Update Firefox ESR. + +## 1.3.1 +* Add Safari TP support. + +## 1.3 +* Add coverage for specific country (by Joshua Wise). + +## 1.2 +* Add `browserslist.coverage()` method. +* Add `--coverage` and `-c` argument to CLI. +* Add `-v` argument support to CLI. +* Better error handling in CLI. + +## 1.1.3 +* Fix jspm support (by Sean Anderson). + +## 1.1.2 +* Fix jspm support (by Sean Anderson). + +## 1.1.1 +* Fix space-less `>10%` and `>10% in my stats` queries. +* Normalize error messages. +* Remove development files from npm package. + +## 1.1 +* Added query against custom browser usage data (by Daniel Rey). + +## 1.0.1 +* Update Firefox ESR (by Rouven Weßling). + +## 1.0 “Atelerix algirus” +* Remove Opera 12.1 from default query. +* Add `not` keyword and exclude browsers by query. +* Add Microsoft Edge support (by Andrey Polischuk). +* Add CLI for debug and non-JS usage (by Luke Horvat). +* Use own class in Browserslist errors. + +## 0.5 +* Add version ranges `IE 6-9` (by Ben Briggs). + +## 0.4 +* Add `config` option and `BROWSERSLIST_CONFIG` environment variable support. +* Add symlink config support. + +## 0.3.3 +* Fix DynJS compatibility (by Nick Howes). + +## 0.3.2 +* Fix joined versions on versions query (by Vincent De Oliveira). + +## 0.3.1 +* Fix global variable leak (by Peter Müller). + +## 0.3 +* Takes queries from `BROWSERSLIST` environment variable. + +## 0.2 +* Return Can I Use joined versions as `ios_saf 7.0-7.1`. + +## 0.1.3 +* Better work with Can I Use joined versions like `ios_saf 7.0-7.1`. +* Browserslist now understands `ios_saf 7.0` or `ios_saf 7`. + +## 0.1.2 +* Do not create global `browserslist` var (by Maxime Thirouin). + +## 0.1.1 +* Sort browsers by name and version. + +## 0.1 “Atelerix albiventris” +* Initial release. diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..90b6b916 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2014 Andrey Sitnik and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..be4eef58 --- /dev/null +++ b/README.md @@ -0,0 +1,711 @@ +# Browserslist [![Cult Of Martians][cult-img]][cult] + +Browserslist logo by Anton Lovchikov + +The config to share target browsers and Node.js versions between different +front-end tools. It is used in: + +* [Autoprefixer] +* [Babel] +* [postcss-preset-env] +* [eslint-plugin-compat] +* [stylelint-no-unsupported-browser-features] +* [postcss-normalize] +* [obsolete-webpack-plugin] + +All tools will find target browsers automatically, +when you add the following to `package.json`: + +```json + "browserslist": [ + "defaults", + "not IE 11", + "maintained node versions" + ] +``` + +Or in `.browserslistrc` config: + +```yaml +# Browsers that we support + +defaults +not IE 11 +maintained node versions +``` + +Developers set their version lists using queries like `last 2 versions` +to be free from updating versions manually. +Browserslist will use [`caniuse-lite`] with [Can I Use] data for this queries. + +Browserslist will take queries from tool option, +`browserslist` config, `.browserslistrc` config, +`browserslist` section in `package.json` or environment variables. + +[cult-img]: https://cultofmartians.com/assets/badges/badge.svg +[cult]: https://cultofmartians.com/done.html + + + Sponsored by Evil Martians + + +[stylelint-no-unsupported-browser-features]: https://github.com/ismay/stylelint-no-unsupported-browser-features +[eslint-plugin-compat]: https://github.com/amilajack/eslint-plugin-compat +[Browserslist Example]: https://github.com/browserslist/browserslist-example +[postcss-preset-env]: https://github.com/jonathantneal/postcss-preset-env +[postcss-normalize]: https://github.com/jonathantneal/postcss-normalize +[`caniuse-lite`]: https://github.com/ben-eb/caniuse-lite +[Autoprefixer]: https://github.com/postcss/autoprefixer +[Can I Use]: https://caniuse.com/ +[Babel]: https://github.com/babel/babel/tree/master/packages/babel-preset-env +[obsolete-webpack-plugin]: https://github.com/ElemeFE/obsolete-webpack-plugin + +## Table of Contents + +* [Tools](#tools) + * [Text Editors](#text-editors) +* [Best Practices](#best-practices) +* [Browsers Data Updating](#browsers-data-updating) +* [Queries](#queries) + * [Query Composition](#query-composition) + * [Full List](#full-list) + * [Debug](#debug) + * [Browsers](#browsers) +* [Config File](#config-file) + * [`package.json`](#packagejson) + * [`.browserslistrc`](#browserslistrc) +* [Shareable Configs](#shareable-configs) +* [Configuring for Different Environments](#configuring-for-different-environments) +* [Custom Usage Data](#custom-usage-data) +* [JS API](#js-api) +* [Environment Variables](#environment-variables) +* [Cache](#cache) +* [Security Contact](#security-contact) +* [For Enterprise](#for-enterprise) + +## Tools + +### Analyze your Browserslist Config + +* [`browserl.ist`](https://browserl.ist/) is an online tool to check + what browsers will be selected by some query. +* Run `npx browserslist` in your project directory to see project’s + target browsers. This CLI tool is built-in and available in any project + with Autoprefixer. +* [`browserslist-lint`] checks your config for popular mistakes. + + +### Show “We do not support your browser” Banner + +* [`browserslist-useragent-regexp`] compiles Browserslist query to a RegExp + to test browser useragent. +* [`browserslist-useragent-ruby`] is a Ruby library to checks browser + by user agent string to match Browserslist. + + +### Get Statistics for `>5% in my stats`: + +* [`browserslist-ga`] and [`browserslist-ga-export`] download your website + browsers statistics to use it in `> 0.5% in my stats` query. +* [`browserslist-new-relic`] generate a custom usage data file for Browserslist +* [`browserslist-adobe-analytics`] use Adobe Analytics data to target browsers. + from your New Relic Browser data. + + +### Others + +* [`browserslist-rs`] is a Browserslist port to Rust. +* [`update-browserslist-db`] is a CLI tool to update browsers DB for queries + like `last 2 version` or `>1%`. +* [`browserslist-update-action`] is a GitHub Action to automatically + runs `update-browserslist-db` and proposes a pull request to merge updates. +* [`browserslist-browserstack`] runs BrowserStack tests for all browsers + in Browserslist config. + +[`browserslist-useragent-regexp`]: https://github.com/browserslist/browserslist-useragent-regexp +[`browserslist-adobe-analytics`]: https://github.com/xeroxinteractive/browserslist-adobe-analytics +[`browserslist-useragent-ruby`]: https://github.com/browserslist/browserslist-useragent-ruby +[`browserslist-update-action`]: https://github.com/c2corg/browserslist-update-action +[`browserslist-browserstack`]: https://github.com/xeroxinteractive/browserslist-browserstack +[`browserslist-ga-export`]: https://github.com/browserslist/browserslist-ga-export +[`browserslist-useragent`]: https://github.com/pastelsky/browserslist-useragent +[`update-browserslist-db`]: https://github.com/browserslist/update-db +[`browserslist-new-relic`]: https://github.com/syntactic-salt/browserslist-new-relic +[`browserslist-lint`]: https://github.com/browserslist/lint/ +[`browserslist-ga`]: https://github.com/browserslist/browserslist-ga +[`browserslist-rs`]: https://github.com/g-plane/browserslist-rs +[`caniuse-api`]: https://github.com/Nyalab/caniuse-api + + +### Text Editors + +These extensions will add syntax highlighting for `.browserslistrc` files. + +* [VS Code](https://marketplace.visualstudio.com/items?itemName=webben.browserslist) +* [Vim](https://github.com/browserslist/vim-browserslist) + +## Best Practices + +* There is a `defaults` query, which gives a reasonable configuration + for most users: + + ```json + "browserslist": [ + "defaults" + ] + ``` + +* If you want to change the default set of browsers, we recommend combining + `last 2 versions`, `not dead` with a usage number like `> 0.2%`. This is + because `last n versions` on its own does not add popular old versions, while + only using a percentage above `0.2%` will in the long run make popular + browsers even more popular. We might run into a monopoly and stagnation + situation, as we had with Internet Explorer 6. Please use this setting + with caution. +* Select browsers directly (`last 2 Chrome versions`) only if you are making + a web app for a kiosk with one browser. There are a lot of browsers + on the market. If you are making general web app you should respect + browsers diversity. +* Don’t remove browsers just because you don’t know them. Opera Mini has + 100 million users in Africa and it is more popular in the global market + than Microsoft Edge. Chinese QQ Browsers has more market share than Firefox + and desktop Safari combined. + + +## Browsers Data Updating + +See [`update-browserslist-db` docs](https://github.com/browserslist/update-db#readme) + + +## Queries + +Browserslist will use browsers and Node.js versions query +from one of these sources: + +1. `browserslist` key in `package.json` file in current or parent directories. + **We recommend this way.** +2. `.browserslistrc` config file in current or parent directories. +3. `browserslist` config file in current or parent directories. +4. `BROWSERSLIST` environment variable. +5. If the above methods did not produce a valid result + Browserslist will use defaults: + `> 0.5%, last 2 versions, Firefox ESR, not dead`. + + +### Query Composition + +An `or` combiner can use the keyword `or` as well as `,`. +`last 1 version or > 1%` is equal to `last 1 version, > 1%`. + +`and` query combinations are also supported to perform an +intersection of all the previous queries: +`last 1 version or chrome > 75 and > 1%` will select +(`browser last version` or `Chrome since 76`) and `more than 1% marketshare`. + +There are 3 different ways to combine queries as depicted below. First you start +with a single query and then we combine the queries to get our final list. + +Obviously you can *not* start with a `not` combiner, since there is no left-hand +side query to combine it with. The left-hand is always resolved as `and` +combiner even if `or` is used (this is an API implementation specificity). + +| Query combiner type | Illustration | Example | +| ------------------- | :----------: | ------- | +|`or`/`,` combiner
(union) | ![Union of queries](img/union.svg) | `> .5% or last 2 versions`
`> .5%, last 2 versions` | +| `and` combiner
(intersection) | ![intersection of queries](img/intersection.svg) | `> .5% and last 2 versions` | +| `not` combiner
(relative complement) | ![Relative complement of queries](img/complement.svg) | These three are equivalent to one another:
`> .5% and not last 2 versions`
`> .5% or not last 2 versions`
`> .5%, not last 2 versions` | + +_A quick way to test your query is to do `npx browserslist '> 0.5%, not IE 11'` +in your terminal._ + +### Full List + +You can specify the browser and Node.js versions by queries (case insensitive): + +* `defaults`: Browserslist’s default browsers + (`> 0.5%, last 2 versions, Firefox ESR, not dead`). +* By usage statistics: + * `> 5%`: browsers versions selected by global usage statistics. + `>=`, `<` and `<=` work too. + * `> 5% in US`: uses USA usage statistics. + It accepts [two-letter country code]. + * `> 5% in alt-AS`: uses Asia region usage statistics. + List of all region codes can be found at [`caniuse-lite/data/regions`]. + * `> 5% in my stats`: uses [custom usage data]. + * `> 5% in browserslist-config-mycompany stats`: uses [custom usage data] + from `browserslist-config-mycompany/browserslist-stats.json`. + * `cover 99.5%`: most popular browsers that provide coverage. + * `cover 99.5% in US`: same as above, with [two-letter country code]. + * `cover 99.5% in my stats`: uses [custom usage data]. +* Last versions: + * `last 2 versions`: the last 2 versions for *each* browser. + * `last 2 Chrome versions`: the last 2 versions of Chrome browser. + * `last 2 major versions` or `last 2 iOS major versions`: + all minor/patch releases of last 2 major versions. +* `dead`: browsers without official support or updates for 24 months. + Right now it is `IE 11`, `IE_Mob 11`, `BlackBerry 10`, `BlackBerry 7`, + `Samsung 4`, `OperaMobile 12.1` and all versions of `Baidu`. +* Node.js versions: + * `node 10` and `node 10.4`: selects latest Node.js `10.x.x` + or `10.4.x` release. + * `last 2 node versions`: select 2 latest Node.js releases. + * `last 2 node major versions`: select 2 latest major-version Node.js releases. + * `current node`: Node.js version used by Browserslist right now. + * `maintained node versions`: all Node.js versions, which are [still maintained] + by Node.js Foundation. +* Browsers versions: + * `iOS 7`: the iOS browser version 7 directly. + * `Firefox > 20`: versions of Firefox newer than 20. + `>=`, `<` and `<=` work too. It also works with Node.js. + * `ie 6-8`: selects an inclusive range of versions. + * `Firefox ESR`: the latest [Firefox Extended Support Release]. + * `PhantomJS 2.1` and `PhantomJS 1.9`: selects Safari versions similar + to PhantomJS runtime. +* `extends browserslist-config-mycompany`: take queries from + `browserslist-config-mycompany` npm package. +* `supports es6-module`: browsers with support for specific features. + `es6-module` here is the `feat` parameter at the URL of the [Can I Use] + page. A list of all available features can be found at + [`caniuse-lite/data/features`]. +* `browserslist config`: the browsers defined in Browserslist config. Useful + in Differential Serving to modify user’s config like + `browserslist config and supports es6-module`. +* `since 2015` or `last 2 years`: all versions released since year 2015 + (also `since 2015-03` and `since 2015-03-10`). +* `unreleased versions` or `unreleased Chrome versions`: + alpha and beta versions. +* `not ie <= 8`: exclude IE 8 and lower from previous queries. + +You can add `not ` to any query. + +[`caniuse-lite/data/regions`]: https://github.com/ben-eb/caniuse-lite/tree/main/data/regions +[`caniuse-lite/data/features`]: https://github.com/ben-eb/caniuse-lite/tree/main/data/features +[two-letter country code]: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements +[custom usage data]: #custom-usage-data +[still maintained]: https://github.com/nodejs/Release +[Can I Use]: https://caniuse.com/ +[Firefox Extended Support Release]: https://support.mozilla.org/en-US/kb/choosing-firefox-update-channel + +### Grammar Definition + +There is a [grammar specification](./grammar.w3c-ebnf) about the query syntax, +which may be helpful if you're implementing a parser or something else. + +### Debug + +Run `npx browserslist` in project directory to see what browsers was selected +by your queries. + +```sh +$ npx browserslist +and_chr 61 +and_ff 56 +and_qq 1.2 +and_uc 11.4 +android 56 +baidu 7.12 +bb 10 +chrome 62 +edge 16 +firefox 56 +ios_saf 11 +opera 48 +safari 11 +samsung 5 +``` + + +### Browsers + +The following table maps browser names & their target devices into identifiers used by browserslist. + +| Browser Name | Desktop | Android | iOS | Other Mobile | +| ------------------| ---------------- | ------------------------- | ------------------------ | ----------------- | +| Android (WebView) | | `Android` | | | +| Baidu | `Baidu` | | | | +| BlackBerry | | | | `BlackBerry` `bb` | +| Chrome | `Chrome` | `ChromeAndroid` `and_chr` | ↪︎ `ios_saf`2 | | +| Edge | `Edge` | ↪︎ `and_chr` | ↪︎ `ios_saf`2 | | +| Electron | `Electron` | | | | +| Firefox | `Firefox` `ff` | `FirefoxAndroid` `and_ff` | ↪︎ `ios_saf`2 | | +| Internet Explorer | `Explorer` `ie` | | | `ie_mob` | +| Node.js | `Node` | | | | +| [KaiOS Browser] | | | | `kaios` | +| Opera | `Opera` | `op_mob` 1 | ↪︎ `ios_saf`2 | | +| [Opera Mini] | | `OperaMini` | | | +| [QQ browser] | | `and_qq` | | | +| Safari | `Safari` | | `iOS` `ios_saf` | | +| Samsung Internet | | `Samsung` | | | +| [UC Browser] | | `UCAndroid` `and_uc` | | | + +- `↪︎ name` implies that the browser uses the same engine captured by `name` +- 1 [Opera Mobile ≈ Chrome Android](https://github.com/Fyrd/caniuse/issues/5602#issuecomment-792385127) +- 2 [All iOS browsers use WebKit](https://en.wikipedia.org/wiki/WebKit) + +[KaiOS Browser]: https://medium.com/design-at-kai/what-you-didnt-know-about-kaios-browser-53937ea1636 +[QQ browser]: https://en.wikipedia.org/wiki/QQ_browser +[Opera Mini]: https://en.wikipedia.org/wiki/Opera_Mini +[UC Browser]: https://en.wikipedia.org/wiki/UC_Browser + +## Config File + +### `package.json` + +If you want to reduce config files in project root, you can specify +browsers in `package.json` with `browserslist` key: + +```json +{ + "private": true, + "dependencies": { + "autoprefixer": "^6.5.4" + }, + "browserslist": [ + "last 1 version", + "> 1%", + "IE 10" + ] +} +``` + + +### `.browserslistrc` + +Separated Browserslist config should be named `.browserslistrc` +and have browsers queries split by a new line. +Each line is combined with the `or` combiner. Comments starts with `#` symbol: + +```yaml +# Browsers that we support + +last 1 version +> 1% +IE 10 # sorry +``` + +Browserslist will check config in every directory in `path`. +So, if tool process `app/styles/main.css`, you can put config to root, +`app/` or `app/styles`. + +You can specify direct path in `BROWSERSLIST_CONFIG` environment variables. + + +## Shareable Configs + +You can use the following query to reference an exported Browserslist config +from another package: + +```json + "browserslist": [ + "extends browserslist-config-mycompany" + ] +``` + +For security reasons, external configuration only supports packages that have +the `browserslist-config-` prefix. npm scoped packages are also supported, by +naming or prefixing the module with `@scope/browserslist-config`, such as +`@scope/browserslist-config` or `@scope/browserslist-config-mycompany`. + +If you don’t accept Browserslist queries from users, you can disable the +validation by using the or `BROWSERSLIST_DANGEROUS_EXTEND` environment variable. + +```sh +BROWSERSLIST_DANGEROUS_EXTEND=1 npx webpack +``` + +Because this uses `npm`'s resolution, you can also reference specific files +in a package: + +```json + "browserslist": [ + "extends browserslist-config-mycompany/desktop", + "extends browserslist-config-mycompany/mobile" + ] +``` + +When writing a shared Browserslist package, just export an array. +`browserslist-config-mycompany/index.js`: + +```js +module.exports = [ + 'last 1 version', + '> 1%', + 'ie 10' +] +``` + +You can also include a `browserslist-stats.json` file as part of your shareable +config at the root and query it using +`> 5% in browserslist-config-mycompany stats`. It uses the same format +as `extends` and the `dangerousExtend` property as above. + +You can export configs for different environments and select environment +by `BROWSERSLIST_ENV` or `env` option in your tool: + +```js +module.exports = { + development: [ + 'last 1 version' + ], + production: [ + 'last 1 version', + '> 1%', + 'ie 10' + ] +} +``` + + +## Configuring for Different Environments + +You can also specify different browser queries for various environments. +Browserslist will choose query according to `BROWSERSLIST_ENV` or `NODE_ENV` +variables. If none of them is declared, Browserslist will firstly look +for `production` queries and then use defaults. + +In `package.json`: + +```js + "browserslist": { + "production": [ + "> 1%", + "ie 10" + ], + "modern": [ + "last 1 chrome version", + "last 1 firefox version" + ], + "ssr": [ + "node 12" + ] + } +``` + +In `.browserslistrc` config: + +```ini +[production] +> 1% +ie 10 + +[modern] +last 1 chrome version +last 1 firefox version + +[ssr] +node 12 +``` + + +## Custom Usage Data + +If you have a website, you can query against the usage statistics of your site. +[`browserslist-ga`] will ask access to Google Analytics and then generate +`browserslist-stats.json`: + +``` +npx browserslist-ga +``` + +Or you can use [`browserslist-ga-export`] to convert Google Analytics data without giving a password for Google account. + +You can generate usage statistics file by any other method. File format should +be like: + +```js +{ + "ie": { + "6": 0.01, + "7": 0.4, + "8": 1.5 + }, + "chrome": { + … + }, + … +} +``` + +Note that you can query against your custom usage data while also querying +against global or regional data. For example, the query +`> 1% in my stats, > 5% in US, 10%` is permitted. + +[`browserslist-ga-export`]: https://github.com/browserslist/browserslist-ga-export +[`browserslist-ga`]: https://github.com/browserslist/browserslist-ga +[Can I Use]: https://caniuse.com/ + + +## JS API + +```js +const browserslist = require('browserslist') + +// Your CSS/JS build tool code +function process (source, opts) { + const browsers = browserslist(opts.overrideBrowserslist, { + stats: opts.stats, + path: opts.file, + env: opts.env + }) + // Your code to add features for selected browsers +} +``` + +Queries can be a string `"> 1%, IE 10"` +or an array `['> 1%', 'IE 10']`. + +If a query is missing, Browserslist will look for a config file. +You can provide a `path` option (that can be a file) to find the config file +relatively to it. + +Options: + +* `path`: file or a directory path to look for config file. Default is `.`. +* `env`: what environment section use from config. Default is `production`. +* `stats`: custom usage statistics data. +* `config`: path to config if you want to set it manually. +* `ignoreUnknownVersions`: do not throw on direct query (like `ie 12`). + Default is `false`. +* `dangerousExtend`: Disable security checks for `extend` query. + Default is `false`. +* `throwOnMissing`: throw a error if env is not found. + Default is `false`. +* `mobileToDesktop`: Use desktop browsers if Can I Use doesn’t have data + about this mobile version. Can I Use has only data only about + latest versions of mobile browsers. By default, `last 2 and_ff versions` + returns `and_ff 90` and with this option it returns `and_ff 91, and_ff 90`. + This option may lead to unknown browser version error (in example Can I Use + doesn’t have data for `and_ff 91` yet). Default is `false`. + +For non-JS environment and debug purpose you can use CLI tool: + +```sh +browserslist "> 1%, IE 10" +``` + +You can get total users coverage for selected browsers by JS API: + +```js +browserslist.coverage(browserslist('> 1%')) +//=> 81.4 +``` + +```js +browserslist.coverage(browserslist('> 1% in US'), 'US') +//=> 83.1 +``` + +```js +browserslist.coverage(browserslist('> 1% in my stats'), 'my stats') +//=> 83.1 +``` + +```js +browserslist.coverage(browserslist('> 1% in my stats', { stats }), stats) +//=> 82.2 +``` + +Or by CLI: + +```sh +$ browserslist --coverage "> 1%" +These browsers account for 81.4% of all users globally +``` + +```sh +$ browserslist --coverage=US "> 1% in US" +These browsers account for 83.1% of all users in the US +``` + +```sh +$ browserslist --coverage "> 1% in my stats" +These browsers account for 83.1% of all users in custom statistics +``` + +```sh +$ browserslist --coverage "> 1% in my stats" --stats=./stats.json +These browsers account for 83.1% of all users in custom statistics +``` + + +## Environment Variables + +If a tool uses Browserslist inside, you can change the Browserslist settings +with [environment variables]: + +* `BROWSERSLIST` with browsers queries. + + ```sh + BROWSERSLIST="> 5%" npx webpack + ``` + +* `BROWSERSLIST_CONFIG` with path to config file. + + ```sh + BROWSERSLIST_CONFIG=./config/browserslist npx webpack + ``` + +* `BROWSERSLIST_ENV` with environments string. + + ```sh + BROWSERSLIST_ENV="development" npx webpack + ``` + +* `BROWSERSLIST_STATS` with path to the custom usage data + for `> 1% in my stats` query. + + ```sh + BROWSERSLIST_STATS=./config/usage_data.json npx webpack + ``` + +* `BROWSERSLIST_DISABLE_CACHE` if you want to disable config reading cache. + + ```sh + BROWSERSLIST_DISABLE_CACHE=1 npx webpack + ``` + +* `BROWSERSLIST_DANGEROUS_EXTEND` to disable security shareable config + name check. + + ```sh + BROWSERSLIST_DANGEROUS_EXTEND=1 npx webpack + ``` + +[environment variables]: https://en.wikipedia.org/wiki/Environment_variable + + +## Cache + +Browserslist caches the configuration it reads from `package.json` and +`browserslist` files, as well as knowledge about the existence of files, +for the duration of the hosting process. + +To clear these caches, use: + +```js +browserslist.clearCaches() +``` + +To disable the caching altogether, set the `BROWSERSLIST_DISABLE_CACHE` +environment variable. + + +## Security Contact + +To report a security vulnerability, please use the [Tidelift security contact]. +Tidelift will coordinate the fix and disclosure. + +[Tidelift security contact]: https://tidelift.com/security + + +## For Enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of `browserslist` and thousands of other packages are working +with Tidelift to deliver commercial support and maintenance for the open source +dependencies you use to build your applications. Save time, reduce risk, +and improve code health, while paying the maintainers of the exact dependencies +you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-browserslist?utm_source=npm-browserslist&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/browser.js b/browser.js new file mode 100644 index 00000000..4e9d8dec --- /dev/null +++ b/browser.js @@ -0,0 +1,50 @@ +var BrowserslistError = require('./error') + +function noop() {} + +module.exports = { + loadQueries: function loadQueries() { + throw new BrowserslistError( + 'Sharable configs are not supported in client-side build of Browserslist' + ) + }, + + getStat: function getStat(opts) { + return opts.stats + }, + + loadConfig: function loadConfig(opts) { + if (opts.config) { + throw new BrowserslistError( + 'Browserslist config are not supported in client-side build' + ) + } + }, + + loadCountry: function loadCountry() { + throw new BrowserslistError( + 'Country statistics are not supported ' + + 'in client-side build of Browserslist' + ) + }, + + loadFeature: function loadFeature() { + throw new BrowserslistError( + 'Supports queries are not available in client-side build of Browserslist' + ) + }, + + currentNode: function currentNode(resolve, context) { + return resolve(['maintained node versions'], context)[0] + }, + + parseConfig: noop, + + readConfig: noop, + + findConfig: noop, + + clearCaches: noop, + + oldDataWarning: noop +} diff --git a/cli.js b/cli.js new file mode 100755 index 00000000..c54aa987 --- /dev/null +++ b/cli.js @@ -0,0 +1,151 @@ +#!/usr/bin/env node + +var updateDb = require('update-browserslist-db') +var fs = require('fs') + +var browserslist = require('./') +var pkg = require('./package.json') + +var args = process.argv.slice(2) + +var USAGE = + 'Usage:\n' + + ' npx browserslist\n' + + ' npx browserslist "QUERIES"\n' + + ' npx browserslist --json "QUERIES"\n' + + ' npx browserslist --config="path/to/browserlist/file"\n' + + ' npx browserslist --coverage "QUERIES"\n' + + ' npx browserslist --coverage=US "QUERIES"\n' + + ' npx browserslist --coverage=US,RU,global "QUERIES"\n' + + ' npx browserslist --env="environment name defined in config"\n' + + ' npx browserslist --stats="path/to/browserlist/stats/file"\n' + + ' npx browserslist --mobile-to-desktop\n' + + ' npx browserslist --ignore-unknown-versions\n' + +function isArg(arg) { + return args.some(function (str) { + return str === arg || str.indexOf(arg + '=') === 0 + }) +} + +function error(msg) { + process.stderr.write('browserslist: ' + msg + '\n') + process.exit(1) +} + +if (isArg('--help') || isArg('-h')) { + process.stdout.write(pkg.description + '.\n\n' + USAGE + '\n') +} else if (isArg('--version') || isArg('-v')) { + process.stdout.write('browserslist ' + pkg.version + '\n') +} else if (isArg('--update-db')) { + /* c8 ignore next 3 */ + updateDb(function (str) { + process.stdout.write(str) + }) +} else { + var mode = 'browsers' + var opts = {} + var queries + var areas + + for (var i = 0; i < args.length; i++) { + if (args[i][0] !== '-') { + queries = args[i].replace(/^["']|["']$/g, '') + continue + } + + var arg = args[i].split('=') + var name = arg[0] + var value = arg[1] + + if (value) value = value.replace(/^["']|["']$/g, '') + + if (name === '--config' || name === '-b') { + opts.config = value + } else if (name === '--env' || name === '-e') { + opts.env = value + } else if (name === '--stats' || name === '-s') { + opts.stats = value + } else if (name === '--coverage' || name === '-c') { + if (mode !== 'json') mode = 'coverage' + if (value) { + areas = value.split(',') + } else { + areas = ['global'] + } + } else if (name === '--json') { + mode = 'json' + } else if (name === '--mobile-to-desktop') { + /* c8 ignore next */ + opts.mobileToDesktop = true + } else if (name === '--ignore-unknown-versions') { + /* c8 ignore next */ + opts.ignoreUnknownVersions = true + } else { + error('Unknown arguments ' + args[i] + '.\n\n' + USAGE) + } + } + + var browsers + try { + browsers = browserslist(queries, opts) + } catch (e) { + if (e.name === 'BrowserslistError') { + error(e.message) + } /* c8 ignore start */ else { + throw e + } /* c8 ignore end */ + } + + var coverage + if (mode === 'browsers') { + browsers.forEach(function (browser) { + process.stdout.write(browser + '\n') + }) + } else if (areas) { + coverage = areas.map(function (area) { + var stats + if (area !== 'global') { + stats = area + } else if (opts.stats) { + stats = JSON.parse(fs.readFileSync(opts.stats)) + } + var result = browserslist.coverage(browsers, stats) + var round = Math.round(result * 100) / 100.0 + + return [area, round] + }) + + if (mode === 'coverage') { + var prefix = 'These browsers account for ' + process.stdout.write(prefix) + coverage.forEach(function (data, index) { + var area = data[0] + var round = data[1] + var end = 'globally' + if (area && area !== 'global') { + end = 'in the ' + area.toUpperCase() + } else if (opts.stats) { + end = 'in custom statistics' + } + + if (index !== 0) { + process.stdout.write(prefix.replace(/./g, ' ')) + } + + process.stdout.write(round + '% of all users ' + end + '\n') + }) + } + } + + if (mode === 'json') { + var data = { browsers: browsers } + if (coverage) { + data.coverage = coverage.reduce(function (object, j) { + object[j[0]] = j[1] + return object + }, {}) + } + process.stdout.write(JSON.stringify(data, null, ' ') + '\n') + } +} diff --git a/error.d.ts b/error.d.ts new file mode 100644 index 00000000..91329ca6 --- /dev/null +++ b/error.d.ts @@ -0,0 +1,7 @@ +declare class BrowserslistError extends Error { + constructor(message: any); + name: 'BrowserslistError'; + browserslist: true; +} + +export = BrowserslistError; diff --git a/error.js b/error.js new file mode 100644 index 00000000..6e5da7a8 --- /dev/null +++ b/error.js @@ -0,0 +1,12 @@ +function BrowserslistError(message) { + this.name = 'BrowserslistError' + this.message = message + this.browserslist = true + if (Error.captureStackTrace) { + Error.captureStackTrace(this, BrowserslistError) + } +} + +BrowserslistError.prototype = Error.prototype + +module.exports = BrowserslistError diff --git a/grammar.w3c-ebnf b/grammar.w3c-ebnf new file mode 100644 index 00000000..9c9497e4 --- /dev/null +++ b/grammar.w3c-ebnf @@ -0,0 +1,129 @@ +NonSpaceChar ::= [#x21-#xD7FF] | [#xE000-#xFFFD] + +Digit ::= [0-9] + +Space ::= ' ' | '\t' + +Numeric ::= (Digit* '.')? Digit+ + +BrowserName ::= 'ie' + | 'edge' + | 'firefox' + | 'chrome' + | 'safari' + | 'opera' + | 'ios_saf' + | 'op_mini' + | 'android' + | 'bb' + | 'op_mob' + | 'and_chr' + | 'and_ff' + | 'ie_mob' + | 'and_uc' + | 'samsung' + | 'and_qq' + | 'baidu' + | 'kaios' + | 'fx' + | 'ff' + | 'ios' + | 'explorer' + | 'blackberry' + | 'explorermobile' + | 'operamini' + | 'operamobile' + | 'chromeandroid' + | 'firefoxandroid' + | 'ucandroid' + | 'qqandroid' + +CompareOperator ::= ('>' | '<') '='? + +VersionKeyword ::= 'version' 's'? + +LastBrowsers ::= 'last' Space+ Digit+ Space+ (BrowserName Space+)? ('major' Space+)? VersionKeyword + +LastElectron ::= 'last' Space+ Digit+ Space+ 'electron' Space+ ('major' Space+)? VersionKeyword + +LastNode ::= 'last' Space+ Digit+ Space+ 'node' Space+ ('major' Space+)? VersionKeyword + +Unreleased ::= 'unreleased' Space+ ((BrowserName | 'electron') Space+)? VersionKeyword + +Years ::= 'last' Space+ Numeric Space+ 'year' 's'? + +Since ::= 'since' Space Digit+ ('-' Digit+ ('-' Digit+)?)? + +Region ::= ('alt-' [a-z][a-z] | [A-Z][A-Z]) + +MyStats ::= 'my' Space+ 'stats' + +CustomStats ::= NonSpaceChar+ Space+ 'stats' + +Percentage ::= CompareOperator Space* Numeric '%' (Space+ 'in' Space+ (MyStats | CustomStats | Region))? + +Cover ::= 'cover' Space+ Numeric '%' (Space+ 'in' Space+ (MyStats | Region))? + +FeatureSupport ::= 'supports' Space+ ([a-z0-9] | '-')+ + +Version ::= (Digit | '.')+ + +BoundedRange ::= Version Space* '-' Space* Version + +UnboundedRange ::= CompareOperator Space* Version + +Electron ::= 'electron' Space+ (BoundedRange | UnboundedRange | Version) + +Node ::= 'node' Space+ (BoundedRange | UnboundedRange | Version) + +Browser ::= BrowserName Space+ (BoundedRange | UnboundedRange | Version | 'tp') + +FirefoxESR ::= ('firefox' | 'fx' | 'ff') Space+ 'esr' + +OperaMini ::= ('operamini' | 'op_mini') Space+ 'all' + +CurrentNode ::= 'current' Space+ 'node' + +MaintainedNode ::= 'maintained' Space+ 'node' Space+ 'versions' + +Phantom ::= 'phantomjs' Space+ ('1.9' | '2.1') + +BrowserslistConfig ::= 'browserslist config' + +Extending ::= 'extends' Space NonSpaceChar+ + +Defaults ::= 'defaults' + +Dead ::= 'dead' + +QueryAtom ::= LastBrowsers + | LastElectron + | LastNode + | Unreleased + | Years + | Since + | Percentage + | Cover + | FeatureSupport + | Electron + | Node + | Browser + | FirefoxESR + | OperaMini + | CurrentNode + | MaintainedNode + | Phantom + | BrowserslistConfig + | Extending + | Defaults + | Dead + +SingleQuery ::= ('not' Space)? QueryAtom + +OrOperator ::= Space+ 'or' Space+ | Space* ',' Space* + +AndOperator ::= Space+ 'and' Space+ + +BrowserslistQuery ::= QueryAtom ((OrOperator | AndOperator) SingleQuery)* + +Root ::= BrowserslistQuery diff --git a/img/complement.svg b/img/complement.svg new file mode 100644 index 00000000..40938dde --- /dev/null +++ b/img/complement.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/icon.svg b/img/icon.svg new file mode 100644 index 00000000..b4694ece --- /dev/null +++ b/img/icon.svg @@ -0,0 +1 @@ +Browserslist icon \ No newline at end of file diff --git a/img/intersection.svg b/img/intersection.svg new file mode 100644 index 00000000..ad9a0ac8 --- /dev/null +++ b/img/intersection.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 00000000..ec4afbc5 --- /dev/null +++ b/img/logo.svg @@ -0,0 +1 @@ +Browserslist logo \ No newline at end of file diff --git a/img/union.svg b/img/union.svg new file mode 100644 index 00000000..62cad074 --- /dev/null +++ b/img/union.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 00000000..5ccf0070 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,172 @@ +/** statistics from `Browserslist` files */ +type MyStats = 'my stats'; + +/** + * Return array of browsers by selection queries. + * @param queries Browser queries. + * @returns Array with browser names in Can I Use. + * @example + * browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8'] + */ +declare function browserslist( + queries?: string | ReadonlyArray | null, + opts?: browserslist.Options, +): string[]; + +declare namespace browserslist { + interface Options { + /** + * Path to processed file. It will be used to find config files. + * + * @default '.' + */ + path?: string | false; + /** + * Processing environment. It will be used to take right queries from config file. + * + * @default 'production' + */ + env?: string; + /** + * Custom browser usage statistics for "> 1% in my stats" query. + */ + stats?: Stats | string; + /** + * Path to config file with queries. + */ + config?: string; + /** + * Do not throw on unknown version in direct query. + * + * @default false + */ + ignoreUnknownVersions?: boolean; + /** + * Disable security checks for extend query. + */ + dangerousExtend?: boolean; + /** + * Alias mobile browsers to the desktop version when Can I Use + * doesn't have data about the specified version. + */ + mobileToDesktop?: boolean; + } + + type Config = { + defaults: string[], + [section: string]: string[] | undefined, + } + + interface Stats { + [browser: string]: { + [version: string]: number; + }; + } + + /** + * Browser names aliases + */ + let aliases: { + [alias: string]: string | undefined; + } + + /** + * Aliases to work with joined versions like `ios_saf 7.0-7.1` + */ + let versionAliases: { + [browser: string]: { + [version: string]: string | undefined; + } | undefined; + } + + /** + * Can I Use only provides a few versions for some browsers (e.g. and_chr). + * + * Fallback to a similar browser for unknown versions + */ + let desktopNames: { + [browser: string]: string | undefined; + } + + let data: { + [browser: string]: { + name: string; + versions: string[]; + released: string[]; + releaseDate: { + [version: string]: number | undefined | null; + }; + } | undefined; + }; + + interface Usage { + [version: string]: number; + } + + let usage: { + global?: Usage, + custom?: Usage | null, + [country: string]: Usage | undefined | null, + } + + let cache: { + [feature: string]: { + [name: string]: 'y' | 'n'; + }; + }; + + /** + * Default browsers query + */ + const defaults: ReadonlyArray; + + /** + * Which statistics should be used. + * Country code or custom statistics. + * Pass `"my stats"` to load statistics + * from `Browserslist` files + */ + type StatsOptions = string | MyStats | Stats | { dataByBrowser: Stats }; + + /** + * Return browsers market coverage. + * @param browsers Browsers names in Can I Use. + * @param stats Which statistics should be used. @default 'global' + * @returns Total market coverage for all selected browsers. + * @example + * browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1 + */ + function coverage(browsers: ReadonlyArray, stats?: StatsOptions): number; + + function clearCaches(): void; + + function parseConfig(string: string): Config; + + function readConfig(file: string): Config; + + function findConfig(...pathSegments: string[]): Config | undefined; + + interface LoadConfigOptions { + config?: string; + path?: string; + env?: string; + } + + function loadConfig(options: LoadConfigOptions): string[] | undefined +} + +declare global { + namespace NodeJS { + interface ProcessEnv { + BROWSERSLIST?: string; + BROWSERSLIST_CONFIG?: string; + BROWSERSLIST_DANGEROUS_EXTEND?: string; + BROWSERSLIST_DISABLE_CACHE?: string; + BROWSERSLIST_ENV?: string; + BROWSERSLIST_IGNORE_OLD_DATA?: string; + BROWSERSLIST_STATS?: string; + } + } +} + +export = browserslist; diff --git a/index.js b/index.js new file mode 100644 index 00000000..0a16f1b5 --- /dev/null +++ b/index.js @@ -0,0 +1,1197 @@ +var jsReleases = require('node-releases/data/processed/envs.json') +var agents = require('caniuse-lite/dist/unpacker/agents').agents +var jsEOL = require('node-releases/data/release-schedule/release-schedule.json') +var path = require('path') +var e2c = require('electron-to-chromium/versions') + +var BrowserslistError = require('./error') +var parse = require('./parse') +var env = require('./node') // Will load browser.js in webpack + +var YEAR = 365.259641 * 24 * 60 * 60 * 1000 +var ANDROID_EVERGREEN_FIRST = 37 +var COVID_QUERY = "since 2019-12-01"; // First known case + +// Helpers + +function isVersionsMatch(versionA, versionB) { + return (versionA + '.').indexOf(versionB + '.') === 0 +} + +function isEolReleased(name) { + var version = name.slice(1) + return browserslist.nodeVersions.some(function (i) { + return isVersionsMatch(i, version) + }) +} + +function normalize(versions) { + return versions.filter(function (version) { + return typeof version === 'string' + }) +} + +function normalizeElectron(version) { + var versionToUse = version + if (version.split('.').length === 3) { + versionToUse = version.split('.').slice(0, -1).join('.') + } + return versionToUse +} + +function nameMapper(name) { + return function mapName(version) { + return name + ' ' + version + } +} + +function getMajor(version) { + return parseInt(version.split('.')[0]) +} + +function getMajorVersions(released, number) { + if (released.length === 0) return [] + var majorVersions = uniq(released.map(getMajor)) + var minimum = majorVersions[majorVersions.length - number] + if (!minimum) { + return released + } + var selected = [] + for (var i = released.length - 1; i >= 0; i--) { + if (minimum > getMajor(released[i])) break + selected.unshift(released[i]) + } + return selected +} + +function uniq(array) { + var filtered = [] + for (var i = 0; i < array.length; i++) { + if (filtered.indexOf(array[i]) === -1) filtered.push(array[i]) + } + return filtered +} + +function fillUsage(result, name, data) { + for (var i in data) { + result[name + ' ' + i] = data[i] + } +} + +function generateFilter(sign, version) { + version = parseFloat(version) + if (sign === '>') { + return function (v) { + return parseFloat(v) > version + } + } else if (sign === '>=') { + return function (v) { + return parseFloat(v) >= version + } + } else if (sign === '<') { + return function (v) { + return parseFloat(v) < version + } + } else { + return function (v) { + return parseFloat(v) <= version + } + } +} + +function generateSemverFilter(sign, version) { + version = version.split('.').map(parseSimpleInt) + version[1] = version[1] || 0 + version[2] = version[2] || 0 + if (sign === '>') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(v, version) > 0 + } + } else if (sign === '>=') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(v, version) >= 0 + } + } else if (sign === '<') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(version, v) > 0 + } + } else { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(version, v) >= 0 + } + } +} + +function parseSimpleInt(x) { + return parseInt(x) +} + +function compare(a, b) { + if (a < b) return -1 + if (a > b) return +1 + return 0 +} + +function compareSemver(a, b) { + return ( + compare(parseInt(a[0]), parseInt(b[0])) || + compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) || + compare(parseInt(a[2] || '0'), parseInt(b[2] || '0')) + ) +} + +// this follows the npm-like semver behavior +function semverFilterLoose(operator, range) { + range = range.split('.').map(parseSimpleInt) + if (typeof range[1] === 'undefined') { + range[1] = 'x' + } + // ignore any patch version because we only return minor versions + // range[2] = 'x' + switch (operator) { + case '<=': + return function (version) { + version = version.split('.').map(parseSimpleInt) + return compareSemverLoose(version, range) <= 0 + } + case '>=': + default: + return function (version) { + version = version.split('.').map(parseSimpleInt) + return compareSemverLoose(version, range) >= 0 + } + } +} + +// this follows the npm-like semver behavior +function compareSemverLoose(version, range) { + if (version[0] !== range[0]) { + return version[0] < range[0] ? -1 : +1 + } + if (range[1] === 'x') { + return 0 + } + if (version[1] !== range[1]) { + return version[1] < range[1] ? -1 : +1 + } + return 0 +} + +function resolveVersion(data, version) { + if (data.versions.indexOf(version) !== -1) { + return version + } else if (browserslist.versionAliases[data.name][version]) { + return browserslist.versionAliases[data.name][version] + } else { + return false + } +} + +function normalizeVersion(data, version) { + var resolved = resolveVersion(data, version) + if (resolved) { + return resolved + } else if (data.versions.length === 1) { + return data.versions[0] + } else { + return false + } +} + +function filterByYear(since, context) { + since = since / 1000 + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var versions = Object.keys(data.releaseDate).filter(function (v) { + var date = data.releaseDate[v] + return date !== null && date >= since + }) + return selected.concat(versions.map(nameMapper(data.name))) + }, []) +} + +function cloneData(data) { + return { + name: data.name, + versions: data.versions, + released: data.released, + releaseDate: data.releaseDate + } +} + +function mapVersions(data, map) { + data.versions = data.versions.map(function (i) { + return map[i] || i + }) + data.released = data.released.map(function (i) { + return map[i] || i + }) + var fixedDate = {} + for (var i in data.releaseDate) { + fixedDate[map[i] || i] = data.releaseDate[i] + } + data.releaseDate = fixedDate + return data +} + +function byName(name, context) { + name = name.toLowerCase() + name = browserslist.aliases[name] || name + if (context.mobileToDesktop && browserslist.desktopNames[name]) { + var desktop = browserslist.data[browserslist.desktopNames[name]] + if (name === 'android') { + return normalizeAndroidData(cloneData(browserslist.data[name]), desktop) + } else { + var cloned = cloneData(desktop) + cloned.name = name + if (name === 'op_mob') { + cloned = mapVersions(cloned, { '10.0-10.1': '10' }) + } + return cloned + } + } + return browserslist.data[name] +} + +function normalizeAndroidVersions(androidVersions, chromeVersions) { + var firstEvergreen = ANDROID_EVERGREEN_FIRST + var last = chromeVersions[chromeVersions.length - 1] + return androidVersions + .filter(function (version) { + return /^(?:[2-4]\.|[34]$)/.test(version) + }) + .concat(chromeVersions.slice(firstEvergreen - last - 1)) +} + +function normalizeAndroidData(android, chrome) { + android.released = normalizeAndroidVersions(android.released, chrome.released) + android.versions = normalizeAndroidVersions(android.versions, chrome.versions) + return android +} + +function checkName(name, context) { + var data = byName(name, context) + if (!data) throw new BrowserslistError('Unknown browser ' + name) + return data +} + +function unknownQuery(query) { + return new BrowserslistError( + 'Unknown browser query `' + + query + + '`. ' + + 'Maybe you are using old Browserslist or made typo in query.' + ) +} + +function filterAndroid(list, versions, context) { + if (context.mobileToDesktop) return list + var released = browserslist.data.android.released + var last = released[released.length - 1] + var diff = last - ANDROID_EVERGREEN_FIRST - versions + if (diff > 0) { + return list.slice(-1) + } else { + return list.slice(diff - 1) + } +} + +function resolve(queries, context) { + return parse(QUERIES, queries).reduce(function (result, node, index) { + if (node.not && index === 0) { + throw new BrowserslistError( + 'Write any browsers query (for instance, `defaults`) ' + + 'before `' + + node.query + + '`' + ) + } + var type = QUERIES[node.type] + var array = type.select.call(browserslist, context, node).map(function (j) { + var parts = j.split(' ') + if (parts[1] === '0') { + return parts[0] + ' ' + byName(parts[0], context).versions[0] + } else { + return j + } + }) + + if (node.compose === 'and') { + if (node.not) { + return result.filter(function (j) { + return array.indexOf(j) === -1 + }) + } else { + return result.filter(function (j) { + return array.indexOf(j) !== -1 + }) + } + } else { + if (node.not) { + var filter = {} + array.forEach(function (j) { + filter[j] = true + }) + return result.filter(function (j) { + return !filter[j] + }) + } + return result.concat(array) + } + }, []) +} + +function prepareOpts(opts) { + if (typeof opts === 'undefined') opts = {} + + if (typeof opts.path === 'undefined') { + opts.path = path.resolve ? path.resolve('.') : '.' + } + + return opts +} + +function prepareQueries(queries, opts) { + if (typeof queries === 'undefined' || queries === null) { + var config = browserslist.loadConfig(opts) + if (config) { + queries = config + } else { + queries = browserslist.defaults + } + } + + return queries +} + +function checkQueries(queries) { + if (!(typeof queries === 'string' || Array.isArray(queries))) { + throw new BrowserslistError( + 'Browser queries must be an array or string. Got ' + typeof queries + '.' + ) + } +} + +var cache = {} + +function browserslist(queries, opts) { + opts = prepareOpts(opts) + queries = prepareQueries(queries, opts) + checkQueries(queries) + + var context = { + ignoreUnknownVersions: opts.ignoreUnknownVersions, + dangerousExtend: opts.dangerousExtend, + mobileToDesktop: opts.mobileToDesktop, + path: opts.path, + env: opts.env + } + + env.oldDataWarning(browserslist.data) + var stats = env.getStat(opts, browserslist.data) + if (stats) { + context.customUsage = {} + for (var browser in stats) { + fillUsage(context.customUsage, browser, stats[browser]) + } + } + + var cacheKey = JSON.stringify([queries, context]) + if (cache[cacheKey]) return cache[cacheKey] + + var result = uniq(resolve(queries, context)).sort(function (name1, name2) { + name1 = name1.split(' ') + name2 = name2.split(' ') + if (name1[0] === name2[0]) { + // assumptions on caniuse data + // 1) version ranges never overlaps + // 2) if version is not a range, it never contains `-` + var version1 = name1[1].split('-')[0] + var version2 = name2[1].split('-')[0] + return compareSemver(version2.split('.'), version1.split('.')) + } else { + return compare(name1[0], name2[0]) + } + }) + if (!process.env.BROWSERSLIST_DISABLE_CACHE) { + cache[cacheKey] = result + } + return result +} + +browserslist.parse = function (queries, opts) { + opts = prepareOpts(opts) + queries = prepareQueries(queries, opts) + checkQueries(queries) + return parse(QUERIES, queries) +} + +// Will be filled by Can I Use data below +browserslist.cache = {} +browserslist.data = {} +browserslist.usage = { + global: {}, + custom: null +} + +// Default browsers query +browserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead'] + +// Browser names aliases +browserslist.aliases = { + fx: 'firefox', + ff: 'firefox', + ios: 'ios_saf', + explorer: 'ie', + blackberry: 'bb', + explorermobile: 'ie_mob', + operamini: 'op_mini', + operamobile: 'op_mob', + chromeandroid: 'and_chr', + firefoxandroid: 'and_ff', + ucandroid: 'and_uc', + qqandroid: 'and_qq' +} + +// Can I Use only provides a few versions for some browsers (e.g. and_chr). +// Fallback to a similar browser for unknown versions +browserslist.desktopNames = { + and_chr: 'chrome', + and_ff: 'firefox', + ie_mob: 'ie', + op_mob: 'opera', + android: 'chrome' // has extra processing logic +} + +// Aliases to work with joined versions like `ios_saf 7.0-7.1` +browserslist.versionAliases = {} + +browserslist.clearCaches = env.clearCaches +browserslist.parseConfig = env.parseConfig +browserslist.readConfig = env.readConfig +browserslist.findConfig = env.findConfig +browserslist.loadConfig = env.loadConfig + +browserslist.coverage = function (browsers, stats) { + var data + if (typeof stats === 'undefined') { + data = browserslist.usage.global + } else if (stats === 'my stats') { + var opts = {} + opts.path = path.resolve ? path.resolve('.') : '.' + var customStats = env.getStat(opts) + if (!customStats) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + data = {} + for (var browser in customStats) { + fillUsage(data, browser, customStats[browser]) + } + } else if (typeof stats === 'string') { + if (stats.length > 2) { + stats = stats.toLowerCase() + } else { + stats = stats.toUpperCase() + } + env.loadCountry(browserslist.usage, stats, browserslist.data) + data = browserslist.usage[stats] + } else { + if ('dataByBrowser' in stats) { + stats = stats.dataByBrowser + } + data = {} + for (var name in stats) { + for (var version in stats[name]) { + data[name + ' ' + version] = stats[name][version] + } + } + } + + return browsers.reduce(function (all, i) { + var usage = data[i] + if (usage === undefined) { + usage = data[i.replace(/ \S+$/, ' 0')] + } + return all + (usage || 0) + }, 0) +} + +function nodeQuery(context, node) { + var matched = browserslist.nodeVersions.filter(function (i) { + return isVersionsMatch(i, node.version) + }) + if (matched.length === 0) { + if (context.ignoreUnknownVersions) { + return [] + } else { + throw new BrowserslistError( + 'Unknown version ' + node.version + ' of Node.js' + ) + } + } + return ['node ' + matched[matched.length - 1]] +} + +function sinceQuery(context, node) { + var year = parseInt(node.year) + var month = parseInt(node.month || '01') - 1 + var day = parseInt(node.day || '01') + return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context) +} + +function coverQuery(context, node) { + var coverage = parseFloat(node.coverage) + var usage = browserslist.usage.global + if (node.place) { + if (node.place.match(/^my\s+stats$/i)) { + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + usage = context.customUsage + } else { + var place + if (node.place.length === 2) { + place = node.place.toUpperCase() + } else { + place = node.place.toLowerCase() + } + env.loadCountry(browserslist.usage, place, browserslist.data) + usage = browserslist.usage[place] + } + } + var versions = Object.keys(usage).sort(function (a, b) { + return usage[b] - usage[a] + }) + var coveraged = 0 + var result = [] + var version + for (var i = 0; i < versions.length; i++) { + version = versions[i] + if (usage[version] === 0) break + coveraged += usage[version] + result.push(version) + if (coveraged >= coverage) break + } + return result +} + +var QUERIES = { + last_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+major\s+versions?$/i, + select: function (context, node) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = getMajorVersions(data.released, node.versions) + list = list.map(nameMapper(data.name)) + if (data.name === 'android') { + list = filterAndroid(list, node.versions, context) + } + return selected.concat(list) + }, []) + } + }, + last_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+versions?$/i, + select: function (context, node) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = data.released.slice(-node.versions) + list = list.map(nameMapper(data.name)) + if (data.name === 'android') { + list = filterAndroid(list, node.versions, context) + } + return selected.concat(list) + }, []) + } + }, + last_electron_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i, + select: function (context, node) { + var validVersions = getMajorVersions(Object.keys(e2c), node.versions) + return validVersions.map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + last_node_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i, + select: function (context, node) { + return getMajorVersions(browserslist.nodeVersions, node.versions).map( + function (version) { + return 'node ' + version + } + ) + } + }, + last_browser_major_versions: { + matches: ['versions', 'browser'], + regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var validVersions = getMajorVersions(data.released, node.versions) + var list = validVersions.map(nameMapper(data.name)) + if (data.name === 'android') { + list = filterAndroid(list, node.versions, context) + } + return list + } + }, + last_electron_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+electron\s+versions?$/i, + select: function (context, node) { + return Object.keys(e2c) + .slice(-node.versions) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + last_node_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+node\s+versions?$/i, + select: function (context, node) { + return browserslist.nodeVersions + .slice(-node.versions) + .map(function (version) { + return 'node ' + version + }) + } + }, + last_browser_versions: { + matches: ['versions', 'browser'], + regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var list = data.released.slice(-node.versions).map(nameMapper(data.name)) + if (data.name === 'android') { + list = filterAndroid(list, node.versions, context) + } + return list + } + }, + unreleased_versions: { + matches: [], + regexp: /^unreleased\s+versions$/i, + select: function (context) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = data.versions.filter(function (v) { + return data.released.indexOf(v) === -1 + }) + list = list.map(nameMapper(data.name)) + return selected.concat(list) + }, []) + } + }, + unreleased_electron_versions: { + matches: [], + regexp: /^unreleased\s+electron\s+versions?$/i, + select: function () { + return [] + } + }, + unreleased_browser_versions: { + matches: ['browser'], + regexp: /^unreleased\s+(\w+)\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + return data.versions + .filter(function (v) { + return data.released.indexOf(v) === -1 + }) + .map(nameMapper(data.name)) + } + }, + last_years: { + matches: ['years'], + regexp: /^last\s+(\d*.?\d+)\s+years?$/i, + select: function (context, node) { + return filterByYear(Date.now() - YEAR * node.years, context) + } + }, + since_y: { + matches: ['year'], + regexp: /^since (\d+)$/i, + select: sinceQuery + }, + since_y_m: { + matches: ['year', 'month'], + regexp: /^since (\d+)-(\d+)$/i, + select: sinceQuery + }, + since_y_m_d: { + matches: ['year', 'month', 'day'], + regexp: /^since (\d+)-(\d+)-(\d+)$/i, + select: sinceQuery + }, + since_covid: { + matches: [], + regexp: /^(since |post-)covid$/i, + select: function (context) { + return resolve(COVID_QUERY, context) + } + }, + popularity: { + matches: ['sign', 'popularity'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var usage = browserslist.usage.global + return Object.keys(usage).reduce(function (result, version) { + if (node.sign === '>') { + if (usage[version] > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (usage[version] < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (usage[version] <= popularity) { + result.push(version) + } + } else if (usage[version] >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_my_stats: { + matches: ['sign', 'popularity'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + var usage = context.customUsage + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_config_stats: { + matches: ['sign', 'popularity', 'config'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var stats = env.loadStat(context, node.config, browserslist.data) + if (stats) { + context.customUsage = {} + for (var browser in stats) { + fillUsage(context.customUsage, browser, stats[browser]) + } + } + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + var usage = context.customUsage + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_place: { + matches: ['sign', 'popularity', 'place'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var place = node.place + if (place.length === 2) { + place = place.toUpperCase() + } else { + place = place.toLowerCase() + } + env.loadCountry(browserslist.usage, place, browserslist.data) + var usage = browserslist.usage[place] + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + cover: { + matches: ['coverage'], + regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i, + select: coverQuery + }, + cover_in: { + matches: ['coverage', 'place'], + regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i, + select: coverQuery + }, + supports: { + matches: ['feature'], + regexp: /^supports\s+([\w-]+)$/, + select: function (context, node) { + env.loadFeature(browserslist.cache, node.feature) + var features = browserslist.cache[node.feature] + return Object.keys(features).reduce(function (result, version) { + var flags = features[version] + if (flags.indexOf('y') >= 0 || flags.indexOf('a') >= 0) { + result.push(version) + } + return result + }, []) + } + }, + electron_range: { + matches: ['from', 'to'], + regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + var fromToUse = normalizeElectron(node.from) + var toToUse = normalizeElectron(node.to) + var from = parseFloat(node.from) + var to = parseFloat(node.to) + if (!e2c[fromToUse]) { + throw new BrowserslistError('Unknown version ' + from + ' of electron') + } + if (!e2c[toToUse]) { + throw new BrowserslistError('Unknown version ' + to + ' of electron') + } + return Object.keys(e2c) + .filter(function (i) { + var parsed = parseFloat(i) + return parsed >= from && parsed <= to + }) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + node_range: { + matches: ['from', 'to'], + regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + return browserslist.nodeVersions + .filter(semverFilterLoose('>=', node.from)) + .filter(semverFilterLoose('<=', node.to)) + .map(function (v) { + return 'node ' + v + }) + } + }, + browser_range: { + matches: ['browser', 'from', 'to'], + regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var from = parseFloat(normalizeVersion(data, node.from) || node.from) + var to = parseFloat(normalizeVersion(data, node.to) || node.to) + function filter(v) { + var parsed = parseFloat(v) + return parsed >= from && parsed <= to + } + return data.released.filter(filter).map(nameMapper(data.name)) + } + }, + electron_ray: { + matches: ['sign', 'version'], + regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i, + select: function (context, node) { + var versionToUse = normalizeElectron(node.version) + return Object.keys(e2c) + .filter(generateFilter(node.sign, versionToUse)) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + node_ray: { + matches: ['sign', 'version'], + regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i, + select: function (context, node) { + return browserslist.nodeVersions + .filter(generateSemverFilter(node.sign, node.version)) + .map(function (v) { + return 'node ' + v + }) + } + }, + browser_ray: { + matches: ['browser', 'sign', 'version'], + regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/, + select: function (context, node) { + var version = node.version + var data = checkName(node.browser, context) + var alias = browserslist.versionAliases[data.name][version] + if (alias) version = alias + return data.released + .filter(generateFilter(node.sign, version)) + .map(function (v) { + return data.name + ' ' + v + }) + } + }, + firefox_esr: { + matches: [], + regexp: /^(firefox|ff|fx)\s+esr$/i, + select: function () { + return ['firefox 91'] + } + }, + opera_mini_all: { + matches: [], + regexp: /(operamini|op_mini)\s+all/i, + select: function () { + return ['op_mini all'] + } + }, + electron_version: { + matches: ['version'], + regexp: /^electron\s+([\d.]+)$/i, + select: function (context, node) { + var versionToUse = normalizeElectron(node.version) + var chrome = e2c[versionToUse] + if (!chrome) { + throw new BrowserslistError( + 'Unknown version ' + node.version + ' of electron' + ) + } + return ['chrome ' + chrome] + } + }, + node_major_version: { + matches: ['version'], + regexp: /^node\s+(\d+)$/i, + select: nodeQuery + }, + node_minor_version: { + matches: ['version'], + regexp: /^node\s+(\d+\.\d+)$/i, + select: nodeQuery + }, + node_patch_version: { + matches: ['version'], + regexp: /^node\s+(\d+\.\d+\.\d+)$/i, + select: nodeQuery + }, + current_node: { + matches: [], + regexp: /^current\s+node$/i, + select: function (context) { + return [env.currentNode(resolve, context)] + } + }, + maintained_node: { + matches: [], + regexp: /^maintained\s+node\s+versions$/i, + select: function (context) { + var now = Date.now() + var queries = Object.keys(jsEOL) + .filter(function (key) { + return ( + now < Date.parse(jsEOL[key].end) && + now > Date.parse(jsEOL[key].start) && + isEolReleased(key) + ) + }) + .map(function (key) { + return 'node ' + key.slice(1) + }) + return resolve(queries, context) + } + }, + phantomjs_1_9: { + matches: [], + regexp: /^phantomjs\s+1.9$/i, + select: function () { + return ['safari 5'] + } + }, + phantomjs_2_1: { + matches: [], + regexp: /^phantomjs\s+2.1$/i, + select: function () { + return ['safari 6'] + } + }, + browser_version: { + matches: ['browser', 'version'], + regexp: /^(\w+)\s+(tp|[\d.]+)$/i, + select: function (context, node) { + var version = node.version + if (/^tp$/i.test(version)) version = 'TP' + var data = checkName(node.browser, context) + var alias = normalizeVersion(data, version) + if (alias) { + version = alias + } else { + if (version.indexOf('.') === -1) { + alias = version + '.0' + } else { + alias = version.replace(/\.0$/, '') + } + alias = normalizeVersion(data, alias) + if (alias) { + version = alias + } else if (context.ignoreUnknownVersions) { + return [] + } else { + throw new BrowserslistError( + 'Unknown version ' + version + ' of ' + node.browser + ) + } + } + return [data.name + ' ' + version] + } + }, + browserslist_config: { + matches: [], + regexp: /^browserslist config$/i, + select: function (context) { + return browserslist(undefined, context) + } + }, + extends: { + matches: ['config'], + regexp: /^extends (.+)$/i, + select: function (context, node) { + return resolve(env.loadQueries(context, node.config), context) + } + }, + defaults: { + matches: [], + regexp: /^defaults$/i, + select: function (context) { + return resolve(browserslist.defaults, context) + } + }, + dead: { + matches: [], + regexp: /^dead$/i, + select: function (context) { + var dead = [ + 'Baidu >= 0', + 'ie <= 11', + 'ie_mob <= 11', + 'bb <= 10', + 'op_mob <= 12.1', + 'samsung 4' + ] + return resolve(dead, context) + } + }, + unknown: { + matches: [], + regexp: /^(\w+)$/i, + select: function (context, node) { + if (byName(node.query, context)) { + throw new BrowserslistError( + 'Specify versions in Browserslist query for browser ' + node.query + ) + } else { + throw unknownQuery(node.query) + } + } + } +} + +// Get and convert Can I Use data + +;(function () { + for (var name in agents) { + var browser = agents[name] + browserslist.data[name] = { + name: name, + versions: normalize(agents[name].versions), + released: normalize(agents[name].versions.slice(0, -3)), + releaseDate: agents[name].release_date + } + fillUsage(browserslist.usage.global, name, browser.usage_global) + + browserslist.versionAliases[name] = {} + for (var i = 0; i < browser.versions.length; i++) { + var full = browser.versions[i] + if (!full) continue + + if (full.indexOf('-') !== -1) { + var interval = full.split('-') + for (var j = 0; j < interval.length; j++) { + browserslist.versionAliases[name][interval[j]] = full + } + } + } + } + + browserslist.versionAliases.op_mob['59'] = '58' + + browserslist.nodeVersions = jsReleases.map(function (release) { + return release.version + }) +})() + +module.exports = browserslist diff --git a/logo.svg b/logo.svg index ec4afbc5..1d8f7d83 100644 --- a/logo.svg +++ b/logo.svg @@ -1 +1 @@ -Browserslist logo \ No newline at end of file +Browserslist logo diff --git a/node.js b/node.js new file mode 100644 index 00000000..d1d2db44 --- /dev/null +++ b/node.js @@ -0,0 +1,398 @@ +var feature = require('caniuse-lite/dist/unpacker/feature').default +var region = require('caniuse-lite/dist/unpacker/region').default +var path = require('path') +var fs = require('fs') + +var BrowserslistError = require('./error') + +var IS_SECTION = /^\s*\[(.+)]\s*$/ +var CONFIG_PATTERN = /^browserslist-config-/ +var SCOPED_CONFIG__PATTERN = /@[^/]+\/browserslist-config(-|$|\/)/ +var TIME_TO_UPDATE_CANIUSE = 6 * 30 * 24 * 60 * 60 * 1000 +var FORMAT = + 'Browserslist config should be a string or an array ' + + 'of strings with browser queries' + +var dataTimeChecked = false +var filenessCache = {} +var configCache = {} +function checkExtend(name) { + var use = ' Use `dangerousExtend` option to disable.' + if (!CONFIG_PATTERN.test(name) && !SCOPED_CONFIG__PATTERN.test(name)) { + throw new BrowserslistError( + 'Browserslist config needs `browserslist-config-` prefix. ' + use + ) + } + if (name.replace(/^@[^/]+\//, '').indexOf('.') !== -1) { + throw new BrowserslistError( + '`.` not allowed in Browserslist config name. ' + use + ) + } + if (name.indexOf('node_modules') !== -1) { + throw new BrowserslistError( + '`node_modules` not allowed in Browserslist config.' + use + ) + } +} + +function isFile(file) { + if (file in filenessCache) { + return filenessCache[file] + } + var result = fs.existsSync(file) && fs.statSync(file).isFile() + if (!process.env.BROWSERSLIST_DISABLE_CACHE) { + filenessCache[file] = result + } + return result +} + +function eachParent(file, callback) { + var dir = isFile(file) ? path.dirname(file) : file + var loc = path.resolve(dir) + do { + var result = callback(loc) + if (typeof result !== 'undefined') return result + } while (loc !== (loc = path.dirname(loc))) + return undefined +} + +function check(section) { + if (Array.isArray(section)) { + for (var i = 0; i < section.length; i++) { + if (typeof section[i] !== 'string') { + throw new BrowserslistError(FORMAT) + } + } + } else if (typeof section !== 'string') { + throw new BrowserslistError(FORMAT) + } +} + +function pickEnv(config, opts) { + if (typeof config !== 'object') return config + + var name + if (typeof opts.env === 'string') { + name = opts.env + } else if (process.env.BROWSERSLIST_ENV) { + name = process.env.BROWSERSLIST_ENV + } else if (process.env.NODE_ENV) { + name = process.env.NODE_ENV + } else { + name = 'production' + } + + if (opts.throwOnMissing) { + if (name && name !== 'defaults' && !config[name]) { + throw new BrowserslistError( + 'Missing config for Browserslist environment `' + name + '`' + ) + } + } + + return config[name] || config.defaults +} + +function parsePackage(file) { + var config = JSON.parse( + fs + .readFileSync(file) + .toString() + .replace(/^\uFEFF/m, '') + ) + if (config.browserlist && !config.browserslist) { + throw new BrowserslistError( + '`browserlist` key instead of `browserslist` in ' + file + ) + } + var list = config.browserslist + if (Array.isArray(list) || typeof list === 'string') { + list = { defaults: list } + } + for (var i in list) { + check(list[i]) + } + + return list +} + +function latestReleaseTime(agents) { + var latest = 0 + for (var name in agents) { + var dates = agents[name].releaseDate || {} + for (var key in dates) { + if (latest < dates[key]) { + latest = dates[key] + } + } + } + return latest * 1000 +} + +function normalizeStats(data, stats) { + if (!data) { + data = {} + } + if (stats && 'dataByBrowser' in stats) { + stats = stats.dataByBrowser + } + + if (typeof stats !== 'object') return undefined + + var normalized = {} + for (var i in stats) { + var versions = Object.keys(stats[i]) + if (versions.length === 1 && data[i] && data[i].versions.length === 1) { + var normal = data[i].versions[0] + normalized[i] = {} + normalized[i][normal] = stats[i][versions[0]] + } else { + normalized[i] = stats[i] + } + } + + return normalized +} + +function normalizeUsageData(usageData, data) { + for (var browser in usageData) { + var browserUsage = usageData[browser] + // eslint-disable-next-line max-len + // https://github.com/browserslist/browserslist/issues/431#issuecomment-565230615 + // caniuse-db returns { 0: "percentage" } for `and_*` regional stats + if ('0' in browserUsage) { + var versions = data[browser].versions + browserUsage[versions[versions.length - 1]] = browserUsage[0] + delete browserUsage[0] + } + } +} + +module.exports = { + loadQueries: function loadQueries(ctx, name) { + if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) { + checkExtend(name) + } + var queries = require(require.resolve(name, { paths: ['.', ctx.path] })) + if (queries) { + if (Array.isArray(queries)) { + return queries + } else if (typeof queries === 'object') { + if (!queries.defaults) queries.defaults = [] + return pickEnv(queries, ctx, name) + } + } + throw new BrowserslistError( + '`' + + name + + '` config exports not an array of queries' + + ' or an object of envs' + ) + }, + + loadStat: function loadStat(ctx, name, data) { + if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) { + checkExtend(name) + } + var stats = require(require.resolve( + path.join(name, 'browserslist-stats.json'), + { paths: ['.'] } + )) + return normalizeStats(data, stats) + }, + + getStat: function getStat(opts, data) { + var stats + if (opts.stats) { + stats = opts.stats + } else if (process.env.BROWSERSLIST_STATS) { + stats = process.env.BROWSERSLIST_STATS + } else if (opts.path && path.resolve && fs.existsSync) { + stats = eachParent(opts.path, function (dir) { + var file = path.join(dir, 'browserslist-stats.json') + return isFile(file) ? file : undefined + }) + } + if (typeof stats === 'string') { + try { + stats = JSON.parse(fs.readFileSync(stats)) + } catch (e) { + throw new BrowserslistError("Can't read " + stats) + } + } + return normalizeStats(data, stats) + }, + + loadConfig: function loadConfig(opts) { + if (process.env.BROWSERSLIST) { + return process.env.BROWSERSLIST + } else if (opts.config || process.env.BROWSERSLIST_CONFIG) { + var file = opts.config || process.env.BROWSERSLIST_CONFIG + if (path.basename(file) === 'package.json') { + return pickEnv(parsePackage(file), opts) + } else { + return pickEnv(module.exports.readConfig(file), opts) + } + } else if (opts.path) { + return pickEnv(module.exports.findConfig(opts.path), opts) + } else { + return undefined + } + }, + + loadCountry: function loadCountry(usage, country, data) { + var code = country.replace(/[^\w-]/g, '') + if (!usage[code]) { + var compressed = require('caniuse-lite/data/regions/' + code + '.js') + var usageData = region(compressed) + normalizeUsageData(usageData, data) + usage[country] = {} + for (var i in usageData) { + for (var j in usageData[i]) { + usage[country][i + ' ' + j] = usageData[i][j] + } + } + } + }, + + loadFeature: function loadFeature(features, name) { + name = name.replace(/[^\w-]/g, '') + if (features[name]) return + + var compressed = require('caniuse-lite/data/features/' + name + '.js') + var stats = feature(compressed).stats + features[name] = {} + for (var i in stats) { + for (var j in stats[i]) { + features[name][i + ' ' + j] = stats[i][j] + } + } + }, + + parseConfig: function parseConfig(string) { + var result = { defaults: [] } + var sections = ['defaults'] + + string + .toString() + .replace(/#[^\n]*/g, '') + .split(/\n|,/) + .map(function (line) { + return line.trim() + }) + .filter(function (line) { + return line !== '' + }) + .forEach(function (line) { + if (IS_SECTION.test(line)) { + sections = line.match(IS_SECTION)[1].trim().split(' ') + sections.forEach(function (section) { + if (result[section]) { + throw new BrowserslistError( + 'Duplicate section ' + section + ' in Browserslist config' + ) + } + result[section] = [] + }) + } else { + sections.forEach(function (section) { + result[section].push(line) + }) + } + }) + + return result + }, + + readConfig: function readConfig(file) { + if (!isFile(file)) { + throw new BrowserslistError("Can't read " + file + ' config') + } + return module.exports.parseConfig(fs.readFileSync(file)) + }, + + findConfig: function findConfig(from) { + from = path.resolve(from) + + var passed = [] + var resolved = eachParent(from, function (dir) { + if (dir in configCache) { + return configCache[dir] + } + + passed.push(dir) + + var config = path.join(dir, 'browserslist') + var pkg = path.join(dir, 'package.json') + var rc = path.join(dir, '.browserslistrc') + + var pkgBrowserslist + if (isFile(pkg)) { + try { + pkgBrowserslist = parsePackage(pkg) + } catch (e) { + if (e.name === 'BrowserslistError') throw e + console.warn( + '[Browserslist] Could not parse ' + pkg + '. Ignoring it.' + ) + } + } + + if (isFile(config) && pkgBrowserslist) { + throw new BrowserslistError( + dir + ' contains both browserslist and package.json with browsers' + ) + } else if (isFile(rc) && pkgBrowserslist) { + throw new BrowserslistError( + dir + ' contains both .browserslistrc and package.json with browsers' + ) + } else if (isFile(config) && isFile(rc)) { + throw new BrowserslistError( + dir + ' contains both .browserslistrc and browserslist' + ) + } else if (isFile(config)) { + return module.exports.readConfig(config) + } else if (isFile(rc)) { + return module.exports.readConfig(rc) + } else { + return pkgBrowserslist + } + }) + if (!process.env.BROWSERSLIST_DISABLE_CACHE) { + passed.forEach(function (dir) { + configCache[dir] = resolved + }) + } + return resolved + }, + + clearCaches: function clearCaches() { + dataTimeChecked = false + filenessCache = {} + configCache = {} + + this.cache = {} + }, + + oldDataWarning: function oldDataWarning(agentsObj) { + if (dataTimeChecked) return + dataTimeChecked = true + if (process.env.BROWSERSLIST_IGNORE_OLD_DATA) return + + var latest = latestReleaseTime(agentsObj) + var halfYearAgo = Date.now() - TIME_TO_UPDATE_CANIUSE + + if (latest !== 0 && latest < halfYearAgo) { + console.info( + 'Browserslist: caniuse-lite is outdated. Please run:\n' + + ' npx update-browserslist-db@latest\n' + + ' Why you should do it regularly: ' + + 'https://github.com/browserslist/update-db#readme' + ) + } + }, + + currentNode: function currentNode() { + return 'node ' + process.versions.node + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..8c993821 --- /dev/null +++ b/package.json @@ -0,0 +1,167 @@ +{ + "name": "browserslist", + "version": "4.14.7", + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + "author": "Andrey Sitnik ", + "license": "MIT", + "repository": "browserslist/browserslist", + "scripts": { + "test": "jest --coverage && eslint . && check-dts && size-limit && yaspeller *.md" + }, + "dependencies": { + "caniuse-lite": "^1.0.30001157", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.591", + "escalade": "^3.1.1", + "node-releases": "^1.1.66" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "bin": { + "browserslist": "cli.js" + }, + "types": "./index.d.ts", + "devDependencies": { + "@logux/eslint-config": "^35.0.4", + "@logux/sharec-config": "^0.5.7", + "@size-limit/preset-small-lib": "^4.7.0", + "@types/cross-spawn": "^6.0.2", + "@types/fs-extra": "^9.0.1", + "@types/jest": "^26.0.14", + "check-dts": "^0.4.1", + "clean-publish": "^1.1.8", + "cross-spawn": "^7.0.3", + "eslint": "^6.8.0", + "eslint-config-standard": "^14.1.1", + "eslint-plugin-es5": "^1.5.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jest": "^23.18.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prefer-let": "^1.1.0", + "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-security": "^1.4.0", + "eslint-plugin-standard": "^4.0.2", + "eslint-plugin-unicorn": "^16.1.1", + "fs-extra": "^8.1.0", + "husky": "^4.3.0", + "jest": "^25.5.4", + "lint-staged": "^10.5.1", + "nanoid": "^3.1.16", + "size-limit": "^4.7.0", + "ts-jest": "^25.5.1", + "typescript": "^3.9.4", + "yaspeller": "^7.0.0" + }, + "browser": { + "./node.js": "./browser.js", + "path": false + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "jest": { + "preset": "ts-jest", + "testEnvironment": "node", + "coverageThreshold": { + "global": { + "statements": 100 + } + }, + "modulePathIgnorePatterns": [ + "/test/fixtures" + ] + }, + "size-limit": [ + { + "path": "index.js", + "limit": "13 KB" + } + ], + "lint-staged": { + "*.md": "yaspeller", + "*.js": "eslint" + }, + "eslintConfig": { + "extends": "@logux/eslint-config/browser", + "rules": { + "security/detect-unsafe-regex": "off", + "global-require": "off" + } + }, + "eslintIgnore": [ + "test/fixtures" + ], + "yaspeller": { + "lang": "en", + "ignoreCapitalization": true, + "ignoreText": [ + " \\(by [^)]+\\)." + ], + "dictionary": [ + "albiventris", + "algirus", + "amurensis", + "Atelerix", + "Autoprefixer", + "Baidu", + "Browserify", + "Browserslist", + "Browserslist’s", + "BrowserStack", + "CLI", + "compat", + "configs", + "Configs", + "DynJS", + "env", + "Erinaceus", + "eslint", + "ESR", + "frontalis", + "GitHub", + "iOS", + "JS", + "js", + "JSDoc", + "jspm", + "KaiOS", + "npm", + "postcss", + "QQ", + "RegExp", + "sclateri", + "stylelint", + "symlink", + "Tidelift", + "TP", + "UC", + "unreleased", + "useragent", + "Versioning", + "webpack", + "WebView", + "browserslist", + "PhantomJS", + "maintainers", + "ES", + "deduplication", + "pnpm" + ] + }, + "sharec": { + "config": "@logux/sharec-config", + "version": "0.5.7" + } +} diff --git a/parse.js b/parse.js new file mode 100644 index 00000000..56b534ab --- /dev/null +++ b/parse.js @@ -0,0 +1,78 @@ +var AND_REGEXP = /^\s+and\s+(.*)/i +var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i + +function flatten(array) { + if (!Array.isArray(array)) return [array] + return array.reduce(function (a, b) { + return a.concat(flatten(b)) + }, []) +} + +function find(string, predicate) { + for (var n = 1, max = string.length; n <= max; n++) { + var parsed = string.substr(-n, n) + if (predicate(parsed, n, max)) { + return string.slice(0, -n) + } + } + return '' +} + +function matchQuery(all, query) { + var node = { query: query } + if (query.indexOf('not ') === 0) { + node.not = true + query = query.slice(4) + } + + for (var name in all) { + var type = all[name] + var match = query.match(type.regexp) + if (match) { + node.type = name + for (var i = 0; i < type.matches.length; i++) { + node[type.matches[i]] = match[i + 1] + } + return node + } + } + + node.type = 'unknown' + return node +} + +function matchBlock(all, string, qs) { + var node + return find(string, function (parsed, n, max) { + if (AND_REGEXP.test(parsed)) { + node = matchQuery(all, parsed.match(AND_REGEXP)[1]) + node.compose = 'and' + qs.unshift(node) + return true + } else if (OR_REGEXP.test(parsed)) { + node = matchQuery(all, parsed.match(OR_REGEXP)[1]) + node.compose = 'or' + qs.unshift(node) + return true + } else if (n === max) { + node = matchQuery(all, parsed.trim()) + node.compose = 'or' + qs.unshift(node) + return true + } + return false + }) +} + +module.exports = function parse(all, queries) { + if (!Array.isArray(queries)) queries = [queries] + return flatten( + queries.map(function (block) { + var qs = [] + do { + block = matchBlock(all, block, qs) + } while (block) + return qs + }) + ) +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..45fcb3e3 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,2045 @@ +lockfileVersion: 5.4 + +specifiers: + '@logux/eslint-config': ^47.2.0 + '@size-limit/preset-small-lib': ^7.0.8 + c8: ^7.11.3 + caniuse-lite: ^1.0.30001359 + clean-publish: ^4.0.1 + cross-spawn: ^7.0.3 + electron-to-chromium: ^1.4.172 + eslint: ^8.18.0 + eslint-config-standard: ^17.0.0 + eslint-plugin-es5: ^1.5.0 + eslint-plugin-import: ^2.26.0 + eslint-plugin-n: ^15.2.3 + eslint-plugin-prefer-let: ^3.0.1 + eslint-plugin-promise: ^6.0.0 + fs-extra: ^10.1.0 + nanospy: ^0.5.0 + node-releases: ^2.0.5 + size-limit: ^7.0.8 + update-browserslist-db: ^1.0.4 + uvu: ^0.5.4 + +dependencies: + caniuse-lite: 1.0.30001359 + electron-to-chromium: 1.4.172 + node-releases: 2.0.5 + update-browserslist-db: 1.0.4 + +devDependencies: + '@logux/eslint-config': 47.2.0_jtapuewgguff3gy4nccmfac7k4 + '@size-limit/preset-small-lib': 7.0.8_size-limit@7.0.8 + c8: 7.11.3 + clean-publish: 4.0.1 + cross-spawn: 7.0.3 + eslint: 8.18.0 + eslint-config-standard: 17.0.0_73zqogbxxwb3ijehtqwxiag47y + eslint-plugin-es5: 1.5.0_eslint@8.18.0 + eslint-plugin-import: 2.26.0_eslint@8.18.0 + eslint-plugin-n: 15.2.3_eslint@8.18.0 + eslint-plugin-prefer-let: 3.0.1 + eslint-plugin-promise: 6.0.0_eslint@8.18.0 + fs-extra: 10.1.0 + nanospy: 0.5.0 + size-limit: 7.0.8 + uvu: 0.5.4 + +packages: + + /@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@eslint/eslintrc/1.3.0: + resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.3.2 + globals: 13.15.0 + 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.4 + 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.8: + resolution: {integrity: sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/trace-mapping/0.3.14: + resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} + dependencies: + '@jridgewell/resolve-uri': 3.0.8 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@logux/eslint-config/47.2.0_jtapuewgguff3gy4nccmfac7k4: + resolution: {integrity: sha512-nNPPkw+kfA2bLyhkxaqGzd3MWSN4S2dUf69xo2syskBd5ZfFk2WT9ssO+yDDUd26yNgN3AmweKztEwyUim9wOQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + eslint: ^8.14.0 + eslint-config-standard: ^17.0.0 + eslint-plugin-import: ^2.26.0 + eslint-plugin-n: ^15.1.0 + eslint-plugin-prefer-let: ^3.0.1 + eslint-plugin-promise: ^6.0.0 + dependencies: + eslint: 8.18.0 + eslint-config-standard: 17.0.0_73zqogbxxwb3ijehtqwxiag47y + eslint-plugin-import: 2.26.0_eslint@8.18.0 + eslint-plugin-n: 15.2.3_eslint@8.18.0 + eslint-plugin-prefer-let: 3.0.1 + eslint-plugin-promise: 6.0.0_eslint@8.18.0 + 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 + + /@size-limit/esbuild/7.0.8_size-limit@7.0.8: + resolution: {integrity: sha512-AzCrxJJThDvHrBNoolebYVgXu46c6HuS3fOxoXr3V0YWNM0qz81z5F3j7RruzboZnls8ZgME4WrH6GM5rB9gtA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + peerDependencies: + size-limit: 7.0.8 + dependencies: + esbuild: 0.14.47 + nanoid: 3.3.4 + size-limit: 7.0.8 + dev: true + + /@size-limit/file/7.0.8_size-limit@7.0.8: + resolution: {integrity: sha512-1KeFQuMXIXAH/iELqIX7x+YNYDFvzIvmxcp9PrdwEoSNL0dXdaDIo9WE/yz8xvOmUcKaLfqbWkL75DM0k91WHQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + peerDependencies: + size-limit: 7.0.8 + dependencies: + semver: 7.3.5 + size-limit: 7.0.8 + dev: true + + /@size-limit/preset-small-lib/7.0.8_size-limit@7.0.8: + resolution: {integrity: sha512-CT8nIYA/c2CSD+X4rAUgwqYccQMahJ6rBnaZxvi3YKFdkXIbuGNXHNjHsYaFksgwG9P4UjG/unyO5L73f3zQBw==} + peerDependencies: + size-limit: 7.0.8 + dependencies: + '@size-limit/esbuild': 7.0.8_size-limit@7.0.8 + '@size-limit/file': 7.0.8_size-limit@7.0.8 + size-limit: 7.0.8 + dev: true + + /@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/json5/0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /acorn-jsx/5.3.2_acorn@8.7.1: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.7.1 + dev: true + + /acorn/8.7.1: + resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} + engines: {node: '>=0.4.0'} + hasBin: true + 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 + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + 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 + + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /array-includes/3.1.5: + resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + get-intrinsic: 1.1.2 + is-string: 1.0.7 + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.flat/1.3.0: + resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + es-shim-unscopables: 1.0.0 + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + 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 + + /builtins/5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + dependencies: + semver: 7.3.7 + dev: true + + /bytes-iec/3.1.1: + resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} + engines: {node: '>= 0.8'} + dev: true + + /c8/7.11.3: + resolution: {integrity: sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==} + 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: 9.0.1 + yargs: 16.2.0 + yargs-parser: 20.2.9 + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.2 + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /caniuse-lite/1.0.30001359: + resolution: {integrity: sha512-Xln/BAsPzEuiVLgJ2/45IaqD9jShtk3Y33anKb4+yLwQzws3+v6odKfpgES/cDEaZMLzSChpIGdbOYtH9MyuHw==} + dev: false + + /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 + + /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 + + /ci-job-number/1.2.2: + resolution: {integrity: sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==} + dev: true + + /clean-publish/4.0.1: + resolution: {integrity: sha512-6v0bh5kQD5FDlxBgXDVNNc6KmAB7iIP/GHD91q9xsGVZT5XB9Y8TNqB7dL5u9PTZlBeLpBw+A1AseRlEEJLSWA==} + engines: {node: '>= 16.0.0'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.2.11 + lilconfig: 2.0.5 + micromatch: 4.0.5 + 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 + + /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.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /convert-source-map/1.8.0: + resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} + dependencies: + safe-buffer: 5.1.2 + 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 + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /dequal/2.0.2: + resolution: {integrity: sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==} + engines: {node: '>=6'} + dev: true + + /diff/5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + 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 + + /electron-to-chromium/1.4.172: + resolution: {integrity: sha512-yDoFfTJnqBAB6hSiPvzmsBJSrjOXJtHSJoqJdI/zSIh7DYupYnIOHt/bbPw/WE31BJjNTybDdNAs21gCMnTh0Q==} + dev: false + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /es-abstract/1.20.1: + resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.1.2 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-property-descriptors: 1.0.0 + 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.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.2 + object-keys: 1.1.1 + object.assign: 4.1.2 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 + dev: true + + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + 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 + + /esbuild-android-64/0.14.47: + resolution: {integrity: sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.14.47: + resolution: {integrity: sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.14.47: + resolution: {integrity: sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.14.47: + resolution: {integrity: sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.14.47: + resolution: {integrity: sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.14.47: + resolution: {integrity: sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.14.47: + resolution: {integrity: sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.14.47: + resolution: {integrity: sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.14.47: + resolution: {integrity: sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.14.47: + resolution: {integrity: sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.14.47: + resolution: {integrity: sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.14.47: + resolution: {integrity: sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64/0.14.47: + resolution: {integrity: sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.14.47: + resolution: {integrity: sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.14.47: + resolution: {integrity: sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.14.47: + resolution: {integrity: sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.14.47: + resolution: {integrity: sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32/0.14.47: + resolution: {integrity: sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.14.47: + resolution: {integrity: sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.14.47: + resolution: {integrity: sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild/0.14.47: + resolution: {integrity: sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-64: 0.14.47 + esbuild-android-arm64: 0.14.47 + esbuild-darwin-64: 0.14.47 + esbuild-darwin-arm64: 0.14.47 + esbuild-freebsd-64: 0.14.47 + esbuild-freebsd-arm64: 0.14.47 + esbuild-linux-32: 0.14.47 + esbuild-linux-64: 0.14.47 + esbuild-linux-arm: 0.14.47 + esbuild-linux-arm64: 0.14.47 + esbuild-linux-mips64le: 0.14.47 + esbuild-linux-ppc64le: 0.14.47 + esbuild-linux-riscv64: 0.14.47 + esbuild-linux-s390x: 0.14.47 + esbuild-netbsd-64: 0.14.47 + esbuild-openbsd-64: 0.14.47 + esbuild-sunos-64: 0.14.47 + esbuild-windows-32: 0.14.47 + esbuild-windows-64: 0.14.47 + esbuild-windows-arm64: 0.14.47 + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-config-standard/17.0.0_73zqogbxxwb3ijehtqwxiag47y: + resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} + peerDependencies: + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: ^15.0.0 + eslint-plugin-promise: ^6.0.0 + dependencies: + eslint: 8.18.0 + eslint-plugin-import: 2.26.0_eslint@8.18.0 + eslint-plugin-n: 15.2.3_eslint@8.18.0 + eslint-plugin-promise: 6.0.0_eslint@8.18.0 + dev: true + + /eslint-import-resolver-node/0.3.6: + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} + dependencies: + debug: 3.2.7 + resolve: 1.22.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils/2.7.3_ulu2225r2ychl26a37c6o2rfje: + resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + debug: 3.2.7 + eslint-import-resolver-node: 0.3.6 + find-up: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-es/4.1.0_eslint@8.18.0: + resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.18.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + dev: true + + /eslint-plugin-es5/1.5.0_eslint@8.18.0: + resolution: {integrity: sha512-Qxmfo7v2B7SGAEURJo0dpBweFf+JU15kSyALfiB2rXWcBuJ96r6X9kFHXFnhdopPHCaHjoQs1xQPUJVbGMb1AA==} + peerDependencies: + eslint: '>= 3.0.0' + dependencies: + eslint: 8.18.0 + dev: true + + /eslint-plugin-import/2.26.0_eslint@8.18.0: + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + array-includes: 3.1.5 + array.prototype.flat: 1.3.0 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.18.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3_ulu2225r2ychl26a37c6o2rfje + has: 1.0.3 + is-core-module: 2.9.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.5 + resolve: 1.22.1 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-n/15.2.3_eslint@8.18.0: + resolution: {integrity: sha512-H+KC7U5R+3IWTeRnACm/4wlqLvS1Q7M6t7BGhn89qXDkZan8HTAEv3ouIONA0ifDwc2YzPFmyPzHuNLddNK4jw==} + engines: {node: '>=12.22.0'} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + builtins: 5.0.1 + eslint: 8.18.0 + eslint-plugin-es: 4.1.0_eslint@8.18.0 + eslint-utils: 3.0.0_eslint@8.18.0 + ignore: 5.2.0 + is-core-module: 2.9.0 + minimatch: 3.1.2 + resolve: 1.22.1 + semver: 7.3.7 + dev: true + + /eslint-plugin-prefer-let/3.0.1: + resolution: {integrity: sha512-vbznkkBSXB63d4o1o0NIm5C2ey3V5wKr/25dAvPdydQXdowAcnr69cbLgxd2YAG81IV5eddCO55Lp6gL7wSE4w==} + engines: {node: '>=0.10.0'} + dependencies: + requireindex: 1.2.0 + dev: true + + /eslint-plugin-promise/6.0.0_eslint@8.18.0: + resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.18.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.18.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.18.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.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.18.0: + resolution: {integrity: sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.3.0 + '@humanwhocodes/config-array': 0.9.5 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.18.0 + eslint-visitor-keys: 3.3.0 + espree: 9.3.2 + 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.15.0 + 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 + + /espree/9.3.2: + resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.7.1 + acorn-jsx: 5.3.2_acorn@8.7.1 + eslint-visitor-keys: 3.3.0 + 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/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + 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.5 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq/1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + dependencies: + reusify: 1.0.4 + 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-up/2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + dependencies: + locate-path: 2.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 + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.6 + rimraf: 3.0.2 + dev: true + + /flatted/3.2.6: + resolution: {integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==} + 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 + + /fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + 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 + + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + functions-have-names: 1.2.3 + dev: true + + /functional-red-black-tree/1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true + + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + 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.2: + resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + 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.2 + 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/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + 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 + + /globals/13.15.0: + resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==} + 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 + + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true + + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.2 + 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/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /html-escaper/2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /ignore/5.2.0: + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} + engines: {node: '>= 4'} + 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 + + /imurmurhash/0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /internal-slot/1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.2 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + 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-callable/1.2.4: + resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module/2.9.0: + resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} + 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-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + 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-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + 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-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-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + 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-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + 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 + + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5/1.0.1: + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + hasBin: true + dependencies: + minimist: 1.2.6 + dev: true + + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /kleur/4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + 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 + + /lilconfig/2.0.5: + resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} + engines: {node: '>=10'} + dev: true + + /locate-path/2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.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 + + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + 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 + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + dev: true + + /mkdirp/1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mri/1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + 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 + + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /nanospinner/1.1.0: + resolution: {integrity: sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==} + dependencies: + picocolors: 1.0.0 + dev: true + + /nanospy/0.5.0: + resolution: {integrity: sha512-QxH93ntkjRiSP+gJrBLcgOO3neU6pGhUKjPAJ7rAFag/+tJ+/0lw6dXic+iXUQ/3Cxk4Dp/FwLnf57xnQsjecQ==} + engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /node-releases/2.0.5: + resolution: {integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==} + dev: false + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /object-inspect/1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + 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.4 + 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.4 + es-abstract: 1.20.1 + dev: true + + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + 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 + + /p-limit/1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.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-locate/2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + dependencies: + p-limit: 1.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-try/1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + 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 + + /path-exists/3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + 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/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: true + + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /require-directory/2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /requireindex/1.2.0: + resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} + engines: {node: '>=0.10.5'} + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.9.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + 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/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /sade/1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: true + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + 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 + + /semver/7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + 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 + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.2 + object-inspect: 1.12.2 + dev: true + + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /size-limit/7.0.8: + resolution: {integrity: sha512-3h76c9E0e/nNhYLSR7IBI/bSoXICeo7EYkYjlyVqNIsu7KvN/PQmMbIXeyd2QKIF8iZKhaiZQoXLkGWbyPDtvQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + hasBin: true + dependencies: + bytes-iec: 3.1.1 + chokidar: 3.5.3 + ci-job-number: 1.2.2 + globby: 11.1.0 + lilconfig: 2.0.5 + mkdirp: 1.0.4 + nanospinner: 1.1.0 + picocolors: 1.0.0 + dev: true + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + 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.prototype.trimend/1.0.5: + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /string.prototype.trimstart/1.0.5: + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.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-bom/3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + 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-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + 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.3 + minimatch: 3.1.2 + dev: true + + /text-table/0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + 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 + + /tsconfig-paths/3.14.1: + resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.1 + minimist: 1.2.6 + strip-bom: 3.0.0 + 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-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /update-browserslist-db/1.0.4: + resolution: {integrity: sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + escalade: 3.1.1 + picocolors: 1.0.0 + dev: false + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + dev: true + + /uvu/0.5.4: + resolution: {integrity: sha512-x1CyUjcP9VKaNPhjeB3FIc/jqgLsz2Q9LFhRzUTu/jnaaHILEGNuE0XckQonl8ISLcwyk9I2EZvWlYsQnwxqvQ==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.2 + diff: 5.1.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: true + + /v8-compile-cache/2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + + /v8-to-istanbul/9.0.1: + resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.14 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.8.0 + 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.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + 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: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /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 + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + 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 + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/test/and.test.ts b/test/and.test.ts new file mode 100644 index 00000000..0a9acf3a --- /dev/null +++ b/test/and.test.ts @@ -0,0 +1,44 @@ +import { join } from 'path' + +import browserslist from '../' + +let PACKAGE = join(__dirname, 'fixtures', 'package2') + +it('query composition with AND operator', () => { + expect(browserslist('ie >= 6, ie <= 7')).toEqual([ + 'ie 11', + 'ie 10', + 'ie 9', + 'ie 8', + 'ie 7', + 'ie 6', + 'ie 5.5' + ]) + + expect(browserslist('ie >= 6 and ie <= 7')).toEqual([ + 'ie 7', + 'ie 6' + ]) + + expect(browserslist('ie < 11 and not ie 7')).toEqual([ + 'ie 10', + 'ie 9', + 'ie 8', + 'ie 6', + 'ie 5.5' + ]) +}) + +it('correctly works with not and one-version browsers as AND query', () => { + expect(browserslist('last 1 Baidu version and not <2% in AT')).toHaveLength(0) +}) + +it('reads config from package.json', () => { + expect(browserslist.findConfig(PACKAGE)).toEqual({ + defaults: 'ie > 6 and ie 9 or ie 10' + }) + + expect(browserslist(null, { path: PACKAGE })).toEqual( + ['ie 10', 'ie 9'] + ) +}) diff --git a/test/benchmark/one/app/css/hello.css b/test/benchmark/one/app/css/hello.css new file mode 100644 index 00000000..e69de29b diff --git a/test/benchmark/one/package.json b/test/benchmark/one/package.json new file mode 100644 index 00000000..b8be19f0 --- /dev/null +++ b/test/benchmark/one/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "browserslist": [ + "ie 9", + "ie 10" + ] +} diff --git a/test/benchmark/run.js b/test/benchmark/run.js new file mode 100755 index 00000000..4f154ad8 --- /dev/null +++ b/test/benchmark/run.js @@ -0,0 +1,32 @@ +#!/usr/bin/env node + +let { join } = require('path') + +let browserslist = require('../..') + +let cases = [ + { + file: join(__dirname, 'one/app/css/hello.css'), + n: 5000, + exists: true + }, + { + file: join(__dirname, 'two/app/js/hello.js'), + n: 5000, + exists: true + }, + { + file: join(__dirname, 'three/app/js/hello.js'), + n: 5000, + exists: false + } +] + +for (let { n, file, exists } of cases) { + for (let i = 0; i < n; i++) { + let result = browserslist.findConfig(file) + if (!!result !== exists) { + throw new Error('expected config to exist but it did not') + } + } +} diff --git a/test/benchmark/three/app/js/hello.js b/test/benchmark/three/app/js/hello.js new file mode 100644 index 00000000..390c2cf3 --- /dev/null +++ b/test/benchmark/three/app/js/hello.js @@ -0,0 +1 @@ +// three diff --git a/test/benchmark/two/app/js/hello.js b/test/benchmark/two/app/js/hello.js new file mode 100644 index 00000000..e69de29b diff --git a/test/benchmark/two/browserslist b/test/benchmark/two/browserslist new file mode 100644 index 00000000..6fd252af --- /dev/null +++ b/test/benchmark/two/browserslist @@ -0,0 +1 @@ +ie 11 diff --git a/test/browser.test.ts b/test/browser.test.ts new file mode 100644 index 00000000..7b5639dd --- /dev/null +++ b/test/browser.test.ts @@ -0,0 +1,50 @@ +import browserslist from '../' + +let originData = browserslist.data + +beforeEach(() => { + browserslist.data = { + ie: { + name: 'ie', + released: ['9', '10', '11'], + versions: ['9', '10', '11'], + releaseDate: {}, + }, + android: { + name: 'android', + released: ['4.4', '4.4.3-4.4.4', '67'], + versions: [], + releaseDate: {}, + } + } +}) + +afterEach(() => { + browserslist.data = originData +}) + +it('selects versions of browser', () => { + expect(browserslist('last 2 ie versions')).toEqual(['ie 11', 'ie 10']) +}) + +it('does not include unreleased versions', () => { + browserslist.data = originData + expect(browserslist('last 2 safari versions')).not.toContain('safari TP') +}) + +it('supports pluralization', () => { + expect(browserslist('last 1 ie version')).toEqual(['ie 11']) +}) + +it('has case insensitive aliases', () => { + expect(browserslist('Last 01 Explorer Version')).toEqual(['ie 11']) +}) + +it('has special logic for android', () => { + expect(browserslist('last 4 android versions')).toEqual([ + 'android 67' + ]) + expect(browserslist('last 31 android versions')).toEqual([ + 'android 67', 'android 4.4.3-4.4.4' + ]) +}) diff --git a/test/cache.test.ts b/test/cache.test.ts new file mode 100644 index 00000000..ad27dcf0 --- /dev/null +++ b/test/cache.test.ts @@ -0,0 +1,50 @@ +import { writeFile, remove, mkdir } from 'fs-extra' +import { tmpdir } from 'os' +import { join } from 'path' + +import browserslist from '../' + +let DIR = join(tmpdir(), 'browserslist-' + Math.random()) +let CONFIG = join(DIR, 'browserslist') + +beforeAll(async () => { + await mkdir(DIR) +}) + +afterEach(() => { + browserslist.clearCaches() + delete process.env.BROWSERSLIST_DISABLE_CACHE +}) + +afterAll(async () => { + await Promise.all([ + remove(CONFIG), + remove(DIR) + ]) +}) + +it('caches configuration but the cache is clearable', async () => { + await writeFile(CONFIG, 'ie 8', 'UTF-8') + let result1 = browserslist.findConfig(DIR) + + await writeFile(CONFIG, 'chrome 56', 'UTF-8') + let result2 = browserslist.findConfig(DIR) + + expect(result1).toEqual(result2) + + browserslist.clearCaches() + let result3 = browserslist.findConfig(DIR) + expect(result1).not.toEqual(result3) +}) + +it('does not use cache when ENV variable set', async () => { + process.env.BROWSERSLIST_DISABLE_CACHE = '1' + + await writeFile(CONFIG, 'ie 8', 'UTF-8') + let result1 = browserslist.findConfig(DIR) + + await writeFile(CONFIG, 'chrome 56', 'UTF-8') + let result2 = browserslist.findConfig(DIR) + + expect(result1).not.toEqual(result2) +}) diff --git a/test/cli.test.ts b/test/cli.test.ts new file mode 100644 index 00000000..ae703238 --- /dev/null +++ b/test/cli.test.ts @@ -0,0 +1,166 @@ +import { join } from 'path' +import spawn from 'cross-spawn' + +import browserslist from '../' +let pkg = require('../package.json') + +let STATS = '--stats=' + join(__dirname, 'fixtures/stats.json') +let CONF = '--config=' + join(__dirname, 'fixtures/env-config/browserslist') + +function run (args: any[]) { + let opts = { } + if (typeof args[0] === 'object') { + opts = args[0] + args = [] + } + let cli = spawn(join(__dirname, '..', 'cli.js'), args, opts) + return new Promise<{ code: number, stdout: string, stderr: string }>(resolve => { + let stdout = '' + let stderr = '' + cli.stdout?.on('data', data => { + stdout += data.toString() + }) + cli.stderr?.on('data', data => { + stderr += data.toString() + }) + cli.on('close', code => { + resolve({ code, stdout, stderr }) + }) + }) +} + +async function err (...args: any[]) { + let { code, stdout, stderr } = await run(args) + expect(stdout).toEqual('') + expect(code).not.toEqual(0) + return stderr +} + +async function out (...args: any[]) { + let { code, stdout, stderr } = await run(args) + expect(stderr).toEqual('') + expect(code).toEqual(0) + return stdout +} + +async function arr (...args: any[]) { + let stdout = await out(...args) + return stdout.split('\n').filter(Boolean) +} + +type Query = Parameters[0] +type Area = Parameters[1] + +function coverage (query: Query, area?: Area) { + let result = browserslist.coverage(query, area) + return (Math.round(result * 100) / 100.0) +} + +function ie8cov (area?: Area) { + return coverage(['ie 8'], area) +} + +it('returns help', async () => { + expect(await out('--help')).toContain('Usage:') + expect(await out('-h')).toContain('Usage:') +}) + +it('returns version', async () => { + let result = pkg.name + ' ' + pkg.version + '\n' + expect(await out('--version')).toEqual(result) + expect(await out('-v')).toEqual(result) +}) + +it('returns error: `unknown arguments`', async () => { + expect(await err('--unknown')).toContain('Unknown arguments') +}) + +it('selects last 2 versions', async () => { + expect(await arr('last 2 versions')).toEqual(browserslist('last 2 versions')) +}) + +it('uses case insensitive aliases', async () => { + expect(await arr('Explorer > 10')).toEqual(browserslist('Explorer > 10')) +}) + +it('returns error `unknown browser query`', async () => { + expect(await err('unknow')).toEqual( + 'browserslist: Unknown browser query `unknow`. ' + + 'Maybe you are using old Browserslist or made typo in query.\n' + ) +}) + +it('returns usage in specified country', async () => { + expect(await out('--coverage=US', 'ie 8')).toContain( + `These browsers account for ${ ie8cov('US') }% of all users in the US` + ) +}) + +it('returns usage in specified ares', async () => { + let post = '% of all users ' + expect(await out('--coverage=US,alt-AS,global', 'ie 8')).toContain( + `These browsers account for ${ ie8cov('US') + post }in the US\n` + + ` ${ ie8cov('alt-AS') + post }in the ALT-AS\n` + + ` ${ ie8cov() + post }globally\n` + ) +}) + +it('returns error: `unknown browser query to get coverage`', async () => { + expect(await err('--coverage=UK', 'ie8')).toEqual( + 'browserslist: Unknown browser query `ie8`. ' + + 'Maybe you are using old Browserslist or made typo in query.\n' + ) +}) + +it('reads browserslist config', async () => { + expect(await arr(CONF)).toEqual(['ie 11', 'ie 10']) +}) + +it('reads browserslist config from current directory', async () => { + let cwd = join(__dirname, 'fixtures') + expect(await arr({ cwd })).toEqual(['ie 11', 'ie 10']) +}) + +it('returns error browserslist config', async () => { + expect(await err('--config="./unknown_path"')).toEqual( + 'browserslist: Can\'t read ./unknown_path config\n' + ) +}) + +it('reads browserslist config: env production', async () => { + expect(await arr(CONF, '--env="production"')).toEqual(['ie 9', 'opera 41']) +}) + +it('returns usage from config', async () => { + expect(await out(CONF, '--coverage')).toContain(coverage(['ie 11', 'ie 10'])) +}) + +it('supports custom stats', async () => { + expect(await arr(STATS, '> 5% in my stats')).toEqual(['ie 11', 'ie 10']) +}) + +it('supports custom stats in coverage', async () => { + expect(await out('--coverage', STATS, '> 5% in my stats')).toEqual( + 'These browsers account for 15.7% of all users in custom statistics\n' + ) +}) + +it('shows Browserslist error', async () => { + expect(await err({ cwd: join(__dirname, 'fixtures', 'wrong1') })).toEqual( + 'browserslist: Browserslist config ' + + 'should be a string or an array of strings with browser queries\n' + ) +}) + +it('supports JSON', async () => { + expect(await out('--json', '"ie 8"')).toEqual( + '{\n "browsers": [\n "ie 8"\n ]\n}\n' + ) +}) + +it('supports JSON with coverage', async () => { + expect(await out('--json', '--coverage=US', '"ie 8"')).toEqual('{\n' + + ' "browsers": [\n "ie 8"\n ],\n' + + ` "coverage": {\n "US": ${ ie8cov('US') }\n }\n` + + '}\n') +}) diff --git a/test/config-query.test.js b/test/config-query.test.js new file mode 100644 index 00000000..7d7d47c0 --- /dev/null +++ b/test/config-query.test.js @@ -0,0 +1,20 @@ +let { test } = require('uvu') +let { equal } = require('uvu/assert') +let { join } = require('path') + +delete require.cache[require.resolve('..')] +let browserslist = require('..') + +let FILE = join(__dirname, 'fixtures', 'env-config', 'test.css') + +test('supports config query', () => { + equal( + browserslist('browserslist config, not chrome >0', { + path: FILE, + env: 'development' + }), + ['firefox 50'] + ) +}) + +test.run() diff --git a/test/config.test.ts b/test/config.test.ts new file mode 100644 index 00000000..a59a0863 --- /dev/null +++ b/test/config.test.ts @@ -0,0 +1,129 @@ +import { join } from 'path' + +import browserslist from '../' + +let RC = join(__dirname, 'fixtures', 'rc', 'test.css') +let FILE = join(__dirname, 'fixtures', 'dir', 'test.css') +let TYPO = join(__dirname, 'fixtures', 'typo', 'test.css') +let BOTH1 = join(__dirname, 'fixtures', 'both1', 'test.css') +let BOTH2 = join(__dirname, 'fixtures', 'both2', 'test.css') +let BOTH3 = join(__dirname, 'fixtures', 'both3', 'test.css') +let WRONG1 = join(__dirname, 'fixtures', 'wrong1', 'test.css') +let WRONG2 = join(__dirname, 'fixtures', 'wrong2', 'test.css') +let BROKEN = join(__dirname, 'fixtures', 'broken', 'test.css') +let STRING = join(__dirname, 'fixtures', 'string', 'test.css') +let PACKAGE = join(__dirname, 'fixtures', 'package', 'test.css') + +let originCwd = process.cwd() +afterEach(() => { + process.chdir(originCwd) +}) + +it('parses queries', () => { + expect(browserslist.parseConfig('ie 10\n> 1%')).toEqual({ + defaults: ['ie 10', '> 1%'] + }) +}) + +it('parses comma', () => { + expect(browserslist.parseConfig('ie 10, > 1%')).toEqual({ + defaults: ['ie 10', '> 1%'] + }) +}) + +it('removes comments', () => { + let config = '# support list\nie 10#bad\n> 1%' + expect(browserslist.parseConfig(config)).toEqual({ + defaults: ['ie 10', '> 1%'] + }) +}) + +it('supports sections', () => { + expect(browserslist.parseConfig('ie 10\n[test]\nie 11')).toEqual({ + defaults: ['ie 10'], + test: ['ie 11'] + }) +}) + +it('throws on duplicate sections', () => { + let config = '[test]\nie 10\n[production test]\nie 11' + expect(() => { + browserslist.parseConfig(config) + }).toThrow(/Duplicate section test in Browserslist config/) +}) + +it('trims whitespaces', () => { + expect(browserslist.parseConfig('ie 9\n\n [ test] \n \n > 1%\n')).toEqual({ + defaults: ['ie 9'], + test: ['> 1%'] + }) +}) + +it('returns undefined on no config', () => { + expect(browserslist.findConfig(__dirname)).not.toBeDefined() +}) + +it('reads config', () => { + expect(browserslist.findConfig(FILE)).toEqual({ + defaults: ['ie 11', 'ie 10'] + }) +}) + +it('reads .browserslistrc config', () => { + expect(browserslist.findConfig(RC)).toEqual({ + defaults: ['ie 11'] + }) +}) + +it('reads config from package.json', () => { + expect(browserslist.findConfig(PACKAGE)).toEqual({ + defaults: ['ie 9', 'ie 10'] + }) +}) + +it('shows warning on broken package.json', () => { + jest.spyOn(console, 'warn').mockImplementation(() => true) + expect(browserslist.findConfig(BROKEN)).toEqual({ + defaults: ['ie 11', 'ie 10'] + }) + expect(console.warn).toHaveBeenCalledTimes(1) +}) + +it('shows error on key typo', () => { + expect(() => { + browserslist.findConfig(TYPO) + }).toThrow(/browserlist/) +}) + +it('reads from dir wich contains both browserslist and package.json', () => { + expect(() => { + browserslist.findConfig(BOTH1) + }).toThrow(/contains both browserslist and package\.json/) +}) + +it('reads from dir wich contains both .browserslistrc and package.json', () => { + expect(() => { + browserslist.findConfig(BOTH2) + }).toThrow(/contains both .browserslistrc and package\.json/) +}) + +it('reads from dir wich contains both .browserslistrc and browserslist', () => { + expect(() => { + browserslist.findConfig(BOTH3) + }).toThrow(/contains both .browserslistrc and browserslist/) +}) + +it('checks config format', () => { + expect(() => { + browserslist.findConfig(WRONG1) + }).toThrow(/Browserslist config should/) + expect(() => { + browserslist.findConfig(WRONG2) + }).toThrow(/Browserslist config should/) +}) + +it('reads config with one string', () => { + expect(browserslist.findConfig(STRING)).toEqual({ + defaults: 'ie 9, ie 8' + }) +}) diff --git a/test/country.test.ts b/test/country.test.ts new file mode 100644 index 00000000..6efc8955 --- /dev/null +++ b/test/country.test.ts @@ -0,0 +1,73 @@ +import browserslist from '../' + +let originUsage = browserslist.usage + +beforeEach(() => { + browserslist.usage = { + US: { + 'ie 8': 1, + 'ie 9': 5, + 'ie 10': 10.1, + 'ie 11': 75 + }, + XX: { + 'and_chr 0': 100 + } + } + browserslist.data.and_chr = { + name: 'and_chr', + versions: ['80'], + released: [], + releaseDate: {}, + } +}) + +afterEach(() => { + browserslist.usage = originUsage +}) + +it('selects browsers by popularity', () => { + expect(browserslist('> 10% in US')).toEqual(['ie 11', 'ie 10']) +}) + +it('selects popularity by more or equal', () => { + expect(browserslist('>= 5% in US')).toEqual(['ie 11', 'ie 10', 'ie 9']) +}) + +it('selects browsers by unpopularity', () => { + expect(browserslist('< 5% in US')).toEqual(['ie 8']) +}) + +it('selects unpopularity by less or equal', () => { + expect(browserslist('<= 5% in US')).toEqual(['ie 9', 'ie 8']) +}) + +it('works with float', () => { + expect(browserslist('> 10.2% in US')).toEqual(['ie 11']) +}) + +it('works with float that has a leading dot', () => { + expect(browserslist('> .2% in US')).toEqual( + ['ie 11', 'ie 10', 'ie 9', 'ie 8'] + ) +}) + +it('fixes country case', () => { + expect(browserslist('> 10.2% in us')).toEqual(['ie 11']) +}) + +it('loads country from Can I Use', () => { + expect(browserslist('> 1% in RU').length > 0).toBe(true) +}) + +it('loads continents from Can I Use', () => { + expect(browserslist('> 1% in alt-AS').length > 0).toBe(true) +}) + +it('allows omission of the space between the > and the percentage', () => { + expect(browserslist('>10% in US').length > 0).toBe(true) +}) + +it('normalize incorrect caniuse versions for and_*', () => { + expect(browserslist('> 50% in XX')).toEqual(['and_chr 80']) +}) diff --git a/test/cover.test.ts b/test/cover.test.ts new file mode 100644 index 00000000..b8a9f71c --- /dev/null +++ b/test/cover.test.ts @@ -0,0 +1,63 @@ +import { join } from 'path' + +import browserslist from '../' + +let CUSTOM_STATS = join(__dirname, 'fixtures', 'stats.json') + +let originUsage = browserslist.usage + +beforeEach(() => { + process.env.BROWSERSLIST_STATS = CUSTOM_STATS + browserslist.usage = { + 'global': { + 'ie 5': 50, + 'ie 11': 10 + }, + 'US': { + 'ie 8': 2, + 'ie 9': 4.4 + }, + 'alt-us': { + 'ie 8': 25, + 'ie 9': 10 + } + } +}) +afterEach(() => { + delete process.env.BROWSERSLIST_STATS + browserslist.usage = originUsage +}) + +it('adds at least one browser', () => { + expect(browserslist('cover 1% in my stats')).toEqual(['ie 11']) +}) + +it('global coverage', () => { + expect(browserslist('cover 0.1%')).toEqual(['ie 5']) +}) + +it('country coverage', () => { + expect(browserslist('cover 0.1% in US')).toEqual(['ie 9']) +}) + +it('country coverage alt', () => { + expect(browserslist('cover 0.1% in alt-us')).toEqual(['ie 8']) +}) + +it('adds browsers by popularity', () => { + expect(browserslist('cover 20% in my stats')).toEqual( + ['chrome 37', 'chrome 36', 'ie 11', 'ie 10'] + ) +}) + +it('does not add zero-popularity', () => { + let stats = { stats: { ie: { 11: 10, 10: 0 } } } + expect(browserslist('cover 20% in my stats', stats)).toEqual(['ie 11']) +}) + +it('throws error on no stats', () => { + delete process.env.BROWSERSLIST_STATS + expect(() => { + browserslist('cover 70% in my stats') + }).toThrow(/statistics was not provided/) +}) diff --git a/test/coverage.test.ts b/test/coverage.test.ts new file mode 100644 index 00000000..9e82ac63 --- /dev/null +++ b/test/coverage.test.ts @@ -0,0 +1,93 @@ +import { join } from 'path' + +import browserslist from '../' + +let STATS = join(__dirname, 'fixtures', 'browserslist-stats.json') +let CUSTOM_STATS = join(__dirname, 'fixtures', 'stats.json') + +let custom = { + ie: { + 8: 3, + 9: 10 + } +} + +let originUsage = browserslist.usage + +beforeEach(() => { + browserslist.usage = { + global: { + 'ie 8': 5, + 'ie 9': 10.1 + }, + UK: { + 'ie 8': 2, + 'ie 9': 4.4 + }, + RU: { + 'ie 0': 2 + } + } +}) + +afterEach(() => { + delete process.env.BROWSERSLIST_STATS + browserslist.usage = originUsage +}) + +it('returns browsers coverage', () => { + expect(browserslist.coverage(['ie 8', 'ie 9'])).toEqual(15.1) +}) + +it('returns zero coverage on empty browsers', () => { + expect(browserslist.coverage([])).toEqual(0) +}) + +it('returns zero coverage on missed data', () => { + expect(browserslist.coverage(['ie 12'])).toEqual(0) +}) + +it('returns usage in specified country', () => { + expect(browserslist.coverage(['ie 9'], 'UK')).toEqual(4.4) +}) + +it('accepts country in any case', () => { + expect(browserslist.coverage(['ie 9'], 'uk')).toEqual(4.4) +}) + +it('accepts mystats to load from custom stats', () => { + process.env.BROWSERSLIST_STATS = STATS + expect(browserslist.coverage(['ie 8'], 'my stats')).toEqual(6) +}) + +it('accepts mystats to load from custom stats with dataByBrowser', () => { + process.env.BROWSERSLIST_STATS = CUSTOM_STATS + expect(browserslist.coverage(['ie 8'], 'my stats')).toEqual(0.1) +}) + +it('throws when no custom stats', () => { + expect(() => { + browserslist.coverage(['ie 8'], 'my stats') + }).toThrow(/statistics was not provided/) +}) + +it('loads country usage data from Can I Use', () => { + expect(browserslist.coverage(['ie 8', 'ie 9'], 'US') > 0).toBe(true) +}) + +it('loads continents usage data from Can I Use', () => { + expect(browserslist.coverage(['ie 8', 'ie 9'], 'alt-AS') > 0).toBe(true) +}) + +it('fixes statistics of 0 version', () => { + expect(browserslist.coverage(['ie 9'], 'RU')).toEqual(2) +}) + +it('fixes statistics of all version', () => { + expect(browserslist.coverage(['ie all'], 'RU')).toEqual(2) +}) + +it('supports custom statistics', () => { + expect(browserslist.coverage(['ie 9'], custom)).toEqual(10) + expect(browserslist.coverage(['ie 9'], { dataByBrowser: custom })).toEqual(10) +}) diff --git a/test/covid.test.js b/test/covid.test.js new file mode 100644 index 00000000..cc25fce8 --- /dev/null +++ b/test/covid.test.js @@ -0,0 +1,55 @@ +let { test } = require('uvu') +let { equal } = require('uvu/assert') + +delete require.cache[require.resolve('..')] +let browserslist = require('..') + +let originData = { ...browserslist.data } +let originWarn = console.warn + +test.before.each(() => { + browserslist.data = { + chrome: { + name: 'chrome', + versions: ['1', '2', '3'], + released: [], + releaseDate: { + 1: 0, // 01 Jan 1970 00:00:00 +0000 + 2: 1485907200, // 01 Feb 2017 00:00:00 +0000 + 3: 1609459200 // 01 Jan 2021 00:00:00 +0000 + } + }, + safari: { + name: 'safari', + versions: ['TP'], + released: [], + releaseDate: { + 1: 1575244800, // 02 Dec 2019 00:00:00 +0000 + TP: null // unreleased + } + } + } + console.warn = function (...args) { + if (args[0].includes('update-browserslist-db')) return + originWarn.apply(this, args) + } +}) + +test.after.each(() => { + browserslist.data = originData + console.warn = originWarn +}) + +test('selects versions released after COVID', () => { + equal(browserslist('since covid'), ['chrome 3', 'safari 1']) +}) + +test('is case insensitive', () => { + equal(browserslist('Since COVID'), ['chrome 3', 'safari 1']) +}) + +test('works with alternate spelling', () => { + equal(browserslist('post-COVID'), ['chrome 3', 'safari 1']) +}) + +test.run() diff --git a/test/custom.test.ts b/test/custom.test.ts new file mode 100644 index 00000000..d35dff28 --- /dev/null +++ b/test/custom.test.ts @@ -0,0 +1,74 @@ +import { readFile } from 'fs-extra' +import { join } from 'path' + +import browserslist from '../' + +let CUSTOM_STATS = join(__dirname, 'fixtures', 'stats.json') +let ANDROID = join(__dirname, 'fixtures', 'android-stats.json') +let STATS = join(__dirname, 'fixtures', 'browserslist-stats.json') + +afterEach(() => { + delete process.env.BROWSERSLIST_STATS +}) + +it('throws error on invalid file', () => { + expect(() => { + browserslist('', { stats: 'no.json' }) + }).toThrow('Can\'t read no.json') +}) + +it('takes stats file from environment variable', () => { + process.env.BROWSERSLIST_STATS = CUSTOM_STATS + expect(browserslist('> 10% in my stats')).toEqual(['ie 11']) +}) + +it('takes stats by path', () => { + expect(browserslist('> 10% in my stats', { stats: CUSTOM_STATS })) + .toEqual(['ie 11']) +}) + +it('selects popularity by more or equal', () => { + expect(browserslist('>= 5.3% in my stats', { stats: CUSTOM_STATS })) + .toEqual(['ie 11', 'ie 10']) +}) + +it('selects browsers by unpopularity', () => { + expect(browserslist('< 0.5% in my stats', { stats: CUSTOM_STATS })) + .toEqual(['chrome 34', 'ie 8']) +}) + +it('selects unpopularity by less or equal', () => { + expect(browserslist('<= 2.3% in my stats', { stats: CUSTOM_STATS })) + .toEqual(['chrome 36', 'chrome 35', 'chrome 34', 'ie 9', 'ie 8']) +}) + +it('accepts non-space query', () => { + expect(browserslist('>10% in my stats', { stats: CUSTOM_STATS })) + .toEqual(['ie 11']) +}) + +it('takes stats from usage data object', async () => { + let data = JSON.parse((await readFile(CUSTOM_STATS)).toString()) + expect(browserslist('> 10% in my stats', { stats: data })).toEqual(['ie 11']) +}) + +it('works alongside global usage query', () => { + let list = browserslist('> 10% in my stats, > 1%', { stats: CUSTOM_STATS }) + expect(list.length > 1).toBe(true) +}) + +it('takes stats from browserslist-stats.json', () => { + expect(browserslist('> 5% in my stats', { path: STATS })).toEqual(['ie 8']) +}) + +it('normalizes versions', () => { + let o = { stats: ANDROID } + expect(browserslist(['> 3% in my stats'], o)[0]).toMatch(/and_chr \d+/) + expect(browserslist(['> 3% in my stats', 'not and_chr > 0'], o)).toEqual([]) +}) + +it('throws error on no stats', () => { + expect(() => { + browserslist('> 5% in my stats') + }).toThrow(/statistics was not provided/) +}) diff --git a/test/dead.test.ts b/test/dead.test.ts new file mode 100644 index 00000000..6c1a105f --- /dev/null +++ b/test/dead.test.ts @@ -0,0 +1,9 @@ +import browserslist from '../' + +it('selects dead browsers by keywords', () => { + expect(browserslist('dead')).toContain('ie 10') +}) + +it('selects dead browsers case insensitive', () => { + expect(browserslist('Dead')).toEqual(browserslist('dead')) +}) diff --git a/test/defaults.test.ts b/test/defaults.test.ts new file mode 100644 index 00000000..b3b39558 --- /dev/null +++ b/test/defaults.test.ts @@ -0,0 +1,16 @@ +import browserslist from '../' + +it('selects defaults by keywords', () => { + expect(browserslist('defaults, ie 6')).toEqual( + browserslist(browserslist.defaults.concat(['ie 6'])) + ) +}) + +it('selects defaults case insensitive', () => { + expect(browserslist('Defaults')).toEqual(browserslist(browserslist.defaults)) +}) + +it('should respect options', () => { + expect(browserslist('defaults', { mobileToDesktop: true })) + .toEqual(browserslist(browserslist.defaults, { mobileToDesktop: true })) +}) diff --git a/test/direct.test.ts b/test/direct.test.ts new file mode 100644 index 00000000..5b6ebe9d --- /dev/null +++ b/test/direct.test.ts @@ -0,0 +1,86 @@ +import browserslist from '../' + +it('selects browser by name', () => { + expect(browserslist('ie 10')).toEqual(['ie 10']) +}) + +it('uses case insensitive aliases', () => { + let result = browserslist('ie 10') + expect(browserslist('Explorer 10')).toEqual(result) + expect(browserslist('IE 10')).toEqual(result) +}) + +it('raises on unknown name', () => { + expect(() => { + browserslist('unknow 10') + }).toThrow('Unknown browser unknow') +}) + +it('raises on unknown version', () => { + expect(() => { + browserslist('IE 1') + }).toThrow('Unknown version 1 of IE') +}) + +it('uses right browser name in error', () => { + expect(() => { + browserslist('chrome 70, ie 11, safari 12.2, safari 12') + }).toThrow('Unknown version 12.2 of safari') +}) + +it('ignores unknown versions on request', () => { + expect(browserslist('IE 1, IE 9', { ignoreUnknownVersions: true })).toEqual([ + 'ie 9' + ]) +}) + +it('works with joined versions from Can I Use', () => { + expect(browserslist('ios 7.0')).toEqual(['ios_saf 7.0-7.1']) + expect(browserslist('ios 7.1')).toEqual(['ios_saf 7.0-7.1']) +}) + +it('allows to miss zero in version', () => { + expect(browserslist('ios 7')).toEqual(['ios_saf 7.0-7.1']) + expect(browserslist('ios 8.0')).toEqual(['ios_saf 8']) +}) + +it('supports Safari TP', () => { + expect(browserslist('safari tp')).toEqual(['safari TP']) + expect(browserslist('Safari TP')).toEqual(['safari TP']) +}) + +it('supports Can I Use cutted versions', () => { + expect(browserslist('and_uc 10')).toHaveLength(1) +}) + +it('supports Can I Use missing mobile versions', () => { + let opts = { mobileToDesktop: true } + expect(browserslist('chromeandroid 53', opts)).toEqual(['and_chr 53']) + expect(browserslist('and_ff 60', opts)).toEqual(['and_ff 60']) + expect(browserslist('ie_mob 9', opts)).toEqual(['ie_mob 9']) + expect(browserslist('op_mob 30', opts)).toEqual(['op_mob 30']) + expect(browserslist('chromeandroid >= 52 and chromeandroid < 54', opts)) + .toEqual(['and_chr 53', 'and_chr 52']) + expect(browserslist('and_chr 52-53', opts)) + .toEqual(['and_chr 53', 'and_chr 52']) + expect(browserslist('android 4.4-38', opts)) + .toEqual([ + 'android 38', + 'android 37', + 'android 36', + 'android 4.4.3-4.4.4', + 'android 4.4' + ]) +}) + +it('missing mobile versions are not aliased by default', () => { + expect(browserslist('chromeandroid 53')).not.toEqual(['and_chr 53']) + expect(browserslist('and_ff 60')).not.toEqual(['and_ff 60']) + expect(() => browserslist('ie_mob 9')).toThrow(/Unknown version 9 of ie_mob/) + expect(() => browserslist('op_mob 30')).toThrow(/Unknown version 30/) +}) + +it('works for all browsers', () => { + let first = browserslist(['> 0%', 'dead']) + browserslist(first, { mobileToDesktop: true }) +}) diff --git a/test/electron.test.ts b/test/electron.test.ts new file mode 100644 index 00000000..7de02671 --- /dev/null +++ b/test/electron.test.ts @@ -0,0 +1,70 @@ +import browserslist from '../' + +it('converts Electron to Chrome', () => { + expect(browserslist('electron 1.1')).toEqual(['chrome 50']) +}) + +it('supports Electron Patch versions to Chrome', () => { + expect(browserslist('electron 4.0.4')).toEqual(['chrome 69']) +}) + +it('supports case insensitive Electron name', () => { + expect(browserslist('Electron 1.1')).toEqual(['chrome 50']) +}) + +it('throws on unknown Electron version', () => { + expect(() => { + browserslist('electron 0.19') + }).toThrow(/Unknown version/) +}) + +it('converts Electron to Chrome in ranges', () => { + expect(browserslist('electron 0.36-1.2')).toEqual([ + 'chrome 51', 'chrome 50', 'chrome 49', 'chrome 47' + ]) +}) + +it('ignores case in Electron ranges', () => { + expect(browserslist('Electron 0.37-1.0')).toEqual(['chrome 49']) +}) + +it('supports patch versions in Electron ranges', () => { + expect(browserslist('Electron 0.37.5-1.0.3')).toEqual(['chrome 49']) +}) + +it('throws on unknown Electron range version', () => { + expect(() => { + browserslist('electron 0.1-1.2') + }).toThrow(/Unknown version/) + expect(() => { + browserslist('electron 0.37-999') + }).toThrow(/Unknown version/) +}) + +it('converts Electron versions to Chrome', () => { + expect(browserslist('electron <= 0.21')).toEqual([ + 'chrome 41', 'chrome 39' + ]) +}) + +it('ignores case in Electron versions', () => { + expect(browserslist('Electron < 0.21')).toEqual(['chrome 39']) +}) + +it('converts Electron patch versions to Chrome', () => { + expect(browserslist('Electron < 0.21.5')).toEqual(['chrome 39']) +}) + +it('supports last versions for Electron', () => { + expect(browserslist('last 2 Electron versions').length) + .toBeGreaterThanOrEqual(1) +}) + +it('supports last major versions for Electron', () => { + expect(browserslist('last 2 Electron major versions').length) + .toBeGreaterThanOrEqual(1) +}) + +it('supports unreleased versions for Electron', () => { + expect(browserslist('unreleased Electron versions')).toHaveLength(0) +}) diff --git a/test/error.test.ts b/test/error.test.ts new file mode 100644 index 00000000..0a069ed8 --- /dev/null +++ b/test/error.test.ts @@ -0,0 +1,17 @@ +import BrowserslistError from '../error' + +let originCapture = Error.captureStackTrace +afterEach(() => { + Error.captureStackTrace = originCapture +}) + +it('sets stack', () => { + let error = new BrowserslistError('test') + expect(typeof error.stack).toEqual('string') +}) + +it('works in Firefox', () => { + Error.captureStackTrace = undefined as any + let error = new BrowserslistError('test') + expect(error.stack).toBeUndefined() +}) diff --git a/test/esr.test.ts b/test/esr.test.ts new file mode 100644 index 00000000..d6682ae7 --- /dev/null +++ b/test/esr.test.ts @@ -0,0 +1,14 @@ +import browserslist from '../' + +it('selects Firefox ESR', () => { + let versions = browserslist('Firefox ESR') + expect(versions.length).toBeGreaterThanOrEqual(1) + expect(versions.every(i => /^firefox \d+$/.test(i))).toBe(true) +}) + +it('uses case insensitive aliases', () => { + let result = browserslist('Firefox ESR') + expect(browserslist('firefox esr')).toEqual(result) + expect(browserslist('ff esr')).toEqual(result) + expect(browserslist('fx esr')).toEqual(result) +}) diff --git a/test/extends.test.ts b/test/extends.test.ts new file mode 100644 index 00000000..f35d5613 --- /dev/null +++ b/test/extends.test.ts @@ -0,0 +1,143 @@ +import { ensureDir, writeFile, remove } from 'fs-extra' +import { join } from 'path' + +import browserslist from '../' + +let mocked: string[] = [] + +async function mock (name: string, exports: any) { + let dir = join(__dirname, '..', 'node_modules', name) + mocked.push(dir) + await ensureDir(dir) + let content = 'module.exports = ' + JSON.stringify(exports) + await writeFile(join(dir, 'index.js'), content) +} + +afterEach(async () => { + await Promise.all(mocked.map(dir => remove(dir))) + mocked = [] + delete process.env.BROWSERSLIST_DANGEROUS_EXTEND +}) + +it('uses package', async () => { + await mock('browserslist-config-test', ['ie 11']) + let result = browserslist(['extends browserslist-config-test', 'ie 6']) + expect(result).toEqual(['ie 11', 'ie 6']) +}) + +it('uses file in package', async () => { + await mock('browserslist-config-test/ie', ['ie 11']) + let result = browserslist(['extends browserslist-config-test/ie']) + expect(result).toEqual(['ie 11']) +}) + +it('works with non-prefixed package with dangerousExtend', async () => { + await mock('pkg', ['ie 11']) + let result = browserslist(['extends pkg', 'edge 12'], { + dangerousExtend: true + }) + expect(result).toEqual(['edge 12', 'ie 11']) +}) + +it('supports BROWSERSLIST_DANGEROUS_EXTEND', async () => { + process.env.BROWSERSLIST_DANGEROUS_EXTEND = '1' + await mock('pkg', ['ie 11']) + let result = browserslist(['extends pkg', 'edge 12']) + expect(result).toEqual(['edge 12', 'ie 11']) +}) + +it('handles scoped packages', async () => { + await mock('@scope/browserslist-config-test', ['ie 11']) + let result = browserslist(['extends @scope/browserslist-config-test']) + expect(result).toEqual(['ie 11']) +}) + +it('handles scoped packages with a dot in the name', async () => { + await mock('@example.com/browserslist-config-test', ['ie 11']) + let result = browserslist(['extends @example.com/browserslist-config-test']) + expect(result).toEqual(['ie 11']) +}) + +it('handles file in scoped packages', async () => { + await mock('@scope/browserslist-config-test/ie', ['ie 11']) + let result = browserslist(['extends @scope/browserslist-config-test/ie']) + expect(result).toEqual(['ie 11']) +}) + +it('handles file-less scoped packages', async () => { + await mock('@scope/browserslist-config', ['ie 11']) + let result = browserslist(['extends @scope/browserslist-config']) + expect(result).toEqual(['ie 11']) +}) + +it('recursively imports configs', async () => { + await Promise.all([ + mock('browserslist-config-a', ['extends browserslist-config-b', 'ie 9']), + mock('browserslist-config-b', ['ie 10']) + ]) + let result = browserslist(['extends browserslist-config-a']) + expect(result).toEqual(['ie 10', 'ie 9']) +}) + +it('handles relative queries with local overrides', async () => { + await mock('browserslist-config-rel', ['ie 9-10']) + let result = browserslist(['extends browserslist-config-rel', 'not ie 9']) + expect(result).toEqual(['ie 10']) +}) + +it('throws on external package with empty export', async () => { + await mock('browserslist-config-wrong', 'some string') + expect(() => { + browserslist(['extends browserslist-config-wrong']) + }).toThrow(/not an array of queries or an object/) +}) + +it('throws when package does not have browserslist-config- prefix', () => { + expect(() => { + browserslist(['extends thing-without-prefix']) + }).toThrow(/needs `browserslist-config-` prefix/) +}) + +it('throws when extends package has dot in path', () => { + expect(() => { + browserslist(['extends browserslist-config-package/../something']) + }).toThrow(/`.` not allowed/) +}) + +it('throws when extends package has node_modules in path', () => { + expect(() => { + browserslist(['extends browserslist-config-test/node_modules/a']) + }).toThrow(/`node_modules` not allowed/) +}) + +it('works with shareable config doesn\'t contains defaults env', async () => { + await mock('browserslist-config-with-env-a', { + someEnv: ['ie 10'] + }) + let result = browserslist(['extends browserslist-config-with-env-a']) + expect(result).toEqual([]) +}) + +it('works with shareable config contains env', async () => { + process.env.NODE_ENV = 'someEnv' + await mock('browserslist-config-with-env-b', { + someEnv: ['ie 10'] + }) + let result = browserslist(['extends browserslist-config-with-env-b']) + expect(result).toEqual(['ie 10']) +}) + +it('works with shareable config contains defaults env', async () => { + await mock('browserslist-config-with-defaults', { + defaults: ['ie 10'] + }) + let result = browserslist(['extends browserslist-config-with-defaults']) + expect(result).toEqual(['ie 10']) +}) + +it('throws when external package resolve to nullable', async () => { + await mock('browserslist-config-null', null) + expect(() => { + browserslist(['extends browserslist-config-null']) + }).toThrow(/config exports not an array/) +}) diff --git a/test/feature.test.ts b/test/feature.test.ts new file mode 100644 index 00000000..2b2ed0fb --- /dev/null +++ b/test/feature.test.ts @@ -0,0 +1,43 @@ +import browserslist from '../' + +let originCache = browserslist.cache + +beforeEach(() => { + browserslist.cache = {} + browserslist.data.and_chr = { + name: 'and_chr', + versions: ['81'], + released: [], + releaseDate: {}, + } +}) + +afterEach(() => { + browserslist.cache = originCache +}) + +it('load features from Can I Use', () => { + expect(browserslist('supports objectrtc').length > 0).toBe(true) +}) + +it('selects browsers by feature', () => { + browserslist.cache = { + rtcpeerconnection: { + 'and_chr 81': 'y', + 'firefox 2': 'n' + } + } + + expect(browserslist('supports rtcpeerconnection')).toEqual(['and_chr 81']) +}) + +it('selects browsers by feature with dashes in its name', () => { + browserslist.cache = { + 'arrow-functions': { + 'and_chr 81': 'y', + 'ie 11': 'n' + } + } + + expect(browserslist('supports arrow-functions')).toEqual(['and_chr 81']) +}) diff --git a/test/fixtures/android-stats.json b/test/fixtures/android-stats.json new file mode 100644 index 00000000..f5a3556e --- /dev/null +++ b/test/fixtures/android-stats.json @@ -0,0 +1,5 @@ +{ + "and_chr": { + "10": 4 + } +} diff --git a/test/fixtures/both1/browserslist b/test/fixtures/both1/browserslist new file mode 100644 index 00000000..0940e12b --- /dev/null +++ b/test/fixtures/both1/browserslist @@ -0,0 +1,3 @@ +# File for test +ie 11 +ie 10 diff --git a/test/fixtures/both1/package.json b/test/fixtures/both1/package.json new file mode 100644 index 00000000..b8be19f0 --- /dev/null +++ b/test/fixtures/both1/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "browserslist": [ + "ie 9", + "ie 10" + ] +} diff --git a/test/fixtures/both2/.browserslistrc b/test/fixtures/both2/.browserslistrc new file mode 100644 index 00000000..0940e12b --- /dev/null +++ b/test/fixtures/both2/.browserslistrc @@ -0,0 +1,3 @@ +# File for test +ie 11 +ie 10 diff --git a/test/fixtures/both2/package.json b/test/fixtures/both2/package.json new file mode 100644 index 00000000..b8be19f0 --- /dev/null +++ b/test/fixtures/both2/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "browserslist": [ + "ie 9", + "ie 10" + ] +} diff --git a/test/fixtures/both3/.browserslistrc b/test/fixtures/both3/.browserslistrc new file mode 100644 index 00000000..0940e12b --- /dev/null +++ b/test/fixtures/both3/.browserslistrc @@ -0,0 +1,3 @@ +# File for test +ie 11 +ie 10 diff --git a/test/fixtures/both3/browserslist b/test/fixtures/both3/browserslist new file mode 100644 index 00000000..0940e12b --- /dev/null +++ b/test/fixtures/both3/browserslist @@ -0,0 +1,3 @@ +# File for test +ie 11 +ie 10 diff --git a/test/fixtures/broken/package.json b/test/fixtures/broken/package.json new file mode 100644 index 00000000..98232c64 --- /dev/null +++ b/test/fixtures/broken/package.json @@ -0,0 +1 @@ +{ diff --git a/test/fixtures/browserslist b/test/fixtures/browserslist new file mode 100644 index 00000000..0940e12b --- /dev/null +++ b/test/fixtures/browserslist @@ -0,0 +1,3 @@ +# File for test +ie 11 +ie 10 diff --git a/test/fixtures/browserslist-stats.json b/test/fixtures/browserslist-stats.json new file mode 100644 index 00000000..b8123eb7 --- /dev/null +++ b/test/fixtures/browserslist-stats.json @@ -0,0 +1,7 @@ +{ + "ie": { + "6": 0.01, + "7": 0.4, + "8": 6 + } +} diff --git a/test/fixtures/dir/test.css b/test/fixtures/dir/test.css new file mode 100644 index 00000000..e69de29b diff --git a/test/fixtures/env-config/browserslist b/test/fixtures/env-config/browserslist new file mode 100644 index 00000000..fac480fc --- /dev/null +++ b/test/fixtures/env-config/browserslist @@ -0,0 +1,11 @@ +# File for test +ie 11 +ie 10 + +[development] +ff 50 +chrome 55 + +[production staging] +ie 9 +opera 41 diff --git a/test/fixtures/env-config/package.json b/test/fixtures/env-config/package.json new file mode 100644 index 00000000..352055cd --- /dev/null +++ b/test/fixtures/env-config/package.json @@ -0,0 +1,3 @@ +{ + "private": true +} diff --git a/test/fixtures/env-package/package.json b/test/fixtures/env-package/package.json new file mode 100644 index 00000000..6dbd7e36 --- /dev/null +++ b/test/fixtures/env-package/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "browserslist": { + "development": ["chrome 55", "firefox 50"], + "production": ["ie 9", "opera 41"] + } +} diff --git a/test/fixtures/explorers b/test/fixtures/explorers new file mode 100644 index 00000000..06581ccc --- /dev/null +++ b/test/fixtures/explorers @@ -0,0 +1,2 @@ +ie 9 +ie 8 diff --git a/test/fixtures/package/package.json b/test/fixtures/package/package.json new file mode 100644 index 00000000..7283cefa --- /dev/null +++ b/test/fixtures/package/package.json @@ -0,0 +1,4 @@ +{ + "private": true, + "browserslist": ["ie 9", "ie 10"] +} diff --git a/test/fixtures/package2/package.json b/test/fixtures/package2/package.json new file mode 100644 index 00000000..baf9ccbf --- /dev/null +++ b/test/fixtures/package2/package.json @@ -0,0 +1,4 @@ +{ + "private": true, + "browserslist": "ie > 6 and ie 9 or ie 10" +} diff --git a/test/fixtures/rc/.browserslistrc b/test/fixtures/rc/.browserslistrc new file mode 100644 index 00000000..6fd252af --- /dev/null +++ b/test/fixtures/rc/.browserslistrc @@ -0,0 +1 @@ +ie 11 diff --git a/test/fixtures/stats.json b/test/fixtures/stats.json new file mode 100644 index 00000000..a8353ce2 --- /dev/null +++ b/test/fixtures/stats.json @@ -0,0 +1,17 @@ +{ + "dataByBrowser": { + "ie": { + "8": 0.1, + "9": 0.7, + "10": 5.3, + "11": 10.4 + }, + "chrome": { + "34": 0.2, + "35": 0.7, + "36": 2.3, + "37": 3.5, + "999": null + } + } +} diff --git a/test/fixtures/string/package.json b/test/fixtures/string/package.json new file mode 100644 index 00000000..0a7f1196 --- /dev/null +++ b/test/fixtures/string/package.json @@ -0,0 +1,4 @@ +{ + "private": true, + "browserslist": "ie 9, ie 8" +} diff --git a/test/fixtures/symlink b/test/fixtures/symlink new file mode 120000 index 00000000..c6926d17 --- /dev/null +++ b/test/fixtures/symlink @@ -0,0 +1 @@ +explorers \ No newline at end of file diff --git a/test/fixtures/typo/package.json b/test/fixtures/typo/package.json new file mode 100644 index 00000000..5193490e --- /dev/null +++ b/test/fixtures/typo/package.json @@ -0,0 +1,4 @@ +{ + "private": true, + "browserlist": [] +} diff --git a/test/fixtures/wrong1/package.json b/test/fixtures/wrong1/package.json new file mode 100644 index 00000000..adbe2f0e --- /dev/null +++ b/test/fixtures/wrong1/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "browserslist": { + "ie": 10 + } +} diff --git a/test/fixtures/wrong2/package.json b/test/fixtures/wrong2/package.json new file mode 100644 index 00000000..4d7debb2 --- /dev/null +++ b/test/fixtures/wrong2/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "browserslist": [ + 1 + ] +} diff --git a/test/global.test.ts b/test/global.test.ts new file mode 100644 index 00000000..a568e36f --- /dev/null +++ b/test/global.test.ts @@ -0,0 +1,50 @@ +import browserslist from '../' + +let originUsage = browserslist.usage + +beforeEach(() => { + browserslist.usage = { + global: { + 'ie 8': 1, + 'ie 9': 5, + 'ie 10': 10.1, + 'ie 11': 75 + } + } +}) + +afterEach(() => { + browserslist.usage = originUsage +}) + +it('selects browsers by popularity', () => { + expect(browserslist('> 10%')).toEqual(['ie 11', 'ie 10']) +}) + +it('selects popularity by more or equal', () => { + expect(browserslist('>= 5%')).toEqual(['ie 11', 'ie 10', 'ie 9']) +}) + +it('selects browsers by unpopularity', () => { + expect(browserslist('< 5%')).toEqual(['ie 8']) +}) + +it('selects unpopularity by less or equal', () => { + expect(browserslist('<= 5%')).toEqual(['ie 9', 'ie 8']) +}) + +it('accepts non-space query', () => { + expect(browserslist('>10%')).toEqual(['ie 11', 'ie 10']) +}) + +it('works with float', () => { + expect(browserslist('> 10.2%')).toEqual(['ie 11']) +}) + +it('works with float that has a leading dot', () => { + expect(browserslist('> .2%')).toEqual(['ie 11', 'ie 10', 'ie 9', 'ie 8']) +}) + +it('allows omission of the space between the > and the percentage', () => { + expect(browserslist('>10%')).toEqual(['ie 11', 'ie 10']) +}) diff --git a/test/last.test.ts b/test/last.test.ts new file mode 100644 index 00000000..a3aac422 --- /dev/null +++ b/test/last.test.ts @@ -0,0 +1,71 @@ +import browserslist from '../' + +let originData = browserslist.data + +beforeEach(() => { + browserslist.data = { + ie: { + name: 'ie', + released: ['9', '10', '11'], + versions: ['9', '10', '11'], + releaseDate: {}, + }, + edge: { + name: 'edge', + released: ['12'], + versions: ['12', '13'], + releaseDate: {}, + }, + chrome: { + name: 'chrome', + released: ['37', '38', '39'], + versions: ['37', '38', '39', '40'], + releaseDate: {}, + }, + bb: { + name: 'bb', + released: ['8'], + versions: ['8'], + releaseDate: {}, + }, + firefox: { + name: 'firefox', + released: [], + versions: [], + releaseDate: {}, + }, + android: { + name: 'android', + released: ['4.4', '4.4.3-4.4.4', '67'], + versions: [], + releaseDate: {}, + } + } +}) + +afterEach(() => { + browserslist.data = originData +}) + +it('selects versions of each browser', () => { + expect(browserslist('last 2 versions')).toEqual([ + 'android 67', 'bb 8', 'chrome 39', 'chrome 38', 'edge 12', 'ie 11', 'ie 10' + ]) +}) + +it('has special logic for android', () => { + expect(browserslist('last 31 versions')).toEqual([ + 'android 67', 'android 4.4.3-4.4.4', 'bb 8', 'chrome 39', 'chrome 38', + 'chrome 37', 'edge 12', 'ie 11', 'ie 10', 'ie 9' + ]) +}) + +it('supports pluralization', () => { + expect(browserslist('last 1 version')) + .toEqual(['android 67', 'bb 8', 'chrome 39', 'edge 12', 'ie 11']) +}) + +it('is case insensitive', () => { + expect(browserslist('Last 01 Version')) + .toEqual(['android 67', 'bb 8', 'chrome 39', 'edge 12', 'ie 11']) +}) diff --git a/test/main.test.ts b/test/main.test.ts new file mode 100644 index 00000000..b88e1e14 --- /dev/null +++ b/test/main.test.ts @@ -0,0 +1,228 @@ +import path from 'path' + +import browserslist from '../' + +let IE = path.join(__dirname, 'fixtures', 'explorers') +let FILE = path.join(__dirname, 'fixtures', 'dir', 'test.css') +let LINK = path.join(__dirname, 'fixtures', 'symlink') +let CONFIG = path.join(__dirname, 'fixtures', 'env-config', 'test.css') +let STRING = path.join(__dirname, 'fixtures', 'string', 'package.json') +let PACKAGE = path.join(__dirname, 'fixtures', 'env-package', 'package.json') + +let DEFAULTS = browserslist(browserslist.defaults) + +afterEach(() => { + process.env.NODE_ENV = 'test' + delete process.env.BROWSERSLIST + delete process.env.BROWSERSLIST_CONFIG + delete process.env.BROWSERSLIST_ENV +}) + +it('accepts array', () => { + expect(browserslist(['ie 11', 'ie 10'])).toEqual(['ie 11', 'ie 10']) +}) + +it('accepts string', () => { + expect(browserslist('ie 11, ie 10')).toEqual(['ie 11', 'ie 10']) +}) + +it('trims queries', () => { + expect(browserslist(['ie 11 ', ' ie 10'])).toEqual(['ie 11', 'ie 10']) + expect(browserslist('ie 11 , ie 10')).toEqual(['ie 11', 'ie 10']) +}) + +it('does not accept non-string and non-array parameters', () => { + // @ts-expect-error + expect(() => browserslist({})).toThrow(/an array or string. Got object/) +}) + +it('returns unique array', () => { + expect(browserslist('ie 10, ie 10')).toEqual(['ie 10']) +}) + +it('returns empty result', () => { + expect(browserslist([])).toEqual([]) + expect(browserslist('')).toEqual([]) +}) + +it('uses environment variable on empty request', () => { + process.env.BROWSERSLIST = 'ie 10' + expect(browserslist(null, { path: FILE })).toEqual(['ie 10']) +}) + +it('reads config on no variable', () => { + expect(browserslist(null, { path: FILE })).toEqual(['ie 11', 'ie 10']) +}) + +it('reads config by direct path', () => { + expect(browserslist(null, { config: IE })).toEqual(['ie 9', 'ie 8']) +}) + +it('reads package.json config by direct path', () => { + expect(browserslist(null, { config: PACKAGE, env: 'development' })) + .toEqual(['chrome 55', 'firefox 50']) +}) + +it('reads package.json config with one string', () => { + expect(browserslist(null, { config: STRING })).toEqual(['ie 9', 'ie 8']) +}) + +it('reads config by direct path in environment variable', () => { + process.env.BROWSERSLIST_CONFIG = IE + expect(browserslist(null, { path: FILE })).toEqual(['ie 9', 'ie 8']) +}) + +it('handles undefined stats and path correctly', () => { + let config = { stats: undefined, path: undefined } + expect(browserslist([], config)).toEqual([]) +}) + +it('throw a error on wrong path to config', () => { + expect(() => { + browserslist(null, { config: IE + '2' }) + }).toThrow(/Can't read/) +}) + +if (!/^win/.test(process.platform)) { + it('reads config by symlink', () => { + expect(browserslist(null, { config: LINK })).toEqual(['ie 9', 'ie 8']) + }) +} + +it('has default selection', () => { + expect(browserslist.defaults.length > 0).toBe(true) +}) + +it('uses default selection on empty request and no config', () => { + expect(browserslist()).toEqual(DEFAULTS) +}) + +it('uses current dir on undefined path', () => { + jest.spyOn(browserslist, 'loadConfig') + expect(browserslist(undefined, { path: undefined })).toEqual(DEFAULTS) + expect(browserslist.loadConfig).toHaveBeenCalledWith({ path: process.cwd() }) +}) + +it('uses default selection on disabled path', () => { + jest.spyOn(browserslist, 'loadConfig') + expect(browserslist(null, { path: false })).toEqual(DEFAULTS) + expect(browserslist.loadConfig).toHaveBeenCalledWith({ path: false }) +}) + +it('raises on unknow query', () => { + expect(() => { + browserslist('good') + }).toThrow('Unknown browser query `good`') + expect(() => { + browserslist('IE === 9') + }).toThrow('Unknown browser query `IE === 9`') +}) + +it('raises on missed version', () => { + expect(() => { + browserslist('IE') + }).toThrow('Specify versions in Browserslist query for browser IE') +}) + +it('sorts browsers', () => { + expect(browserslist(['ff 10', 'ie 11', 'ie 6', 'ie 10', 'ff 9'])) + .toEqual(['firefox 10', 'firefox 9', 'ie 11', 'ie 10', 'ie 6']) +}) + +it('sorts browsers with version ranges', () => { + expect(browserslist(['ios_saf 7', 'ie 11', 'ie 6', 'ios_saf 10'])) + .toEqual(['ie 11', 'ie 6', 'ios_saf 10.0-10.2', 'ios_saf 7.0-7.1']) +}) + +it('throws custom error', () => { + let error + try { + browserslist('wrong') + } catch (e) { + error = e + } + expect(error.name).toEqual('BrowserslistError') + expect(typeof error.stack).toEqual('string') +}) + +it('excludes queries', () => { + expect(browserslist(['ie >= 9', 'not ie 11', 'not ie 10', 'ie 10'])) + .toEqual(['ie 10', 'ie 9']) +}) + +it('excludes queries for 0 version', () => { + let browsers = browserslist(['> 1% in US', 'not last 2 and_chr versions']) + let android = browsers.filter(i => i.indexOf('and_chr ') !== -1) + expect(android).toHaveLength(0) +}) + +it('excludes queries for all version', () => { + let browsers = browserslist(['> 0% in US', 'not last 1 op_mini versions']) + let operaMini = browsers.filter(i => i.indexOf('op_mini ') !== -1) + expect(operaMini).toHaveLength(0) +}) + +it('has actual browsers list in docs', () => { + let names = browserslist(['last 1 version']).map(i => i.split(' ')[0]) + expect(names).toEqual([ + 'and_chr', 'and_ff', 'and_qq', 'and_uc', 'android', 'baidu', 'bb', 'chrome', + 'edge', 'firefox', 'ie', 'ie_mob', 'ios_saf', 'kaios', 'op_mini', 'op_mob', + 'opera', 'safari', 'samsung' + ]) +}) + +it('throws error on first exclude query', () => { + expect(() => { + browserslist(['not ie 11']) + }).toThrow('Write any browsers query (for instance, `defaults`) ' + + 'before `not ie 11`') +}) + +it('cleans 0 version', () => { + expect(browserslist(['> 0%', '> 0% in FI'])).not.toContain('and_chr 0') +}) + +it('uses env options to browserlist config', () => { + expect(browserslist(null, { path: CONFIG, env: 'production' })) + .toEqual(['ie 9', 'opera 41']) + + expect(browserslist(null, { path: CONFIG, env: 'staging' })) + .toEqual(['ie 9', 'opera 41']) + + expect(browserslist(null, { path: CONFIG, env: 'development' })) + .toEqual(['chrome 55', 'firefox 50']) + + expect(browserslist(null, { path: CONFIG, env: 'test' })) + .toEqual(['ie 11', 'ie 10']) +}) + +it('uses env options to package.json', () => { + expect(browserslist(null, { path: PACKAGE, env: 'production' })) + .toEqual(['ie 9', 'opera 41']) + + expect(browserslist(null, { path: PACKAGE, env: 'development' })) + .toEqual(['chrome 55', 'firefox 50']) + + expect(browserslist(null, { path: PACKAGE, env: 'test' })).toEqual(DEFAULTS) +}) + +it('uses NODE_ENV to get environment', () => { + process.env.NODE_ENV = 'test' + expect(browserslist(null, { path: CONFIG })).toEqual(['ie 11', 'ie 10']) +}) + +it('uses BROWSERSLIST_ENV to get environment', () => { + process.env.BROWSERSLIST_ENV = 'development' + expect(browserslist(null, { path: CONFIG })).toEqual([ + 'chrome 55', 'firefox 50' + ]) +}) + +it('uses production environment by default', () => { + delete process.env.NODE_ENV + expect(browserslist(null, { path: CONFIG })).toEqual(['ie 9', 'opera 41']) +}) + +it('correctly works with not and one-version browsers', () => { + expect(browserslist('last 1 Baidu version, not <2% in AT')).toHaveLength(0) +}) diff --git a/test/major.test.ts b/test/major.test.ts new file mode 100644 index 00000000..f1880ce4 --- /dev/null +++ b/test/major.test.ts @@ -0,0 +1,109 @@ +import browserslist from '../' + +let originData = browserslist.data + +beforeEach(() => { + browserslist.data = { + ie: { + name: 'ie', + released: ['9', '10', '11'], + versions: ['9', '10', '11'], + releaseDate: {}, + }, + edge: { + name: 'edge', + released: ['8', '9', '10', '11.0.1', '11.1', '12'], + versions: ['8', '9', '10', '11.0.1', '11.1', '12', '13'], + releaseDate: {}, + }, + chrome: { + name: 'chrome', + released: ['37', '38', '39'], + versions: ['37', '38', '39', '40'], + releaseDate: {}, + }, + bb: { + name: 'bb', + released: ['8', '10'], + versions: ['8'], + releaseDate: {}, + }, + firefox: { + name: 'firefox', + released: [], + versions: [], + releaseDate: {}, + }, + android: { + name: 'android', + released: ['4.4', '4.4.3-4.4.4', '39'], + versions: ['4.4', '4.4.3-4.4.4', '39'], + releaseDate: {}, + } + } +}) + +afterEach(() => { + browserslist.data = originData +}) + +it('selects versions of each browser', () => { + expect(browserslist('last 2 major versions')).toEqual([ + 'android 39', + 'bb 10', + 'bb 8', + 'chrome 39', + 'chrome 38', + 'edge 12', + 'edge 11.1', + 'edge 11.0.1', + 'ie 11', + 'ie 10' + ]) +}) + +it('supports pluralization', () => { + expect(browserslist('last 1 major version')).toEqual([ + 'android 39', 'bb 10', 'chrome 39', 'edge 12', 'ie 11' + ]) +}) + +it('is case insensitive', () => { + expect(browserslist('Last 01 MaJoR Version')).toEqual([ + 'android 39', 'bb 10', 'chrome 39', 'edge 12', 'ie 11' + ]) +}) + +it('selects versions of a single browser', () => { + expect(browserslist('last 2 edge major versions')).toEqual([ + 'edge 12', 'edge 11.1', 'edge 11.0.1' + ]) + expect(browserslist('last 1 bb major version')).toEqual([ + 'bb 10' + ]) + expect(browserslist('last 3 Chrome major versions')).toEqual([ + 'chrome 39', 'chrome 38', 'chrome 37' + ]) + expect(browserslist('last 2 android major versions')).toEqual([ + 'android 39' + ]) +}) + +it('supports non-sequential version numbers', () => { + expect(browserslist('last 2 bb major versions')).toEqual([ + 'bb 10', 'bb 8' + ]) +}) + +it('supports more versions than have been released', () => { + expect(browserslist('last 3 bb major versions')).toEqual([ + 'bb 10', 'bb 8' + ]) +}) + +it('supports Can I Use missing mobile versions', () => { + let opts = { mobileToDesktop: true } + expect(browserslist('last 2 android major versions', opts)).toEqual([ + 'android 39', 'android 38' + ]) +}) diff --git a/test/node.test.ts b/test/node.test.ts new file mode 100644 index 00000000..a8af674b --- /dev/null +++ b/test/node.test.ts @@ -0,0 +1,330 @@ +import browserslist from '../' + +it('selects Node.js version', () => { + expect(browserslist('node 7.5.0')).toEqual(['node 7.5.0']) +}) + +it('supports case insensitive Node.js name', () => { + expect(browserslist('Node 7.5.0')).toEqual(['node 7.5.0']) +}) + +it('throws on unknown Node.js version', () => { + expect(() => { + browserslist('node 3') + }).toThrow(/Unknown version/) +}) + +it('throws on malformed Node.js version', () => { + expect(() => { + browserslist('node 8.a') + }).toThrow(/Unknown/) + expect(() => { + browserslist('node 8.8.8.8') + }).toThrow(/Unknown/) + expect(() => { + browserslist('node 8.01') + }).toThrow(/Unknown/) + expect(() => { + browserslist('node 6 - 8.a') + }).toThrow(/Unknown/) + expect(() => { + browserslist('node 6.6.6.6 - 8') + }).toThrow(/Unknown/) + expect(() => { + browserslist('node 6 - 8.01') + }).toThrow(/Unknown/) +}) + +it('return empty array on unknown Node.js version with special flag', () => { + expect(browserslist('node 3', { ignoreUnknownVersions: true })).toEqual([]) +}) + +it('supports selection of Node.js version by major.minor query', () => { + expect(browserslist('node 5.1')).toEqual(['node 5.1.0']) +}) + +it('supports selection of Node.js version by major version only', () => { + expect(browserslist('node 5')).toEqual(['node 5.12.0']) +}) + +it('selects maintained Node.js versions', () => { + expect(Array.isArray(browserslist('maintained node versions'))).toBe(true) +}) + +it('supports case insensitive query for maintained Node.js versions', () => { + expect(Array.isArray(browserslist('maintained Node versions'))).toBe(true) +}) + +it('supports current node version', () => { + let versions = browserslist('current node') + expect(versions).toHaveLength(1) + expect(versions[0]).toMatch(/node \d+\.\d+\.\d+/) +}) + +it('supports comparison operator', () => { + expect(browserslist('node <= 5')).toEqual([ + 'node 5.0.0', + + 'node 4.9.0', + 'node 4.8.0', + 'node 4.7.0', + 'node 4.6.0', + 'node 4.5.0', + 'node 4.4.0', + 'node 4.3.0', + 'node 4.2.0', + 'node 4.1.0', + 'node 4.0.0', + + 'node 0.12.0', + 'node 0.11.0', + 'node 0.10.0', + 'node 0.9.0', + 'node 0.8.0', + 'node 0.7.0', + 'node 0.6.0', + 'node 0.5.0', + 'node 0.4.0', + 'node 0.3.0', + 'node 0.2.0' + ]) + + expect(browserslist('node < 5')).toEqual([ + 'node 4.9.0', + 'node 4.8.0', + 'node 4.7.0', + 'node 4.6.0', + 'node 4.5.0', + 'node 4.4.0', + 'node 4.3.0', + 'node 4.2.0', + 'node 4.1.0', + 'node 4.0.0', + + 'node 0.12.0', + 'node 0.11.0', + 'node 0.10.0', + 'node 0.9.0', + 'node 0.8.0', + 'node 0.7.0', + 'node 0.6.0', + 'node 0.5.0', + 'node 0.4.0', + 'node 0.3.0', + 'node 0.2.0' + ]) + + expect(browserslist('Node <= 5')).toHaveLength(22) + + expect(browserslist('node >= 9')).toEqual(expect.arrayContaining([ + 'node 9.0.0', + 'node 9.1.0', + 'node 9.2.0', + 'node 9.3.0', + 'node 9.4.0', + 'node 9.5.0', + 'node 9.6.0', + 'node 9.7.0', + 'node 9.8.0', + 'node 9.9.0', + 'node 9.10.0', + 'node 9.11.0', + + 'node 10.0.0', + 'node 10.1.0', + 'node 10.2.0', + 'node 10.3.0', + 'node 10.4.0', + 'node 10.5.0', + 'node 10.6.0', + 'node 10.7.0', + 'node 10.8.0', + 'node 10.9.0', + 'node 10.10.0', + 'node 10.11.0', + 'node 10.12.0', + 'node 10.13.0', + 'node 10.14.0', + 'node 10.15.0', + + 'node 11.0.0', + 'node 11.1.0', + 'node 11.2.0', + 'node 11.3.0', + 'node 11.4.0', + 'node 11.5.0', + 'node 11.6.0', + 'node 11.7.0', + 'node 11.8.0', + 'node 11.9.0', + 'node 11.10.0' + ])) + + expect(browserslist('node > 9')).toEqual(expect.arrayContaining([ + 'node 9.1.0', + 'node 9.2.0', + 'node 9.3.0', + 'node 9.4.0', + 'node 9.5.0', + 'node 9.6.0', + 'node 9.7.0', + 'node 9.8.0', + 'node 9.9.0', + 'node 9.10.0', + 'node 9.11.0', + + 'node 10.0.0', + 'node 10.1.0', + 'node 10.2.0', + 'node 10.3.0', + 'node 10.4.0', + 'node 10.5.0', + 'node 10.6.0', + 'node 10.7.0', + 'node 10.8.0', + 'node 10.9.0', + 'node 10.10.0', + 'node 10.11.0', + 'node 10.12.0', + 'node 10.13.0', + 'node 10.14.0', + 'node 10.15.0', + + 'node 11.0.0', + 'node 11.1.0', + 'node 11.2.0', + 'node 11.3.0', + 'node 11.4.0', + 'node 11.5.0', + 'node 11.6.0', + 'node 11.7.0', + 'node 11.8.0', + 'node 11.9.0', + 'node 11.10.0' + ])) +}) + +it('supports range selection', () => { + expect(browserslist('node 4-6')).toEqual([ + 'node 6.17.0', + 'node 6.16.0', + 'node 6.15.0', + 'node 6.14.0', + 'node 6.13.0', + 'node 6.12.0', + 'node 6.11.0', + 'node 6.10.0', + 'node 6.9.0', + 'node 6.8.0', + 'node 6.7.0', + 'node 6.6.0', + 'node 6.5.0', + 'node 6.4.0', + 'node 6.3.0', + 'node 6.2.0', + 'node 6.1.0', + 'node 6.0.0', + + 'node 5.12.0', + 'node 5.11.0', + 'node 5.10.0', + 'node 5.9.0', + 'node 5.8.0', + 'node 5.7.0', + 'node 5.6.0', + 'node 5.5.0', + 'node 5.4.0', + 'node 5.3.0', + 'node 5.2.0', + 'node 5.1.0', + 'node 5.0.0', + + 'node 4.9.0', + 'node 4.8.0', + 'node 4.7.0', + 'node 4.6.0', + 'node 4.5.0', + 'node 4.4.0', + 'node 4.3.0', + 'node 4.2.0', + 'node 4.1.0', + 'node 4.0.0' + ]) + + expect(browserslist('node 4-6.0.0')).toEqual([ + 'node 6.0.0', + + 'node 5.12.0', + 'node 5.11.0', + 'node 5.10.0', + 'node 5.9.0', + 'node 5.8.0', + 'node 5.7.0', + 'node 5.6.0', + 'node 5.5.0', + 'node 5.4.0', + 'node 5.3.0', + 'node 5.2.0', + 'node 5.1.0', + 'node 5.0.0', + + 'node 4.9.0', + 'node 4.8.0', + 'node 4.7.0', + 'node 4.6.0', + 'node 4.5.0', + 'node 4.4.0', + 'node 4.3.0', + 'node 4.2.0', + 'node 4.1.0', + 'node 4.0.0' + ]) + + expect(browserslist('node 6.5-7.5')).toEqual([ + 'node 7.5.0', + 'node 7.4.0', + 'node 7.3.0', + 'node 7.2.0', + 'node 7.1.0', + 'node 7.0.0', + + 'node 6.17.0', + 'node 6.16.0', + 'node 6.15.0', + 'node 6.14.0', + 'node 6.13.0', + 'node 6.12.0', + 'node 6.11.0', + 'node 6.10.0', + 'node 6.9.0', + 'node 6.8.0', + 'node 6.7.0', + 'node 6.6.0', + 'node 6.5.0' + ]) + + expect(browserslist('node 6.6.4-7.7.5')).toEqual([ + 'node 7.7.0', + 'node 7.6.0', + 'node 7.5.0', + 'node 7.4.0', + 'node 7.3.0', + 'node 7.2.0', + 'node 7.1.0', + 'node 7.0.0', + + 'node 6.17.0', + 'node 6.16.0', + 'node 6.15.0', + 'node 6.14.0', + 'node 6.13.0', + 'node 6.12.0', + 'node 6.11.0', + 'node 6.10.0', + 'node 6.9.0', + 'node 6.8.0', + 'node 6.7.0', + // include 6.6.0 as patch versions are ignored + 'node 6.6.0' + ]) +}) diff --git a/test/opera.test.ts b/test/opera.test.ts new file mode 100644 index 00000000..c2d5caf6 --- /dev/null +++ b/test/opera.test.ts @@ -0,0 +1,9 @@ +import browserslist from '../' + +it('selects opera mini', () => { + expect(browserslist('op_mini all')).toEqual(['op_mini all']) +}) + +it('selects opera mini case insensitive', () => { + expect(browserslist('OperaMini All')).toEqual(['op_mini all']) +}) diff --git a/test/parse.test.js b/test/parse.test.js new file mode 100644 index 00000000..061b3a05 --- /dev/null +++ b/test/parse.test.js @@ -0,0 +1,33 @@ +let { test } = require('uvu') +let { equal } = require('uvu/assert') + +delete require.cache[require.resolve('..')] +let browserslist = require('..') + +test('parses queries to AST', () => { + equal(browserslist.parse('last 2 version and >1%, not ie 11'), [ + { + query: 'last 2 version', + type: 'last_versions', + versions: '2', + compose: 'or' + }, + { + query: '>1%', + type: 'popularity', + sign: '>', + popularity: '1', + compose: 'and' + }, + { + query: 'not ie 11', + not: true, + type: 'browser_version', + browser: 'ie', + version: '11', + compose: 'or' + } + ]) +}) + +test.run() diff --git a/test/phantomjs.test.ts b/test/phantomjs.test.ts new file mode 100644 index 00000000..09cf1d70 --- /dev/null +++ b/test/phantomjs.test.ts @@ -0,0 +1,11 @@ +import browserslist from '../' + +it('converts PhantomJS to Safari', () => { + expect(browserslist('phantomjs 2.1')).toEqual(['safari 6']) + expect(browserslist('phantomjs 1.9')).toEqual(['safari 5']) +}) + +it('supports case insensitive PhantomJS name', () => { + expect(browserslist('PhantomJS 2.1')).toEqual(['safari 6']) + expect(browserslist('PhantomJS 1.9')).toEqual(['safari 5']) +}) diff --git a/test/range.test.ts b/test/range.test.ts new file mode 100644 index 00000000..3d1cf098 --- /dev/null +++ b/test/range.test.ts @@ -0,0 +1,44 @@ +import browserslist from '../' + +let originData = browserslist.data + +beforeEach(() => { + browserslist.data = { + ie: { + name: 'ie', + released: ['8', '9', '10', '11'], + versions: ['8', '9', '10', '11'], + releaseDate: {}, + }, + android: { + name: 'android', + released: ['4.2-4.3', '4.4', '4.4.3-4.4.4', '37'], + versions: ['4.2-4.3', '4.4', '4.4.3-4.4.4', '37'], + releaseDate: {}, + } + } +}) + +afterEach(() => { + browserslist.data = originData +}) + +it('selects a range of browsers', () => { + expect(browserslist('ie 8-10')).toEqual(['ie 10', 'ie 9', 'ie 8']) +}) + +it('selects versions with query out of range', () => { + expect(browserslist('ie 1-12')).toEqual(['ie 11', 'ie 10', 'ie 9', 'ie 8']) +}) + +it('selects a range of android browsers', () => { + expect(browserslist('android 4.3-37')).toEqual([ + 'android 37', 'android 4.4.3-4.4.4', 'android 4.4', 'android 4.2-4.3' + ]) +}) + +it('raises on an unknown browser', () => { + expect(() => { + browserslist('unknown 4-7') + }).toThrow('Unknown browser unknown') +}) diff --git a/test/release.test.ts b/test/release.test.ts new file mode 100644 index 00000000..0eac3af5 --- /dev/null +++ b/test/release.test.ts @@ -0,0 +1,139 @@ +import fs from 'fs' + +import browserslist from '../' + +let originData = browserslist.data + +function createDate (monthBack: number) { + let releaseTime = Date.now() - monthBack * 30 * 24 * 60 * 60 * 1000 + return releaseTime / 1000 +} + +let youngerSixMonthsData = { + ie: { + name: 'ie', + released: ['9', '10', '11'], + versions: ['9', '10', '11'], + releaseDate: { + 9: createDate(14), + 10: createDate(8), + 11: createDate(7) + } + }, + edge: { + name: 'edge', + released: ['14', '15', '16', '17', '18'], + versions: ['14', '15', '16', '17', '18'], + releaseDate: { + 14: createDate(8), + 15: createDate(6), + 16: createDate(5), + 17: createDate(4), + 18: null + } + }, + bb: { + name: 'bb', + released: [], + versions: [], + releaseDate: {} + } +} + +let olderSixMonthsData = { + ie: { + name: 'ie', + released: ['9', '10', '11'], + versions: ['9', '10', '11'], + releaseDate: { + 9: createDate(7), + 10: createDate(8), + 11: createDate(10) + } + }, + edge: { + name: 'edge', + released: ['14', '15', '16', '17', '18'], + versions: ['14', '15', '16', '17', '18'], + releaseDate: { + 14: createDate(9), + 15: createDate(8), + 16: createDate(12), + 17: createDate(7), + 18: null + } + }, + bb: { + name: 'bb', + released: [], + versions: [], + releaseDate: {} + } +} + +function findPackage (text: string | Buffer | URL) { + return /package.json/.test(text.toString()) +} + +const mockStatSync = (() => { + return { + isFile: () => true + } +}) as unknown as typeof fs.statSync + +let originSxists = fs.existsSync +let originStat = fs.statSync + +beforeEach(() => { + jest.spyOn(console, 'warn').mockImplementation(() => true) +}) + +afterEach(() => { + jest.clearAllMocks() + fs.existsSync = originSxists + fs.statSync = originStat + browserslist.clearCaches() + delete process.env.BROWSERSLIST_IGNORE_OLD_DATA +}) + +afterAll(() => { + browserslist.data = originData +}) + +it('does not print warning', () => { + browserslist.data = youngerSixMonthsData + browserslist('last 2 versions') + expect(console.warn).toHaveBeenCalledTimes(0) +}) + +it('shows warning', () => { + browserslist.data = olderSixMonthsData + fs.existsSync = findPackage + fs.statSync = mockStatSync + browserslist('last 2 versions') + expect(console.warn).toHaveBeenCalledWith( + 'Browserslist: caniuse-lite is outdated. Please run:\n' + + 'npx browserslist@latest --update-db\n' + + '\n' + + 'Why you should do it regularly:\n' + + 'https://github.com/browserslist/browserslist#browsers-data-updating' + ) +}) + +it('hides warning on request', () => { + process.env.BROWSERSLIST_IGNORE_OLD_DATA = 'true' + browserslist.data = olderSixMonthsData + fs.existsSync = findPackage + fs.statSync = mockStatSync + browserslist('last 2 versions') + expect(console.warn).toHaveBeenCalledTimes(0) +}) + +it('shows warning only once', () => { + browserslist.data = olderSixMonthsData + fs.existsSync = findPackage + fs.statSync = mockStatSync + browserslist('last 2 versions') + browserslist('last 2 versions') + expect(console.warn).toHaveBeenCalledTimes(1) +}) diff --git a/test/shareable-stats.test.ts b/test/shareable-stats.test.ts new file mode 100644 index 00000000..717beb48 --- /dev/null +++ b/test/shareable-stats.test.ts @@ -0,0 +1,142 @@ +import { ensureDir, writeFile, remove } from 'fs-extra' +import { join } from 'path' + +import browserslist, { StatsOptions } from '../' + +let STATS = join(__dirname, 'fixtures', 'browserslist-stats.json') +let CUSTOM_STATS = join(__dirname, 'fixtures', 'stats.json') + +let mocked: string[] = [] + +async function mock (name: string, index: undefined | string[], stats: StatsOptions) { + let dir = join(__dirname, '..', 'node_modules', name) + mocked.push(dir) + await ensureDir(dir) + if (index) { + let content = 'module.exports = ' + JSON.stringify(index) + await writeFile(join(dir, 'index.js'), content) + } + if (stats) { + let statsContent = JSON.stringify(stats) + await writeFile(join(dir, 'browserslist-stats.json'), statsContent) + } +} + +afterEach(async () => { + await Promise.all(mocked.map(dir => remove(dir))) + mocked = [] + delete process.env.BROWSERSLIST_STATS +}) + +it('takes stats from shareable config', async () => { + await mock( + 'browserslist-config-test1', + undefined, + { dataByBrowser: { chrome: { 55: 4, 56: 6 } } } + ) + expect( + browserslist('> 5% in browserslist-config-test1 stats') + ).toEqual(['chrome 56']) +}) + +it('takes stats and queries from shareable config', async () => { + await mock( + 'browserslist-config-test2', + ['> 1% in browserslist-config-test2 stats'], + { ie: { 8: 1, 11: 2 } } + ) + expect( + browserslist('extends browserslist-config-test2') + ).toEqual(['ie 11']) +}) + +it('works with non-prefixed stats with dangerousExtend', async () => { + await mock('pkg', undefined, { chrome: { 78: 6 } }) + expect( + browserslist(['> 5% in pkg stats'], { dangerousExtend: true }) + ).toEqual(['chrome 78']) +}) + +it('handles scoped stats with a dot in the name', async () => { + await mock( + '@example.com/browserslist-config', + undefined, + { ie: { 8: 5, 11: 4 } } + ) + expect( + browserslist(['< 5% in @example.com/browserslist-config stats']) + ).toEqual(['ie 11']) +}) + +it('handles file in scoped stats', async () => { + await mock( + '@scope/browserslist-config/ie', + undefined, + { ie: { 8: 2, 11: 5 } } + ) + expect( + browserslist(['>= 5% in @scope/browserslist-config/ie stats']) + ).toEqual(['ie 11']) +}) + +it('handles file-less scoped stats', async () => { + await mock('@scope/browserslist-config', undefined, { ie: { 8: 6, 11: 5 } }) + expect( + browserslist(['<= 5% in @scope/browserslist-config stats']) + ).toEqual(['ie 11']) +}) + +it('handles scoped stats', async () => { + await mock( + '@scope/browserslist-config-test', + undefined, + { ie: { 8: 2, 11: 6 } } + ) + expect( + browserslist(['> 5% in @scope/browserslist-config-test stats']) + ).toEqual(['ie 11']) +}) + +it('ignores passed stats', async () => { + expect( + () => + browserslist('> 5% in browserslist-config-test3 stats', { stats: STATS }) + ).toThrow(/Cannot resolve module/) +}) + +it('ignores environment variable stats', async () => { + process.env.BROWSERSLIST_STATS = CUSTOM_STATS + expect( + () => browserslist('> 5% in browserslist-config-test4 stats') + ).toThrow(/Cannot resolve module/) +}) + +it('throws when stats does not have browserslist-config- prefix', () => { + expect(() => { + browserslist(['> 5% in thing-without-prefix stats']) + }).toThrow(/needs `browserslist-config-` prefix/) +}) + +it('throws when stats has dot in path', () => { + expect(() => { + browserslist(['> 5% in browserslist-config-package/../something stats']) + }).toThrow(/`.` not allowed/) +}) + +it('throws when stats has node_modules in path', () => { + expect(() => { + browserslist(['> 5% in browserslist-config-test/node_modules/a stats']) + }).toThrow(/`node_modules` not allowed/) +}) + +it('throw if stats undefined', async () => { + await mock( + 'browserslist-config-undefined', + undefined, + // @ts-expect-error + { dataByBrowser: 'not object' } + ) + expect( + () => browserslist(['> 5% in browserslist-config-undefined stats']) + ).toThrow(/statistics was not provided/) +}) diff --git a/test/since.test.ts b/test/since.test.ts new file mode 100644 index 00000000..22446a38 --- /dev/null +++ b/test/since.test.ts @@ -0,0 +1,44 @@ +import browserslist from '../' + +let originData = browserslist.data +let originWarn = console.warn + +beforeEach(() => { + browserslist.data = { + ie: { + name: 'ie', + versions: ['1', '2', '3'], + released: [], + releaseDate: { + 1: 0, // Thu, 01 Jan 1970 00:00:00 +0000 + 2: 1483228800, // Sun, 01 Jan 2017 00:00:00 +0000 + 3: 1485907200 // Wed, 01 Feb 2017 00:00:00 +0000 + } + } + } + console.warn = function (...args: any) { + if (args[0].includes('--update-db')) return + originWarn.apply(this, args) + } +}) + +afterEach(() => { + browserslist.data = originData + console.warn = originWarn +}) + +it('selects versions released on year boundaries', () => { + expect(browserslist('since 1970')).toEqual(['ie 3', 'ie 2', 'ie 1']) +}) + +it('is case insensitive', () => { + expect(browserslist('Since 1970')).toEqual(['ie 3', 'ie 2', 'ie 1']) +}) + +it('selects versions released on year and month boundaries', () => { + expect(browserslist('since 2017-01')).toEqual(['ie 3', 'ie 2']) +}) + +it('selects versions released on date boundaries', () => { + expect(browserslist('since 2017-02-01')).toEqual(['ie 3']) +}) diff --git a/test/unreleased.test.ts b/test/unreleased.test.ts new file mode 100644 index 00000000..b90bcb43 --- /dev/null +++ b/test/unreleased.test.ts @@ -0,0 +1,43 @@ +import browserslist from '../' + +let originData = browserslist.data + +beforeEach(() => { + browserslist.data = { + ie: { + name: 'ie', + released: ['9', '10', '11'], + versions: ['9', '10', '11'], + releaseDate: {}, + }, + edge: { + name: 'edge', + released: ['12'], + versions: ['12', '13'], + releaseDate: {}, + }, + chrome: { + name: 'chrome', + released: ['37', '38', '39'], + versions: ['37', '38', '39', '40'], + releaseDate: {}, + } + } +}) + +afterEach(() => { + browserslist.data = originData +}) + +it('selects unreleased versions of each browser', () => { + expect(browserslist('unreleased versions')).toEqual(['chrome 40', 'edge 13']) +}) + +it('selects unreleased versions of specific browser', () => { + expect(browserslist('unreleased Edge versions')).toEqual(['edge 13']) +}) + +it('is case insensitive', () => { + expect(browserslist('Unreleased Versions')).toEqual(['chrome 40', 'edge 13']) + expect(browserslist('Unreleased Chrome versions')).toEqual(['chrome 40']) +}) diff --git a/test/versions.test.ts b/test/versions.test.ts new file mode 100644 index 00000000..1cdbd19e --- /dev/null +++ b/test/versions.test.ts @@ -0,0 +1,69 @@ +import browserslist from '../' + +let originData = browserslist.data + +beforeEach(() => { + browserslist.data = { + ie: { + name: 'ie', + released: ['8', '9', '10', '11'], + versions: ['8', '9', '10', '11'], + releaseDate: {}, + }, + android: { + name: 'android', + released: ['4.2-4.3'], + versions: ['4.2-4.3'], + releaseDate: {}, + }, + and_qq: { + name: 'and_qq', + released: ['1.2'], + versions: ['1.2'], + releaseDate: {}, + } + } +}) + +afterEach(() => { + browserslist.data = originData +}) + +it('selects browser by more sign', () => { + expect(browserslist('ie > 9')).toEqual(['ie 11', 'ie 10']) +}) + +it('selects browser by more or equal sign', () => { + expect(browserslist('ie >= 10')).toEqual(['ie 11', 'ie 10']) +}) + +it('selects browser by less sign', () => { + expect(browserslist('ie < 10')).toEqual(['ie 9', 'ie 8']) +}) + +it('selects browser by less or equal sign', () => { + expect(browserslist('ie <= 9')).toEqual(['ie 9', 'ie 8']) +}) + +it('uses case insensitive aliases', () => { + expect(browserslist('Explorer > 10')).toEqual(['ie 11']) +}) + +it('raises on unknown browser', () => { + expect(() => { + browserslist('unknow > 10') + }).toThrow('Unknown browser unknow') +}) + +it('works with joined versions from Can I Use', () => { + expect(browserslist('android >= 4.2')).toEqual(['android 4.2-4.3']) + expect(browserslist('android >= 4.3')).toEqual(['android 4.2-4.3']) +}) + +it('allows omission of the space around the operator', () => { + expect(browserslist('ie<=9')).toEqual(['ie 9', 'ie 8']) +}) + +it('selects browser with one version', () => { + expect(browserslist('and_qq > 0')).toEqual(['and_qq 1.2']) +}) diff --git a/test/webpack.test.ts b/test/webpack.test.ts new file mode 100644 index 00000000..4cbd88fb --- /dev/null +++ b/test/webpack.test.ts @@ -0,0 +1,50 @@ +jest.doMock('path', () => ({ })) +jest.doMock('../node.js', () => require('../browser')) + +import browserslist from '../' + +it('works without path', () => { + expect(browserslist(undefined)).toEqual(browserslist('defaults')) +}) + +it('works with input file without path', () => { + expect(browserslist(undefined, { path: './fixtures/rc/test.css' })) + .toEqual(browserslist('defaults')) +}) + +it('throws on sharable config', () => { + expect(() => { + browserslist('extends browserslist-config-test') + }).toThrow(/Sharable configs are not supported/) +}) + +it('throws on country statistics', () => { + expect(() => { + browserslist('> 1% in US') + }).toThrow(/Country statistics are not supported/) +}) + +it('throws on feature statistics', () => { + expect(() => { + browserslist('supports rtcpeerconnection') + }).toThrow(/Supports queries are not available/) +}) + +it('throws on config path', () => { + expect(() => { + browserslist(undefined, { config: './config/.browserslistrc' }) + }).toThrow(/Browserslist config are not supported/) +}) + +it('has config methods', () => { + expect(browserslist.clearCaches()).toBeUndefined() + expect(browserslist.parseConfig('')).toBeUndefined() + expect(browserslist.readConfig('')).toBeUndefined() + expect(browserslist.findConfig()).toBeUndefined() +}) + +it('supports current node version', () => { + let versions = browserslist('current node') + expect(versions).toHaveLength(1) + expect(versions[0]).toMatch(/node \d+\.\d+\.\d+/) +}) diff --git a/test/years.test.ts b/test/years.test.ts new file mode 100644 index 00000000..b913818a --- /dev/null +++ b/test/years.test.ts @@ -0,0 +1,72 @@ +import browserslist from '../' + +let RealDate = Date +let originData = browserslist.data +let originWarn = console.warn + +function mockDate (iso: string): void { + global.Date = function (this: any) { + Object.getPrototypeOf(RealDate.prototype).constructor.call(this) + return new RealDate(iso) + } as unknown as DateConstructor + global.Date.now = function () { + return (new RealDate(iso)).valueOf() + } +} + +beforeEach(() => { + mockDate('2018-01-01T00:00:00z') + browserslist.data = { + ie: { + name: 'ie', + versions: [], + released: ['9', '10', '11'], + releaseDate: { + 9: 1300060800, // 2011-03-14T00:00:00.000Z + 10: 1346716800, // 2012-09-04T00:00:00.000Z + 11: 1381968000 // 2013-10-17T00:00:00.000Z + } + }, + edge: { + name: 'edge', + versions: [], + released: ['12', '13', '14', '15', '16'], + releaseDate: { + 12: 1438128000, // 2015-07-29T00:00:00.000Z + 13: 1447286400, // 2015-11-12T00:00:00.000Z + 14: 1470096000, // 2016-08-02T00:00:00.000Z + 15: 1491868800, // 2017-04-11T00:00:00.000Z + 16: 1508198400 // 2017-10-17T00:00:00.000Z + } + } + } + console.warn = function (...args: any) { + if (/(yarn|npm) upgrade/.test(args[0])) return + originWarn.apply(this, args) + } +}) + +afterEach(() => { + global.Date = RealDate + browserslist.data = originData +}) + +it('selects versions released within last X years', () => { + expect(browserslist('last 2 years')).toEqual([ + 'edge 16', 'edge 15', 'edge 14' + ]) +}) + +it('selects versions released within last year', () => { + expect(browserslist('last 1 year')).toEqual(['edge 16', 'edge 15']) +}) + +it('supports year fraction', () => { + expect(browserslist('last 1.4 years')).toEqual(['edge 16', 'edge 15']) +}) + +it('is case insensitive', () => { + expect(browserslist('Last 5 years')).toEqual([ + 'edge 16', 'edge 15', 'edge 14', 'edge 13', 'edge 12', 'ie 11' + ]) +}) diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..9d5267d9 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "target": "es2018", + "module": "commonjs", + "allowJs": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..24b800ee --- /dev/null +++ b/yarn.lock @@ -0,0 +1,8232 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" + integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.1" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.1" + "@babel/parser" "^7.12.3" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.12.1", "@babel/generator@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de" + integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A== + dependencies: + "@babel/types" "^7.12.5" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-member-expression-to-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz#fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c" + integrity sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-module-imports@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" + integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== + dependencies: + "@babel/types" "^7.12.5" + +"@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" + integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-replace-supers@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9" + integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.12.1" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" + +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/helpers@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.12.3", "@babel/parser@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0" + integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/template@^7.10.4", "@babel/template@^7.3.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.5.tgz#78a0c68c8e8a35e4cacfd31db8bb303d5606f095" + integrity sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.12.5" + "@babel/types" "^7.12.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.12.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.6.tgz#ae0e55ef1cce1fbc881cd26f8234eb3e657edc96" + integrity sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@jest/console@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb" + integrity sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + jest-message-util "^25.5.0" + jest-util "^25.5.0" + slash "^3.0.0" + +"@jest/core@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4" + integrity sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA== + dependencies: + "@jest/console" "^25.5.0" + "@jest/reporters" "^25.5.1" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^25.5.0" + jest-config "^25.5.4" + jest-haste-map "^25.5.1" + jest-message-util "^25.5.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-resolve-dependencies "^25.5.4" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + jest-watcher "^25.5.0" + micromatch "^4.0.2" + p-each-series "^2.1.0" + realpath-native "^2.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37" + integrity sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA== + dependencies: + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + +"@jest/fake-timers@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185" + integrity sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ== + dependencies: + "@jest/types" "^25.5.0" + jest-message-util "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + lolex "^5.0.0" + +"@jest/globals@^25.5.2": + version "25.5.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88" + integrity sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/types" "^25.5.0" + expect "^25.5.0" + +"@jest/reporters@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.5.1.tgz#cb686bcc680f664c2dbaf7ed873e93aa6811538b" + integrity sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^25.5.1" + jest-resolve "^25.5.1" + jest-util "^25.5.0" + jest-worker "^25.5.0" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^3.1.0" + terminal-link "^2.0.0" + v8-to-istanbul "^4.1.3" + optionalDependencies: + node-notifier "^6.0.0" + +"@jest/source-map@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b" + integrity sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c" + integrity sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A== + dependencies: + "@jest/console" "^25.5.0" + "@jest/types" "^25.5.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737" + integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA== + dependencies: + "@jest/test-result" "^25.5.0" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" + +"@jest/transform@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3" + integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^25.5.0" + babel-plugin-istanbul "^6.0.0" + chalk "^3.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-regex-util "^25.2.6" + jest-util "^25.5.0" + micromatch "^4.0.2" + pirates "^4.0.1" + realpath-native "^2.0.0" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" + integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@logux/eslint-config@^35.0.4": + version "35.0.4" + resolved "https://registry.yarnpkg.com/@logux/eslint-config/-/eslint-config-35.0.4.tgz#2fc1b5ea8b12df1c02f25559b6e21f2f5c98c685" + integrity sha512-gpfIOySP7h2Te8zta3Mh0jRiP1hAHLVDZ0sOG1fzJmAm8bxScq2Itlb0rTDxxDgHTmP1G5kH4PKvwHU47JCtVA== + dependencies: + globals "^12.3.0" + +"@logux/sharec-config@^0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@logux/sharec-config/-/sharec-config-0.5.7.tgz#bd1064402ef100d7b073067eb433e826c8fa9b48" + integrity sha512-rY+OTrZtsEFlu2ardrowy3PFOr2XXIZXCcCDOLHD3wIlb4B8fVNOiAwH/g89CTqol4iK2+rEpkN/bAiQ1IYdtg== + dependencies: + sharec "^2.14.0-beta" + +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@sinonjs/commons@^1.7.0": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" + integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== + dependencies: + type-detect "4.0.8" + +"@size-limit/file@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-4.7.0.tgz#a30567bc707a18cc7d9b589359a4d5d161a8bb64" + integrity sha512-0JjN8wJ42WfEJ4xfngVw/EUkMGVDjDUpL9v5Hmrx0PneJQDC3gpIY7tUOF7HKGNGHW941dxAuqZQw5dG49HsgQ== + dependencies: + semver "7.3.2" + +"@size-limit/preset-small-lib@^4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@size-limit/preset-small-lib/-/preset-small-lib-4.7.0.tgz#cd10ea107357052c54e914e495fce2eea04c13f1" + integrity sha512-pHs7BPU/jYS7jKJZx3yuleIHwP/elvPREPFcdGPed1k/0I52jWsOxMn4r3qV06fp0UMy7Fx94wRdveu2H2oH7w== + dependencies: + "@size-limit/file" "4.7.0" + "@size-limit/webpack" "4.7.0" + +"@size-limit/webpack@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@size-limit/webpack/-/webpack-4.7.0.tgz#de6458ca31a6ce75d8148fb4f9df79dc4c803c40" + integrity sha512-+N+X0HWg5F9NDpbUZ/xDQWAx+dDXQ59SiPWhCo7mpNjp8ttfh99QvQXmiyCeK1WfX6LN1EACVHNpkxShkw4/yQ== + dependencies: + css-loader "^5.0.0" + escape-string-regexp "^4.0.0" + file-loader "^6.2.0" + mkdirp "^1.0.4" + nanoid "^3.1.16" + optimize-css-assets-webpack-plugin "^5.0.4" + pnp-webpack-plugin "^1.6.4" + rimraf "^3.0.2" + style-loader "^2.0.0" + webpack "^4.44.1" + webpack-bundle-analyzer "^3.9.0" + +"@types/babel__core@^7.1.7": + version "7.1.12" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" + integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.3.tgz#b8aaeba0a45caca7b56a5de9459872dde3727214" + integrity sha512-uCoznIPDmnickEi6D0v11SBpW0OuVqHJCa7syXqQHy5uktSCreIlt0iglsCnmvz8yCb38hGcWeseA8cWJSwv5Q== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.15.tgz#db9e4238931eb69ef8aab0ad6523d4d4caa39d03" + integrity sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A== + dependencies: + "@babel/types" "^7.3.0" + +"@types/cross-spawn@^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/cross-spawn/-/cross-spawn-6.0.2.tgz#168309de311cd30a2b8ae720de6475c2fbf33ac7" + integrity sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw== + dependencies: + "@types/node" "*" + +"@types/fs-extra@^9.0.1": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.4.tgz#12553138cf0438db9a31cdc8b0a3aa9332eb67aa" + integrity sha512-50GO5ez44lxK5MDH90DYHFFfqxH7+fTqEEnvguQRzJ/tY9qFrMSHLiYHite+F3SNmf7+LHC1eMXojuD+E3Qcyg== + dependencies: + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz#4ff9f641a7c6d1a3508ff88bc3141b152772e753" + integrity sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^26.0.14": + version "26.0.15" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.15.tgz#12e02c0372ad0548e07b9f4e19132b834cb1effe" + integrity sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/node@*": + version "14.14.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.6.tgz#146d3da57b3c636cc0d1769396ce1cfa8991147f" + integrity sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^1.19.0": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" + integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== + +"@types/q@^1.5.1": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@types/yargs-parser@*": + version "15.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + +"@types/yargs@^15.0.0": + version "15.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.9.tgz#524cd7998fe810cdb02f26101b699cccd156ff19" + integrity sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/experimental-utils@^2.5.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f" + integrity sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "2.34.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/typescript-estree@2.34.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5" + integrity sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg== + dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-jsx@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^6.0.1, acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.0, acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.3, anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-includes@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +babel-jest@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853" + integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ== + dependencies: + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^25.5.0" + chalk "^3.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677" + integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615" + integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +babel-preset-jest@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49" + integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw== + dependencies: + babel-plugin-jest-hoist "^25.5.0" + babel-preset-current-node-syntax "^0.1.2" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bfj@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" + integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== + dependencies: + bluebird "^3.5.5" + check-types "^8.0.3" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boxen@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.0.0: + version "4.14.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.6.tgz#97702a9c212e0c6b6afefad913d3a1538e348457" + integrity sha512-zeFYcUo85ENhc/zxHbiIp0LGzzTrE2Pv2JhxvS7kpUb9Q9D38kUX6Bie7pGutJ/5iF5rOxE7CepAuWD56xJ33A== + dependencies: + caniuse-lite "^1.0.30001154" + electron-to-chromium "^1.3.585" + escalade "^3.1.1" + node-releases "^1.1.65" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.1.0, bytes@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001154, caniuse-lite@^1.0.30001157: + version "1.0.30001157" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz#2d11aaeb239b340bc1aa730eca18a37fdb07a9ab" + integrity sha512-gOerH9Wz2IRZ2ZPdMfBvyOi3cjaz4O4dgNwPGzx8EhqAs4+2IL/O+fJsbt+znSigujoZG8bVcIAUM/I/E5K3MA== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +check-dts@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/check-dts/-/check-dts-0.4.1.tgz#8dbb1bbfcf946ecabc400a1376988d00bfa8ded3" + integrity sha512-GCdUEilKBDalpaynPfRKVMzkUfYPkIt+Yb8oQpHZQOvmulIRhJMf9O1+8u6zmRDrAtP5PPT/nNipX6nXeLVtiw== + dependencies: + ci-job-number "^1.2.2" + colorette "^1.2.1" + globby "^11.0.1" + ora "^5.1.0" + typescript "^4.1.2" + vfile-location "^3.2.0" + +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" + integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.4.1, chokidar@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.1.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-job-number@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-1.2.2.tgz#f4e5918fcaeeda95b604f214be7d7d4a961fe0c0" + integrity sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-publish@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/clean-publish/-/clean-publish-1.1.8.tgz#e193233b489aad12976fb2a5f2166480346b0c46" + integrity sha512-1XcR5CRA1JkEJedUT9aFKEwbR33JvHY8Qm0ZgKk3JF7VStliaDJFuV96J3sf3bR/ZYt5P+c01DK6AQxI10a9Dw== + dependencies: + chalk "^2.4.1" + cosmiconfig "^5.0.7" + cross-spawn "^6.0.5" + fs-extra "^6.0.1" + ramda "^0.25.0" + util.promisify "^1.0.0" + yargs "^12.0.1" + +clean-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" + integrity sha1-jffHquUf02h06PjQW5GAvBGj/tc= + dependencies: + escape-string-regexp "^1.0.5" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.0.0, cli-spinners@^2.4.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" + integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" + integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.4" + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.18.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + +commander@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75" + integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0, cosmiconfig@^5.0.7: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-loader@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.0.1.tgz#9e4de0d6636a6266a585bd0900b422c85539d25f" + integrity sha512-cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw== + dependencies: + camelcase "^6.2.0" + cssesc "^3.0.0" + icss-utils "^5.0.0" + loader-utils "^2.0.0" + postcss "^8.1.4" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.2" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0.tgz#21993fa270d742642a90409a2c0cb3ac0298adf6" + integrity sha512-CdVYz/Yuqw0VdKhXPBIgi8DO3NicJVYZNWeX9XcIuSp9ZoFT5IcleVRW07O5rMjdcx1mb+MEJPknTTEW7DdsYw== + dependencies: + mdn-data "2.0.12" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.1.0.tgz#1d31193efa99b87aa6bad6c0cef155e543d09e8b" + integrity sha512-h+6w/W1WqXaJA4tb1dk7r5tVbOm97MsKxzwnvOR04UQ6GILroryjMWu3pmCCtL2mLaEStQ0fZgeGiy99mo7iyg== + dependencies: + css-tree "^1.0.0" + +cssom@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" + integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-diff@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-1.0.2.tgz#afd3d1f749115be965e89c63edc7abb1506b9c26" + integrity sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg== + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" + integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" + integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.3.585, electron-to-chromium@^1.3.591: + version "1.3.591" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.591.tgz#a18892bf1acb93f7b6e4da402705d564bc235017" + integrity sha512-ol/0WzjL4NS4Kqy9VD6xXQON91xIihDT36sYCew/G/bnd1v0/4D+kahp26JauQhgFUjrdva3kRSo7URcUmQ+qw== + +elliptic@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + +entities@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: + version "1.17.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.18.0-next.1: + version "1.18.0-next.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" + integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.0" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^1.11.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-ast-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz#3d58ba557801cfb1c941d68131ee9f8c34bd1586" + integrity sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA== + dependencies: + lodash.get "^4.4.2" + lodash.zip "^4.2.0" + +eslint-config-standard@^14.1.1: + version "14.1.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" + integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== + +eslint-import-resolver-node@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-es5@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es5/-/eslint-plugin-es5-1.5.0.tgz#aab19af3d4798f7924bba309bc4f87087280fbba" + integrity sha512-Qxmfo7v2B7SGAEURJo0dpBweFf+JU15kSyALfiB2rXWcBuJ96r6X9kFHXFnhdopPHCaHjoQs1xQPUJVbGMb1AA== + +eslint-plugin-es@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-import@^2.22.1: + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-plugin-jest@^23.18.0: + version "23.20.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.20.0.tgz#e1d69c75f639e99d836642453c4e75ed22da4099" + integrity sha512-+6BGQt85OREevBDWCvhqj1yYA4+BFK4XnRZSGJionuEYmcglMZYLNNBBemwzbqUAckURaHdJSBcjHPyrtypZOw== + dependencies: + "@typescript-eslint/experimental-utils" "^2.5.0" + +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + dependencies: + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + +eslint-plugin-prefer-let@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-let/-/eslint-plugin-prefer-let-1.1.0.tgz#a5eb401a5f6b6995883bac7ebafb7fe5d6e9bedb" + integrity sha512-d7IhB8FZCtnCNQ20e4UTETPJNF3mIES3ZYan9RK/K3sIkEfuL3NfF9t5gxoNRFjeSkhlGpJmZdLGLRGPmKgVfQ== + dependencies: + requireindex "~1.2.0" + +eslint-plugin-promise@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" + integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== + +eslint-plugin-security@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-security/-/eslint-plugin-security-1.4.0.tgz#d4f314484a80b1b613b8c8886e84f52efe1526c2" + integrity sha512-xlS7P2PLMXeqfhyf3NpqbvbnW04kN8M9NtmhpR3XGyOvt/vNKS7XPXT5EDbwKW9vCjWH4PpfQvgD/+JgN0VJKA== + dependencies: + safe-regex "^1.1.0" + +eslint-plugin-standard@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.2.tgz#021211a9f077e63a6847e7bb9ab4247327ac8e0c" + integrity sha512-nKptN8l7jksXkwFk++PhJB3cCDTcXOEyhISIN86Ue2feJ1LFyY3PrY3/xT2keXlJSY5bpmbiTG0f885/YKAvTA== + +eslint-plugin-unicorn@^16.1.1: + version "16.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-16.1.1.tgz#012c598d71914ef30f5d386dd85110e59f2ef999" + integrity sha512-IMxCsntb0T8s660Irc40gtzXtxuXHcOn36G9G8OYKfiseBD/kNrA1cNJhsJ0xQteDASGrFwqdzBsYEkUvczhOA== + dependencies: + ci-info "^2.0.0" + clean-regexp "^1.0.0" + eslint-ast-utils "^1.1.0" + eslint-template-visitor "^1.1.0" + import-modules "^2.0.0" + lodash.camelcase "^4.3.0" + lodash.defaultsdeep "^4.6.1" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.upperfirst "^4.3.1" + read-pkg-up "^7.0.1" + regexp-tree "^0.1.17" + regexpp "^3.0.0" + reserved-words "^0.1.2" + safe-regex "^2.1.1" + semver "^7.1.2" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-template-visitor@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-template-visitor/-/eslint-template-visitor-1.1.0.tgz#f090d124d1a52e05552149fc50468ed59608b166" + integrity sha512-Lmy6QVlmFiIGl5fPi+8ACnov3sare+0Ouf7deJAGGhmUfeWJ5fVarELUxZRpsZ9sHejiJUq8626d0dn9uvcZTw== + dependencies: + eslint-visitor-keys "^1.1.0" + espree "^6.1.1" + multimap "^1.0.2" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.1, espree@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +events@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba" + integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA== + dependencies: + "@jest/types" "^25.5.0" + ansi-styles "^4.0.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-regex-util "^25.2.6" + +express@^4.16.3: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +eyo-kernel@^2.5.6: + version "2.5.6" + resolved "https://registry.yarnpkg.com/eyo-kernel/-/eyo-kernel-2.5.6.tgz#aedd0e971943db3f5f282b4081f75b2983e7b606" + integrity sha512-lAcX7HdPLlNB8Ia6Uvq2hFMx9S5VQSfAXkjBZJi9OXzFC1exDvX9lzk2YeQVB9EKufhlHlgeiD26mzg5q42Rgg== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947" + integrity sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^3.0.0, figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-versions@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" + integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== + dependencies: + semver-regex "^2.0.0" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" + integrity sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.2.1.tgz#1fb02ded2036a8ac288d507a65962bd87b97628d" + integrity sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA== + +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0, globals@^12.3.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +husky@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.0.tgz#0b2ec1d66424e9219d359e26a51c58ec5278f0de" + integrity sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA== + dependencies: + chalk "^4.0.0" + ci-info "^2.0.0" + compare-versions "^3.6.0" + cosmiconfig "^7.0.0" + find-versions "^3.2.0" + opencollective-postinstall "^2.0.2" + pkg-dir "^4.2.0" + please-upgrade-node "^3.2.0" + slash "^3.0.0" + which-pm-runs "^1.0.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.0.0.tgz#03ed56c3accd32f9caaf1752ebf64ef12347bb84" + integrity sha512-aF2Cf/CkEZrI/vsu5WI/I+akFgdbwQHVE9YRZxATrhH4PVIe6a3BIjwjEcW+z+jP/hNh+YvM3lAAn1wJQ6opSg== + +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.1, ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e" + integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +import-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-modules/-/import-modules-2.0.0.tgz#9c1e13b4e7a15682f70a6e3fa29534e4540cfc5d" + integrity sha512-iczM/v9drffdNnABOKwj0f9G3cFDon99VcG1mxeBsdqnbd+vnQ5c2uAiCHNQITqFTOPaEvwg3VjoWCur0uHLEw== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +inquirer@^7.0.0: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" + integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-docker@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +isutf8@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isutf8/-/isutf8-2.1.0.tgz#b6d08a02d4ce43bf3b4be39b9b60231b88dfeb2b" + integrity sha512-rEMU6f82evtJNtYMrtVODUbf+C654mos4l+9noOueesUMipSWK6x3tpt8DiXhcZh/ZOBWYzJ9h9cNAlcQQnMiQ== + +jest-changed-files@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.5.0.tgz#141cc23567ceb3f534526f8614ba39421383634c" + integrity sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw== + dependencies: + "@jest/types" "^25.5.0" + execa "^3.2.0" + throat "^5.0.0" + +jest-cli@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d" + integrity sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw== + dependencies: + "@jest/core" "^25.5.4" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^25.5.4" + jest-util "^25.5.0" + jest-validate "^25.5.0" + prompts "^2.0.1" + realpath-native "^2.0.0" + yargs "^15.3.1" + +jest-config@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c" + integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^25.5.4" + "@jest/types" "^25.5.0" + babel-jest "^25.5.1" + chalk "^3.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^25.5.0" + jest-environment-node "^25.5.0" + jest-get-type "^25.2.6" + jest-jasmine2 "^25.5.4" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + micromatch "^4.0.2" + pretty-format "^25.5.0" + realpath-native "^2.0.0" + +jest-diff@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" + integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" + integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== + dependencies: + detect-newline "^3.0.0" + +jest-each@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516" + integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + jest-get-type "^25.2.6" + jest-util "^25.5.0" + pretty-format "^25.5.0" + +jest-environment-jsdom@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834" + integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + jsdom "^15.2.1" + +jest-environment-node@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1" + integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + semver "^6.3.0" + +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943" + integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ== + dependencies: + "@jest/types" "^25.5.0" + "@types/graceful-fs" "^4.1.2" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-serializer "^25.5.0" + jest-util "^25.5.0" + jest-worker "^25.5.0" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + which "^2.0.2" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968" + integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^25.5.0" + "@jest/source-map" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + co "^4.6.0" + expect "^25.5.0" + is-generator-fn "^2.0.0" + jest-each "^25.5.0" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-runtime "^25.5.4" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + pretty-format "^25.5.0" + throat "^5.0.0" + +jest-leak-detector@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb" + integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA== + dependencies: + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-matcher-utils@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867" + integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw== + dependencies: + chalk "^3.0.0" + jest-diff "^25.5.0" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-message-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea" + integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^25.5.0" + "@types/stack-utils" "^1.0.1" + chalk "^3.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + slash "^3.0.0" + stack-utils "^1.0.1" + +jest-mock@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a" + integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA== + dependencies: + "@jest/types" "^25.5.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" + integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== + +jest-resolve-dependencies@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7" + integrity sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw== + dependencies: + "@jest/types" "^25.5.0" + jest-regex-util "^25.2.6" + jest-snapshot "^25.5.1" + +jest-resolve@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829" + integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ== + dependencies: + "@jest/types" "^25.5.0" + browser-resolve "^1.11.3" + chalk "^3.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.1" + read-pkg-up "^7.0.1" + realpath-native "^2.0.0" + resolve "^1.17.0" + slash "^3.0.0" + +jest-runner@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d" + integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg== + dependencies: + "@jest/console" "^25.5.0" + "@jest/environment" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^25.5.4" + jest-docblock "^25.3.0" + jest-haste-map "^25.5.1" + jest-jasmine2 "^25.5.4" + jest-leak-detector "^25.5.0" + jest-message-util "^25.5.0" + jest-resolve "^25.5.1" + jest-runtime "^25.5.4" + jest-util "^25.5.0" + jest-worker "^25.5.0" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab" + integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ== + dependencies: + "@jest/console" "^25.5.0" + "@jest/environment" "^25.5.0" + "@jest/globals" "^25.5.2" + "@jest/source-map" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^25.5.4" + jest-haste-map "^25.5.1" + jest-message-util "^25.5.0" + jest-mock "^25.5.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + realpath-native "^2.0.0" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.3.1" + +jest-serializer@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b" + integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA== + dependencies: + graceful-fs "^4.2.4" + +jest-snapshot@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f" + integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^25.5.0" + "@types/prettier" "^1.19.0" + chalk "^3.0.0" + expect "^25.5.0" + graceful-fs "^4.2.4" + jest-diff "^25.5.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-resolve "^25.5.1" + make-dir "^3.0.0" + natural-compare "^1.4.0" + pretty-format "^25.5.0" + semver "^6.3.0" + +jest-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0" + integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + make-dir "^3.0.0" + +jest-validate@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a" + integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ== + dependencies: + "@jest/types" "^25.5.0" + camelcase "^5.3.1" + chalk "^3.0.0" + jest-get-type "^25.2.6" + leven "^3.1.0" + pretty-format "^25.5.0" + +jest-watcher@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456" + integrity sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q== + dependencies: + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + jest-util "^25.5.0" + string-length "^3.1.0" + +jest-worker@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" + integrity sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ== + dependencies: + "@jest/core" "^25.5.4" + import-local "^3.0.2" + jest-cli "^25.5.4" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@>=3.13.1, js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@2.x, json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +line-column@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" + integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI= + dependencies: + isarray "^1.0.0" + isobject "^2.0.0" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + +lint-staged@^10.5.1: + version "10.5.1" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.1.tgz#901e915c2360072dded0e7d752a0d9a49e079daa" + integrity sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw== + dependencies: + chalk "^4.1.0" + cli-truncate "^2.1.0" + commander "^6.2.0" + cosmiconfig "^7.0.0" + debug "^4.2.0" + dedent "^0.7.0" + enquirer "^2.3.6" + execa "^4.1.0" + listr2 "^3.2.2" + log-symbols "^4.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "^3.3.0" + +listr2@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.2.2.tgz#d20feb75015e506992b55af40722ba1af168b8f1" + integrity sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg== + dependencies: + chalk "^4.1.0" + cli-truncate "^2.1.0" + figures "^3.2.0" + indent-string "^4.0.0" + log-update "^4.0.0" + p-map "^4.0.0" + rxjs "^6.6.3" + through "^2.3.8" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@^1.2.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.defaultsdeep@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" + integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= + +lodash.memoize@4.x, lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= + +lodash.zip@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" + integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= + +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.5: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +lolex@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== + dependencies: + "@sinonjs/commons" "^1.7.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-it@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" + integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== + dependencies: + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.12.tgz#bbb658d08b38f574bbb88f7b83703defdcc46844" + integrity sha512-ULbAlgzVb8IqZ0Hsxm6hHSlQl3Jckst2YEQS7fODu9ilNWy2LvcoSY7TRFIktABP2mdppBioc66va90T+NUs8Q== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@4.x, micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.44.0: + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + dependencies: + mime-db "1.44.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.x, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multimap@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multimap/-/multimap-1.1.0.tgz#5263febc085a1791c33b59bb3afc6a76a2a10ca8" + integrity sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanoid@^3.1.16: + version "3.1.16" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.16.tgz#b21f0a7d031196faf75314d7c65d36352beeef64" + integrity sha512-+AK8MN0WHji40lj8AEuwLOvLSbWYApQpre/aFJZD71r43wVRLrOYS4FmJOPQYon1TqB462RzrrxlfA74XRES8w== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-fetch@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" + integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== + dependencies: + growly "^1.3.0" + is-wsl "^2.1.1" + semver "^6.3.0" + shellwords "^0.1.1" + which "^1.3.1" + +node-releases@^1.1.65, node-releases@^1.1.66: + version "1.1.66" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.66.tgz#609bd0dc069381015cd982300bae51ab4f1b1814" + integrity sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg== + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +opener@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +optimize-css-assets-webpack-plugin@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" + integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== + dependencies: + cssnano "^4.1.10" + last-call-webpack-plugin "^3.0.0" + +optionator@^0.8.1, optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" + integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +ora@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8" + integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w== + dependencies: + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.4.0" + is-interactive "^1.0.0" + log-symbols "^4.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-locale@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-each-series@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" + integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" + integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +pnp-webpack-plugin@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27: + version "7.0.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^8.1.4: + version "8.1.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.6.tgz#b022ba2cfb8701da234d073ed3128c5a384c35ff" + integrity sha512-JuifSl4h8dJ70SiMXKjzCxhalE6p2TnMHuq9G8ftyXj2jg6SXzqCsEuxMj9RkmJoO5D+Z9YrWunNkxqpRT02qg== + dependencies: + colorette "^1.2.1" + line-column "^1.0.2" + nanoid "^3.1.16" + source-map "^0.6.1" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +pretty-format@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" + integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== + dependencies: + "@jest/types" "^25.5.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +prompts@^2.0.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +ramda@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" + integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^16.12.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +realpath-native@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" + integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp-tree@^0.1.17, regexp-tree@~0.1.1: + version "0.1.21" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.21.tgz#55e2246b7f7d36f1b461490942fa780299c400d7" + integrity sha512-kUUXjX4AnqnR8KRTCrayAo9PzYMRKmVoGgaz2tBuz0MF3g1ZbGebmtW0yFHfFK9CmBjQKeYIgoL22pFLBJY7sw== + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpp@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requireindex@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" + integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== + +reserved-words@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" + integrity sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE= + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.3.2: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + dependencies: + is-core-module "^2.0.0" + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^2.5.4, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rxjs@^6.6.0, rxjs@^6.6.3: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +safe-regex@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" + integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== + dependencies: + regexp-tree "~0.1.1" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sax@>=0.6.0, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== + +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@6.x, semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@7.3.2, semver@^7.1.2, semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sharec@^2.14.0-beta: + version "2.14.0-beta" + resolved "https://registry.yarnpkg.com/sharec/-/sharec-2.14.0-beta.tgz#2b21b293276a74f8b2155f33e1b2d86c8f54d912" + integrity sha512-gwy0mfNSPR8giLnO3wqpf8qKzTKtRobVkORVFCBe45p02SFkAynnidH7jIodDfK9/mmd2bKKNl804n0jr5w6fg== + dependencies: + boxen "^4.1.0" + chalk "^2.4.2" + deep-diff "^1.0.2" + deepmerge "^3.2.0" + diff "^4.0.1" + js-yaml ">=3.13.1" + lodash "^4.17.15" + minimist "^1.2.0" + ora "^3.4.0" + slash "^3.0.0" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +size-limit@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-4.7.0.tgz#dbfdc1fa492d906fcf1e198617526a39b646845d" + integrity sha512-1mNMDz7QsBAlvF7BcWEiVVIXk6dYSd6b8A7XLL5eIi+it4iOdMSSfQSYqQ3HSYf1EGwFWWqnk9+A3n4JyEYHrQ== + dependencies: + bytes "^3.1.0" + chokidar "^3.4.3" + ci-job-number "^1.2.2" + colorette "^1.2.1" + cosmiconfig "^7.0.0" + globby "^11.0.1" + ora "^5.1.0" + read-pkg-up "^7.0.1" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6, source-map-support@~0.5.12: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.6" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce" + integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.4.tgz#4b600971dcfc6aed0cbdf2a8268177cc916c87c8" + integrity sha512-IPDJfugEGbfizBwBZRZ3xpccMdRyP5lqsBWXGQWimVjua/ccLCeMOAVjlc1R7LxFjo5sEDhyNIXd8mo/AiDS9w== + dependencies: + escape-string-regexp "^2.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimend@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46" + integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +string.prototype.trimstart@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7" + integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +style-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +term-size@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-jest@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.5.1.tgz#2913afd08f28385d54f2f4e828be4d261f4337c7" + integrity sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + micromatch "4.x" + mkdirp "0.x" + semver "6.x" + yargs-parser "18.x" + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^3.9.4: + version "3.9.7" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== + +typescript@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" + integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + +v8-to-istanbul@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" + integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vfile-location@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +w3c-hr-time@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-bundle-analyzer@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" + integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + bfj "^6.1.1" + chalk "^2.4.1" + commander "^2.18.0" + ejs "^2.6.1" + express "^4.16.3" + filesize "^3.6.1" + gzip-size "^5.0.0" + lodash "^4.17.19" + mkdirp "^0.5.1" + opener "^1.5.1" + ws "^6.0.0" + +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.44.1: + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +ws@^7.0.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7" + integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml2js@^0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml@^1.10.0, yaml@^1.7.2: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yandex-speller@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/yandex-speller/-/yandex-speller-4.1.0.tgz#ccdd565705512934ccdcae2df332491a4834761c" + integrity sha512-z13o3GCMxm5g/MU28JCIdu9SXsAoShroqAheFciS3K0wa2JRkA1y5qASZuavJuaCl0KG5RhTjo8gdkbyp6QC+w== + +yargs-parser@18.x, yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^12.0.1: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yaspeller@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yaspeller/-/yaspeller-7.0.0.tgz#c49af3b5b147edda430996fa1e65b1e577bfb4f4" + integrity sha512-M8phUfHrL0dGCU5jUK9k85hikCSmjpPFAdjnH/Lg1/E81TEuTI7m8m5jhIWAXHWjfZ+wPEhGBz8HLDuEs4areA== + dependencies: + async "^3.2.0" + chalk "^4.0.0" + commander "^3.0.0" + cosmiconfig "^6.0.0" + entities "^2.0.0" + escape-html "^1.0.3" + eyo-kernel "^2.5.6" + glob "^7.1.6" + isutf8 "^2.1.0" + markdown-it "^10.0.0" + minimatch "^3.0.4" + node-fetch "^2.6.0" + strip-json-comments "^3.0.1" + xml2js "^0.4.23" + yandex-speller "^4.1.0"